《電子英漢詞典設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《電子英漢詞典設(shè)計(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、、課程設(shè)計的內(nèi)容
電子英漢詞典設(shè)計
一、問題描述:
英漢詞典作為一個常用的學習工具,是我們經(jīng)常要使用的。該系統(tǒng)能完成一個簡單的
電子英漢詞典的功能,如:單詞的查找、增詞、刪除、修改和維護等工作。
二、功能描述:
1、在計算機中建立有限規(guī)模的電子英漢詞典(文件) ,利用程序?qū)崿F(xiàn)電子英漢詞典的
查找、增詞、刪除、修改和維護工作。
2、 詞典的內(nèi)容為: 每行對應(yīng)一個詞條, 每個詞條由兩個字符串組成, 字符串用若干空
格符分開;前一個是單詞字符串(英文) ,后一個是釋義字符串(中文) ,使用分號作為多 個釋義的分隔符(無空格) 。
3、 對單詞和釋義字符串長度的限定分別為不少于 2
2、0 個與 40 個字符, 詞條數(shù)限定為不
多于 200 條。
4、 采用菜單工作方式。 在一個操作執(zhí)行之后, 程序詢問是否繼續(xù)執(zhí)行該操作。 如輸入
Y 或 y ,則重復(fù)同一操作,不退回到菜單;如輸入其它信息,則回到菜單等待另一次選擇。
僅當選擇退出操作時,程序應(yīng)詢問是否將修改后的詞典存盤,并根據(jù)用戶選擇存盤退出或
不存盤退出。
5、要求整個設(shè)計以人為本,用戶界面友好。
二、課程設(shè)計的要求與數(shù)據(jù)
1、進一步掌握和利用 C 語言進行程設(shè)計的能力;
2、進一步理解和運用結(jié)構(gòu)化程序設(shè)計的思想和方法;
3、初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;
4、學會調(diào)試一個較長程序的基本方法
3、;
5、學會利用流程圖或 N-S 圖表示算法;
6、掌握書寫程序設(shè)計開發(fā)文檔的能力。
三、課程設(shè)計應(yīng)完成的工作
1、編寫完成相應(yīng)題目的程序;
2、編寫課程設(shè)計報告 ,課程設(shè)計報告的內(nèi)容應(yīng)包括以下 6個部分:
1) 需求分析:包括設(shè)計題目、設(shè)計要求以及系統(tǒng)功能需求分析;
2) 總體設(shè)計:包括系統(tǒng)總體設(shè)計框架和系統(tǒng)功能模塊圖;
3) 詳細設(shè)計:包括主要功能模塊的算法設(shè)計思路以及對應(yīng)的工作流程圖;
4) 調(diào)試分析過程描述:包括測試數(shù)據(jù)、測試輸出結(jié)果,以及對程序調(diào)試過程中存
在問題的思考(列出主要問題的出錯現(xiàn)象、出錯原因、解決方法及效果等,適當
的包含結(jié)果截圖) ;
5)總結(jié):
4、課程設(shè)計完成了哪些功能,有沒有什么擴展功能?還有哪些地方需要改
進?課程設(shè)計過程中的學習體會與收獲、對本次課程設(shè)計的認識以及自己的建等 內(nèi)容;
6)附錄:主要源程序代碼,含必要的注釋。
3、答辯:在實驗室建立程序運行的環(huán)境,并在指導教師的監(jiān)督下,獨立解 決問題、運行程序和回答教師提出的問題
四、課程設(shè)計進程安排
在舁 廳P
設(shè)計各階段內(nèi)容
地點
起止日期
1
下達任務(wù)書,說明設(shè)計要求;收集資料
實驗3#517
6.18
2
總體力泵設(shè)計、詳細設(shè)計
實驗3#517
6.19
3
編寫程序,調(diào)試分析
實驗3#517
6.20
4
撰寫報告并上交,答辯
5、實驗3#517
6.21
五、應(yīng)收集的資料及主要參考文獻
[1]譚浩強.C程序設(shè)計(第三版)[M],北京:清華大學出版社, 2005.9
[2]譚浩強.C程序設(shè)計題解與上機指導(第三版)[M],北京:清華大學出版社,2005.7
[3]李春葆 曾平 劉斌。C+郵言程序設(shè)計題典第一版 北京 清華大學出 版社2003年4月
[5]劉振安劉燕君 C++程序設(shè)計課程設(shè)計第一版 機械工業(yè)出版社
2004年8月
發(fā)出任務(wù)書日期:2007年6月18日 指導教師簽名:
計劃完成日期: 2007年6月22日 基層教學單位責任人簽章:
主管院長簽章:
1設(shè)計目的與要求 1頁碼
2總體
6、設(shè)計 2頁碼
3詳細設(shè)計 2 —3頁碼
3.1 功能模塊設(shè)計 2-3頁碼
3.1.1 查詢單詞功能模塊 2 頁碼
頁碼
3.1.2 添加單詞功能模塊
3.1.3 刪除單詞功能模塊 3 頁碼
3.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計 3頁碼
4調(diào)試分析 4-5 頁碼
5總結(jié) 6頁碼
6附錄 6-10頁碼
6答辯記錄(正文處請留出適當空白) 11頁碼
7指導教師意見(正文處請留出十行空白) 11頁碼
1目的與要求
課程設(shè)計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實 際應(yīng)用問題進行有機結(jié)合,鍛煉學生分析、解決實際問題的能力,提高學生項目開
7、發(fā)及程 序調(diào)試能力。
課程設(shè)計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實 際應(yīng)用問題進行有機結(jié)合,鍛煉學生分析、解決實際問題的能力,提高學生項目開發(fā)及程 序調(diào)試能力。
(1)總體要求
①對系統(tǒng)進行功能模塊分析、控制模塊分析正確;
②系統(tǒng)設(shè)計要實用;
③編程簡練,可用,功能全面 ,具有較好的健壯性;
④說明書、流程圖要清楚。
(2) 課程設(shè)計報告要求
①需求和規(guī)格說明:問題描述:題目要解決的問題是什么 ?
②設(shè)計
十設(shè)計思路:主要算法思想。
十總體設(shè)計:程序設(shè)計組成框圖、 N-S流程圖。
十詳細設(shè)計:模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,
8、 函數(shù)調(diào)用關(guān)系描
述等) 。
③ 調(diào)試與測試 :調(diào)試過程中遇到的主要問題,是如何解決的;對設(shè)計和編碼的回顧討
論
和分析;改進設(shè)想;經(jīng)驗和體會等。
④附錄:源程序清單和結(jié)果。如果題目規(guī)定了測試數(shù)據(jù),則結(jié)果要包含這些測試數(shù)據(jù)
和
運行輸出, 當然還可以含其他測試數(shù)據(jù)和運行輸出; 清單中應(yīng)有足夠的注釋。
頁碼 1
2總體設(shè)計
(內(nèi)容可以適當調(diào)整,清晰的有條理的把你的設(shè)計思路表達出來)
3.1功能模塊設(shè)計
3.1.1查詢單詞功能模塊
9、
頁碼3
3.1.2添加單詞功能模塊
3.1.3刪除單詞功能模塊
3.2數(shù)據(jù)結(jié)構(gòu)設(shè)計
1 .建立單詞數(shù)據(jù)庫(包含英文單詞、中文意思解釋)
2 .用fopen函數(shù)訪問單詞數(shù)據(jù)庫文件。
3 .還用到標準的輸出輸入函數(shù),按需輸出輸入或刪除數(shù)據(jù)。
頁碼4
4調(diào)試分析
查詢單詞:
輸入:preciatian
屏幕顯示:
匚晨國:、叫I艮吉\.h。c就程設(shè)il
Please Input the uord you want:
ptec izt iLctn
Gqitv
10、do not; tind wlmt you. wcm t.
士網(wǎng)予于軻 矛*矛力矛耳下下 士什EN[J xm?Jtm* = q ar"什
1 EnglisJi to Ghlnese
>>>
< < 3 Del the existed woi*(l>>>>
< < 4 Clean the screen >>
< < 5 inodif yp the existed word〉〉》
P>*nii7e?t tIip sj/stf?n 》、》)
< <<< Q Exit tlw -y^te:n>y>>
MMMM
11、-HWieveirMWM-M M M M H X M* ** * H * M X M X * W * * **
Please choice forn 1 to 7:
輸出結(jié)果: sorry do not find what you want
添加單詞:
選才i 2功能
輸入你想添加的單詞:
Hello
輸入它的意思:
頁碼4
你好 屏幕顯示:
■- 息志vthe c 既租
< < 2 I nser the ^ordl yum want to add>>>>
《2 De 1 the existed uopdl》〉〉》
K<《>
12、>>
< < 5 medify Lfie eMlstecl wurd>>>
< C6 protect tJie systen >>
< < 7 Exit the systen>>>>
XJtMKH JtK JtJCHJC JKW JCM 序?-茨?-?6 X X M X K MM ■ J< * X K J<
Please cho ice f orim 1 to 7: 2
Inser the ney uoiM : bwiio
Miuinig the meaning]:
收好
Ladd word $ access ■
iMft x* jMftitiftjii***, mH FH
13、 U
輸出結(jié)果是: add word success
三:刪除單詞:
輸入你想要刪除的單詞: Hello
匚:E:"葉信有the g課程城
屏幕顯示:
XltXKKltMJIt\JHHB M:帳 KJf SMX 餐:M KM i(M MHMrK JtH
please cho ice Form 1 to 7"
-J
rploaLS@ xnsei*t 七ko vruiad. youi wam^
14、 English to Chinese>>
U
K< 2 I rser the word you uant to add>>>>
K< 3 De 1 the existed wopd>>>>
KC 4 Clean the sepeen >>
K< 5 modify the r工word〉〉〉
K^CC^fi jpvntftet tlw?笈ysrtfiiri 》》》,
K< 7 Exit tlw @j^stan>>>>
lease choLee furn 1 to 7;
輸出結(jié)果是:delete word success 頁碼5
5 總結(jié)
雖然這次的課程設(shè)計有些功能實現(xiàn)
15、的不是很好 ,總的來說這次課程設(shè)計效果還是可以
的,在短短的兩天時間內(nèi),我們看的書的數(shù)量是非常多的,很多沒見過的函數(shù)都學了,但是
自學確實是很難,很多函數(shù)雖然用的語法沒錯,但是不能應(yīng)用自如,為自己所用。這只能說
明自己還需加把努力,希望在以后的學習中得到大的進步。通過課程設(shè)計使握 進一步掌握
和利用 C 語言進行程設(shè)計的能力;進一步理解和運用結(jié)構(gòu)化程序設(shè)計的思想和
方法; 初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法; 學會調(diào)試一個較長程序的基
本方法; 而且通過這次課程設(shè)計讓我學會了認真的精神態(tài)度是多么的重要,認真思考對學
習的重要性。 這個程序完全是個人所做,望老師給以批評和建議!
16、
7. 附錄
#include
#include
#include
#include
#include
void Search() /* 查找單詞 */
{ FILE *fp;
char insert[20];
char word[40];
printf("Please input the word you want:\n");
ges(insert);
fp=fopen("wordcage","r");
if(fp==NULL);/* 沒有找到文件 *
17、/
{ printf("\n\nSorry do not find what you want.\n\n");
fclose(fp);
return ;
}while (!feof(fp))/* 查詢單詞詞庫 */
{ fread(&wordcage,sizeof( wordcage),1,fp);
fclose(fp);
}
void addword()/* 添加單詞 */
{
FILE *fp;
fp=fopen("wordcage","r");/* 以讀方式打開文件 */
if(fp==NULL)
fp=fopen("wordcage","w");/* 以寫方式
18、打開文件 */
else /*如果有單詞添加 */
{ fclose(fp);
fp=fopen("wordcage","a");/* 以追加方式打開文件 */
}
char insert[20];
printf("Inser the new word:\n");
gets(insert);
printf("Givinig the meaning:\n");
scanf("%s",word);
fclose(fp);
printf("\n\nadd word success.\n\n");
}
void worddel();
{
FILE *fp;
Word *
19、head,*p,*q;
char word[20];
fp=fopen("Wordcage","rb");/* 讀方式打開文件 */
if(fp==NULL)
printf("Error!"); 頁碼 7
fclose(fp);
return;
}
head=p=q=(Word*)malloc(sizeof(Word));/* 將文件內(nèi)容放入鏈表 */
while(!feof(fp))
{
q=p;
p=(Word*)malloc(sizeof(Word));
fread(p,sizeof(Word),1,fp); /* 讀記錄 */
q->next=p;/
20、* 新記錄插入到鏈表的尾 */
}
p->next=NULL;/* 最后一個結(jié)點的后繼為空 */
fclose(fp);
clrscr();
printf("Input the word: ");/* 輸入要刪除的單詞 */
gets(word); /* 輸入單詞 */
p=head;
while(p!=NULL)/* 按名字查找要刪除的圖書 */
{
if(strcmp(p->name,word)==0)/* 找到要刪除的單詞 */
{
if(p==head) /* 如果是第一個結(jié)點 */
head=head->next;
else
q->next=p->nex
21、t;/* 不是第一個結(jié)點 */
break;
}
q=p; /* 指針后移 */ p=p->next;
fp=fopen("Word.txt","wb");/* 刪除后從鏈表的頭開始重新保存 */
while(head!=NULL)
{
fwrite(head,sizeof(Word),1,fp);/* 塊寫 */
head=head->next;
}
fclose(fp);
clrscr();
}
void cleanscrean()
{
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
22、}
int main() {
int numble;
MENU:
顯示主菜單 */
printf("**************MENU***************\n\n"); /* printf("<<<< 1 English to Chinese>>>>\n\n");
printf("<<<< 2 Inser the word you want to add>>>>\n\n");
printf("<<<< 3 Del the existed word>>>> \n\n");
printf("<<<< 4 Clean the screen >>>>\n\n");
pri
23、ntf("<<<< 5 modify the existed word>>>\n\n");
printf("<<<<6 protect the system >>>>\n\n");
printf("<<<< 7 Exit the system>>>>\n\n");
printf(
”********************************
**\n");
do{
printf("Please choice form 1 to 7:\n"); /* 選擇你所要的功能 */
scanf("%d",&numble);
} 頁碼 9
while(numble
24、<0||numble>8);
switch(numble) {
case 1:
Search();
goto MENU;
case 2: addword(); goto MENU;
case 3: worddel();
goto MENU;
case 4: cleanscrean();
return 0;
case 5:
break;
case 6:
goto MENU;
break;
case 7: break;
}
return 0;
頁碼 10
7答辯記錄
在舁 廳P
問題
回 答
1
2
3
4
5
8指導教師意見
指導教師簽名:
頁碼 11