版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課 程 設 計 報 告</p><p> C語言關鍵字中英翻譯機</p><p><b> 一、設計任務與目標</b></p><p> (1)輸入中文關鍵字可以翻譯成英語,如輸入“整型”則輸出關鍵字“int”;</p><p> ?。?)輸入英文關鍵字可以翻譯成中文,如輸入“int”則輸出關
2、鍵字“整型”;</p><p><b> ?。?)可多次查詢;</b></p><p> ?。?)輸入bye時退出。</p><p><b> 二、方案設計與論證</b></p><p> ?。?)定義兩個字符型數(shù)組分別存放中文關鍵字和英文關鍵字,中文和英文的順序要一一對應,即數(shù)組的下標值要相同;
3、</p><p> ?。?)定義一個字符型數(shù)組用來存放輸入的字符串;</p><p> ?。?)利用strcmp()函數(shù)和循環(huán)結構實現(xiàn)輸入的英文或中文關鍵字和已定義的字符型數(shù)組中的英文或中文關鍵字逐一比較;</p><p> (4)輸入的關鍵字和已有的關鍵字比較相同則利用中英相對應的下標值相同輸出對應的英文或中文;</p><p> ?。?
4、)利用循環(huán)結構實現(xiàn)多次查詢的功能;</p><p> ?。?)利用exit()函數(shù)實現(xiàn)輸入“bye”時退出程序;</p><p> 三、程序框圖或流程圖,程序清單與調用關系</p><p><b> 四、全部源程序清單</b></p><p> #include<iostream.h></p>
5、;<p> #include<string.h></p><p> #include<stdlib.h></p><p> void main()</p><p><b> {</b></p><p> int i,x,k,time;</p><p>
6、; char a[15];</p><p> char *En[]={"int","float","double","for","return","auto","if","while","continue","break&
7、quot;};</p><p> char *Ch[]={"整型","單精度","雙精度","循環(huán)","返回","自動","如果","當","繼續(xù)","退出"};</p><p> cou
8、t<<"中文翻譯成英文輸入1,英文翻譯成中文輸入0(要退出程序請在輸入1、0后輸入bye):"<<endl;</p><p> for(time=0;time<100;time++)</p><p><b> {</b></p><p><b> cin>>x;<
9、;/b></p><p><b> if (x==1)</b></p><p><b> {</b></p><p> cout<<"請輸入中文:";</p><p><b> cin>>a;</b></p>
10、<p> if (strcmp(a,"bye")==0)</p><p><b> exit(0);</b></p><p> cout<<"翻譯后的英文:";</p><p> for (i=0;i<10;i++)</p><p><
11、b> {</b></p><p> if (strcmp(a,Ch[i])==0)</p><p><b> {</b></p><p> cout<<En[i];</p><p><b> }</b></p><p><b>
12、; }</b></p><p> cout<<endl<<endl;</p><p><b> }</b></p><p><b> if (x==0)</b></p><p><b> {</b></p><p
13、> cout<<"請輸入英文:";</p><p><b> cin>>a;</b></p><p> if (strcmp(a,"exit")==0)</p><p><b> exit(0);</b></p><p>
14、 cout<<"翻譯后的中文:";</p><p> for (i=0;i<10;i++)</p><p><b> {</b></p><p> if (strcmp(a,En[i])==0)</p><p><b> {</b></p>
15、<p> cout<<Ch[i];</p><p><b> }</b></p><p><b> }</b></p><p> cout<<endl<<endl;</p><p><b> }</b></p&g
16、t;<p><b> }</b></p><p><b> }</b></p><p> 五、程序運行結果測試與分析</p><p> (1)輸入“1+回車”為中文翻譯成英文,輸入“0+回車”為英文翻譯成中文;</p><p> ?。?)輸入中文關鍵字翻譯成英文關鍵字;<
17、/p><p> ?。?)輸入英文關鍵字翻譯成中文關鍵字;</p><p> ?。?)輸入“1或0+回車”后輸入“bye”則退出程序。</p><p><b> 六、結論與心得</b></p><p> 在做這個程序的時候首先遇到的問題就是如何實現(xiàn)中英互譯,一開始感覺很難。后來通過仔細的思考和研究,就想到通過兩個一維數(shù)組分
18、別來保存中文和英文,并且通過使對應英文和中文數(shù)組下標保持一致,來實現(xiàn)通過輸入的英文或中文跟數(shù)組已有的來比較,比較相同,則通過下標值來查找對應的中文或英文,然后輸出即可。但是這個程序還是有不足的地方,因為保存的詞比較少,所以只是通過一位數(shù)組來保存,而且是沒有規(guī)律的,如果要像輸入法那樣保存大量的詞匯,這樣的方法使用起來很不方便。所以需要想一種更高效的方法來解決這個問題。比如通過二維數(shù)組來保存詞匯,詞匯按字母順序之類的方法來保存,這樣就能實現(xiàn)
19、更加高效的查詢。但是實現(xiàn)過程還需要一定的研究。所以目前所做的程序雖然達到要求,卻還是存在很大的不足。以后需要花多一點時間來考慮并完善該程序。</p><p> 通過這次課程設計使我懂得了理論與實際相結合的重要性,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。這畢竟是自己獨立做的,難免會遇到各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻
20、,掌握得不夠牢固。通過這次課程設計之后,一定要把以前所學過的知識重新溫習一下。</p><p><b> 七、參考資料</b></p><p> [1] 余江等編著,C語言程序設計,天津科學技術出版社,94-104頁</p><p><b> 八、致謝</b></p><p> 衷心感謝許杰
21、輝同學對我的幫助。</p><p><b> 年歷顯示</b></p><p><b> 設計任務與目標</b></p><p> ?。?)輸入一個年份,輸出是在屏幕上顯示該年的日歷;</p><p> (2)輸入年月,輸出該月的日歷;</p><p> ?。?)
22、輸入年月日,輸出距今天還有多少天,星期幾,是否是公歷節(jié)日;</p><p> ?。?)某人自1990年1月1日開始,"三天打魚兩天曬網",輸入一個1990年以后的日期,輸出他這一天是打魚還是曬網。</p><p><b> 二、方案設計與論證</b></p><p> (1)定義2個全局數(shù)組,一個數(shù)組用來保存閏年和平年
23、的天數(shù),另外的數(shù)組用來保存閏年和平年每月的天數(shù)。</p><p> ?。?)leapyear函數(shù)判斷是否是閏年。能被4整除不能被100整除的年份是閏年,能被100整除又能被400整除的年份也是閏年;</p><p> ?。?)alldays函數(shù)用來計算從公元1年1月1號開始計算到某年某月某日的總天數(shù);</p><p> ?。?)festival函數(shù)用來保存一年中公歷
24、的節(jié)日;</p><p> ?。?)outputtoscreen函數(shù)用來顯示輸出界面的格式;</p><p> (6)oneyear函數(shù)通過輸入年份,再調用alldays函數(shù)和outputtoscreen函數(shù)來顯示該年份的日歷;</p><p> (7)onemonth函數(shù)是通過輸入年月,通過調用alldays函數(shù)和outputtoscreen漢化來顯示查詢的某
25、年某月的日歷;</p><p> ?。?)howlong函數(shù)通過輸入現(xiàn)在的年月日和要查詢的年月日,通過相減得出相差多少天,再通過調用alldays函數(shù)計算要查詢的日期的總天數(shù)除以7取模來顯示查詢的日期是星期幾。由于會出現(xiàn)除以7整除的情況,所以要另外寫一個輸出語句使得整除的時候輸出為“星期日”。然后再調用festival函數(shù)得出是否是公歷節(jié)日。</p><p> ?。?)fishornet函
26、數(shù)是通過輸入某年某月某日,再調用alldays函數(shù)來實現(xiàn)某年某月某日的總天數(shù)減去1990年1月1日的總天數(shù),然后除以5取模來得出某年某月某日是在打魚還是在曬網;</p><p> ?。?0)list函數(shù)顯示出選項并輸入要使用的功能選項序列號;</p><p> ?。?1)choose函數(shù)通過調用list函數(shù)返回一個序列所代表的數(shù)值,再通過數(shù)值調用所需的功能函數(shù)。</p>&l
27、t;p> 三、程序框圖或流程圖,程序清單與調用關系</p><p> 調用alldays(int y,int m)函數(shù)</p><p><b> 四、全部源程序清單</b></p><p> #include<iostream.h></p><p> #include<string.h&
28、gt;</p><p> #include<stdlib.h></p><p> #include<stdio.h></p><p> int dayofyear[2]={365,366};</p><p> int dayofmonth[2][12]={{31,28,31,30,31,30,31,31,30,
29、31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};</p><p> int leapyear(int year) //判斷是否是閏年</p><p><b> {</b></p><p> if(year%4==0 && year%100!=0 || year%100=
30、=0 && year%400==0)</p><p> return 1; //閏年</p><p><b> else</b></p><p> return 0; //平年</p><p><b> }</b></p><p> int al
31、ldays(int y,int m) //公元1月1號到某年某月的總天數(shù)</p><p><b> {</b></p><p> int a,b,days=1; //因為日歷是日一二三四五六的順序排的,所以要加1避免第一天排在日的位置</p><p> for(a=m;a>1;a--)</p><p&g
32、t; days=days+dayofmonth[leapyear(y)][a-2]; //根據(jù)上個月的剩余天數(shù)來確定下個月的起始位置,所以要減2</p><p> for(b=1;b<y;b++)</p><p> days=days+dayofyear[leapyear(b)];</p><p> return days;</p>&
33、lt;p><b> }</b></p><p> int festival(int month,int day)</p><p><b> {</b></p><p> int fes[12][31];</p><p> fes[0][0]=fes[1][13]=fes[2][7]=
34、fes[3][0]=fes[4][0]=fes[5][0]=1;</p><p> fes[6][0]=fes[7][0]=fes[8][9]=fes[9][0]=fes[11][24]=1;</p><p> if(fes[month-1][day-1]==1)</p><p><b> return 1;</b></p>
35、<p><b> else</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> void outputtoscreen(int year,int month,int l) //輸出屏幕的日期</p>
36、<p><b> {</b></p><p><b> int j,k;</b></p><p> cout<<"\t"<<"\t"<<"\t"<<"****"<<year<<&
37、quot;年***"<<month<<"月****"<<endl;</p><p> cout<<"\t"<<"日"<<"\t"<<"一"<<"\t"<<"二&quo
38、t;<<"\t"<<"三"<<"\t"<<"四"<<"\t"<<"五"<<"\t"<<"六"<<endl;</p><p><b> i
39、f(l==0)</b></p><p><b> {</b></p><p> for(k=1;k<=dayofmonth[leapyear(year)][month-1];k++)</p><p><b> {</b></p><p> cout<<"
40、;\t"<<k;</p><p> if((l+k)%7==0)</p><p> cout<<endl;</p><p><b> }</b></p><p><b> }</b></p><p><b> else&l
41、t;/b></p><p><b> {</b></p><p> for(j=0;j<l;j++)</p><p> cout<<"\t";</p><p> for(k=1;k<=dayofmonth[leapyear(year)][month-1];k++)
42、</p><p><b> {</b></p><p> cout<<"\t"<<k;</p><p> if((l+k)%7==0)</p><p> cout<<endl;</p><p><b> }</b&g
43、t;</p><p><b> }</b></p><p> cout<<endl<<endl;</p><p><b> }</b></p><p> void oneyear() //查詢一年的日期</p><p><b>
44、 {</b></p><p> int i,l,year,month;</p><p> system("cls");</p><p> cout<<"請輸入要查詢的年份:";</p><p> cin>>year;</p><p>
45、 for(month=1;month<13;month++)</p><p><b> {</b></p><p> i=alldays(year,month);</p><p><b> l=i%7;</b></p><p> outputtoscreen(year,month,l)
46、;</p><p><b> }</b></p><p> getchar();</p><p><b> }</b></p><p> void onemonth() //查詢一個月的日期</p><p><b> {</b></p&
47、gt;<p> int i,l,year,month;</p><p> system("cls");</p><p> cout<<"請輸入要查詢的年月份:";</p><p> cin>>year>>month;</p><p> i=al
48、ldays(year,month);</p><p><b> l=i%7;</b></p><p> outputtoscreen(year,month,l);</p><p> getchar();</p><p><b> }</b></p><p> voi
49、d howlong()</p><p><b> {</b></p><p> int year1,year2,month1,month2,day1,day2,one,two,result,date;</p><p> system("cls");</p><p> cout<<&
50、quot;請輸入要查詢的年月日: ";</p><p> cin>>year1>>month1>>day1;</p><p> cout<<endl<<endl<<"請輸入現(xiàn)在的時間年月日: ";</p><p> cin>>year2>
51、>month2>>day2;</p><p> one=alldays(year1,month1)+day1;</p><p> two=alldays(year2,month2)+day2;</p><p> if(one>two)</p><p> result=one-two-1;</p>
52、<p><b> else</b></p><p> result=two-one-1;</p><p> date=(alldays(year1,month1)+day1-1)%7; //函數(shù)alldays中day=1,所以要在這里減1</p><p> if(result==-1)</p><p&g
53、t; cout<<endl<<endl<<"查詢的時間和今天是同一天"<<endl<<endl<<endl;</p><p><b> else</b></p><p> cout<<endl<<endl<<"所查詢的日期距離
54、今天的天數(shù): "<<result<<"天"<<endl<<endl<<endl;</p><p> if(date==0)</p><p> cout<<"查詢的日期具體是星期幾: 星期日"<<endl<<endl<<endl
55、;</p><p><b> else</b></p><p> cout<<"查詢的日期具體是星期幾: 星期"<<date<<endl<<endl<<endl;</p><p> cout<<"查詢的日期是否是公歷節(jié)日: &quo
56、t;;</p><p> if(festival(month1,day1)==1)</p><p> cout<<"是"<<endl<<endl<<endl;</p><p><b> else</b></p><p> cout<<
57、"不是"<<endl<<endl<<endl;</p><p> getchar();</p><p><b> }</b></p><p> void fishornet()</p><p><b> {</b></p>
58、<p> int year,month,day,time,i;</p><p> system("cls");</p><p> cout<<"某人自1990年1月1日開始,三天打魚兩天曬網,"<<endl;</p><p> cout<<"如果你想知道某年某月
59、某日是在打魚還是曬網。"<<endl<<endl<<endl;</p><p> cout<<"請輸入要查詢的具體年月日: ";</p><p> cin>>year>>month>>day;</p><p> time=(alldays(yea
60、r,month)+day)-((alldays(1990,1)+1));</p><p><b> i=time%5;</b></p><p> if(i>=0 && i<=2)</p><p> cout<<endl<<endl<<"查詢結果:"<
61、<year<<"年"<<month<<"月"<<day<<"日正在打魚"<<endl<<endl<<endl;</p><p><b> else</b></p><p> cout<<end
62、l<<endl<<"查詢結果:"<<year<<"年"<<month<<"月"<<day<<"日正在曬網"<<endl<<endl<<endl;</p><p> getchar();</p>
63、;<p><b> }</b></p><p> int list()</p><p><b> {</b></p><p> int choice;</p><p> system("cls");</p><p> cout&l
64、t;<"應用功能:"<<endl;</p><p> cout<<"1: 輸入一個年份,輸出是在屏幕上顯示該年的日歷。"<<endl<<endl;</p><p> cout<<"2: 輸入年月,輸出該月的日歷。"<<endl<<en
65、dl;</p><p> cout<<"3: 輸入年月日,輸出距今天還有多少天,星期幾,是否是公歷節(jié)日。"<<endl<<endl;</p><p> cout<<"4: 某人自1990年1月1日開始,三天打魚兩天曬網,輸入一個1990年以后的日期,輸出他這一天是打魚還是曬網。"<<
66、endl<<endl;</p><p> cout<<"0: 退出";</p><p> cout<<endl<<endl<<endl<<endl<<endl<<"請選擇所需要功能所代表的選項: ";</p><p> c
67、in>>choice;</p><p> return choice;</p><p><b> }</b></p><p> void choose()</p><p><b> {</b></p><p> int sign=0;</p>
68、<p> system("cls");</p><p> switch(list())</p><p><b> {</b></p><p> case 1:oneyear();</p><p><b> break;</b></p><
69、;p> case 2:onemonth();</p><p><b> break;</b></p><p> case 3: howlong();</p><p><b> break;</b></p><p> case 4:fishornet();</p><
70、;p><b> break;</b></p><p> case 0:exit(0);</p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b&g
71、t; {</b></p><p><b> int i;</b></p><p> cout<<endl<<endl<<endl<<endl<<endl;</p><p> cout<<"\t"<<"\t&quo
72、t;<<"\t"<<"\t"<<"********************"<<endl<<endl<<endl;</p><p> cout<<"\t"<<"\t"<<"\t"<
73、<"\t"<<"歡迎使用萬年歷查詢器"<<endl<<endl<<endl;</p><p> cout<<"\t"<<"\t"<<"\t"<<"\t"<<"******
74、**************"<<endl<<endl<<endl;</p><p> cout<<"\t"<<"\t"<<"\t"<<"\t"<<" "<<"請按回車鍵繼續(xù)&quo
75、t;<<endl;</p><p> getchar();</p><p> for(i=0;i<100;i++)</p><p><b> {</b></p><p><b> choose();</b></p><p><b> }&
76、lt;/b></p><p><b> }</b></p><p> 五、程序運行結果測試與分析</p><p> ?。?)程序歡迎界面:能輸出理想結果</p><p> ?。?)功能選項界面:能輸出理想結果</p><p> (3)功能1:查詢某年</p><
77、;p> A.輸入界面:能輸出理想結果</p><p> B.輸出界面:能輸出理想結果</p><p> (4)功能2:查詢某年某月</p><p> A.輸入界面:能輸出理想結果</p><p> B.輸出界面:能輸出理想結果</p><p> ?。?)功能3:輸入年月日,輸出距今天還有多少天
78、,星期幾,是否是公歷節(jié)日。</p><p> A.輸入界面:能輸出理想結果</p><p> B.輸出界面:能輸出理想結果</p><p> (6)功能4:某年某月某日是在打魚還是在曬網</p><p> A.輸入界面:能輸出理想結果</p><p> B.輸出界面:能輸出理想結果</p>
79、<p> (7)功能5:輸入0退出程序,能夠成功運行。</p><p><b> 六、結論與心得</b></p><p> 本次課程設計是我通過自己的實踐對書本上的知識進行了與生活相關的運用。在這個程序中,主要應用了所學過的循環(huán),條件語句,數(shù)組以及調用函數(shù)。這些知識的應用使我對課本所學過的內容的認識得到了更深刻的理解。</p><
80、;p> 在編寫程序的過程中,也出現(xiàn)了很多錯誤。比如函數(shù)語句的編寫錯誤導致輸出結果并沒有出現(xiàn)符合實際的結果。出現(xiàn)這些情況后,通過研究分析,才慢慢找到錯誤,想出解決錯誤的辦法。最后才得到了正確的結果。</p><p><b> 七、參考資料</b></p><p> [1] 余江等編著,C語言程序設計,天津科學技術出版社,132-149頁</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論