版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 高級(jí)語(yǔ)言課程設(shè)計(jì)報(bào)告 </p><p> 設(shè) 計(jì) 題 目 高級(jí)語(yǔ)言課程設(shè)計(jì)——電子萬(wàn)年歷 </p><p> 一、課程設(shè)計(jì)目的和任務(wù)</p><p> 1.通過(guò)本項(xiàng)課程設(shè)計(jì),可以培養(yǎng)獨(dú)立思考、 綜合運(yùn)用所學(xué)有關(guān)相應(yīng)知識(shí)的能力,能更好的鞏固高級(jí)程序語(yǔ)言編程的過(guò)程,掌握軟件設(shè)計(jì)的基本方法,強(qiáng)化上機(jī)動(dòng)手編程能力,闖過(guò)理論與實(shí)踐相
2、結(jié)合的難關(guān),更加了解c語(yǔ)言的好處和其可用性,同時(shí)增加了同學(xué)之間的團(tuán)隊(duì)合作精神,更加也體會(huì)到以后在工作中團(tuán)隊(duì)合作的重要性和必要性。 </p><p> 2.通過(guò)高級(jí)語(yǔ)言課程設(shè)計(jì),使學(xué)生了解高級(jí)程序設(shè)計(jì)語(yǔ)言的結(jié)構(gòu),掌握基本的程序設(shè)計(jì)過(guò)程和技巧,掌握基本的分析問(wèn)題和利用計(jì)算機(jī)求解問(wèn)題的能力,具備初步的高級(jí)語(yǔ)言程序設(shè)計(jì)能力。為后續(xù)各門計(jì)算機(jī)課程的學(xué)習(xí)和畢業(yè)設(shè)計(jì)打下堅(jiān)實(shí)基礎(chǔ)。</p><p>
3、 3.為了使同學(xué)們掌握結(jié)構(gòu)化數(shù)據(jù)流分析技術(shù),用C語(yǔ)言設(shè)計(jì)一個(gè)年歷系統(tǒng),滿足以下功能要求 :</p><p> (1) 輸入任一年將顯示出該年的所有月份日期,對(duì)應(yīng)的星期</p><p> (2) 注意閏年情況</p><p> 其顯示格式要求如下:</p><p> (1)月份:中文英文都可以,</p><p>
4、; (2)下一行顯示星期,從周日到周六,中英文都可以</p><p> (3)下一行開(kāi)始顯示日期從1號(hào)開(kāi)始,并按其是周幾實(shí)際情況與上面的星期數(shù)垂直對(duì)齊</p><p> 當(dāng)輸入2004顯示如下:</p><p> Input the year:2004</p><p> The calendar of the year 2004.&
5、lt;/p><p> Januray 1 February 2</p><p> Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat</p><p> 1 2 3 1 2 3 4 5 6 7<
6、/p><p> 4 5 6 7 8 9 10 8 9 10 11 12 13 14</p><p> 11 12 13 14 15 16 17 15 16 17 18 19 20 21</p><p> 18 19 20 21 22 23 24 22
7、 23 24 25 26 27 28</p><p> 25 26 27 28 29 30 31 29</p><p> =========================== ===========================</p><p> March 3
8、 April 4</p><p> Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat</p><p> 1 2 3 4 5 6 1 2 3</p><p> 7 8 9 10 11 1
9、2 13 4 5 6 7 8 9 10</p><p> 14 15 16 17 18 19 20 11 12 13 14 15 16 17</p><p> 21 22 23 24 25 26 27 18 19 20 21 22 23 24</p>
10、;<p> 28 29 30 31 25 26 27 28 29 30</p><p> =========================== ===========================</p><p><b> 二、分析與設(shè)計(jì)</b></p><
11、;p> 1.程序的基本功能: </p><p> 輸入一個(gè)整數(shù)year,顯示出該年的所有月份日期,對(duì)應(yīng)的星期。</p><p><b> 2.系統(tǒng)總框圖: </b></p><p> 3.定義的函數(shù)及說(shuō)明:</p><p> (1) f(int year,int month) 如果月份值小于3,則返回值為
12、year-1;否則返回值為year</p><p> (2) g(int month)如果月份值小于3,則返回值為month+13;否則返回值為month+1</p><p> 例如:2004年1月1日 經(jīng)過(guò)這兩個(gè)函數(shù)的變形成 2003年14月1日,便于計(jì)算</p><p> (3)n(int year,int month,int day)計(jì)算某一個(gè)日期的n值
13、,便于計(jì)算某一日期是周幾</p><p> (4)w(int year,int month,int day) 以1700年3月2日的n值為模版,計(jì)算出要求日期是周幾</p><p> (5)main() 主函數(shù)</p><p><b> 4.算法設(shè)計(jì):</b></p><p> (1)總體而言,根據(jù)要求來(lái)做一個(gè)萬(wàn)
14、年歷的C程序,要求輸入想要知道日歷的年份,然后可按ENTER鍵顯示日歷。</p><p> (2)判斷是不是閏年:(year%4==0&&year%100||year%400==0)滿足條件是閏年,把一年中所有月份的天數(shù)放入二維數(shù)組({{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,</p><p> 3
15、1,31,30,31,30,31}})。</p><p> (3)用 f() g() n() w()四個(gè)函數(shù)計(jì)算周幾</p><p> (4)用for循環(huán)將每一個(gè)日期置0 ,再將每個(gè)月的日期填入日期表</p><p> (5)按照題目所要求的格式輸出</p><p><b> 三、系統(tǒng)實(shí)施</b></p&g
16、t;<p><b> 1.源程序代碼</b></p><p> #include <stdio.h> </p><p> #include <conio.h> </p><p> long int f(int year,int month) </p><p><b>
17、; { </b></p><p> if(month<3) return year-1; </p><p> else return year; </p><p><b> } </b></p><p> long int g(int month) </p><p>&
18、lt;b> { </b></p><p> if(month<3) return month+13; </p><p> else return month+1;</p><p><b> } </b></p><p> long int n(int year,int month,int
19、 day) </p><p><b> { </b></p><p> return 1461L*f(year,month)/4+153L*g(month)/5+day; </p><p><b> } </b></p><p> int w(int year,int month,int d
20、ay) </p><p><b> { </b></p><p> return(int)((n(year,month,day)%7-621049L%7+7)%7); </p><p><b> } </b></p><p> int date[12][6][7]; </p>
21、<p> int day_tbl[ ][12]={{31,28,31,30,31,30,31,31,30,31,30,31}, {31,29,31,30,31,30,31,31,30,31,30,31}}; </p><p><b> main() </b></p><p><b> {</b></p><p&
22、gt; int sw,leap,i,j,k,wd,day; </p><p><b> int year;</b></p><p> char title[]="Sun Mon Tue Wed Thu Fri Sat ";</p><p> const char *month[]={"*",&qu
23、ot;January","February","March","April","May","June","July","August","September","October","November","December
24、"};printf("Input the year: ");</p><p> scanf("%d%*c",&year);</p><p> sw=w(year,1,1); </p><p> leap=year%4==0&&year%100||year%400==0; </p&g
25、t;<p> for(i=0;i<12;i++) </p><p> for(j=0;j<6;j++) </p><p> for(k=0;k<7;k++) </p><p> date[i][j][k]=0;</p><p> for(i=0;i<12;i++)</p><
26、p> for(wd=0,day=1;day<=day_tbl[leap][i];day++) </p><p><b> {</b></p><p> date[i][wd][sw]=day; </p><p> sw=++sw%7;</p><p> if(sw==0) wd++;</p&g
27、t;<p><b> } </b></p><p> printf("\nThe calendar of the year %d\n\n",year);</p><p> for(i=0;i<12;i+=2){</p><p> for(wd=0,k=0;k<7;k++)</p>
28、<p> wd+=date[i][5][k]+date[i+1][5][k];</p><p> wd=wd?6:5; </p><p> printf(" %-9s %d\t\t\t%-9s %d\n",month[i+1],i+1,month[i+2],i+2);</p><p> printf(" %s\t%
29、s\n",title,title);</p><p> for(j=0;j<wd;j++)</p><p><b> {</b></p><p> printf(" ");</p><p> for(k=0;k<7;k++) </p><p>
30、if(date[i][j][k]) </p><p> printf("%-4d",date[i][j][k]);else printf("%4s","");</p><p> printf("%3s","");for(k=0;k<7;k++) </p><p&
31、gt; if(date[i+1][j][k])</p><p> printf("%-4d",date[i+1][j][k]);</p><p> else printf("%4s","");</p><p> printf("%4s\n","");} <
32、;/p><p> printf("===========================\t===========================\n");</p><p><b> }</b></p><p> puts("\n");</p><p><b> ge
33、tch(); </b></p><p><b> } </b></p><p> 2.程序運(yùn)行說(shuō)明(包括結(jié)果說(shuō)明)</p><p><b> 運(yùn)行程序:</b></p><p> 輸入 2004 運(yùn)行結(jié)果:</p><p> 運(yùn)行說(shuō)明:運(yùn)行程序后,先出現(xiàn)
34、一黑色背景,上面有一句話:"Input the year:" 輸入一個(gè)整數(shù)值作為要查詢的年份值,顯示出該年的所有月份日期,對(duì)應(yīng)的星期。</p><p> 結(jié)果說(shuō)明:第一行“The calendar of the year 2004”表明這是2004年的日歷。之后的每?jī)蓚€(gè)月份并排顯示,首行是月份,第二行是星期,日期按其是周幾實(shí)際情況與上面的星期數(shù)垂直對(duì)齊。</p><p&g
35、t;<b> 3.存在的問(wèn)題:</b></p><p> 整個(gè)程序的功能還是不完善的,功能比較單一,比如不能顯示具體某一個(gè)月或某一天的信息,不能多次查詢等。</p><p><b> 四、總結(jié)與體會(huì)</b></p><p> 對(duì)C語(yǔ)言在編寫程序時(shí)的用處有了更明確的認(rèn)識(shí),懂得了編寫C程序的一般法方步驟。最大的收獲是:
36、編寫程序時(shí)一定要有信心和勇氣,要相信自己一定可以把這個(gè)程序編寫出來(lái)。分析問(wèn)題做出算法,想好思路,在心里有個(gè)大致的框架。然后按部就班的記下自己想到的每一點(diǎn)內(nèi)容,把寫下的東西認(rèn)真整理,查缺補(bǔ)漏,把一些細(xì)節(jié)的地方補(bǔ)上,就這樣一個(gè)貌似很難的程序就寫出來(lái)了。其實(shí)編程并不難,關(guān)鍵是要投入要鉆到里面去。下一步就是讀程序,讀程序時(shí)一定要小心仔細(xì),一條語(yǔ)句一條語(yǔ)句的讀,看是否能輸出自己想要輸出的結(jié)果。如果發(fā)現(xiàn)錯(cuò)誤要馬上改過(guò)來(lái),再接著向下讀,直到把程序調(diào)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 萬(wàn)年歷課程設(shè)計(jì)--萬(wàn)年歷電子時(shí)鐘
- c++萬(wàn)年歷課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--萬(wàn)年歷
- c++課程設(shè)計(jì)--萬(wàn)年歷
- 萬(wàn)年歷c++課程設(shè)計(jì)
- 《c++課程設(shè)計(jì)》萬(wàn)年歷
- 萬(wàn)年歷c++課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--萬(wàn)年歷
- 萬(wàn)年歷c語(yǔ)言課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--萬(wàn)年歷
- 課程設(shè)計(jì)報(bào)告--電子萬(wàn)年歷
- 電子萬(wàn)年歷課程設(shè)計(jì) (2)
- proteus課程設(shè)計(jì)--電子萬(wàn)年歷
- 電子萬(wàn)年歷課程設(shè)計(jì)報(bào)告
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論