2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  學生課程設(shè)計(論文)</p><p>  題 目: 年歷顯示 </p><p>  學生姓名: *** 學 號:************** </p><p>  所在院(系): 計算機學院 </p><p>  專 業(yè): 計算機

2、科學與技術(shù) </p><p>  班 級: 計算機科學與技術(shù)一班 </p><p>  指 導 教 師: ***** 職稱: ****** </p><p>  2011年 6 月 26 日</p><p>  本科學生課程設(shè)計任務(wù)書</p><p>  注:任務(wù)書由指

3、導教師填寫。</p><p><b>  摘要</b></p><p>  這次年歷的設(shè)計,有查詢某年中的某個月,查詢某年,查詢某天是周幾, 查詢一段時間日期, 查詢兩個日期間共有多少天,輸入一個日期,和一個整數(shù)n,查詢n天以后的日期的6個功能??筛鶕?jù)選擇輸入相應(yīng)的信息,顯示出日歷結(jié)果。此程序通過函數(shù)的調(diào)用實現(xiàn)了程序的運行,程序中運用了很多循環(huán)結(jié)構(gòu),來實現(xiàn)日期的顯示,

4、還運用了選擇結(jié)構(gòu),通過選擇判斷閏年、星期幾,輸出相應(yīng)的信息,還運用了指針,配合switch等語句顯示日期是星期幾。</p><p><b>  目錄</b></p><p>  1問題描述…………………………………………………………………………1</p><p>  1.1研究背景…………………………………………………………………… …… ……

5、……1</p><p>  1.2設(shè)計意義………………… ………………………………… ………………………………1</p><p>  2 概要設(shè)計……………………………………………………………………………2</p><p>  2.1系統(tǒng)模塊劃分及定義… ……………………………………………………………………2</p><p>  2.1.1

6、isleapyear函數(shù)…………… ……………………………………………………………2</p><p>  2.1.2 alldays函數(shù)………… ………………………………………………………………… 2</p><p>  2.1.3 days函數(shù)………………… …………………………………… ………………………2</p><p>  2.1.4 outputtoscr

7、een函數(shù)…… …………………………………………… …………………2</p><p>  2.1.5 outputtofile函數(shù)………… ………… …………………………… ……………………2</p><p>  2.1.6 onemonth函數(shù)…………… ……………… ……………………………………………2</p><p>  2.1.7 oneyear函數(shù)…………

8、… ……………………………………………………………… 2</p><p>  2.1.8 oneday函數(shù)……………… ………… …………………………………………………2</p><p>  2.1.9 thedayafterN函數(shù)……… ………………………………………………………………3</p><p>  2.1.10 mainmenu函數(shù)……… …………… …

9、……………………………………………… 3</p><p>  2.2 流程圖……………………… ………………………………………………………………4</p><p>  3 詳細設(shè)計……………………………………………………………………………5</p><p>  3.1 程序代碼………………………………… …………………………………………………5</p>

10、<p>  4 調(diào)試分析…………………………………………………………………… …… 15</p><p>  4.1 程序運行首頁………………… ………………………………………………………… 15</p><p>  4.2 選擇界面………………………………… ……………………………………………… 15</p><p>  4.3 選擇項1:查詢某年中的

11、某個月…………………………………………………………16</p><p>  4.3.1 輸入界面……………… …… ……… ……………………………………………… 16</p><p>  4.3.2 輸入值得出結(jié)果………… ………… …………… ………………………………… 16</p><p>  4.4選擇項2:查詢某年…………………… …………………………………

12、………………17</p><p>  4.5選擇項3:查詢某天是周幾……………… ………………………………………………18</p><p>  4.6選擇項4:查詢一段時間日期………… …………………………………………………18</p><p>  4.7選擇項5:查詢兩個日期間共有多少天…… ……………………………………………19</p><p

13、>  4.8 選擇項6:輸入一個日期,和一個整數(shù)n,查詢n天以后的日期… …………………19</p><p>  4.9 選擇項0:退出……………………………………… ……………………………………19</p><p>  5 總結(jié)……………………………………………… ……………………………… 20</p><p>  參考文獻………………… ………………………

14、………………………………… 21</p><p><b>  問題描述</b></p><p><b>  1.1研究背景</b></p><p>  隨著經(jīng)濟的不斷發(fā)展,人們對生活質(zhì)量的要求也在不斷地提高。 電子鐘已成為人們?nèi)粘I钪斜夭豢缮俚奈锲?,廣泛用于個人家庭以及車站、碼頭、劇院、辦公室等公共場所,給人們的生活、學

