版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計(jì) 報(bào) 告</p><p> C語言關(guān)鍵字中英翻譯機(jī)</p><p><b> 一、設(shè)計(jì)任務(wù)與目標(biāo)</b></p><p> ?。?)輸入中文關(guān)鍵字可以翻譯成英語,如輸入“整型”則輸出關(guān)鍵字“int”;</p><p> ?。?)輸入英文關(guān)鍵字可以翻譯成中文,如輸入“int”則輸出關(guān)
2、鍵字“整型”;</p><p><b> ?。?)可多次查詢;</b></p><p> ?。?)輸入bye時(shí)退出。</p><p><b> 二、方案設(shè)計(jì)與論證</b></p><p> ?。?)定義兩個(gè)字符型數(shù)組分別存放中文關(guān)鍵字和英文關(guān)鍵字,中文和英文的順序要一一對應(yīng),即數(shù)組的下標(biāo)值要相同;
3、</p><p> (2)定義一個(gè)字符型數(shù)組用來存放輸入的字符串;</p><p> ?。?)利用strcmp()函數(shù)和循環(huán)結(jié)構(gòu)實(shí)現(xiàn)輸入的英文或中文關(guān)鍵字和已定義的字符型數(shù)組中的英文或中文關(guān)鍵字逐一比較;</p><p> ?。?)輸入的關(guān)鍵字和已有的關(guān)鍵字比較相同則利用中英相對應(yīng)的下標(biāo)值相同輸出對應(yīng)的英文或中文;</p><p> ?。?
4、)利用循環(huán)結(jié)構(gòu)實(shí)現(xiàn)多次查詢的功能;</p><p> ?。?)利用exit()函數(shù)實(shí)現(xiàn)輸入“bye”時(shí)退出程序;</p><p> 三、程序框圖或流程圖,程序清單與調(diào)用關(guān)系</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)","返回","自動(dòng)","如果","當(dāng)","繼續(xù)","退出"};</p><p> cou
8、t<<"中文翻譯成英文輸入1,英文翻譯成中文輸入0(要退出程序請?jiān)谳斎?、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> 五、程序運(yùn)行結(jié)果測試與分析</p><p> ?。?)輸入“1+回車”為中文翻譯成英文,輸入“0+回車”為英文翻譯成中文;</p><p> ?。?)輸入中文關(guān)鍵字翻譯成英文關(guān)鍵字;<
17、/p><p> ?。?)輸入英文關(guān)鍵字翻譯成中文關(guān)鍵字;</p><p> ?。?)輸入“1或0+回車”后輸入“bye”則退出程序。</p><p><b> 六、結(jié)論與心得</b></p><p> 在做這個(gè)程序的時(shí)候首先遇到的問題就是如何實(shí)現(xiàn)中英互譯,一開始感覺很難。后來通過仔細(xì)的思考和研究,就想到通過兩個(gè)一維數(shù)組分
18、別來保存中文和英文,并且通過使對應(yīng)英文和中文數(shù)組下標(biāo)保持一致,來實(shí)現(xiàn)通過輸入的英文或中文跟數(shù)組已有的來比較,比較相同,則通過下標(biāo)值來查找對應(yīng)的中文或英文,然后輸出即可。但是這個(gè)程序還是有不足的地方,因?yàn)楸4娴脑~比較少,所以只是通過一位數(shù)組來保存,而且是沒有規(guī)律的,如果要像輸入法那樣保存大量的詞匯,這樣的方法使用起來很不方便。所以需要想一種更高效的方法來解決這個(gè)問題。比如通過二維數(shù)組來保存詞匯,詞匯按字母順序之類的方法來保存,這樣就能實(shí)現(xiàn)
19、更加高效的查詢。但是實(shí)現(xiàn)過程還需要一定的研究。所以目前所做的程序雖然達(dá)到要求,卻還是存在很大的不足。以后需要花多一點(diǎn)時(shí)間來考慮并完善該程序。</p><p> 通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合的重要性,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。這畢竟是自己獨(dú)立做的,難免會遇到各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻
20、,掌握得不夠牢固。通過這次課程設(shè)計(jì)之后,一定要把以前所學(xué)過的知識重新溫習(xí)一下。</p><p><b> 七、參考資料</b></p><p> [1] 余江等編著,C語言程序設(shè)計(jì),天津科學(xué)技術(shù)出版社,94-104頁</p><p><b> 八、致謝</b></p><p> 衷心感謝許杰
21、輝同學(xué)對我的幫助。</p><p><b> 年歷顯示</b></p><p><b> 設(shè)計(jì)任務(wù)與目標(biāo)</b></p><p> ?。?)輸入一個(gè)年份,輸出是在屏幕上顯示該年的日歷;</p><p> (2)輸入年月,輸出該月的日歷;</p><p> ?。?)
22、輸入年月日,輸出距今天還有多少天,星期幾,是否是公歷節(jié)日;</p><p> ?。?)某人自1990年1月1日開始,"三天打魚兩天曬網(wǎng)",輸入一個(gè)1990年以后的日期,輸出他這一天是打魚還是曬網(wǎng)。</p><p><b> 二、方案設(shè)計(jì)與論證</b></p><p> ?。?)定義2個(gè)全局?jǐn)?shù)組,一個(gè)數(shù)組用來保存閏年和平年
23、的天數(shù),另外的數(shù)組用來保存閏年和平年每月的天數(shù)。</p><p> (2)leapyear函數(shù)判斷是否是閏年。能被4整除不能被100整除的年份是閏年,能被100整除又能被400整除的年份也是閏年;</p><p> ?。?)alldays函數(shù)用來計(jì)算從公元1年1月1號開始計(jì)算到某年某月某日的總天數(shù);</p><p> (4)festival函數(shù)用來保存一年中公歷
24、的節(jié)日;</p><p> ?。?)outputtoscreen函數(shù)用來顯示輸出界面的格式;</p><p> ?。?)oneyear函數(shù)通過輸入年份,再調(diào)用alldays函數(shù)和outputtoscreen函數(shù)來顯示該年份的日歷;</p><p> (7)onemonth函數(shù)是通過輸入年月,通過調(diào)用alldays函數(shù)和outputtoscreen漢化來顯示查詢的某
25、年某月的日歷;</p><p> ?。?)howlong函數(shù)通過輸入現(xiàn)在的年月日和要查詢的年月日,通過相減得出相差多少天,再通過調(diào)用alldays函數(shù)計(jì)算要查詢的日期的總天數(shù)除以7取模來顯示查詢的日期是星期幾。由于會出現(xiàn)除以7整除的情況,所以要另外寫一個(gè)輸出語句使得整除的時(shí)候輸出為“星期日”。然后再調(diào)用festival函數(shù)得出是否是公歷節(jié)日。</p><p> (9)fishornet函
26、數(shù)是通過輸入某年某月某日,再調(diào)用alldays函數(shù)來實(shí)現(xiàn)某年某月某日的總天數(shù)減去1990年1月1日的總天數(shù),然后除以5取模來得出某年某月某日是在打魚還是在曬網(wǎng);</p><p> ?。?0)list函數(shù)顯示出選項(xiàng)并輸入要使用的功能選項(xiàng)序列號;</p><p> (11)choose函數(shù)通過調(diào)用list函數(shù)返回一個(gè)序列所代表的數(shù)值,再通過數(shù)值調(diào)用所需的功能函數(shù)。</p>&l
27、t;p> 三、程序框圖或流程圖,程序清單與調(diào)用關(guān)系</p><p> 調(diào)用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; //因?yàn)槿諝v是日一二三四五六的順序排的,所以要加1避免第一天排在日的位置</p><p> for(a=m;a>1;a--)</p><p&g
32、t; days=days+dayofmonth[leapyear(y)][a-2]; //根據(jù)上個(gè)月的剩余天數(shù)來確定下個(gè)月的起始位置,所以要減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() //查詢一個(gè)月的日期</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)在的時(shí)間年月日: ";</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<<"查詢的時(shí)間和今天是同一天"<<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日開始,三天打魚兩天曬網(wǎng),"<<endl;</p><p> cout<<"如果你想知道某年某月
59、某日是在打魚還是曬網(wǎng)。"<<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<<"查詢結(jié)果:"<
61、<year<<"年"<<month<<"月"<<day<<"日正在打魚"<<endl<<endl<<endl;</p><p><b> else</b></p><p> cout<<end
62、l<<endl<<"查詢結(jié)果:"<<year<<"年"<<month<<"月"<<day<<"日正在曬網(wǎng)"<<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;<"應(yīng)用功能:"<<endl;</p><p> cout<<"1: 輸入一個(gè)年份,輸出是在屏幕上顯示該年的日歷。"<<endl<<endl;</p><p> cout<<"2: 輸入年月,輸出該月的日歷。"<<endl<<en
65、dl;</p><p> cout<<"3: 輸入年月日,輸出距今天還有多少天,星期幾,是否是公歷節(jié)日。"<<endl<<endl;</p><p> cout<<"4: 某人自1990年1月1日開始,三天打魚兩天曬網(wǎng),輸入一個(gè)1990年以后的日期,輸出他這一天是打魚還是曬網(wǎng)。"<<
66、endl<<endl;</p><p> cout<<"0: 退出";</p><p> cout<<endl<<endl<<endl<<endl<<endl<<"請選擇所需要功能所代表的選項(xiàng): ";</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> 五、程序運(yùn)行結(jié)果測試與分析</p><p> (1)程序歡迎界面:能輸出理想結(jié)果</p><p> ?。?)功能選項(xiàng)界面:能輸出理想結(jié)果</p><p> ?。?)功能1:查詢某年</p><
77、;p> A.輸入界面:能輸出理想結(jié)果</p><p> B.輸出界面:能輸出理想結(jié)果</p><p> (4)功能2:查詢某年某月</p><p> A.輸入界面:能輸出理想結(jié)果</p><p> B.輸出界面:能輸出理想結(jié)果</p><p> ?。?)功能3:輸入年月日,輸出距今天還有多少天
78、,星期幾,是否是公歷節(jié)日。</p><p> A.輸入界面:能輸出理想結(jié)果</p><p> B.輸出界面:能輸出理想結(jié)果</p><p> (6)功能4:某年某月某日是在打魚還是在曬網(wǎng)</p><p> A.輸入界面:能輸出理想結(jié)果</p><p> B.輸出界面:能輸出理想結(jié)果</p>
79、<p> ?。?)功能5:輸入0退出程序,能夠成功運(yùn)行。</p><p><b> 六、結(jié)論與心得</b></p><p> 本次課程設(shè)計(jì)是我通過自己的實(shí)踐對書本上的知識進(jìn)行了與生活相關(guān)的運(yùn)用。在這個(gè)程序中,主要應(yīng)用了所學(xué)過的循環(huán),條件語句,數(shù)組以及調(diào)用函數(shù)。這些知識的應(yīng)用使我對課本所學(xué)過的內(nèi)容的認(rèn)識得到了更深刻的理解。</p><
80、;p> 在編寫程序的過程中,也出現(xiàn)了很多錯(cuò)誤。比如函數(shù)語句的編寫錯(cuò)誤導(dǎo)致輸出結(jié)果并沒有出現(xiàn)符合實(shí)際的結(jié)果。出現(xiàn)這些情況后,通過研究分析,才慢慢找到錯(cuò)誤,想出解決錯(cuò)誤的辦法。最后才得到了正確的結(jié)果。</p><p><b> 七、參考資料</b></p><p> [1] 余江等編著,C語言程序設(shè)計(jì),天津科學(xué)技術(shù)出版社,132-149頁</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)--c語言關(guān)鍵字中英翻譯機(jī)
- 課程設(shè)計(jì)報(bào)告---關(guān)鍵字統(tǒng)計(jì)程序
- 課程設(shè)計(jì)報(bào)告-利用哈希技術(shù)統(tǒng)計(jì)c源程序關(guān)鍵字出現(xiàn)頻度
- c語言32以及c++63個(gè)關(guān)鍵字及其含義
- c語言課程設(shè)計(jì)----猜字游戲
- 多國語言翻譯機(jī)
- 【課程設(shè)計(jì)】c語言課程設(shè)計(jì)
- 單片機(jī)秒表課程設(shè)計(jì)(c語言)
- c#中的關(guān)鍵字大全
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c#常用關(guān)鍵字及含義
- 關(guān)鍵字
- c語言課程設(shè)計(jì)--c語言投票程序
- 基于c語言單片機(jī)十字交通燈課程設(shè)計(jì)
- c語言課程設(shè)計(jì)課程報(bào)
- 基于c語言單片機(jī)秒表課程設(shè)計(jì)
- java關(guān)鍵字
- c語言課程設(shè)計(jì)題目
評論
0/150
提交評論