前 言
編寫本書的目的
C 語言程序設(shè)計(jì)是電子信息類專業(yè)的基礎(chǔ)課程,旨在訓(xùn)練學(xué)生計(jì)算思
維,培養(yǎng)學(xué)生程序編寫能力。目前,多數(shù)C 語言程序設(shè)計(jì)教材,以計(jì)算機(jī)類專
業(yè)學(xué)生為讀者對(duì)象,C 語言的講解非常細(xì)致、全面,涵蓋了C 語言中全部的語
法規(guī)則及常用的算法邏輯。對(duì)于電子類的專業(yè)來說,有些知識(shí)點(diǎn)是用不上或者
很少被使用的,況且過多的知識(shí)點(diǎn)只會(huì)讓初學(xué)編程的人望而生畏。當(dāng)然,市面
上還有一批以《51 單片機(jī)C 語言程序設(shè)計(jì)教程》為代表的C 語言教材,它們
是基于類似于Keil Vision 程序設(shè)計(jì)平臺(tái)和Proteus 硬件仿真平臺(tái),設(shè)計(jì)C 語
言程序案例的。這些教材側(cè)重于硬件接口編程,任務(wù)過于依賴于硬件,學(xué)生在
學(xué)習(xí)時(shí)需要具備一定電子技術(shù)基礎(chǔ)知識(shí),程序內(nèi)容糾纏于繁雜的硬件引腳細(xì)節(jié),
弱化了計(jì)算思維的訓(xùn)練。
2012 年,南通職業(yè)大學(xué)成功申報(bào)了江蘇省高職院校智能控制應(yīng)用技術(shù)
重點(diǎn)專業(yè)群。C 語言程序設(shè)計(jì)作為專業(yè)群的一門平臺(tái)課程,2014 年課程組
開始重點(diǎn)建設(shè)。在課程建設(shè)過程中,針對(duì)專業(yè)群學(xué)生的知識(shí)基礎(chǔ)和學(xué)習(xí)能力,
決定開發(fā)既能訓(xùn)練計(jì)算思維,又能服務(wù)硬件底層開發(fā)的C 語言教材。
課題組在編寫本書時(shí),以知識(shí)夠用,能力復(fù)合為宗旨,教材的項(xiàng)目和
任務(wù)都以電子產(chǎn)品或電子技術(shù)為應(yīng)用場(chǎng)景,且不過度依賴于電子硬件知識(shí),適
合作為電子類專業(yè)群多個(gè)專業(yè)教學(xué)需要的高職高專類C 語言教材。
教學(xué)內(nèi)容安排
本書由8 個(gè)案例組成,以C 語言知識(shí)體系為主線,以典型電子產(chǎn)品或電子產(chǎn)
品實(shí)現(xiàn)技術(shù)為模擬對(duì)象,通過C 語言編程實(shí)現(xiàn)其功能。典型電子產(chǎn)品有數(shù)字時(shí)鐘、
計(jì)時(shí)器、電子計(jì)算器,電子產(chǎn)品實(shí)現(xiàn)技術(shù)有滾屏輸出技術(shù)、字模打印技術(shù)、動(dòng)態(tài)
圖像顯示技術(shù)、車輛定位系統(tǒng)信息處理技術(shù)以及溫控系統(tǒng)中數(shù)值處理技術(shù)等。
每個(gè)案例中又由多個(gè)任務(wù)組成,每個(gè)任務(wù)是相互關(guān)聯(lián)的。例如,案例1 為
簡(jiǎn)易數(shù)字時(shí)鐘的模擬,共設(shè)計(jì)了6 個(gè)任務(wù),任務(wù)1.1 和任務(wù)1.2 為基本任務(wù),實(shí)
現(xiàn)顯示時(shí)間和換算時(shí)間,即如何按時(shí)、分、秒的格式顯示時(shí)間;任務(wù)1.3~ 任務(wù)1.6
則是數(shù)字時(shí)鐘功能的延伸和擴(kuò)展,具體包括計(jì)算時(shí)間間隔、判斷整點(diǎn)時(shí)間的合
法性、求短耗時(shí)、求短時(shí)長(zhǎng)等功能。
每個(gè)任務(wù)包含任務(wù)描述、學(xué)習(xí)目標(biāo)、預(yù)備知識(shí)、任務(wù)實(shí)現(xiàn)、程序?qū)ёx、任
務(wù)拓展6 個(gè)部分。任務(wù)描述描述任務(wù)的主要內(nèi)容,告訴讀者要做什么;學(xué)習(xí)目
標(biāo)告訴讀者完成這項(xiàng)任務(wù)后要達(dá)到的學(xué)習(xí)目標(biāo);預(yù)備知識(shí)是讀者完成此項(xiàng)任務(wù)
需要具備的C 語言的基礎(chǔ)知識(shí),讀者可以在課前預(yù)習(xí);任務(wù)實(shí)現(xiàn)包括任務(wù)分析、
算法流程以及實(shí)現(xiàn)此任務(wù)的源程序;程序?qū)ёx是對(duì)程序重點(diǎn)和難點(diǎn)的進(jìn)一步解
析;任務(wù)拓展則是任務(wù)功能擴(kuò)展,可以引導(dǎo)讀者進(jìn)一步思考,也可作為讀者實(shí)訓(xùn)、
練習(xí)使用。
此外,在每一個(gè)案例后以任務(wù)為單位附有習(xí)題,可供讀者課后鞏固練習(xí)。
在本書附錄C 中還附有趣味案例集錦,供讀者自學(xué)或綜合實(shí)訓(xùn)使用。
本書主要特色
(1)任務(wù)選取貼近工程實(shí)踐
任務(wù)選取既包含了C 語言的大部分知識(shí)點(diǎn),又貼近工程實(shí)踐和實(shí)際生活,確
保讀者學(xué)到的知識(shí)和實(shí)際接軌。在具體案例設(shè)置時(shí)考慮了與后繼課程間的聯(lián)系。
例如,任務(wù)3.3 模擬單個(gè)字符的移動(dòng)輸出和任務(wù)3.6 手機(jī)號(hào)碼的滾屏輸出,都
來源于LED 顯示屏輸出,在生活中隨處可見,與群內(nèi)的專業(yè)息息相關(guān),同時(shí)
又貼合了C 語言知識(shí)點(diǎn)的主線,生動(dòng)有趣,讓課堂教學(xué)充滿活力。
(2)教材兼具通用性和專用性
本書案例既沒有局限于具體的單片機(jī)型號(hào)和硬件平臺(tái),又能為電子產(chǎn)品的
底層開發(fā)提供知識(shí)技能保障;既滿足專業(yè)群內(nèi)跨專業(yè)的教學(xué)需要,又適于編程
愛好者入門學(xué)習(xí)。
本書習(xí)題中有一部分鞏固了案例中涉及的知識(shí)和技能,另一部分則對(duì)未觸
及的知識(shí)點(diǎn)和技能點(diǎn)進(jìn)行了補(bǔ)充,整個(gè)習(xí)題的設(shè)置呈現(xiàn)出清晰而完整的知識(shí)體
系結(jié)構(gòu),基本能滿足計(jì)算機(jī)等級(jí)考試(二級(jí)C)的要求。
(3)本書為信息化立體教材,適應(yīng)泛在學(xué)習(xí)趨勢(shì)
本書的案例和任務(wù)都有很濃的原始性,配套開發(fā)的微課、習(xí)題精講視
頻等共享資源庫,可以有效提高案例的復(fù)用性和傳播性,擴(kuò)大了立體化教材的
受眾范圍,可滿足部分讀者在線學(xué)習(xí)或遠(yuǎn)程學(xué)習(xí)的需要。
致謝
本書由許秀林、王瓊瑤、陽俐君任主編,負(fù)責(zé)本書的總體設(shè)計(jì),董楊琴、束慧、
孟領(lǐng)剛?cè)胃敝骶帯F渲,許秀林負(fù)責(zé)本書的統(tǒng)稿及緒論的編寫,王瓊瑤負(fù)責(zé)編
寫案例3、5、8,陽俐君負(fù)責(zé)編寫案例2、4、7,董楊琴、束慧共同編寫案
例1 和附錄C ;孟領(lǐng)剛負(fù)責(zé)編寫案例6。書中配套的微課、習(xí)題精講視頻等共
享資源庫由陽俐君、王瓊瑤、董楊琴制作完成。在本書的編寫過程中,還得到
陳衛(wèi)兵、劉建峰、吳素全、宋玉鋒等老師和企業(yè)專家的大力支持和幫助,他們
提出了許多寶貴意見和建議,在此表示衷心的感謝。
由于時(shí)間倉促,編者水平有限,書中難免存在疏漏與不妥之處,懇請(qǐng)讀者
批評(píng)指正。
編者
2020 年6 月
許秀林,男,院長(zhǎng),主講課程:《C語言與數(shù)據(jù)結(jié)構(gòu)》、《軟件工程》等。 曾獲教學(xué)、科研主要獎(jiǎng)勵(lì)情況: (1)江蘇省教學(xué)成果一等獎(jiǎng):基于區(qū)域產(chǎn)業(yè)結(jié)構(gòu)調(diào)整的高職專業(yè)設(shè)置與動(dòng)態(tài)調(diào)整機(jī)制研究與實(shí)踐,2017年; (2)南通市教學(xué)成果二等獎(jiǎng):基于地區(qū)產(chǎn)業(yè)結(jié)構(gòu)調(diào)整的高職專業(yè)動(dòng)態(tài)調(diào)整機(jī)制研究與探索,2015年; (3)江蘇省現(xiàn)代教育技術(shù)研究十二五規(guī)劃課題:C語言輔助教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),2011年度立項(xiàng),2013年結(jié)題并獲得省級(jí)一等獎(jiǎng)。 (4)南通職業(yè)大學(xué)第四屆教學(xué)名師,2012年 (5) 南通市自然科學(xué)優(yōu)秀論文獎(jiǎng)三等獎(jiǎng),南通市人民政府,
2009年,排名。 王瓊瑤,女,教研室副主任,主講課程:《C語言程序設(shè)計(jì)》、《C#程序設(shè)計(jì)》、《C語言與數(shù)據(jù)結(jié)構(gòu)》、《計(jì)算機(jī)導(dǎo)論》等。 曾獲教學(xué)、科研主要獎(jiǎng)勵(lì)情況: (1) 江蘇省微課比賽三等獎(jiǎng), 2016年,排名第二; (2) 藍(lán)橋杯全國(guó)軟件與信息技術(shù)大賽優(yōu)秀指導(dǎo)教師,全國(guó)二等獎(jiǎng), 2012年~2016年,排名; (3) 江蘇省職院校技能大賽三等獎(jiǎng), 2014、2016、2017年。 (4) 校優(yōu)秀教學(xué)成果一等獎(jiǎng),2013年,排名第五; 陽俐君,女,教師,主講課程:《C語言程序設(shè)計(jì)》、《C與數(shù)據(jù)結(jié)構(gòu)》等,同時(shí)是這兩門課的課程負(fù)責(zé)人。 曾獲教學(xué)、科研主要獎(jiǎng)勵(lì)情況: (1)南通市第十屆自然科學(xué)優(yōu)秀學(xué)術(shù)論文三等獎(jiǎng),2017年,排名; (2)江蘇省微課比賽三等獎(jiǎng), 2016年,排名; (3) 省高等職業(yè)院校信息化教學(xué)大賽三等獎(jiǎng),2017年,排名第二; (4)年江蘇省高等學(xué)校本?苾(yōu)秀畢業(yè)設(shè)計(jì)(論文)團(tuán)隊(duì)獎(jiǎng)指導(dǎo)老師,2014年,排名第二; (5)藍(lán)橋杯全國(guó)軟件與信息技術(shù)大賽優(yōu)秀指導(dǎo)教師,省一等獎(jiǎng)、全國(guó)三等獎(jiǎng), 2013年、2015年,排名。
目 錄
緒論 ............................................................................................. 1
案例1簡(jiǎn)易數(shù)字時(shí)鐘的模擬...................................................................... 3
任務(wù)1.1 顯示時(shí)間 ......................................................................
4
任務(wù)1.2 換算時(shí)間 .....................................................................10
任務(wù)1.3 計(jì)算時(shí)間間隔...............................................................13
任務(wù)1.4 判斷整點(diǎn)時(shí)間的合法性 ..................................................17
任務(wù)1.5 求短耗時(shí) ..................................................................19
任務(wù)1.6 求短時(shí)長(zhǎng)................................................................. 22
小結(jié).................................................................................. 25
習(xí)題.................................................................................. 25
案例2溫控系統(tǒng)中的數(shù)值處理 ................................................................ 31
任務(wù)2.1 華氏溫度轉(zhuǎn)攝氏溫度 .................................................... 32
任務(wù)2.2 溫度采樣中的濾波處理................................................. 36
任務(wù)2.3 算術(shù)平均濾波算法處理溫度采樣 .................................... 38
任務(wù)2.4 滑動(dòng)平均濾波采樣 ....................................................... 43
任務(wù)2.5 求溫度和平均溫度 ................................................. 47
小結(jié).................................................................................. 51
習(xí)題.................................................................................. 51
案例3模擬滾屏輸出 .............................................................................. 56
任務(wù)3.1 字母的輸入/ 輸出及轉(zhuǎn)換 .............................................. 57
任務(wù)3.2 簡(jiǎn)易電子產(chǎn)品菜單顯示 ................................................. 62
任務(wù)3.3 模擬單個(gè)字符的移動(dòng)輸出 .............................................. 66
任務(wù)3.4 按指定格式輸出手機(jī)號(hào)碼 ...............................................71
任務(wù)3.5 手機(jī)號(hào)碼的整體性輸入及輸出 ....................................... 74
任務(wù)3.6 手機(jī)號(hào)碼的滾屏輸出 .................................................... 78
小結(jié) ....................................................................................81
習(xí)題 ....................................................................................81
案例4模擬字模打印 .............................................................................. 86
任務(wù)4.1 模擬字模打印指定數(shù)字 ................................................. 87
任務(wù)4.2模擬字模打印任意數(shù)字 ..................................................91
任務(wù)4.3 橫向排版輸出英文單詞 ................................................. 95
任務(wù)4.4 橫向排版輸出任意時(shí)間 ................................................. 98
任務(wù)4.5高效存儲(chǔ)字模 .............................................................105
小結(jié) ..................................................................................109
習(xí)題 ..................................................................................110
案例5模擬計(jì)時(shí)器 .................................................................................113
任務(wù)5.1 簡(jiǎn)易秒表計(jì)時(shí) .............................................................114
任務(wù)5.2 模擬手機(jī)秒表計(jì)時(shí) ......................................................116
任務(wù)5.3 模擬賽場(chǎng)分段計(jì)時(shí) ......................................................118
任務(wù)5.4 模擬手機(jī)倒計(jì)時(shí) .........................................................121
任務(wù)5.5 用字模實(shí)現(xiàn)倒計(jì)時(shí)輸出 ................................................123
小結(jié) ..................................................................................127
習(xí)題 ..................................................................................127
案例6模擬電子計(jì)算器 ......................................................................... 130
任務(wù)6.1 求2 的次冪 ................................................................131
任務(wù)6.2十進(jìn)制轉(zhuǎn)二進(jìn)制 .........................................................133
任務(wù)6.3 求子網(wǎng)網(wǎng)絡(luò)號(hào)和子網(wǎng)主機(jī)號(hào)..........................................135
任務(wù)6.4 簡(jiǎn)易位運(yùn)算計(jì)算器 ......................................................139
小結(jié) ..................................................................................143
習(xí)題 ..................................................................................144
案例7簡(jiǎn)易位置檢測(cè)系統(tǒng) ..................................................................... 147
任務(wù)7.1 小車基本信息 .............................................................148
任務(wù)7.2模擬顯示小車位置 ......................................................154
任務(wù)7.3 遠(yuǎn)距離求取 .............................................................158
任務(wù)7.4 有效位置檢測(cè) .............................................................161
小結(jié)................................................................................ 166
習(xí)題................................................................................ 166
案例8動(dòng)態(tài)顯示圖像 ............................................................................ 169
任務(wù)8.1 模擬紅綠燈變換 .........................................................170
任務(wù)8.2模擬流水燈................................................................178
任務(wù)8.3 顯示心形圖案 .............................................................182
任務(wù)8.4 跳動(dòng)的心 ...................................................................188
任務(wù)8.5模擬交通信號(hào)燈.........................................................192
小結(jié) ..................................................................................198
習(xí)題 ..................................................................................199
附錄A運(yùn)算符及其優(yōu)先級(jí)和結(jié)合性 ....................................................... 204
附錄B常用字符與ASCII 編碼對(duì)照表................................................... 205
附錄C趣味案例集錦 ............................................................................ 206