15、習、工作、娛樂帶來了極大的方便。隨著技術(shù)的發(fā)展,人們已不再滿足于鐘表原先簡單的計時功能,希望出現(xiàn)一些新的功能,諸如日歷的顯示、鬧鐘的應(yīng)用等,以帶來更大的方便,而所有這些,又都是以數(shù)字化的電子時鐘為基礎(chǔ)的。因此,研究實用電子時鐘及其擴展應(yīng)用,有著非?,F(xiàn)實的意義,具有很大的實用價值。因此廠家不斷的推出各種電子產(chǎn)品以滿足人們的需要,而電子萬年歷則順應(yīng)了人們對時間方面的要求。傳統(tǒng)的電子萬年歷功能較為單一,沒能達到人們生活中所需要的最基本要求,此

16、次年歷系統(tǒng)編譯旨在設(shè)計一款,功能較全面,實用性強的電子萬年歷。以滿足不同使用者的需求。</p><p><b>  1.2設(shè)計意義</b></p><p>  隨著電子技術(shù)的迅速發(fā)展,特別是隨著大規(guī)模集成電路 出現(xiàn),給人類生活帶來了根本性的變化。尤其是單片機技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進了千家萬戶。電子萬年歷的出現(xiàn)給人們的生活帶來了諸多方便。但傳統(tǒng)的電子萬年歷除顯示時間以外,

17、功能較為單一,逐漸失去了市場。新型電子萬年歷的產(chǎn)生 更會帶來更多方便,現(xiàn)在的發(fā)展方向以實用型,方便型,美觀型,精巧型為主。電子萬年歷作為電子類小設(shè)計不僅是市場上的寵兒,也是單片機實驗中一個很常用的題目。</p><p>  我國生產(chǎn)的電子萬年歷有很多種,總體上來說以研究多功能電子萬年歷為主,使萬年歷除了原有的顯示時間,日期等基本功能外,還具有鬧鈴,報警等功能。商家生產(chǎn)的電子萬年歷更從質(zhì)量,價格,實用上考慮,不斷的

18、改進電子萬年歷的設(shè)計,使其更加的具有市場。</p><p><b>  概要設(shè)計</b></p><p>  2.1系統(tǒng)模塊劃分及定義</p><p>  2.1.1 isleapyear函數(shù)</p><p>  判斷該年是否為閏年,判斷一年是否為閏年需要符合下面二者之一:1,能被4整除,但不能被100整除。2,能被40

19、0整除。滿足上述條件時,返回值為</p><p>  1,否則返回值為0。</p><p>  2.1.2 alldays函數(shù)</p><p>  判斷公元一月一號到公元某年某月的總天數(shù),利用for循環(huán),求出該月前幾個月的天數(shù)和,再加上輸入日期的天數(shù),就得到了公元一月一號到公元某年某月的總天數(shù)。</p><p>  2.1.3 days函數(shù)&

20、lt;/p><p>  判斷公元一月一號到公元前某年某月的總天數(shù),利用for循環(huán),求出該月前幾個月的天數(shù)和,再加上輸入日期的天數(shù),就得到了公元一月一號到公元前某年某月的總天數(shù)。</p><p>  2.1.4 outputtoscreen函數(shù)</p><p>  判斷某年某月某日的編號,在l==6與j=0;j<l+1;j++的情況下,根據(jù)k=1;k<=day

21、ofmonth[isleapyear(year)][month-1];k++,"%4d",k ,(i+k+1)%7==0得到與“日 一 二 三 四 五 六”相對應(yīng)天數(shù),并輸出到屏幕。</p><p>  2.1.5 outputtofile函數(shù)</p><p>  判斷某年某月某日的編號,在l==6與j=0;j<l+1;j++的情況下,根據(jù)k=1;k&

22、lt;=dayofmonth[isleapyear(year)][month-1];k++,"%4d",k ,(i+k+1)%7==0得到與“日 一 二 三 四 五 六”相對應(yīng)天數(shù),并輸出到文本。</p><p>  onemonth函數(shù)</p><p>  輸入年份,月份,通過allday和day函數(shù)再由outputtoscreen函數(shù)得出結(jié)果,從而形成每

