版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件學(xué)院課程設(shè)計(jì)報(bào)告書課程名稱嵌入式系統(tǒng)課程設(shè)計(jì)設(shè)計(jì)題目快譯通電子詞典專業(yè)班級嵌入式軟件09-2班學(xué)號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測試與分析114.5附錄Ⅰ程序清單12參考文獻(xiàn)16成績評定161設(shè)計(jì)時(shí)間2023年6月11日——2023年6月152設(shè)計(jì)目的全面熟悉,掌握C語言根本知識,增強(qiáng)對不同的問題運(yùn)用和靈活選擇適宜的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析,結(jié)果的假設(shè)干有效方法,進(jìn)一步提高上級動手能力,培養(yǎng)使用計(jì)算機(jī)解決實(shí)際問題的能力,養(yǎng)成提供文檔資料的習(xí)慣和標(biāo)準(zhǔn)編程的思想,為日后自主完成設(shè)計(jì)任務(wù)打下扎實(shí)的根底。將理論教學(xué)中涉及到的知識點(diǎn)貫穿起來,對不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比擬和總結(jié),結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用,對所學(xué)知識到達(dá)融會貫穿的程度。通過課程設(shè)計(jì),在下述各方面的能力應(yīng)該得到鍛煉:對于給定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。掌握自頂而下的設(shè)計(jì)方法,將大問題進(jìn)行模塊化,領(lǐng)會結(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〞,該文件用于存儲詞庫。詞庫為“英-漢〞,“漢-英〞雙語詞典,每個(gè)單詞和其解釋的格式固定,如下所示:#單詞Trans:解釋1@解釋2@…解釋n每個(gè)新單詞由“#〞開頭,解釋之間使用“@〞隔開。一個(gè)詞可能有多個(gè)解釋,解釋均存儲在一行里,行首固定以“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)容為:每行對應(yīng)一個(gè)詞條,每個(gè)詞條由兩個(gè)字符串組成,字符串用假設(shè)干空格符分開;前一個(gè)是單詞字符串〔英文〕,后一個(gè)是釋義字符串〔中文〕,使用分號作為多個(gè)釋義的分隔符〔無空格〕。3、對單詞和釋義字符串長度的限定分別為不少于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)對英文單詞對中文單詞的查詢功能,給定文本文件“dict.txt〞,該文件用于存儲詞庫。用戶文本框中輸入要查詢的單詞。如該單詞存在于詞庫中,那么會在文件對話框中顯示其詞性及中文翻譯;如該單詞沒有存在于詞庫中,那么會彈出“警告〞,說明“查無此詞〞;假設(shè)沒有輸入,直接點(diǎn)擊“查詢〞,那么會彈出“警告〞說明查詢對象不能為空。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)存以鏈表形式存儲輸入單詞圖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測試與分析測試截圖圖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請輸入要查找的單詞:");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語言這門課程后,對其知識的穩(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í)踐來真正掌握它。所以,對于當(dāng)今缺少動手實(shí)踐的大學(xué)生們,這次的實(shí)訓(xùn)就顯得更有意義。歷時(shí)一周的實(shí)訓(xùn),馬上結(jié)束了,在這幾天編程的過程中暴露出了許多我自身存在的問題,同時(shí)也對自身有了很大的提高。通過這兩周的實(shí)訓(xùn)和學(xué)習(xí),我知道了此次實(shí)訓(xùn)的目的,也清楚目前自己的缺乏,那就是缺乏相應(yīng)的知識與經(jīng)驗(yàn),對所學(xué)的C語言知識不能夠很好地運(yùn)用于實(shí)踐操作。但是我也有許多收獲,在這次實(shí)訓(xùn)中,我第一次體會到編譯上百條語句有多么的困難,也發(fā)現(xiàn)了很多以前不曾注意到的細(xì)節(jié)。相信這對我接下來所要學(xué)習(xí)專業(yè)知識會起到很有效的幫助??傊@次實(shí)訓(xùn),讓我體會了與眾不同的學(xué)習(xí)方法,從書本被動的學(xué)習(xí)改為自身實(shí)踐的主動學(xué)習(xí),再這次的實(shí)訓(xùn)操作中,我總結(jié)出一些屬于自己的實(shí)踐經(jīng)驗(yàn),我想,任何一個(gè)單位也不愿意聘請一位沒有實(shí)踐經(jīng)驗(yàn)的員工。所以我們要從現(xiàn)在就開始,多多參與類似這樣的鍛煉,嚴(yán)格自我,完善自我。我相信通過我們的努力奮斗,不管在以后的社會工作中遇到多少困難,我們一定會克服困難,開拓一片屬于我們自己的新天地。同組同學(xué)熟悉并掌握C語言根本知識,增強(qiáng)對不同的問題運(yùn)用和靈活選擇適宜的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度公益慈善晚會活動策劃與實(shí)施合同4篇
- 2025年度互聯(lián)網(wǎng)內(nèi)容提供商ICP證年審全權(quán)委托服務(wù)合同3篇
- 二零二五年度生物科技研發(fā)農(nóng)民工就業(yè)服務(wù)合同4篇
- 電子商務(wù)平臺消費(fèi)者權(quán)益保護(hù)2025年度國際協(xié)調(diào)合同2篇
- 2025年度牛肝菌有機(jī)認(rèn)證與市場拓展合同
- 二零二五版昆明滇池度假區(qū)酒店管理合同3篇
- 二零二五年度農(nóng)業(yè)種植勞務(wù)作業(yè)承包合同范本3篇
- 2025年度塑料管材國際貿(mào)易爭端解決合同
- 2025年度私立學(xué)校校長任期教育科研成果轉(zhuǎn)化合同
- 二零二五年度企業(yè)員工期權(quán)激勵(lì)合同范本
- 廣東省佛山市2025屆高三高中教學(xué)質(zhì)量檢測 (一)化學(xué)試題(含答案)
- 人教版【初中數(shù)學(xué)】知識點(diǎn)總結(jié)-全面+九年級上冊數(shù)學(xué)全冊教案
- 四川省成都市青羊區(qū)成都市石室聯(lián)合中學(xué)2023-2024學(xué)年七上期末數(shù)學(xué)試題(解析版)
- 2024-2025學(xué)年人教版七年級英語上冊各單元重點(diǎn)句子
- 2025新人教版英語七年級下單詞表
- 公司結(jié)算資金管理制度
- 2024年小學(xué)語文教師基本功測試卷(有答案)
- 未成年入職免責(zé)協(xié)議書
- 項(xiàng)目可行性研究報(bào)告評估咨詢管理服務(wù)方案1
- 5歲幼兒數(shù)學(xué)練習(xí)題
- 2024年全國體育單招英語考卷和答案
評論
0/150
提交評論