版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于C/C+的嵌入式軟 件綜合實(shí)訓(xùn)課程設(shè)計(jì)報(bào)告(2014 2015學(xué)年 第 3 學(xué)期)姓名學(xué)號(hào)班級(jí)教師實(shí)驗(yàn)名稱基于C/C+的嵌入式軟件綜合實(shí)訓(xùn)深化部分開設(shè)學(xué)期2014-2015學(xué)年第三學(xué)期開設(shè)時(shí)間7.6報(bào)告日期2015.7.16計(jì)算機(jī)科學(xué)與技術(shù)系 1目錄設(shè)計(jì)任務(wù)書3分工3一數(shù)組操作.41.1 設(shè)計(jì)要求.41.2 主要函數(shù).41.3 功能實(shí)現(xiàn).41.4 模塊流程圖.51.5 實(shí)驗(yàn)結(jié)果與分析.5二文本編輯系統(tǒng).82.1 設(shè)計(jì)要求.82.2 主要函數(shù).82.3 功能實(shí)現(xiàn).82.4 模塊流程圖.82.5 實(shí)驗(yàn)結(jié)果與分析.11三計(jì)算24游戲.113.1 設(shè)計(jì)要求.113.2 主要函數(shù).113.3 功能實(shí)
2、現(xiàn).113.4 模塊流程圖.113.5 實(shí)驗(yàn)結(jié)果與分析.14四仿LED數(shù)碼顯示164.1 設(shè)計(jì)要求.164.2 主要函數(shù).164.3 功能實(shí)現(xiàn).164.4 模塊流程圖.174.5 實(shí)驗(yàn)結(jié)果與分析.17五成績(jī)綜合處理程序.195.1 設(shè)計(jì)要求.195.2 主要函數(shù).195.3 功能實(shí)現(xiàn).195.4 模塊流程圖.205.5 實(shí)驗(yàn)結(jié)果與分析.216 統(tǒng)計(jì)C源程序的代碼行數(shù) 246.1設(shè)計(jì)要求.246.2 主要函數(shù).246.3 功能實(shí)現(xiàn).246.4 模塊流程圖.256.5 實(shí)驗(yàn)結(jié)果與分析.27七實(shí)驗(yàn)心得與體會(huì).28八. 參考文獻(xiàn).30設(shè)計(jì)任務(wù)書題目:1. 數(shù)組操作、文本編輯系統(tǒng)、計(jì)算24游戲、仿LED
3、數(shù)碼顯示、編寫一個(gè)成績(jī)綜合處理程序、統(tǒng)計(jì)C語言源程序的代碼行數(shù)??傄螅?、分組討論,全面透徹的認(rèn)識(shí)問題;2人一組。2、找出問題的解決算法;3、根據(jù)算法畫出流程圖;4、根據(jù)流程圖寫出代碼。分工 學(xué)號(hào)姓名實(shí)驗(yàn)分工 一數(shù)組操作1.1設(shè)計(jì)要求:設(shè)計(jì)菜單處理程序,對(duì)一維數(shù)組進(jìn)行不同的操作。 1、數(shù)據(jù)輸入; 2、數(shù)據(jù)輸出; 3、數(shù)據(jù)排序; 4、最大值; 5、最小值;1)操作項(xiàng)目包括求數(shù)組最大值、最小值、求和、求平均值、排序、 二分查找、有序插入;2)設(shè)計(jì)并利用字符菜單進(jìn)行操作項(xiàng)目的選擇,程序一次運(yùn)行可根據(jù)選擇完成一項(xiàng)或多項(xiàng)操作;通過菜單“退出”來結(jié)束程序的運(yùn)行;3)數(shù)組的輸入、輸出可支持命令行輸入文件名
4、、界面輸入文件名從數(shù)據(jù)文件中輸入和輸出;也支持界面錄入。1.2主要函數(shù):1) void st_max(int x,float *a)求得數(shù)組元素中的最大值,x為數(shù)組長(zhǎng)度;2) void st_min(int x,float *a) 求得數(shù)組元素中的最大值,x為數(shù)組長(zhǎng)度;3) void sort(int h,float *a)排序函數(shù);4) void st_sum(int h,float *a)對(duì)數(shù)組元素進(jìn)行求和;5) void average(int h,float *a)求數(shù)組元素的平均值;6) void BinarySearch(int h,float *a)二分查詢;7) void in
5、sert(int h,float *a)有序插入;8) Main函數(shù),實(shí)現(xiàn)基本的菜單功能。2.3 功能實(shí)現(xiàn)1) void st_max(int x,float *a)首先給首數(shù)組元素賦值為m,然后循環(huán)進(jìn)行比較,若后面的值大于m,則給其賦值成m,循環(huán)完成后即可得到最大值,然后輸出;2) void st_min(int x,float *a)首先給首數(shù)組元素賦值為m,然后循環(huán)進(jìn)行比較,若后面的值小于m,則給其賦值成m,循環(huán)完成后即可得到最大值,然后輸出;3) void sort(int h,float *a)利用選擇法進(jìn)行排序,每次循環(huán)找到一個(gè)最大的數(shù)放在最右邊,然后將最終的序列利用循環(huán)進(jìn)行輸出;
6、4) void st_sum(int h,float *a)循環(huán)遍歷數(shù)組元素的值,然后用一個(gè)變量來存儲(chǔ)數(shù)組元素的和并輸出;5) void average(int h,float *a)循環(huán)遍歷數(shù)組元素的值,然后用一個(gè)變量來存儲(chǔ)數(shù)組元素的平均值;6) void BinarySearch(int h,float *a),首先將數(shù)組元素進(jìn)行排序,然后輸入你要查詢的值,利用left,right變量分別從數(shù)組的左右進(jìn)行遍歷,直到找到你想要的值,輸出值以及它的位置;7) void insert(int h,float *a)首先將插入的數(shù)放置在數(shù)組的尾部,然后利用sort()排序函數(shù)進(jìn)行排序,最后進(jìn)行輸出
7、;8) Main函數(shù),實(shí)現(xiàn)基本的菜單功能。1.4 模塊流程圖:2.5實(shí)驗(yàn)結(jié)果與分析:5功能1. 數(shù)據(jù)輸入1從文件輸入 圖1.1 整體流程圖 1.5實(shí)驗(yàn)結(jié)果與分析1) 主函數(shù)2) 數(shù)據(jù)錄入3) 數(shù)據(jù)輸出4) 最大值5) 最小值6) 求和7) 求平均值8) 二分查找9) 有序插入10) 排序二文本編輯系統(tǒng)2.1設(shè)計(jì)要求1)分別統(tǒng)計(jì)出其中英文字母數(shù)和空格數(shù)及整篇文章總字?jǐn)?shù);2)統(tǒng)計(jì)某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);3)刪除某一子串,并將后面的字符前移。注意:字串可以任意輸入。完成任務(wù)描述中的各種功能,自己可以適當(dāng)增加必要的功能。模擬記事本功能。2.2 主要函數(shù):1) void Statis
8、tics(char *a)/統(tǒng)計(jì)字符函數(shù)2) void search(char *a)/字符查找函數(shù)3) void Delete(char *a)/刪除字符函數(shù)4) int main()/主函數(shù),接收文件路徑,讀取文件,關(guān)閉文件操作2.3 功能實(shí)現(xiàn):1) void Statistics(char *a)/統(tǒng)計(jì)字符函數(shù)2) void search(char *a)/字符查找函數(shù)3) void Delete(char *a)/刪除字符函數(shù)4) int main()/主函數(shù),接收文件路徑,讀取文件,關(guān)閉文件操作在主函數(shù)中打開文件,遍歷文件信息,調(diào)用Statistics文件統(tǒng)計(jì)字符、空格、數(shù)字、其他字
9、符的個(gè)數(shù),然后輸出。接著輸入需要查找一個(gè)字符,通過search函數(shù)查找該字符在文件中出現(xiàn)幾次。輸出一個(gè)字符,調(diào)用Delete函數(shù)刪除,完成操作,返回主函數(shù)中保存文件,關(guān)閉文件后程序結(jié)束。2.4 模塊流程圖圖1.2 main函數(shù)圖1.3 Delete函數(shù) 圖1.4 Statistics函數(shù)圖1.5 Search函數(shù)流程圖2.5實(shí)驗(yàn)結(jié)果與分析1.統(tǒng)計(jì)字符,字母,空格的個(gè)數(shù)分析:打開這個(gè)文件,讀取這個(gè)文件的信息,根據(jù)c=getc(fd)語句讀取字符,每讀一個(gè)字符,數(shù)組長(zhǎng)度加一,循環(huán)讀取完以后,a的大小就是文檔總字符的個(gè)數(shù),每個(gè)字符進(jìn)行判斷,判斷是不是(c>='A'&&a
10、mp;c<='Z')|(c>='a'&&c<='z')是的話,那這個(gè)字符就是字母,計(jì)數(shù),字符時(shí)空格的話也計(jì)數(shù),最后j和k的值就是字母和空格的個(gè)數(shù)。2 .查找字符3.刪除字符三計(jì)算24游戲3.1設(shè)計(jì)要求1) 輸入四個(gè)數(shù)通過加減乘除計(jì)算出24,顯示計(jì)算過程,并提示成功信息。比如:用戶輸入 4 3 2 1 輸出 24=4*3*2*1。3.2 主要函數(shù):1) 實(shí)現(xiàn)兩個(gè)數(shù)的運(yùn)算void count(int a1,int a2,int i);2) 實(shí)驗(yàn)運(yùn)算符輸出void Judge(int x);3) 主函數(shù),實(shí)現(xiàn)基本功能。
11、3.3 功能實(shí)現(xiàn): 1. 兩個(gè)數(shù)的運(yùn)算部分:通過定義兩個(gè)整形的變量和一個(gè)整形的數(shù)據(jù)來代替運(yùn)算符,使用switc語句對(duì)i的值進(jìn)行選擇,執(zhí)行加減乘除的運(yùn)算。 2. 運(yùn)算符輸出部分: 利用switch語句對(duì)運(yùn)算符進(jìn)行選擇,然后輸出其運(yùn)算符。3.4 模塊流程圖圖1.6 整體流程圖圖1.7 Main函數(shù)流程圖圖1.8 Count函數(shù)流程圖 3.5實(shí)驗(yàn)結(jié)果與分析1. 輸入四個(gè)數(shù),判斷其能否通過從左至右的運(yùn)算算出能夠等于24. 成功時(shí)的情況 出錯(cuò)時(shí)的情況分析: 先輸入四個(gè)數(shù)字,通過三層for循環(huán)的使用,代表從左至右的三個(gè)運(yùn)算符,通過重重運(yùn)算,分別用數(shù)組變量來保存得到的值,當(dāng)執(zhí)行到第三層循環(huán)時(shí),若與24相等,
12、則通過Judge(int x)函數(shù)輸出運(yùn)算式,當(dāng)判斷完成執(zhí)行相關(guān)操作后,再將其ml的值置零。否則當(dāng)執(zhí)行到第三層循環(huán)時(shí)停止,同時(shí)輸出“這四個(gè)數(shù)的表達(dá)式無法構(gòu)成24!”即上述的出錯(cuò)情況。15四、仿LED數(shù)碼顯示4.1設(shè)計(jì)要求1) 輸入任意數(shù)字和一個(gè)字母,能夠以該字母顯示該數(shù)字,下圖是輸入6和字母A的顯示結(jié)果; 2) 在此基礎(chǔ)上使數(shù)碼從0到9動(dòng)態(tài)變化4.2 主要函數(shù):1) void dp_L()/左側(cè)顯示一個(gè)字符;2) void dp_R()/右側(cè)顯示一個(gè)字符;3) void dp_LR()/最左最右各顯示一個(gè)字符;4) void dp_LC()/左側(cè)和中間顯示一個(gè)字符;5) b void dp_L
13、i()/顯示一行字符;6) void dp_Ct()/中間顯示一個(gè)字符;7) void Display(int i)/判斷函數(shù);8) void FXChange()/動(dòng)態(tài)顯示函數(shù)9) void Menu()/輸入輸出函數(shù)10) 主函數(shù),實(shí)現(xiàn)基本的功能。4.3 功能實(shí)現(xiàn):1) void dp_L()/左側(cè)顯示一個(gè)字符;2) void dp_R()/右側(cè)顯示一個(gè)字符;3) void dp_LR()/最左最右各顯示一個(gè)字符;4) void dp_LC()/左側(cè)和中間顯示一個(gè)字符;5) b void dp_Li()/顯示一行字符;6) void dp_Ct()/中間顯示一個(gè)字符;7) void Dis
14、play(int i)/判斷函數(shù),判斷輸出的字符為0-9的哪個(gè)數(shù),通過調(diào)用6個(gè)不同的顯示字符函數(shù),依次判斷輸出8) void FXChange()/動(dòng)態(tài)顯示函數(shù),包含延遲函數(shù)sleep9) void Menu()/輸入輸出函數(shù),接收字符和數(shù)字,輸出提示信息等10) 主函數(shù),實(shí)現(xiàn)基本的函數(shù)調(diào)用功能4.4 模塊流程圖圖1.9 Display函數(shù)流程圖4.5實(shí)驗(yàn)結(jié)果與分析1. 輸入字符B,輸出數(shù)字是4的結(jié)果:2.輸入數(shù)字H,動(dòng)態(tài)輸出5: 2.輸入字母H,動(dòng)態(tài)輸出8:五、成績(jī)綜合處理程序5.1設(shè)計(jì)要求 實(shí)現(xiàn)功能 1、成績(jī)輸入; 2、成績(jī)輸出; 3、成績(jī)插入; 4、成績(jī)刪除; 5、成績(jī)排序。1) 正確定
15、義功能函數(shù)并進(jìn)行設(shè)計(jì),2) 實(shí)現(xiàn)文件讀寫;3) 熟練掌握函數(shù)中參數(shù)及返回值的功能;4) 能熟練對(duì)項(xiàng)目進(jìn)行功能分解并以函數(shù)形式實(shí)現(xiàn); 5) 理解并掌握指針的概念和引用;6) 重點(diǎn)掌握指向數(shù)組的指針變量的應(yīng)用。5.2 主要函數(shù):1) void GetInfo()輸出函數(shù),完成成績(jī)的輸出;2) Void GetSum()求得各科的總分;3) Void SetInfo()完成成績(jī)的錄入;4) bool Insert()完成學(xué)生信息的錄入;5) bool Sort()排序的功能函數(shù);6) bool Delete()刪除的功能函數(shù);7) bool Change()學(xué)生成績(jī)的插入;8) int Find()
16、學(xué)生信息的查詢;9) int FindAsk()學(xué)生成績(jī)的輸出;10) 主函數(shù),實(shí)現(xiàn)基本的功能。5.3 功能實(shí)現(xiàn):1) void GetInfo()輸出函數(shù),完成成績(jī)的輸出,此功能通過基本輸出語句對(duì)學(xué)生的基本信息進(jìn)行輸出;2) Void GetSum()求得各科成績(jī)的總分;3) Void SetInfo()完成成績(jī)的錄入,實(shí)現(xiàn)的方法是用scanf語句對(duì)學(xué)生信息依次錄入;4) bool Insert()完成若干個(gè)學(xué)生信息的錄入,用一個(gè)判斷語句來判斷學(xué)生的個(gè)數(shù)是否達(dá)到最大值,若沒有的話繼續(xù)錄入,在這里調(diào)用SetInfo()這個(gè)函數(shù),幫助錄入每個(gè)學(xué)生的個(gè)人成績(jī);5) bool Sort()排序的功能
17、函數(shù),首先選擇排序方式,可以按照各科的成績(jī)排序,然后依據(jù)輸入的值對(duì)功能進(jìn)行選擇,完成排序;6) bool Delete()刪除的功能函數(shù),刪除的操作是對(duì)存儲(chǔ)學(xué)生信息的數(shù)組進(jìn)行操作,刪除數(shù)組里的節(jié)點(diǎn)值即刪除掉了部分的學(xué)生信息;7) bool Change()學(xué)生成績(jī)的插入,同樣的插入函數(shù)也是對(duì)存儲(chǔ)學(xué)生信息的數(shù)組進(jìn)行操作。8) int Find()學(xué)生信息的查詢,通過對(duì)數(shù)組元素的逐一訪問,輸出數(shù)組元素的值,即可查詢到學(xué)生的信息,當(dāng)無法查詢到信息時(shí),即輸出“查無此人”的提示語;9) int FindAsk()學(xué)生成績(jī)的輸出,通過查詢,找到數(shù)組元素的節(jié)點(diǎn),然后通過此函數(shù)輸出學(xué)生信息;10) 主函數(shù),實(shí)
18、現(xiàn)基本的功能,此函數(shù)是程序運(yùn)行的主入口,通過此入口,先輸出菜單欄,然后根據(jù)用戶的輸入來進(jìn)行功能的選擇,執(zhí)行相關(guān)的函數(shù)。5.4 模塊流程圖圖2.0 main函數(shù)流程圖5.5實(shí)驗(yàn)結(jié)果與分析1.成績(jī)的錄入分析:實(shí)現(xiàn)的方法是用scanf語句對(duì)學(xué)生信息依次錄入。 2.成績(jī)的插入:279分析: bool Change()學(xué)生成績(jī)的插入,同樣的插入函數(shù)也是對(duì)存儲(chǔ)學(xué)生信息的 數(shù)組進(jìn)行操作。3. 成績(jī)的排序: 分析: bool Sort()排序的功能函數(shù),首先選擇排序方式,可以按照各科的成績(jī) 排序,然后依據(jù)輸入的值對(duì)功能進(jìn)行選擇,完成排序;4. 成績(jī)的刪除: 分析:bool Delete()刪除的功能函數(shù),刪除
19、的操作是對(duì)存儲(chǔ)學(xué)生信息的數(shù)組進(jìn) 行操作,刪除數(shù)組里的節(jié)點(diǎn)值即刪除掉了部分的學(xué)生信息。5. 成績(jī)的輸出: 分析:int FindAsk()學(xué)生成績(jī)的輸出,通過查詢,找到數(shù)組元素的節(jié)點(diǎn),然后通過此函數(shù)輸出學(xué)生信息。 六、統(tǒng)計(jì)C源程序的代碼行數(shù)6.1設(shè)計(jì)要求要求1) /* */ 和/的都認(rèn)為是注釋行。2) 統(tǒng)計(jì)空行。3) 非空非注釋行,基本上可以認(rèn)為是有效的代碼行 如果同一行中有注釋和代碼的認(rèn)為是代碼行4, 統(tǒng)計(jì)總代碼行數(shù)、注釋行數(shù)、空行數(shù) 輸入: codeCounter filepath/filename 輸出列表: filename 總代碼行數(shù)、注釋行、空行6.2 主要函數(shù):1) int Str
20、ingBracket(char *str)/刪除空格制表符2) void main()/輸入輸出,讀取關(guān)閉文件6.3 功能實(shí)現(xiàn):1) int StringBracket(char *str)/刪除空格制表符2) void main()/輸入輸出,讀取關(guān)閉文件在main函數(shù)中接收文件名,若文件不存在,輸出:無法讀取到該文件。若文件存在,通過fgets函數(shù)讀取整個(gè)文件,while循環(huán)讀取行并判斷文件是否結(jié)束,同時(shí)調(diào)用StringBracket寒素刪除空格和制表符并且使各項(xiàng)計(jì)數(shù)器+1,最后輸出結(jié)果。6.4 模塊流程圖圖2.1 Main函數(shù)流程圖圖2.2. StringBracket函數(shù)流程圖6.5實(shí)驗(yàn)結(jié)果與分析1.測(cè)試文件,當(dāng)運(yùn)行正常時(shí): 2.若文件不存在時(shí): 七、心得與體會(huì)1.對(duì)自己的設(shè)計(jì)進(jìn)行評(píng)價(jià) a.不夠細(xì)心,開始的時(shí)候出現(xiàn)很多錯(cuò)誤。 b.寫的過于簡(jiǎn)陋,功能不夠完善。2.調(diào)試上得到的體會(huì): 在最后的調(diào)試過程中,發(fā)現(xiàn)有時(shí)候系統(tǒng)報(bào)錯(cuò),指出了錯(cuò)誤所在的具體位置,可是檢查的時(shí)候發(fā)現(xiàn)該位置并未出錯(cuò),這樣的錯(cuò)誤首先要查找前后幾行,如果未出錯(cuò),那就很有可能在該函數(shù)的首部或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)農(nóng)業(yè)技術(shù)員招聘合同
- 橋梁工程勞務(wù)施工合同
- 洗衣店裝修施工合同工程
- 污水處理廠環(huán)保設(shè)施咨詢服務(wù)合同
- 師徒合同范本方法及
- 教育投資律師服務(wù)合同
- 農(nóng)村配電網(wǎng)升級(jí)施工合同
- 廣州市住宅區(qū)停車場(chǎng)寵物管理規(guī)定
- 礦山修復(fù)樁基施工勞務(wù)分包合同
- 租賃合同仲裁協(xié)議書范本
- 《小兒手足口病》課件
- 物流倉(cāng)儲(chǔ)項(xiàng)目介紹
- 《防雷電安全知識(shí)教育》秀課件
- 警校生大學(xué)生涯規(guī)劃
- 餐廳飯店顧客意見反饋表格模板(可修改)
- 初中歷史期中考試分析報(bào)告
- 小學(xué)教育課件教案:通過制作3D打印物品學(xué)習(xí)有關(guān)數(shù)學(xué)的幾何知識(shí)
- 室內(nèi)攀巖挑戰(zhàn)征服高空挑戰(zhàn)自我
- 2025屆高三英語一輪復(fù)習(xí)備考計(jì)劃 課件
- 計(jì)生生殖健康知識(shí)講座
- 學(xué)生寢室生活管理策略例談
評(píng)論
0/150
提交評(píng)論