23、七個數(shù)字一換行的效果,即形成月歷。 </p><p>  2.1.7 oneyear函數(shù)</p><p>  輸入年份,通過allday和day函數(shù)再由outputtoscreen函數(shù)得出結(jié)果,定義變量month,賦初值為1,利用for循環(huán),循環(huán)十二次,輸出各個月的月歷,從而顯現(xiàn)出該年的每一天達到年歷的效果。</p><p>  2.1.8 oneday函數(shù)&

24、lt;/p><p>  輸入年份,月份,日期,通過allday和day函數(shù)再由outputtoscreen函數(shù)得出結(jié)果,從而得到某天是周幾。</p><p>  2.1.9 thedayafterN函數(shù)</p><p>  輸入一個日期,再輸入要經(jīng)過的天數(shù),通過allday和day函數(shù),再由while語句得出查詢的年月日星期。</p><p> 

25、 2.1.10 mainmenu函數(shù)</p><p>  輸入要選擇的服務(wù)項:1: 查詢某年中的某個月;2: 查詢某年;3: 查詢某天是周幾;4: 查詢一段時間日期;5: 查詢兩個日期間共有多少天;6: 輸入一個日期,和一個整數(shù)n,查詢n天以后的日期;0: 退出。</p><p>  再利用switch語句: </p><p>  cas

26、e 1:onemonth();break;</p><p>  case 2:oneyear();break;</p><p>  case 3:oneday();break;</p><p>  case 4:somemonth();break;</p><p>  case 5:countof2date();break;</p>

27、;<p>  case 6:thedayafterN();break;</p><p><b>  case 0:</b></p><p><b>  {</b></p><p><b>  sign=1;</b></p><p><b>  break

28、;</b></p><p><b>  }</b></p><p>  鏈接到指定函數(shù),運行所使用程序,得出結(jié)果。</p><p><b>  2.2流程圖</b></p><p>  輸入選擇---選擇+回車鍵---輸入相應(yīng)信息+回車鍵---輸出結(jié)果.流程圖如下:</p>

29、<p><b>  3詳細設(shè)計</b></p><p>  3.1程序代碼(vc界面)</p><p>  #include "stdio.h"</p><p>  #include<stdio.h></p><p>  #include<string.h><

