版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、綜合性程序設(shè)計報告設(shè)計題目: 背單詞系統(tǒng)指導(dǎo)教師: XXX班 級: 學(xué) 號: 設(shè) 計 者: XXX成 績: _設(shè)計時間: 年 月 日一、 題目描述使用C語言設(shè)計一個背單詞系統(tǒng),該系統(tǒng)是幫助學(xué)生背誦單詞的軟件,要求用戶可以選擇背誦的詞庫,并可以編輯自己的詞庫。系統(tǒng)可以給出中文,讓學(xué)生輸入其英文意思,也可輸出英文讓學(xué)生輸入中文意思。并判定詞義是否正確。如不正確給出提示并要求用戶重新輸入。如正確給以鼓勵。還應(yīng)有詞語預(yù)覽功能?;竟δ埽?詞庫的維護(單詞的添加、修改、刪除) 課程預(yù)覽(單詞的展示) 顯示中文用戶輸入英文的背誦方法 顯示英文用戶輸入中文的背誦方法 背誦成績的記錄(本程序設(shè)計運行一次程序所
2、背誦的所有單詞,答對一個得10分,打錯一個扣5分)二、 功能模塊分解及說明1、 樹形結(jié)構(gòu)模塊圖2、 模塊功能概述程序概述:設(shè)計錄入詞庫的結(jié)構(gòu)體,結(jié)構(gòu)體中分別存放英文和中文,整個程序基本上就是關(guān)于結(jié)構(gòu)體的操作,其中包括了順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)。單詞添加:用戶自己輸入單詞以及翻譯,存入結(jié)構(gòu)體中。單詞修改:首先在詞庫中找到這個單詞(如果沒有則提示用戶沒有該單詞),然后用戶輸入修改后的單詞及翻譯。單詞刪除:先在詞庫中找到單詞,然后將這個單詞之后的所有單詞順次前移,實現(xiàn)刪除功能。輸出詞庫:輸出結(jié)構(gòu)體存放的單詞。單詞測試:用戶首先選擇測試模式,然后詞庫中輸出現(xiàn)有單詞,用戶希望結(jié)束時輸出“jieshu
3、”,并且在這兩個函數(shù)中計分。顯示成績:輸出測試的成績。三、 設(shè)計測試說明1、 有關(guān)頭文件、變量、結(jié)構(gòu)體的說明1、頭文件#include<stdio.h>#include<stdlib.h>#include<string.h>2、宏定義#define N 100#define S 203、全局結(jié)構(gòu)體struct words/定義一個words結(jié)構(gòu)體char eS;/存放英語單詞char cS;/相應(yīng)的漢語翻譯strN;/定義結(jié)構(gòu)體變量4、全局變量int fenshu=0; /全局變量,用于統(tǒng)計分?jǐn)?shù) int count1=0;/全局變量,用于統(tǒng)計測試單詞個數(shù)in
4、t p=0;/全局變量,用于統(tǒng)計單詞個數(shù) 二、程序源代碼(函數(shù)部分以及系統(tǒng)使用截圖) 1、主函數(shù) int main() int n; char ch,chioch; printf("n"); printf("t*n"); printf("t* 歡迎使用背單詞系統(tǒng)! *n"); printf("t* 設(shè)計者:郭鑫鋼 *n"); printf("t* 班級:31342 學(xué)號:3134205 *n"); printf("t*n"); printf("t* 1、單詞添加 2
5、、單詞刪除 *n"); printf("t* 3、單詞修改 4、單詞展示 *n"); printf("t* 5、英譯漢 6、漢譯英 *n"); printf("t* 7、成績查詢 8、退出系統(tǒng) *n");printf("t*n"); printf(" 請選擇您需要的操作序號<1-6>,按回車結(jié)束:"); while(1) scanf("%d",&n); switch(n) /執(zhí)行相應(yīng)的函數(shù),實現(xiàn)相應(yīng)的功能 case 1:tianjia();bre
6、ak; case 2:shanchu();break; case 5:fanyi1();break; case 3:xiugai();break; case 4:shuchu();break; case 6:fanyi2();break; case 7:chengji();break; case 8: printf("你確認(rèn)要退出嗎?y/n!n"); scanf("%c%c",&ch,&chioch); if(ch='y'|ch='Y') exit(0); /退出系統(tǒng)的操作 default :printf(
7、"你輸入了錯誤的操作,無法執(zhí)行!"); exit(0); return 0;2、往詞庫中添加詞匯void tianjia() char ch;do printf("錄入詞庫!n"); printf("請輸入英語單詞:n"); scanf("%s",strp.e); printf("n請輸入相應(yīng)的中文翻譯:n"); scanf("%s",strp.c); p+; printf("%s已保存,是否繼續(xù)錄入?y/n!n",strp.e); scanf("
8、;%s",&ch);while(ch='y'); printf("您一共錄入%d個單詞n",p);3、刪除詞庫中的單詞void shanchu() int i=0,j;char s20;printf("輸入您想刪除的單詞:");scanf("%s",s);if(p<=0) printf("沒有任何單詞,無法刪除!n");return;else for(i=0;i<p;i+)if(strcmp(s,stri.e)=0) printf("已經(jīng)成功刪除!n"
9、;);for(j=i;j<p;j+)strj=strj+1;p-;/循環(huán)實現(xiàn)單詞的覆蓋else if(i=p)printf("沒有找到您要刪除的單詞!n");4、修改詞庫中的單詞void xiugai()int i=0;char sS,yS,zS;printf("輸入您想修改的單詞:");scanf("%s",s);if(p<=0) printf("沒有任何單詞,無法刪除!n");return;else for(i=0;i<p;i+)if(strcmp(s,stri.e)=0)printf(&qu
10、ot;請輸入您修改后的英文單詞:");scanf("%s",y);strcpy(stri.e,y);printf("請輸入您修改后的中文翻譯:");scanf("%s",z);strcpy(stri.c,z); printf("已經(jīng)成功修改!n");elseprintf("沒有找到您要修改的單詞!n");5、輸出詞庫中所有的單詞void shuchu() int i=0;printf("輸出詞庫中所有的單詞!n");if(p<=0) printf("
11、沒有任何單詞,無法輸出!n");return;else for(i=0;i<p;i+)printf("英文單詞是: %s",stri.e);printf("n相應(yīng)的中文意思是: %s n",stri.c);printf("詞庫所有單詞輸出完畢!n");6、顯示英文用戶輸入中文的背誦方法void fanyi1() int i=0;char fS;char overN="jieshu" printf("請輸入下面英文單詞的翻譯,希望結(jié)束輸入時請輸入 jieshu n"); /順序輸出
12、單詞,并且可以隨時結(jié)束 while(i<p&&strcmp(f,over)!=0)/用戶不輸入jieshu并且詞庫中單詞沒有全部輸出時執(zhí)行循環(huán) printf("%s ",stri.e); scanf("%s",&f); if(strcmp(stri.c,f)=0) printf("正確!n");fenshu+=10; /用于計算分?jǐn)?shù) else printf("很遺憾,正確的翻譯為:"); printf("%sn",stri.c); fenshu-=5;/用于計算分?jǐn)?shù)
13、 count1+; i+; 7、顯示中文用戶輸入英文的背誦方法void fanyi2() int i=0;char fS;char overN="jieshu" printf("請輸入下面英文單詞的翻譯,希望結(jié)束輸入時請輸入 jieshu n"); while(i<p&&strcmp(f,over)!=0) printf("%s",stri.c); scanf("%s",&f); if(strcmp(stri.e,f)=0) printf("正確!n");fensh
14、u+=10; else printf("很遺憾,正確的翻譯為:"); printf("%sn",stri.e); fenshu-=5; count1+; i+; 8、顯示測試結(jié)果和成績void chengji()printf("本次測試的成績是:n");printf("總共:%d個n",count1);printf("正確:%d個n",fenshu);printf("最后得分為(答對一個得10分,答錯一個扣5分):%d n",fenshu);四、 設(shè)計體會在看到我的選題后,剛
15、開始有點蒙。然后看到要求說必須用到文件,可是文件還沒有學(xué),所以我決定先看看文件那部分的內(nèi)容。大概煩了一遍書以后,我去圖書館找了基本C語言項目實例的書籍,里面好多的實例都給了我很大的啟發(fā)。之后我就開始著手寫我的程序。剛開始我仿照一本書里有的關(guān)于商品信息的管理的程序來寫。里面涉及的大量的文件操作,使得我有時候看不懂甚至摸不著頭腦。迫于時間上的要求,我不得不放棄已經(jīng)寫了200多行的程序,開始換個思路來考慮程序??紤]到我自己對結(jié)構(gòu)體還是比較熟悉的,所以我想到不使用文件而是直接將單詞存放進結(jié)構(gòu)體中。然后整個程序就是對結(jié)構(gòu)體的一系列操作。在寫刪除單詞這個函數(shù)中,我遇到了困難,剛開始沒有想到數(shù)據(jù)覆蓋這么一個
16、辦法,用了好多很笨的方法但是還沒有出效果。最后偶然間在網(wǎng)上看到了關(guān)于一片指針覆蓋的博客,然后我就想到了這種解決辦法,果然奏效了!通過這次C語言的課程設(shè)計,我深深體會到了一門語言的深奧,是值得我去好好學(xué)習(xí)和深入研究的。就拿這個程序中幾個小小細節(jié),比如:while(i<p&&strcmp(f,over)!=0)。這個是我在寫測試兩個函數(shù)的時候遇到的一個小問題。我不知道應(yīng)該怎么去寫這個循環(huán)的條件,最后我讓一位同學(xué)看過我的程序后,幫我解決了這個問題。雖然只是幾個簡單語句的結(jié)合,但是真的是非常的巧妙。所以,通過這次的課程設(shè)計讓我發(fā)現(xiàn)了許多不足,包括對循環(huán)、結(jié)構(gòu)體的應(yīng)用以及字符串處理函數(shù)等的認(rèn)識都存在一定的盲區(qū)。課程
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年化工設(shè)備專業(yè)維保與安全協(xié)議3篇
- 《多種所有制經(jīng)濟》課件
- 2024年工廠食堂管理與承包新條款3篇
- 2024年太陽能路燈照明工程設(shè)計與施工合同6篇
- 2024年企業(yè)貸款擔(dān)保責(zé)任協(xié)議范本2篇
- 第02課 說和做-記聞一多先生言行片段(學(xué)生版)
- 大瀑布的葬禮課件
- 2024企業(yè)招聘正式員工協(xié)議樣本版B版
- 2025標(biāo)準(zhǔn)的肉類供貨合同范本
- 2024年度文化活動攝影攝像執(zhí)行合同3篇
- 環(huán)境工程的課程設(shè)計---填料吸收塔
- 道路運輸達標(biāo)車輛客車貨車核查記錄表
- 兒童詩兒童詩的欣賞和創(chuàng)作(課件)
- 人力資源管理工作思路(共3頁)
- 五筆常用字根表3746
- 新生兒肺氣漏
- 氣管切開(一次性氣切導(dǎo)管)護理評分標(biāo)準(zhǔn)
- 保安工作日志表
- 姜太公釣魚的歷史故事
- 數(shù)控車床實訓(xùn)圖紙國際象棋圖紙全套
- 電子政務(wù)概論教案
評論
0/150
提交評論