版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 2013年C語(yǔ)言程序設(shè)計(jì)</p><p> 探究式自主課程設(shè)計(jì)報(bào)告</p><p> 系部:計(jì)算機(jī)工程學(xué)院</p><p> 專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)</p><p> 班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)2班</p><p><b> 姓名: </b></p>&l
2、t;p><b> 學(xué)號(hào): </b></p><p> 課題名稱:多功能萬(wàn)年歷</p><p><b> 指導(dǎo)老師: </b></p><p><b> 計(jì)算機(jī)工程學(xué)院</b></p><p> 2013年6月10日</p><p><
3、;b> 前 言</b></p><p> C語(yǔ)言是一種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言。它功能豐富、表現(xiàn)能力強(qiáng)、使用靈活、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好,既具有高級(jí)語(yǔ)言的特點(diǎn),又具有低級(jí)語(yǔ)言的功能,因此它成為當(dāng)今主流程序設(shè)計(jì)語(yǔ)言之一。</p><p> C語(yǔ)言包含理論學(xué)習(xí)、編程方法和程序調(diào)試三個(gè)方面的內(nèi)容。由于它的語(yǔ)法現(xiàn)象比較復(fù)雜,數(shù)據(jù)類型轉(zhuǎn)換和表示靈活多變,因此,在學(xué)
4、習(xí)和掌握C語(yǔ)言時(shí),要把實(shí)踐分為三個(gè)層次和兩個(gè)方面。三個(gè)層次是:閱讀別人寫好的程序(或函數(shù)),理解程序所要完成的任務(wù)(也就是程序的功能),從中學(xué)習(xí)編程的方法個(gè)技巧;模仿編寫類似的程序;自己獨(dú)立設(shè)計(jì)和編寫程序完成指定的任務(wù)。兩個(gè)方面是:在條件有限的情況下,動(dòng)手在紙上嚴(yán)格按語(yǔ)法規(guī)則一絲不茍的寫程序;另一方面,在條件允許的情況下,應(yīng)該盡量上機(jī)練習(xí),調(diào)試自己所寫的程序。讓C語(yǔ)言具有更積極的意義。</p><p> 本課程
5、設(shè)計(jì)存在一些不足之處,竭誠(chéng)希望大家批評(píng)指正。</p><p><b> 目 錄</b></p><p> ----------------------------------------------------------------------------------------------------------------------</p>
6、<p><b> 1、設(shè)計(jì)的目的</b></p><p><b> 2、課程題目</b></p><p><b> 3、程序的主要功能</b></p><p><b> 4、課程思考</b></p><p><b> 5、
7、系統(tǒng)總體框架圖</b></p><p><b> 6、課程分析</b></p><p><b> 7、源程序代碼</b></p><p><b> 8、運(yùn)行結(jié)果</b></p><p><b> 9、心得與體會(huì)</b></p>
8、;<p><b> 10、參考文獻(xiàn)</b></p><p><b> 一、設(shè)計(jì)的目的</b></p><p> 經(jīng)過(guò)一學(xué)期在任教授的指導(dǎo)下,讓我們初步的認(rèn)識(shí)了C語(yǔ)言的一些基礎(chǔ)知識(shí),為了鞏固和復(fù)習(xí)c語(yǔ)言的基礎(chǔ)知識(shí),進(jìn)一步加深對(duì)C語(yǔ)言編程的理解和掌握,利用所學(xué)的知識(shí),理論和實(shí)驗(yàn)結(jié)合,利用資源,采用模塊化的結(jié)構(gòu),使用模仿修改自主設(shè)計(jì)
9、相結(jié)合的方法,鍛煉我們綜合分析解決實(shí)際問(wèn)題的編程能力,培養(yǎng)我們?cè)陧?xiàng)目開(kāi)發(fā)中團(tuán)隊(duì)合作精神、創(chuàng)新意識(shí)及實(shí)戰(zhàn)能力,所以我決定利用所學(xué)的一些基礎(chǔ)知識(shí),做一個(gè)小程序,以提高自身的編程水平與上機(jī)調(diào)試技能。</p><p><b> 二、課程題目</b></p><p> 編寫程序,解決萬(wàn)年歷問(wèn)題。</p><p><b> 三、程序的主要功
10、能</b></p><p> ?。?)顯示當(dāng)前的日期與時(shí)間;</p><p> (2)輸入一個(gè)年份,輸出全年的日歷;</p><p> ?。?)輸入年份、月份,輸出該月的日歷;</p><p> ?。?)輸入年、月、日,計(jì)算出這天是星期幾;</p><p> ?。?)計(jì)算你活了多少天(計(jì)算兩個(gè)日期相隔多少
11、天);</p><p> ?。?)輸入一個(gè)日期,輸出該日期對(duì)應(yīng)的星座;</p><p> (7)輸入一個(gè)年份,輸出該年的生肖;</p><p><b> 四、課程思考</b></p><p> 由于這個(gè)程序相對(duì)來(lái)說(shuō)比較大,為了它能更好的實(shí)現(xiàn)各個(gè)部分的功能,我要把它來(lái)分為各個(gè)小的模塊來(lái)實(shí)現(xiàn):由于第一個(gè)功能是要讓人能一
12、眼就看見(jiàn),所以我就決定把它放在主菜單界面,讓人能一眼就看到當(dāng)前時(shí)間,也好進(jìn)行相應(yīng)的操作;第二個(gè)功能我決定用一個(gè)oneyear()的函數(shù)模塊來(lái)實(shí)現(xiàn);第三個(gè)功能用一個(gè)onemonth()的函數(shù)模塊來(lái)實(shí)現(xiàn);第四個(gè)功能用oneday()的函數(shù)模塊來(lái)實(shí)現(xiàn);第五個(gè)功能用xg()的函數(shù)模塊來(lái)實(shí)現(xiàn);第六個(gè)功能用一個(gè)xz()的函數(shù)模塊來(lái)實(shí)現(xiàn);第七個(gè)功能如果和第二個(gè)功能相結(jié)合就完美了,但是由于我軟件的窗口無(wú)法放大來(lái)顯示調(diào)試結(jié)果,為了避免出錯(cuò),我還是用sx(
13、)的函數(shù)模塊來(lái)實(shí)現(xiàn)(本程序中有幾個(gè)的程序模塊都是從本課程設(shè)計(jì)的參考文獻(xiàn)[2]中借鑒而來(lái))。</p><p><b> 五、系統(tǒng)總體框架圖</b></p><p><b> 六、要點(diǎn)分析</b></p><p> 這里將這個(gè)功能定義為一個(gè)功能模塊,在主程序中分別調(diào)用,實(shí)現(xiàn)不同的功能。</p><p&
14、gt; 在這個(gè)問(wèn)題中,最主要的是閏年和平年的判斷和如何確定每年的第一天是星期幾。</p><p> 某一年是閏年的條件為:該年份能被4整除但不能被100整除,或者能被400整除。根據(jù)這些條件,可以寫出判斷閏年的函數(shù)如下:</p><p> int isleap(int a)</p><p> { return(a%4==0&&a%100!=0
15、||a%400==0);}</p><p> 對(duì)于該函數(shù),給它一個(gè)年份,如果返回值是1則說(shuō)明是閏年,如果返回值是0則為非閏年。判斷是否為閏年主要是確定2月份的天數(shù),其他的月份天數(shù)是固定的。</p><p> 確定一年的第一天是星期幾的函數(shù)如下:</p><p> int day(int year)</p><p> {long a,b
16、;</p><p> if(year<=2000)</p><p><b> {</b></p><p> a=2000-year;</p><p> b=6-(a+a/4-a/100+a/400)%7;</p><p><b> return b;</b>&
17、lt;/p><p><b> }</b></p><p><b> else</b></p><p> {a=year-2000;</p><p> b=(a+(a-1)/4-(a-1)/100+(a-1)/400)%7;</p><p><b> retur
18、n b;</b></p><p><b> }</b></p><p><b> }</b></p><p> 在該函數(shù)中,對(duì)于年份首先判斷實(shí)在2000年之前還是在2000年之后,然后分別計(jì)算,最后返回該年份的第一天是星期幾,這里,返回值0—6分別對(duì)應(yīng)的是星期天到星期六。</p><p
19、> 知道了每個(gè)月的天數(shù)和該年的第一天是星期幾,利用累加就能算出每一天對(duì)應(yīng)星期幾,也就容易實(shí)現(xiàn)萬(wàn)年歷系統(tǒng)的功能。</p><p><b> 七、源程序代碼</b></p><p> ?。?)首先建立頭文件,如下所示:</p><p> #include "stdio.h"</p><p>
20、 #include "conio.h"</p><p> #include<time.h></p><p> #define D " sum mon tue wed thu fri sat"</p><p> void baiyang();</p><p> void jingni
21、u();</p><p> void shuangzi();</p><p> void juxie();</p><p> void shizi();</p><p> void chu();</p><p> void tianp();</p><p> void tianx()
22、;</p><p> void sheshou();</p><p> void mojie();</p><p> void shuiping();</p><p> void shuangyu();</p><p> void print(int n)</p><p><b&
23、gt; {int i;</b></p><p> for(i=0;i<n;i++)</p><p> printf(" ");</p><p><b> }</b></p><p> int day(int year)</p><p> { lon
24、g a,b;</p><p> if(year<=2000)</p><p><b> {</b></p><p> a=2000-year;</p><p> b=6-(a+a/4-a/100+a/400)%7;</p><p><b> return b;</b
25、></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> a=year-2000;</p><p> b=(a+(a-1)/4-(a-1)/100+(a-
26、1)/400)%7;</p><p><b> return b;</b></p><p><b> }</b></p><p><b> }</b></p><p> int isleap(int a)</p><p><b> {
27、</b></p><p> return(a%4==0&&a%100!=0||a%400==0);</p><p><b> }</b></p><p> 在頭文件中,包含了閏年的判斷,確定一年的第一天是星期幾,顯示n個(gè)空格等函數(shù),以及幾個(gè)宏定義和必須的頭文件stdio.h。</p><p&
28、gt; ?。?)顯示一年的日歷:</p><p> void oneyear()</p><p> {int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};</p><p> int i,j,k,m,n,f1,f2,year,d;</p><p><b> clrscr();&l
29、t;/b></p><p> printf("qing shu ru nian fen:\n");</p><p> scanf("%d",&year);</p><p> printf("ni suo shu ru de nian fen shi:%d\n",year);</p&
30、gt;<p> d=day(year);</p><p> if(isleap(year))</p><p><b> a[2]++;</b></p><p> for(i=1;i<=12;i+=2)</p><p> {m=n=f1=f2=0;</p><p>&l
31、t;b> switch(i)</b></p><p><b> {</b></p><p> case 1:printf("january 1");break;</p><p> case 3:printf("march 3");break;</p><p&g
32、t; case 5:printf("may 5");break;</p><p> case 7:printf("july 7");break;</p><p> case 9:printf("septrmber 9");break;</p><p> case 11:printf("no
33、vember 11");break;</p><p><b> }</b></p><p> print(21);</p><p> switch(i+1)</p><p><b> {</b></p><p> case 2:printf("f
34、ebruary 2");break;</p><p> case 4:printf("april 4");break;</p><p> case 6:printf("june 6");break;</p><p> case 8:printf("august 8");break;</
35、p><p> case 10:printf("october 10");break;</p><p> case 12:printf("december 12");break;</p><p><b> }</b></p><p> printf("\n")
36、;</p><p> printf(D);</p><p> printf(6);</p><p> printf(D);</p><p> printf("\n");</p><p> for(j=0;j<6;j++)</p><p><b>
37、{if(j==0)</b></p><p> {print(d*4);</p><p> for(k=0;k<7-d;k++)</p><p> printf("%4d",++m);</p><p><b> print(6);</b></p><p>
38、; d=d+a[i]%7;</p><p><b> d%=7;</b></p><p> print(d*4);</p><p> for(k=0;k<7-d;k++)</p><p> printf("%4d",++n);</p><p> printf(
39、"\n");</p><p><b> }</b></p><p><b> else</b></p><p> { for(k=0;k<7;k++)</p><p><b> {</b></p><p> if(m&
40、lt;a[i])</p><p> printf("%4d",++m);</p><p><b> print(4);</b></p><p> if(m==a[i])</p><p><b> f1=1;</b></p><p><b>
41、; }</b></p><p><b> print(6);</b></p><p> for(k=0;k<7;k++)</p><p><b> {</b></p><p> if(n<a[i+1])</p><p> printf(&q
42、uot;%4d",++n);</p><p><b> else</b></p><p><b> print(4);</b></p><p> if(n==a[i+1])</p><p><b> f2=1;</b></p><p>
43、<b> }</b></p><p> printf("\n");</p><p> if(f1&&f2)</p><p><b> break;</b></p><p><b> }</b></p><p>
44、;<b> }</b></p><p> d=d+a[i+1]%7;</p><p><b> d%=7;</b></p><p> printf(" ");</p><p> for(k=0;k<27;k++)</p><p> pri
45、ntf("=");</p><p><b> print(7);</b></p><p> for(k=0;k<27;k++)</p><p> printf("=");</p><p> printf("\n");</p><
46、p><b> if(i==5)</b></p><p><b> {</b></p><p><b> getch();</b></p><p><b> clrscr();</b></p><p><b> }</b>
47、;</p><p><b> }</b></p><p><b> getch();</b></p><p><b> }</b></p><p> 該函數(shù)將每年的日歷分為兩屏顯示,每屏顯示6個(gè)月,在這個(gè)函數(shù)中,變量m,n分別為同一行上兩個(gè)月的日期,利用累加實(shí)現(xiàn)。變量d
48、用來(lái)記錄每個(gè)月第一天是星期幾,通過(guò)它確定每個(gè)月顯示的位置。</p><p> ?。?)顯示每個(gè)月的日歷:</p><p> void onemonth()</p><p> { int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};</p><p> int i,j,k,m,flag,yea
49、r,month,d;</p><p><b> clrscr();</b></p><p> printf("qing shu ru nian fen he yue fen\n");</p><p> scanf("%d%d",&year,&month);</p>&l
50、t;p> printf("\nthe calendar of %d\n",year);</p><p> switch(month)</p><p> {case 1:printf("january 1\n");break;</p><p> case 2:printf("february 2\n&qu
51、ot;);break;</p><p> case 3:printf("march 3\n");break;</p><p> case 4:printf("april 4\n");break;</p><p> case 5:printf("may 5\n");break;</p>&
52、lt;p> case 6:printf("june 6\n");break;</p><p> case 7:printf("july 7\n");break;</p><p> case 8:printf("august 8\n");break;</p><p> case 9:printf
53、("septrmber 9\n");break;</p><p> case 10:printf("october 10\n");break;</p><p> case 11:printf("november 11\n");break;</p><p> case 12:printf("d
54、ecember 12\n");break;</p><p><b> }</b></p><p> printf(D);</p><p> printf("\n\n");</p><p> d=day(year);</p><p> if(isleap(ye
55、ar))</p><p><b> a[2]++;</b></p><p> for(i=1;i<month;i++)</p><p><b> {</b></p><p> d+=a[i]%7;</p><p><b> d%=7;</b&g
56、t;</p><p><b> }</b></p><p><b> m=flag=0;</b></p><p> for(i=0;i<6;i++)</p><p><b> {</b></p><p><b> if(i==0
57、)</b></p><p><b> {</b></p><p> print(4*d);</p><p> for(j=0;j<7-d;j++)</p><p> printf("%4d",++m);</p><p> printf("\
58、n");</p><p><b> }</b></p><p><b> else</b></p><p> {for(j=0;j<7;j++)</p><p> if(m<a[month])</p><p> printf("%4d
59、",++m);</p><p><b> else</b></p><p><b> flag=1;</b></p><p> printf("\n");</p><p><b> if(flag)</b></p><p
60、><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> printf(" ");</p><p> for(k=0;k<27;k++)</p><
61、;p> printf("=");</p><p> printf("\n");</p><p><b> getch();</b></p><p><b> }</b></p><p> (4)輸入年月日,計(jì)算出這天是星期幾:</p>
62、;<p> void oneday()</p><p> { int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};</p><p> int i,year,month,dday,d;</p><p><b> clrscr();</b></p><p&g
63、t; printf("qing shu ru nian yue ri\n");</p><p> scanf("%d%d%d",&year,&month,&dday);</p><p> printf("ni shu ru de nian yue ri shi %d. %d. %d. ",year
64、,month,dday);</p><p> d=day(year);</p><p> if(isleap(year))</p><p><b> a[2]++;</b></p><p> for(i=1;i<month;i++)</p><p><b> {</
65、b></p><p> d+=a[i]%7;</p><p><b> d%=7;</b></p><p><b> }</b></p><p> d+=(dday-1)%7;</p><p><b> d%=7;</b></p&g
66、t;<p><b> switch(d)</b></p><p> { case 0:printf("sunday.\n");break;</p><p> case 1:printf("monday.\n");break;</p><p> case 2:printf("
67、tuesday.\n");break;</p><p> case 3:printf("wednesday.\n");break;</p><p> case 4:printf("thursday.\n");break;</p><p> case 5:printf("friday.\n")
68、;break;</p><p> case 6:printf("saturday.\n");break;</p><p><b> }</b></p><p><b> getch();</b></p><p><b> }</b></p>
69、;<p> 該函數(shù)中首先要確定該年的第一天的星期數(shù),而后對(duì)應(yīng)月份第一天的星期數(shù),再計(jì)算出該天的星期數(shù),最后輸出結(jié)果。</p><p> (5)輸入兩個(gè)年月日,計(jì)算后一個(gè)日期與前一個(gè)日期相隔多少天:</p><p><b> void xg()</b></p><p> {int year,month,day,n;</
70、p><p> int sum=0,sum1=0,sum2=0,l=0,i,j,k,y,y1,m1,d1,</p><p> a[12]={31,28,31,30,31,30,31,31,30,31,30,31};</p><p> int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};</p><p&g
71、t;<b> clrscr();</b></p><p> printf("please inpuut year,month,day\n");</p><p> scanf("%d%d%d",&year,&month,&day);</p><p> scanf("
72、%d%d%d",&y1,&m1,&d1);</p><p> if(year<=y1)</p><p><b> {</b></p><p> for(y=year;y<y1;y++)</p><p> { if(isleap(y))</p><p
73、><b> l+=366;</b></p><p><b> else</b></p><p><b> l+=365;}</b></p><p> if(isleap(year))</p><p> for(i=1;i<month-1;i++)</
74、p><p> sum1+=b[i];</p><p><b> else</b></p><p> for(i=0;i<month-1;i++)</p><p> sum1+=a[i];</p><p> sum1=sum1+day-1; </p><p>
75、/* 注:sum1=sum1+day-1;由于計(jì)算機(jī)是從0開(kāi)始計(jì)算,所以天數(shù)要減1才能實(shí)現(xiàn)功能,后同*/</p><p> if(isleap(y1))</p><p> for(i=1;i<m1-1;i++)</p><p> sum2+=b[i];</p><p><b> else</b></p
76、><p> for(i=0;i<m1-1;i++)</p><p> sum2+=a[i];</p><p> sum2=sum2+l+d1-1;</p><p> sum=sum2-sum1;</p><p> printf("%dnian %dyue %dri yu %dnian %dyue
77、%dri \nxiang ge %d tian ",year,month,day,y1,m1,d1,sum);</p><p><b> }</b></p><p><b> else</b></p><p> printf("shu ru cuo wu");</p>&l
78、t;p><b> getch();</b></p><p><b> }</b></p><p> 該函數(shù)中先計(jì)算前一個(gè)日期的那一天到那一年的第一天有多少天(sum1),在計(jì)算后一個(gè)日期的那一天到那一年的有多少天,再加上相隔年數(shù)的天數(shù)(當(dāng)然還要考慮閏年和平年)的總和(sum2)減去前面的天數(shù),就能得到他們相隔的天數(shù)(sum),輸出最后
79、的結(jié)果。</p><p> (6)輸入一個(gè)日期,輸出當(dāng)日的星座:</p><p><b> void xz()</b></p><p><b> { </b></p><p> int month,day;</p><p><b> clrscr();&
80、lt;/b></p><p> printf("please input month and day:\n");</p><p> scanf("%d%d",&month,&day);</p><p> switch(month)</p><p><b> {&l
81、t;/b></p><p> case 1:if(day<=19) mojie();else shuiping();break;</p><p> case 2:if(day<=18) shuiping();else shuangyu();break;</p><p> case 3:if(day<=20) shuangyu();el
82、se baiyang();break;</p><p> case 4:if(day<=19) baiyang();else jingniu();break;</p><p> case 5:if(day<=20) jingniu();else shuangzi();break;</p><p> case 6:if(day<=21)shua
83、ngzi();else juxie();break;</p><p> case 7:if(day<=23)juxie();else shizi();break;</p><p> case 8:if(day<=22) shizi();else chu();break;</p><p> case 9:if(day<=22)chu();els
84、e tianp();break;</p><p> case 10:if(day<=23)tianp();else tianx();break;</p><p> case 11:if(day<=22) tianx();else sheshou();break;</p><p> case 12:if(day<=21)sheshou();el
85、se mojie();break;</p><p> default:printf("input error!\n");break;</p><p><b> }</b></p><p><b> getch();</b></p><p><b> }</
86、b></p><p> void baiyang()</p><p><b> {</b></p><p> printf("The star you look for is: 白羊座Aries \n\n\n");</p><p><b> }</b></p
87、><p> void jingniu()</p><p><b> {</b></p><p> printf("The star you look for is :金牛座Taurus \n\n\n");</p><p><b> }</b></p><
88、p> void shuangzi()</p><p><b> {</b></p><p> printf("The star you look for is :雙子座 Gemini \n\n\n");</p><p><b> }</b></p><p> vo
89、id juxie()</p><p><b> {</b></p><p> printf("The star you look for is :巨蟹座 Cancer \n\n\n");</p><p><b> }</b></p><p> void shizi()&l
90、t;/p><p><b> {</b></p><p> printf("The star you look for is :獅子座 Leo \n\n\n");</p><p><b> }</b></p><p> void chu()</p><p&g
91、t;<b> {</b></p><p> printf("The star you look for is :處女座 Virgo \n\n\n");</p><p><b> }</b></p><p> void tianp()</p><p><b>
92、{</b></p><p> printf("The star you look for is :天秤座 Libra \n\n\n");</p><p><b> }</b></p><p> void tianx()</p><p><b> {</b>&l
93、t;/p><p> printf("The star you look for is :天蝎座 Scorpio \n\n\n");</p><p><b> }</b></p><p> void sheshou()</p><p><b> {</b></p>
94、<p> printf("The star you look for is :射手座 Sagittarius \n\n\n");</p><p><b> }</b></p><p> void mojie()</p><p><b> {</b></p><p&
95、gt; printf("The star you look for is: 摩羯座 Capricornus \n\n\n");</p><p><b> }</b></p><p> void shuiping()</p><p><b> {</b></p><p>
96、 printf("The star you look for is:水瓶座 Aquarius \n\n\n");</p><p><b> }</b></p><p> void shuangyu()</p><p><b> {</b></p><p> printf(
97、"The star you look for is:雙魚座 Pisces \n\n\n");</p><p><b> }</b></p><p> 該函數(shù)是先將你輸入的月份通過(guò)if語(yǔ)句進(jìn)行逐一的判斷,判斷它屬于哪個(gè)星座,然后調(diào)用它屬于的哪個(gè)函數(shù),再輸出那個(gè)日期所對(duì)應(yīng)的星座。</p><p> ?。?)輸入一個(gè)年份,輸出
98、該年的生肖:</p><p><b> void sx()</b></p><p> {char*p[12]={"long","she","ma","yang","hou",</p><p> "ji","go
99、u","zhu","shu","niu","hu","tu"};</p><p> int year,middle;</p><p><b> clrscr();</b></p><p> printf("please
100、input a year:\n");</p><p> scanf("%d",&year);</p><p> if(year>=2000)</p><p> printf("jin nian shi %s nian\n",p[(year-2000)%12]);</p><p&
101、gt;<b> else </b></p><p> printf("jin nian shi %s nian\n",p[12-(2000-year)%12]);</p><p><b> getch();</b></p><p><b> }</b></p>
102、<p> 該函數(shù)中首先給定一個(gè)年份(2000年)的生肖為龍年,然后通過(guò)這個(gè)年份之后的年數(shù)和之前的年數(shù),通過(guò)計(jì)算找到相應(yīng)數(shù)組中對(duì)應(yīng)元素為該輸入年數(shù)的生肖。</p><p> ?。?)主程序(由于當(dāng)前時(shí)間要顯示在主菜單界面,為了避免清屏無(wú)法顯示,就把它的模塊實(shí)現(xiàn)在注模塊中):</p><p> void main()</p><p><b>
103、 {</b></p><p> int choice,flag;</p><p> struct tm *tmpointer;</p><p> time_t secs;</p><p> time(&secs);</p><p> tmpointer=localtime(&sec
104、s);</p><p> printf("\nxian zai shi:%d-%d-%d %d:%d:%d\n\n",tmpointer->tm_mon+1,tmpointer-></p><p> tm_mday,tmpointer->tm_year+1900,tmpointer->tm_hour,tmpointer-></p&
105、gt;<p> tm_min,tmpointer->tm_sec);</p><p> /*輸出當(dāng)前的日期和時(shí)間*/</p><p><b> while(1)</b></p><p><b> { flag=0;</b></p><p> printf("p
106、lease select the function(0--6):\n");</p><p> printf("*1Display the calender of one year. *\n");</p><p> printf("*2Display the calender of onr month.*\n");</p>
107、<p> printf("*3Display the weekday of one day.*\n");</p><p> printf("*4xiang ge tian shu.*\n");</p><p> printf("*5cha xun ni de xing zuo.*\n");</p>&
108、lt;p> printf("*6mou yi nian de sheng xiao.*\n");</p><p> printf("*0.exit*\n");</p><p> printf("************************\n");</p><p> scanf("
109、;%d",&choice);</p><p> switch(choice)</p><p> { case 0:clrscr();</p><p> printf("thank you for use this software.\n");</p><p> printf("welco
110、me to use it again\n");</p><p> flag=1;break;</p><p> case 1:oneyear();break;</p><p> case 2:onemonth();break;</p><p> case 3:oneday();break;</p><p&
111、gt; case 4:xg();break;</p><p> case 5:xz();break;</p><p> case 6:sx();break;</p><p> default:printf("you choice wrong,please input again.\n");</p><p><
112、b> getch();</b></p><p><b> }</b></p><p><b> if(flag)</b></p><p><b> break;</b></p><p><b> }</b></p>
113、<p><b> }</b></p><p> 該函數(shù)先引用頭文件,再獲取系統(tǒng)的當(dāng)前的時(shí)間和日期,然后將他們打印出來(lái),再執(zhí)行下面的函數(shù)調(diào)用,輸入不同的數(shù)字,實(shí)現(xiàn)不同的數(shù)字功能,菜單循環(huán)顯示,用戶可以一直使用,知道選擇功能鍵“0”,退出程序[2]。</p><p><b> 八、運(yùn)行結(jié)果</b></p><p&
114、gt;<b> 運(yùn)行后的主界面:</b></p><p> 我們可以看到當(dāng)前時(shí)間是2013年6月21日,14:0:30</p><p> 再根據(jù)提示輸入相應(yīng)的數(shù)字(0--6);</p><p><b> (1)輸入1:</b></p><p> 在主界面輸入1后就到下一界面,再輸入年號(hào),則
115、輸出該年的日歷</p><p><b> 注:</b></p><p> 由于界面原因,無(wú)法全面觀看整年的日歷</p><p><b> ?。?)輸入2</b></p><p> 在主界面輸入2后就到下一界面,再輸入年份和月份,如:輸入2013 6 則輸出:</p><p&
116、gt;<b> (3)輸入3</b></p><p> 在主界面輸入3后就到下一界面,再輸入年份和月份和日期,如:2013 6 12</p><p><b> 則輸出:</b></p><p><b> (4)輸入4</b></p><p> 在主界面輸入4后就到下一
117、界面,再輸入你要計(jì)算的兩個(gè)日期,如我是1994 7 12出生的,今天是2013 6 13則輸出:</p><p> (根據(jù)計(jì)算我才知道我到今天一共活了6911天)</p><p><b> ?。?)輸入5</b></p><p> 在主界面輸入5后就到下一界面,再輸入日期,如輸入7月12日:</p><p><
118、b> 則輸出巨蟹座</b></p><p><b> ?。?)輸入6</b></p><p> 在主界面輸入6后就到下一界面,再輸入年份,如今年是2013年是蛇年則輸出:</p><p> ?。?)輸入0程序結(jié)束;</p><p><b> 九、心得與體會(huì)</b></p
119、><p> ?。?)通過(guò)本次對(duì)C語(yǔ)言的學(xué)習(xí)深入學(xué)習(xí),讓我對(duì)c語(yǔ)言有了更多的了解并掌握了更多的知識(shí),成功的運(yùn)用各類函數(shù)、循環(huán)變量、結(jié)構(gòu)化的程序設(shè)計(jì),以及結(jié)構(gòu)體、指針的使用。</p><p> ?。?)但是在學(xué)習(xí)中發(fā)現(xiàn),編程確實(shí)不是很好做的,并非你想要就能完成的,他需要的是認(rèn)真、仔細(xì)的對(duì)待每一個(gè)程序塊,特別是對(duì)指針的使用時(shí)更加困難,那些指針指來(lái)指去,一不小心就會(huì)看錯(cuò),那樣一整個(gè)程序都編譯不出來(lái)。&
120、lt;/p><p> ?。?)由于學(xué)生的我知識(shí)程度大一而已,沒(méi)能夠更完美的把程序做出來(lái),而且程序中有許多不足之處不能夠正確的改正,但總體上還是可以運(yùn)行的,希望看到的人能夠批評(píng)指正。</p><p><b> 十、參考文獻(xiàn)</b></p><p> [1] 明日科技編著,《C語(yǔ)言程序開(kāi)發(fā)范例寶典》,人民郵電大學(xué)出版社</p><
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)--萬(wàn)年歷
- c語(yǔ)言課程設(shè)計(jì)--萬(wàn)年歷
- 萬(wàn)年歷c語(yǔ)言課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--萬(wàn)年歷
- 多功能數(shù)字萬(wàn)年歷課程設(shè)計(jì)
- 多功能電子萬(wàn)年歷課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)萬(wàn)年歷系統(tǒng)
- C語(yǔ)言課程設(shè)計(jì)--萬(wàn)年歷.doc
- c語(yǔ)言課程設(shè)計(jì)--萬(wàn)年歷系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)——萬(wàn)年歷的設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--大賽評(píng)分、萬(wàn)年歷
- c++萬(wàn)年歷課程設(shè)計(jì)
- c++課程設(shè)計(jì)--萬(wàn)年歷
- 萬(wàn)年歷c++課程設(shè)計(jì)
- 《c++課程設(shè)計(jì)》萬(wàn)年歷
- 萬(wàn)年歷c++課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)--萬(wàn)年歷電子時(shí)鐘
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論