30、/p><p>  int dayofyear[2]={365,366};</p><p>  int dayofmonth[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},</p><p>  {31,29,31,30,31,30,31,31,30,31,30,31}};</p><p>  /*是否是

31、瑞年*/</p><p>  int isleapyear(int year)</p><p><b>  {</b></p><p>  if (0==year%100 && 0==year%400 || 0!=year%100 && 0==year%4)</p><p><b&

32、gt;  return 1;</b></p><p><b>  else</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  /*公元一月一號到公元某年某月的總天數(shù)*/</p>

33、<p>  int alldays(int y,int m)</p><p><b>  {</b></p><p>  int a,b,c=0;</p><p>  for (a=m;a>1;a--)</p><p>  c=c+dayofmonth[isleapyear(y)][a-2];</p

34、><p>  for (b=1;b<y;b++)</p><p>  c=c+dayofyear[isleapyear(b)];</p><p><b>  return c;</b></p><p><b>  }</b></p><p>  /*公元一月一號到公元前某年

35、某月的總天數(shù)*/</p><p>  int days(int y,int m)</p><p><b>  {</b></p><p>  int a,b,c=0;</p><p>  for (a=m;a<=12;a++)</p><p>  c=c+dayofmonth[isleapy

36、ear(y)][a];</p><p>  for (b=y+1;b<0;b++)</p><p>  c=c+dayofyear[isleapyear(b)];</p><p><b>  return c;</b></p><p><b>  }</b></p><p&

37、gt;<b>  /*輸出到屏幕*/</b></p><p>  void outputtoscreen(int year,int month,int i,int l)</p><p><b>  {</b></p><p><b>  int j,k;</b></p><p>

38、;  printf("****第%d年***第%d月****\n",year,month);</p><p>  printf(" 日 一 二 三 四 五 六\n");</p><p><b>  if (l==6)</b></p><p><b>  {</b><

39、;/p><p>  for (k=1;k<=dayofmonth[isleapyear(year)][month-1];k++)</p><p><b>  {</b></p><p>  printf("%4d",k);</p><p>  if ((i+k+1)%7==0)</p>

40、<p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

41、<p>  for (j=0;j<l+1;j++)</p><p>  printf(" ");</p><p>  for (k=1;k<=dayofmonth[isleapyear(year)][month-1];k++)</p><p><b>  {</b></p>&l

42、t;p>  printf("%4d",k);</p><p>  if ((i+k+1)%7==0)</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b></p>&

43、lt;p>  printf("\n\n");</p><p><b>  }</b></p><p><b>  /*輸出到文件*/</b></p><p>  void outputtofile(FILE *fp,int year,int month,int i,int l)</p>

44、<p><b>  {</b></p><p><b>  int j,k;</b></p><p>  fprintf(fp,"****第%d年***第%d月****\n",year,month);</p><p>  fprintf(fp,"日\t一\t二\t三\t四\t五\

45、t六\n");</p><p><b>  if (l==6)</b></p><p><b>  {</b></p><p>  for (k=1;k<=dayofmonth[isleapyear(year)][month-1];k++)</p><p><b>  {&

46、lt;/b></p><p>  fprintf(fp,"%d\t",k);</p><p>  if ((i+k+1)%7==0)</p><p>  fprintf(fp,"\n");</p><p><b>  }</b></p><p><

47、;b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  for (j=0;j<l+1;j++)</p><p>  fprintf(fp,"\t");</p><p

48、>  for (k=1;k<=dayofmonth[isleapyear(year)][month-1];k++)</p><p><b>  {</b></p><p>  fprintf(fp,"%d\t",k);</p><p>  if ((i+k+1)%7==0)</p><p>

49、;  fprintf(fp,"\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  fprintf(fp,"\n\n");</p><p><b>  }</b></p>

50、;<p>  /*查詢一個月日期*/</p><p>  int onemonth()</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  int i,l;</b></p>&l

51、t;p>  int choice;</p><p>  int year,month;</p><p>  system("cls");</p><p>  fp=fopen("d:\\onemonth.txt","w");</p><p>  printf("\n&

52、quot;);</p><p>  printf("\t請輸入要查詢的年份和月份:\n");</p><p>  scanf("%d%d",&year,&month);</p><p>  if (year>0)</p><p>  i=alldays(year,month);&l

53、t;/p><p>  else if (year<0)</p><p>  i=days(year,month);</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("error\n"

54、);</p><p>  return (0);</p><p><b>  }</b></p><p><b>  l=i%7;</b></p><p>  outputtoscreen(year,month,i,l); /*調(diào)用輸出到屏幕函數(shù)*/</p>&l

55、t;p>  printf("\t請選擇是不是要輸出到文本:\n");</p><p>  printf("1: 是!\n");</p><p>  printf("2: 否!\n");</p><p>  scanf("%d",&choice);</p&g

56、t;<p>  if(choice==1) </p><p><b>  /*輸入到文件*/</b></p><p><b>  {</b></p><p>  outputtofile(fp,year,month,i,l); /*調(diào)用輸出到文件函數(shù)*/</p><p>

57、;<b>  }</b></p><p><b>  else</b></p><p>  return (0);</p><p>  fclose(fp);</p><p><b>  getch();</b></p><p><b>  }

58、</b></p><p>  /*查詢一年的日期*/</p><p>  int oneyear()</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  int i,l;</b

59、></p><p>  int year,month;</p><p>  int choice;</p><p>  system("cls");</p><p>  fp=fopen("d:\\oneyear.txt","w");</p><p> 

60、 printf("\t請輸入要查詢的年份:\n");</p><p>  scanf("%d",&year);</p><p>  for (month=1;month<13;month++)</p><p><b>  {</b></p><p>  if (ye

61、ar>0)</p><p>  i=alldays(year,month);</p><p>  else if (year<0)</p><p>  i=days(year,month);</p><p><b>  else</b></p><p><b>  {<

62、/b></p><p>  printf("error\n");</p><p>  return (0);</p><p><b>  }</b></p><p><b>  l=i%7;</b></p><p>  outputtoscreen(

63、year,month,i,l); /*調(diào)用輸出到屏幕函數(shù)*/</p><p><b>  }</b></p><p>  printf("\n\n");</p><p>  printf("\t請選擇是不是要輸出到文本:\n");</p><p>  printf(&

64、quot;1: 是!\n");</p><p>  printf("2: 否!\n");</p><p>  scanf("%d",&choice);</p><p>  if (choice==1) /*輸入到文件*/</p><p&g

65、t;<b>  {</b></p><p>  for (month=1;month<13;month++)</p><p><b>  {</b></p><p>  if (year>0)</p><p>  i=alldays(year,month);</p><

66、;p>  else if (year<0)</p><p>  i=days(year,month);</p><p><b>  else</b></p><p><b>  {</b></p><p>  fprintf(fp,"error\n");</p&

67、gt;<p>  return (0);</p><p><b>  }</b></p><p><b>  l=i%7;</b></p><p>  outputtofile(fp,year,month,i,l); /*調(diào)用輸出到文件函數(shù)*/</p><p><b>

68、  }</b></p><p><b>  }</b></p><p><b>  else </b></p><p>  return (0);</p><p>  fclose(fp);</p><p><b>  getch();</b>

69、;</p><p><b>  }</b></p><p>  /*查詢某天是周幾*/</p><p>  int oneday()</p><p><b>  {</b></p><p><b>  int i,l;</b></p>&l

70、t;p>  int year,month,day;</p><p>  system("cls");</p><p>  printf("\n\n\t請輸入要查詢的日期\n");</p><p>  scanf("%d%d%d",&year,&month,&day);</

71、p><p>  if (year>0)</p><p>  i=alldays(year,month);</p><p>  else if (year<0)</p><p>  i=days(year,month);</p><p><b>  else</b></p>&

72、lt;p><b>  {</b></p><p>  printf("error\n");</p><p>  return (0);</p><p><b>  }</b></p><p>  l=(i+day)%7;</p><p>  prin

73、tf("\n\n\n\n\t您查詢的內(nèi)容結(jié)果是\n\n");</p><p>  printf("%d年%d月%d日是星期%d\n",year,month,day,l);</p><p><b>  getch();</b></p><p><b>  }</b></p>

74、<p>  /*查詢一段時間的*/</p><p>  int somemonth()</p><p><b>  {</b></p><p>  int year1,year2;</p><p>  int month1,month2;</p><p>  int year,mon

75、th;</p><p>  int i,j,k,l;</p><p>  int count,choice;</p><p><b>  int temp;</b></p><p><b>  FILE *fp;</b></p><p>  system("cls&

76、quot;);</p><p>  fp=fopen("d:\\somemonth.txt","w");</p><p>  printf("\n\n\t請輸入起始日期:\n");</p><p>  scanf("%d%d",&year1,&month1);</p

77、><p>  printf("\n\n\t請輸入終止日期:\n");</p><p>  scanf("%d%d",&year2,&month2);</p><p>  year=year1;</p><p>  month=month1;</p><p>  if

78、(year1>year2 || (year1==year2 && month1>month2))</p><p><b>  {</b></p><p>  temp=year1;</p><p>  year1=year2;</p><p>  year2=temp;</p>

79、<p>  temp=month1;</p><p>  month1=month2;</p><p>  month2=temp;</p><p><b>  }</b></p><p>  if (year2>=year1 && year1!=0 && year2!=0

80、)</p><p><b>  {</b></p><p>  if ( year1>0 && year2>0) /*以下為輸入到屏幕*/</p><p><b>  {</b></p><p>  i=alldays(year1,month1);<

81、/p><p>  j=alldays(year2,month2);</p><p><b>  count=i;</b></p><p>  for (k=0;k<j-count;k++)</p><p><b>  {</b></p><p><b>  l=i

82、%7;</b></p><p>  outputtoscreen(year1,month1++,i,l);</p><p>  i=alldays(year1,month1);</p><p>  if (year1==year2 && month1>=month2+1)</p><p><b>

83、  break;</b></p><p>  if (month1>12)</p><p><b>  {</b></p><p><b>  month1=1;</b></p><p><b>  year1++;</b></p><p&

84、gt;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("\t請選擇是不是要輸出到文本:\n");</p><p>  printf("1: 是!\n&q

85、uot;);</p><p>  printf("2: 否!\n");</p><p>  scanf("%d",&choice);</p><p>  if (choice==1)</p><p><b>  {</b></p><p>  

86、if ( year>0 && year2>0) /*以下為輸入到屏幕*/</p><p><b>  {</b></p><p>  i=alldays(year,month);</p><p>  j=alldays(year2,month2);</p><p><b&

87、gt;  count=i;</b></p><p>  for (k=0;k<j-count;k++)</p><p><b>  {</b></p><p><b>  l=i%7;</b></p><p>  outputtofile(fp,year,month++,i,l);

88、</p><p>  i=alldays(year,month);</p><p>  if (year==year2 && month>=month2+1)</p><p><b>  break;</b></p><p>  if (month>12)</p><p&

89、gt;<b>  {</b></p><p><b>  month=1;</b></p><p><b>  year++;</b></p><p><b>  }</b></p><p><b>  }</b></p>

90、<p><b>  }</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p><b>  else</b></p><p>

91、;<b>  {</b></p><p>  printf("error\n");</p><p>  return (0);</p><p><b>  }</b></p><p><b>  getch();</b></p><p&g

92、t;<b>  }</b></p><p>  void countof2date()</p><p><b>  {</b></p><p>  int y1,y2,d1,d2,m1,m2;</p><p>  int i,j,k,l=0;</p><p>  system

93、("cls");</p><p>  printf("\n\n");</p><p>  printf("\t請輸入一個日期:\n");</p><p>  scanf("%d%d%d",&y1,&m1,&d1);</p><p>  pr

94、intf("\t請輸入另一個日期:\n");</p><p>  scanf("%d%d%d",&y2,&m2,&d2);</p><p><b>  j=d1;</b></p><p><b>  k=d2;</b></p><p>

95、  for (m1;m1>1;m1--)</p><p>  j=j+dayofmonth[isleapyear(y1)][m1-1]; /*將日期1歸于一月一號*/</p><p>  for (;y1<y2;y1++)</p><p>  l=l+dayofyear[isleapyear(y1)];</p><p> 

96、 for (m2;m2>1;m2--)</p><p>  k=k+dayofmonth[isleapyear(y2)][m2-1]; /* 將日期2歸于一月一號*/</p><p>  i=l+k-j; /*計算兩年年初的日期之差*/</p><p>  printf("%d\n",i);</p><p>&l

97、t;b>  getch();</b></p><p><b>  }</b></p><p>  int thedayafterN()</p><p><b>  {</b></p><p>  int indays;</p><p><b>  

98、int i,l;</b></p><p>  int year,month,day;</p><p>  system("cls");</p><p>  printf("\n\n\t請輸入一個日期:\n");</p><p>  scanf("%d%d%d",&

99、year,&month,&day);</p><p>  printf("\t請輸入要經(jīng)過的天數(shù):\n");</p><p>  scanf("%d",&indays);</p><p>  if (year>0)</p><p>  i=alldays(year,mont

100、h);</p><p>  else if (year<0)</p><p>  i=days(year,month);</p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("error\n&

101、quot;);</p><p>  return (0);</p><p><b>  }</b></p><p>  l=(i+indays+day)%7;</p><p>  while (indays>=dayofyear[isleapyear(year)])</p><p><

102、b>  {</b></p><p>  indays-=dayofyear[isleapyear(year++)];</p><p><b>  }</b></p><p>  while (indays>=dayofmonth[isleapyear(year)][month])</p><p>

103、<b>  {</b></p><p>  indays-=dayofmonth[isleapyear(year)][month++];</p><p><b>  }</b></p><p>  printf("\n\n\n\n\t您查詢的內(nèi)容結(jié)果是\n\n");</p><p&g

104、t;  printf("****%d年***%d月***%d日***星期%d****",year,month,indays+day,l);</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  int mainmenu()</p>

105、<p><b>  {</b></p><p>  int choice;</p><p>  system("cls");</p><p>  printf("\n");</p><p>  printf(" \t\t請輸入要選擇的服務(wù)項:\n\n"

106、;);</p><p>  printf("** 1: 查詢某年中的某個月\n");</p><p>  printf("** 2: 查詢某年\n");</p><p>  printf("** 3: 查詢某天是周幾\n");</p><p>  printf(&q

107、uot;** 4: 查詢一段時間日期\n");</p><p>  printf("** 5: 查詢兩個日期間共有多少天\n");</p><p>  printf("** 6: 輸入一個日期,和一個整數(shù)n,查詢n天以后的日期\n");</p><p>  printf("** 0:

108、 退出\n\n\n\n\n\n");</p><p>  printf("您要查詢的內(nèi)容是:");</p><p>  scanf("%d",&choice);</p><p>  return (choice);</p><p><b>  }</b></

109、p><p>  void choose()</p><p><b>  {</b></p><p>  int sign=0;</p><p><b>  for(;;)</b></p><p><b>  {</b></p><p>

110、;  system("cls");</p><p>  switch(mainmenu())</p><p><b>  {</b></p><p>  case 1:onemonth();break;</p><p>  case 2:oneyear();break;</p><

111、p>  case 3:oneday();break;</p><p>  case 4:somemonth();break;</p><p>  case 5:countof2date();break;</p><p>  case 6:thedayafterN();break;</p><p><b>  case 0:&l

112、t;/b></p><p><b>  {</b></p><p><b>  sign=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>

113、;  }</b></p><p>  if(sign==1)</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()<

114、/p><p><b>  {</b></p><p>  printf("\n\n\n\n\n\n\n\t\t </p><p>  **************************************\n\n");</p><p>  printf("\t\t\t 歡迎使用

115、萬年歷查詢器!!\n\n");</p><p>  printf("\t\t **************************************\n\n\n\n");</p><p>  printf("\t\t\t\t 請按回車鍵繼續(xù)!!\n");</p><p>  getchar();&l

116、t;/p><p><b>  choose();</b></p><p><b>  }</b></p><p><b>  4 調(diào)試分析</b></p><p>  4.1 程序運行首頁</p><p>  圖4.1 運行首頁圖示</p>&

117、lt;p><b>  4.2 選擇界面</b></p><p>  圖4.2 選擇界面圖示</p><p>  4.3選擇項1:查詢某年中的某個月</p><p><b>  4.3.1輸入界面</b></p><p>  圖4.3.1 輸入界面圖示</p><p> 

118、 4.3.2 輸出界面</p><p>  圖4.3.2查詢某年中的某個月圖示</p><p>  4.4 選擇項2: 查詢某年</p><p>  圖4.4 查詢某年圖示</p><p>  4.5選擇項3:查詢某天是周幾</p><p>  圖4.5 查詢某天是周幾圖示</p><p> 

119、 4.6選擇項4:查詢一段時間日期</p><p>  圖4.6 查詢一段時間日期圖示</p><p>  4.7選擇項5:查詢兩個日期間共有多少天</p><p>  圖4.7查詢兩個日期間共有多少天圖示</p><p>  4.8 選擇項6: 輸入一個日期,和一個整數(shù)n,查詢n天以后的日期</p><p>  圖

120、4.8 查詢n天以后的日期圖示</p><p>  4.9 選擇項0:退出</p><p>  輸入0,回車退出程序。</p><p><b>  5 總結(jié)</b></p><p>  此次課程設(shè)計共用了一周的時間,過程有些艱難,遇到了很多困難,也得到了很多快樂,今天終于完成了,感觸很多。以前,老師、學長總是說C語言是編

121、程的基礎(chǔ),要想在程序方面做出成績就必須學好C語言,我雖然一直記著,但并沒有真正意識到這門語言的重要,但為了完成這次課程設(shè)計,查了很多關(guān)于這門語言的知識,終于理解了它的重要性。</p><p>  本次課程設(shè)計是我第一次通過自己的實踐對書本上的知識進行了與生活相關(guān)的運用。在這個程序中,主要應(yīng)用了這學期所學習的循環(huán),條件語句,數(shù)組以及調(diào)用函數(shù)。這些知識的應(yīng)用使我對課本內(nèi)容的認識得到了加深。</p>&l

122、t;p>  在編寫程序的過程中,也出現(xiàn)了很多錯誤。比如程序語句錯誤導致檢測時連續(xù)報錯;函數(shù)語句編寫錯誤導致輸出結(jié)果與實際不符等。出現(xiàn)這些情況后,通過對一些新知識的學習和對網(wǎng)上相關(guān)資料的閱覽,我發(fā)現(xiàn)了自己的程序的問題所在并進行了改正。最后得到了正確的結(jié)果。</p><p><b>  參考文獻</b></p><p>  楊文君,楊柳.C語言程序設(shè)計教程[M].清

123、華大學出版社. 2010.3</p><p>  譚浩強. C語言程序設(shè)計教程[M]. 清華大學出版社. 2007.6</p><p>  http://jpkc.szpt.edu.cn/cyy/ 《C語言程序設(shè)計》精品課程</p><p>  [4]譚浩強.C程序設(shè)計教程.北京:清華大學出版社.2007.07</p><p>  [5]

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論