




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件學(xué)院課程設(shè)計(jì)報(bào)告書課程名稱嵌入式系統(tǒng)課程設(shè)計(jì)設(shè)計(jì)題目快譯通電子詞典專業(yè)班級(jí)嵌入式軟件09-2班學(xué)號(hào)8,9,10,11,12,14姓名劉磊,劉振寧,宋盼盼,唐駿,田雨,王翀指導(dǎo)教師王老師2023年6月目錄1設(shè)計(jì)時(shí)間32設(shè)計(jì)目的33設(shè)計(jì)任務(wù)34設(shè)計(jì)內(nèi)容44.1需求分析54.1.1功能分析54.1.2性能分析54.2總體設(shè)計(jì)5快譯通總體設(shè)計(jì)5查詢單詞模塊總體設(shè)計(jì)54.3詳細(xì)設(shè)計(jì)6〔單詞查詢〕系統(tǒng)流程圖6功能流程圖6〔鏈表創(chuàng)立〕系統(tǒng)流程圖6〔比擬查詢〕系統(tǒng)流程圖6〔進(jìn)入內(nèi)存鏈表取數(shù)據(jù)〕系統(tǒng)流程圖64.4測(cè)試與分析114.5附錄Ⅰ程序清單12參考文獻(xiàn)16成績?cè)u(píng)定161設(shè)計(jì)時(shí)間2023年6月11日——2023年6月152設(shè)計(jì)目的全面熟悉,掌握C語言根本知識(shí),增強(qiáng)對(duì)不同的問題運(yùn)用和靈活選擇適宜的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析,結(jié)果的假設(shè)干有效方法,進(jìn)一步提高上級(jí)動(dòng)手能力,培養(yǎng)使用計(jì)算機(jī)解決實(shí)際問題的能力,養(yǎng)成提供文檔資料的習(xí)慣和標(biāo)準(zhǔn)編程的思想,為日后自主完成設(shè)計(jì)任務(wù)打下扎實(shí)的根底。將理論教學(xué)中涉及到的知識(shí)點(diǎn)貫穿起來,對(duì)不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比擬和總結(jié),結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用,對(duì)所學(xué)知識(shí)到達(dá)融會(huì)貫穿的程度。通過課程設(shè)計(jì),在下述各方面的能力應(yīng)該得到鍛煉:對(duì)于給定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。掌握自頂而下的設(shè)計(jì)方法,將大問題進(jìn)行模塊化,領(lǐng)會(huì)結(jié)構(gòu)化程序設(shè)計(jì)的方法。熟練掌握C語言的根本語法,靈活運(yùn)用各種數(shù)據(jù)類型。進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序〔單步調(diào)試,設(shè)置斷點(diǎn)、觀察表達(dá)式,分塊調(diào)試〕和修改程序。3設(shè)計(jì)任務(wù)給定文本文件“dict.txt〞,該文件用于存儲(chǔ)詞庫。詞庫為“英-漢〞,“漢-英〞雙語詞典,每個(gè)單詞和其解釋的格式固定,如下所示:#單詞Trans:解釋1@解釋2@…解釋n每個(gè)新單詞由“#〞開頭,解釋之間使用“@〞隔開。一個(gè)詞可能有多個(gè)解釋,解釋均存儲(chǔ)在一行里,行首固定以“Trans:〞開頭。下面是一個(gè)典型的例子:#abyssinianTrans:a.阿比西尼亞的@n.阿比西尼亞人;依索比亞人該詞有兩個(gè)解釋,一個(gè)是“a.阿比西尼亞的〞;另一個(gè)是“n.阿比西尼亞人;依索比亞人〞。要求編寫程序?qū)⒃~庫文件讀取到內(nèi)存中,接受用戶輸入的單詞,在字典中查找單詞,并且將解釋輸出到屏幕上。用戶可以反復(fù)輸入,直到用戶輸入“exit〞字典程序退出。程序執(zhí)行格式如下所示:./app–text-text表示使用文本詞庫進(jìn)行單詞查找。4設(shè)計(jì)內(nèi)容4.1需求分析功能分析1、在計(jì)算機(jī)中建立有限規(guī)模的電子英漢詞典〔文件〕,利用程序?qū)崿F(xiàn)電子英漢詞典的單詞查找,建立索引,使用索引進(jìn)行查找,添加新詞等功能。2、詞典的內(nèi)容為:每行對(duì)應(yīng)一個(gè)詞條,每個(gè)詞條由兩個(gè)字符串組成,字符串用假設(shè)干空格符分開;前一個(gè)是單詞字符串〔英文〕,后一個(gè)是釋義字符串〔中文〕,使用分號(hào)作為多個(gè)釋義的分隔符〔無空格〕。3、對(duì)單詞和釋義字符串長度的限定分別為不少于20個(gè)與40個(gè)字符,詞條數(shù)限定為不多于200條。4、采用菜單工作方式。在一個(gè)操作執(zhí)行之后,程序詢問是否繼續(xù)執(zhí)行該操作。如輸入Y或y,那么重復(fù)同一操作,不退回到菜單;如輸入其它信息,那么回到菜單等待另一次選擇。僅中選擇退出操作時(shí),程序應(yīng)詢問是否將修改后的詞典存盤,并根據(jù)用戶選擇存盤退出或不存盤退出。5、要求整個(gè)設(shè)計(jì)以人為本,用戶界面友好。性能分析英譯漢功能塊,可以實(shí)現(xiàn)對(duì)英文單詞對(duì)中文單詞的查詢功能,給定文本文件“dict.txt〞,該文件用于存儲(chǔ)詞庫。用戶文本框中輸入要查詢的單詞。如該單詞存在于詞庫中,那么會(huì)在文件對(duì)話框中顯示其詞性及中文翻譯;如該單詞沒有存在于詞庫中,那么會(huì)彈出“警告〞,說明“查無此詞〞;假設(shè)沒有輸入,直接點(diǎn)擊“查詢〞,那么會(huì)彈出“警告〞說明查詢對(duì)象不能為空。4.2總體設(shè)計(jì)快譯通總體設(shè)計(jì)建建立索引使用索引進(jìn)行查詢添加新詞快譯通單詞查詢圖1快譯通總體設(shè)計(jì)4.2.2查詢單詞模塊總體設(shè)計(jì)單詞查詢單詞查詢輸入單詞進(jìn)入詞庫查找輸出查詢結(jié)果圖2查詢單詞模塊總體設(shè)計(jì)4.3詳細(xì)設(shè)計(jì)〔單詞查詢〕系統(tǒng)流程圖開始開始進(jìn)入數(shù)組查找N是否找到Exit輸出詞義解釋查無此詞結(jié)束YYN退出Y從文件dict.txt讀取并存到內(nèi)存,內(nèi)存以鏈表形式存儲(chǔ)輸入單詞圖3〔單詞查詢〕系統(tǒng)流程圖4.3.2功能流程圖開始開始創(chuàng)立鏈表翻開文件dict.txtEof?為節(jié)點(diǎn)分配空間從文件讀取到節(jié)點(diǎn)將節(jié)點(diǎn)插入鏈表關(guān)閉文件dict.txt結(jié)束YN圖4功能流程圖4.3.3〔鏈表創(chuàng)立〕系統(tǒng)流程圖開始開始開始建立頭指針head,指針p1,p2給p1,p2分配相同的空間,head指向p1,p2用fgets〔〕得到dict.txt中的word,trans。p1指向word,p2指向trans是否到文件尾頭結(jié)點(diǎn)head指回NY圖5〔鏈表創(chuàng)立〕系統(tǒng)流程圖4.3.4〔比擬查詢〕系統(tǒng)流程圖從數(shù)組第一個(gè)元素開始字符串比擬從數(shù)組第一個(gè)元素開始字符串比擬是否匹配輸出結(jié)果NY查無此詞開始結(jié)束進(jìn)入內(nèi)存查找圖6〔比擬查詢〕系統(tǒng)流程圖〔進(jìn)入內(nèi)存鏈表取數(shù)據(jù)〕系統(tǒng)流程圖圖7〔進(jìn)入內(nèi)存鏈表取數(shù)據(jù)〕系統(tǒng)流程圖4.4測(cè)試與分析測(cè)試截圖圖8代碼局部截圖圖9輸入單詞,顯示輸出結(jié)果圖10假設(shè)詞庫中找不到所要查找的單詞,顯示查無此詞4.5附錄Ⅰ程序清單#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>structnode//定義結(jié)構(gòu)體//{charword[30];chartrans[120];structnode*next;};structnode*creat(void)//定義一個(gè)可以返回頭指針的函數(shù)//{ord,ch);strcpy(p1->trans,st)FILE*fp;charch[30],st[120];structnode*head;structnode*p1;structnode*p2;intn;fp=fopen("dic0.txt","r");//以只讀的方式翻開詞庫,把詞庫的地址賦給fp//if(fp==NULL){printf("cannotopenfile\n");exit(1);}head=NULL;//冗錯(cuò)//p1=p2=(structnode*)malloc(sizeof(structnode));//創(chuàng)立鏈表,給p1,p2分配空間//n=0;fgets(ch,30,fp);//從詞庫中取“#單詞〞賦給ch//fgets(st,120,fp);//從詞庫中取“trans〞賦給st//strcpy(p1->w;while(!feof(fp)){n=n+1;if(n==1)head=p1;elsep2->next=p1;p2=p1;p1=(structnode*)malloc(sizeof(structnode));fgets(ch,20,fp);fgets(st,20,fp);strcpy(p1->word,ch);//把“#單詞〞拷貝到鏈表中//strcpy(p1->trans,st);//把“trans〞拷貝到鏈表中//}p2->next=NULL;return(head);}intcmpChar(char*dst,char*src){if(strcmp(src,dst)==0)return1;elsereturn0;}char*getOut(structnode*wp,charword[]){inti=0;char*q;for(i=0;i<30;i++){word[i]=wp->word[i];if(word[i]=='\n')word[i]='\0';}q=word;return(q);}IntoutPut(structnode*wp){inti=0;printf("查詢結(jié)果:");for(i=0;i<30;i++){printf("%c",wp->word[i]);}printf("\n");for(i=0;i<=30;i++){printf("%c",wp->trans[i]);}return0;}intmain(intargc,char*argv[]){structnode*c1;structnode*c2;charin[30];charout[30];inti=0;c1=creat();//翻開文件,創(chuàng)立鏈表//c2=c1;printf("\n\n請(qǐng)輸入要查找的單詞:");scanf("%s",in);//輸入要查找的單詞//if((in[0]=='e')&&(in[1]=='x')&&(in[2]=='i')&&(in[3]=='t'))//判斷是否為exit如果是那么退出,不是進(jìn)行下一步//exit(1);while(!cmpChar(getOut(c1,out),in))//判斷字符串是否為要查找的單詞,是的話停止循環(huán),getout()從節(jié)點(diǎn)中取出,cmpchar比擬取出的節(jié)點(diǎn)的單詞是否與輸入的單詞一致,一致的話退出停止循環(huán),//{if(c1->next!=NULL){c1=c1->next;outPut(c1);}//如果循環(huán)停止時(shí)c1指向的節(jié)點(diǎn)不為空,那么調(diào)用output函數(shù)輸出查找結(jié)果//elsebreak;}if(c1->next!=NULL)outPut(c1);elseprintf("\n查無此詞");c1=c2;gotoa;return0;}5總結(jié)與展望通過本次課題的課程設(shè)計(jì),讓我感到獲益匪淺的。這是再學(xué)習(xí)完C語言這門課程后,對(duì)其知識(shí)的穩(wěn)固與拓展。這次實(shí)訓(xùn)的目的就是為了穩(wěn)固C語言所學(xué)根本課程;提高C語言編程的綜合應(yīng)用能力;以及C語言程序的編譯、調(diào)試方法。這次我們組的實(shí)訓(xùn)內(nèi)容就是電子生詞庫的編程。內(nèi)容要求就是掌握C語言中的根本數(shù)據(jù)輸入、輸出;熟練掌握C語言中的三種根本結(jié)構(gòu)的使用;熟練使用C語言中的函數(shù);熟練使用C語言中的結(jié)構(gòu)體;和熟練掌握C語言中的文件使用。這次的實(shí)訓(xùn),讓我感觸最深的就是:上機(jī)實(shí)驗(yàn)是學(xué)習(xí)程序設(shè)計(jì)語言必不可少的實(shí)踐環(huán)節(jié),特別是C語言靈活、簡潔,更需要通過編程的實(shí)踐來真正掌握它。所以,對(duì)于當(dāng)今缺少動(dòng)手實(shí)踐的大學(xué)生們,這次的實(shí)訓(xùn)就顯得更有意義。歷時(shí)一周的實(shí)訓(xùn),馬上結(jié)束了,在這幾天編程的過程中暴露出了許多我自身存在的問題,同時(shí)也對(duì)自身有了很大的提高。通過這兩周的實(shí)訓(xùn)和學(xué)習(xí),我知道了此次實(shí)訓(xùn)的目的,也清楚目前自己的缺乏,那就是缺乏相應(yīng)的知識(shí)與經(jīng)驗(yàn),對(duì)所學(xué)的C語言知識(shí)不能夠很好地運(yùn)用于實(shí)踐操作。但是我也有許多收獲,在這次實(shí)訓(xùn)中,我第一次體會(huì)到編譯上百條語句有多么的困難,也發(fā)現(xiàn)了很多以前不曾注意到的細(xì)節(jié)。相信這對(duì)我接下來所要學(xué)習(xí)專業(yè)知識(shí)會(huì)起到很有效的幫助??傊?,這次實(shí)訓(xùn),讓我體會(huì)了與眾不同的學(xué)習(xí)方法,從書本被動(dòng)的學(xué)習(xí)改為自身實(shí)踐的主動(dòng)學(xué)習(xí),再這次的實(shí)訓(xùn)操作中,我總結(jié)出一些屬于自己的實(shí)踐經(jīng)驗(yàn),我想,任何一個(gè)單位也不愿意聘請(qǐng)一位沒有實(shí)踐經(jīng)驗(yàn)的員工。所以我們要從現(xiàn)在就開始,多多參與類似這樣的鍛煉,嚴(yán)格自我,完善自我。我相信通過我們的努力奮斗,不管在以后的社會(huì)工作中遇到多少困難,我們一定會(huì)克服困難,開拓一片屬于我們自己的新天地。同組同學(xué)熟悉并掌握C語言根本知識(shí),增強(qiáng)對(duì)不同的問題運(yùn)用和靈活選擇適宜的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 城鄉(xiāng)結(jié)合部出租房屋合同定金范本
- 房產(chǎn)交易三方合同托管實(shí)施細(xì)則
- 保密條款合同模板:代理合作中的商業(yè)與技術(shù)秘密
- 廣告撲克牌批量生產(chǎn)合同
- 貸款擔(dān)保合同協(xié)議
- 河南標(biāo)準(zhǔn)個(gè)人借款合同樣本規(guī)范
- 度商業(yè)合同范本:經(jīng)濟(jì)適用房交易
- 股權(quán)轉(zhuǎn)讓合同范本(標(biāo)準(zhǔn)文本)
- 采購供應(yīng)合同書其二
- 與營銷策略的區(qū)別與應(yīng)用考核試卷
- 2025年江蘇南京技師學(xué)院招聘工作人員19人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 華東師大版七年級(jí)數(shù)學(xué)下冊(cè)“第1周周考”
- DBJ50-T-385-2023半柔性復(fù)合路面技術(shù)標(biāo)準(zhǔn)
- 職業(yè)院校教師人工智能素養(yǎng):內(nèi)涵流變、框架構(gòu)建與生成路徑
- 如何在初中數(shù)學(xué)教學(xué)中提升學(xué)生的核心素養(yǎng)
- (完整版)小學(xué)一年級(jí)數(shù)學(xué)20以內(nèi)進(jìn)退位加減法(1600道題)計(jì)算卡
- 2025年包頭鐵道職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 北京2024年北京市測(cè)繪設(shè)計(jì)研究院面向應(yīng)屆生招聘筆試歷年參考題庫附帶答案詳解
- 2025年減速機(jī)齒輪項(xiàng)目投資可行性研究分析報(bào)告
- 走進(jìn)李白校本 課程設(shè)計(jì)
- 2025新人教版英語七年級(jí)下單詞默寫單(小學(xué)部分)
評(píng)論
0/150
提交評(píng)論