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

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計</b></p><p>  課程名稱: C語言 </p><p>  設(shè)計課題: 日期工具

2、 </p><p>  專業(yè): 班級: </p><p>  姓名: 學(xué)號:

3、 </p><p>  評分: 指導(dǎo)老師(簽字): </p><p>  20 年 月 日</p

4、><p><b>  目錄:</b></p><p>  要求分析.........................................................................</p><p>  概要設(shè)計......................................................

5、..................</p><p>  詳細設(shè)計.........................................................................</p><p>  調(diào)試分析.........................................................................&l

6、t;/p><p>  用戶使用說明.................................................................</p><p>  6.測試結(jié)果.........................................................................</p><p>  7.源

7、程序.............................................................................</p><p><b>  要求分析:</b></p><p>  日期工具(難度系數(shù):A)</p><p><b>  要求實現(xiàn)以下功能:</b></p&g

8、t;<p><b>  創(chuàng)建日期</b></p><p><b>  日期差計算</b></p><p>  判斷某個日期為星期幾</p><p><b>  按格式輸出日期</b></p><p><b>  系統(tǒng)變量(基本)</b><

9、;/p><p>  Struct date{</p><p><b>  Int year,</b></p><p>  Int month,</p><p><b>  Int day,</b></p><p><b>  Int hour,</b><

10、;/p><p>  Int minute,</p><p>  Int second</p><p><b>  }</b></p><p>  (2) 待實現(xiàn)的方法(基本)</p><p><b>  2.概要設(shè)計:</b></p><p>  a.數(shù)據(jù)

11、類型:int,F(xiàn)ILE。</p><p>  b.標準函數(shù)名稱和自定義函數(shù)名稱:</p><p><b>  scanf函數(shù)</b></p><p><b>  printf函數(shù)</b></p><p><b>  gettime函數(shù)</b></p><p&

12、gt;  int get_weekday(struct dat);</p><p>  int datdiff(struct dat);</p><p>  int compare(struct dat,struct dat);</p><p>  int runnian(int x);</p><p><b>  3.詳細設(shè)計:&

13、lt;/b></p><p><b>  4.調(diào)試分析:</b></p><p><b>  a.遇到的問題:</b></p><p>  switch語句中漏了break,</p><p>  子函數(shù)中漏了右括號,</p><p>  自定義的結(jié)構(gòu)體struct da

14、te與時間函數(shù)的date同名導(dǎo)致沖突</p><p>  創(chuàng)建文件時指針fp寫錯</p><p><b>  b.解決方案:</b></p><p>  對應(yīng)地方加上break和括號</p><p>  把自定義的結(jié)構(gòu)體名稱改為struct dat</p><p>  統(tǒng)一并修改文件指針fp<

15、;/p><p><b>  c.經(jīng)驗與體會:</b></p><p>  要熟練地掌握c語言開發(fā)環(huán)境,明確函數(shù)與函數(shù)間的調(diào)用</p><p>  寫代碼時盡量認真避免出現(xiàn)小錯誤</p><p>  學(xué)習(xí)獨立完成程序的編寫過程,在修改和整理中了解c語言中常常出現(xiàn)的錯誤,并找到其改正方法</p><p>

16、  只有多寫代碼才可以讓自己真正學(xué)好c語言</p><p><b>  5.用戶使用說明:</b></p><p>  a..編譯完了之后,首先屏幕上會顯示當(dāng)前時間,并提示用戶請輸入一個日期包括年月日時分秒</p><p>  b.輸入六個數(shù)據(jù)后它會以規(guī)定格式輸出剛才所輸入的日期,并顯示剛才輸入日期為星期幾,同時提示用戶輸入兩個日期,即十二個數(shù)

17、據(jù)。</p><p>  c.屏幕上會顯示這兩個日期的差,同時提示用戶再一次輸入兩個日期,即十二個數(shù)據(jù)。</p><p>  d.運行后屏幕上會顯示兩個日期的比較結(jié)果</p><p>  e.之后,文件進行保存,可以顯示剛才的操作。</p><p><b>  6.測試結(jié)果:</b></p><p&g

18、t;<b>  7.源程序:</b></p><p>  #include<stdio.h></p><p>  #include<time.h></p><p>  #include<dos.h></p><p>  #include<math.h></p>

19、<p>  struct dat</p><p><b>  {</b></p><p><b>  int year;</b></p><p>  int month;</p><p><b>  int day;</b></p><p>

20、<b>  int hour;</b></p><p>  int minute;</p><p>  int second;</p><p><b>  };</b></p><p>  int get_weekday(struct dat);</p><p>  int

21、datdiff(struct dat);</p><p>  int compare(struct dat,struct dat);</p><p>  int runnian(int x);</p><p>  void main()</p><p><b>  {</b></p><p>&l

22、t;b>  int y;</b></p><p>  int p,q,o,m,n,l;</p><p><b>  int z;</b></p><p>  struct dat a;</p><p>  struct dat dat1;</p><p>  struct dat

23、 dat2;</p><p>  struct dat dat3;</p><p>  struct dat dat4;</p><p>  struct time dt,dt2;</p><p><b>  FILE *fp;</b></p><p>  if((fp=fopen("y

24、ulewen.txt","a+"))==NULL)</p><p>  {printf("cannot open file sum!!! strike any key exit");</p><p><b>  getch();</b></p><p><b>  exit(1);}&

25、lt;/b></p><p>  gettime(&dt);</p><p>  printf("current time is %d %d %d\n",dt.ti_hour,dt.ti_min,dt.ti_sec);</p><p>  printf("please input six numbers!\n")

26、; scanf("%d%d%d%d%d%d",&a.year,&a.month,&a.day,&a.hour,&a.minute,&a.second); printf("the date you input is\n");</p><p>  fprintf(fp,"the date you input is\n&

27、quot;);</p><p>  printf("%dnian,%dyue,%dri,%ddian,%dfen,%dmiao\n",a.year,a.month,a.day,a.hour,a.minute,a.second);</p><p>  fprintf(fp,"%d,%d,%d,%d,%d,%d\n",a.year,a.month,a.d

28、ay,a.hour,a.minute,a.second);</p><p>  y=get_weekday(a);</p><p>  printf("the date is xingqi %d\n",y);</p><p>  printf("please input twelve numbers!to caculate their

29、distance!\n");</p><p>  scanf("%d%d%d%d%d%d,%d%d%d%d%d%d",&dat1.year,&dat1.month,&dat1.day,&dat1.hour,&dat1.minute,&dat1.second,&dat2.year,&dat2.month,&dat

30、2.day,&dat2.hour,&dat2.minute,&dat2.second);</p><p>  fprintf(fp,"please input twelve numbers!to caculate their distance!\n");</p><p>  fprintf(fp,"%d,%d,%d,%d,%d,%d

31、\n%d,%d,%d,%d,%d,%d\n",dat1.year,dat1.month,dat1.day,dat1.hour,dat1.minute,dat1.second,dat2.year,dat2.month,dat2.day,dat2.hour,dat2.minute,dat2.second);</p><p>  p=datdiff(dat1);</p><p> 

32、 q=datdiff(dat2);</p><p>  o=fabs(p-q);</p><p>  m=fabs(dat1.hour-dat2.hour);</p><p>  n=fabs(dat1.minute-dat2.minute);</p><p>  l=fabs(dat1.second-dat2.second);</p&

33、gt;<p>  printf("the distance is %d tian,%dxiaoshi,%dfenzhong,%dmiao\n",o,m,n,l);</p><p>  printf("please input twelve numbers again!in order to compare which is big!\n");</p>

34、;<p>  scanf("%d%d%d%d%d%d,%d%d%d%d%d%d",&dat3.year,&dat3.month,&dat3.day,&dat3.hour,&dat3.minute,&dat3.second,&dat4.year,&dat4.month,&dat4.day,&dat4.hour,&da

35、t4.minute,&dat4.second);</p><p>  fprintf(fp,"please input twelve numbers again!in order to compare which is big!\n");</p><p>  fprintf(fp,"%d,%d,%d,%d,%d,%d\n%d,%d,%d,%d,%d,

36、%d\n",dat3.year,dat3.month,dat3.day,dat3.hour,dat3.minute,dat3.second,dat4.year,dat4.month,dat4.day,dat4.hour,dat4.minute,dat4.second);</p><p>  z=compare(dat3,dat4);</p><p><b>  if

37、(z>0)</b></p><p>  printf("qian zhe da yu hou zhe!\n");</p><p>  else if(z<0)</p><p>  printf("qian zhe xiao yu hou zhe!\n");</p><p><

38、;b>  else</b></p><p>  printf("liang zhe xiang tong!");</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  int get_weekday(struct dat a)<

39、/p><p><b>  {</b></p><p>  int A,B,D,E,F,G,i;</p><p>  int C=0,s=0;</p><p>  if(a.year==2000)</p><p><b>  {</b></p><p>  

40、switch(a.month)</p><p><b>  {</b></p><p>  case 1:s=s+a.day-1;break;</p><p>  case 2:s=s+30+a.day;break;</p><p>  case 3:s=s+30+29+a.day;break;</p>&

41、lt;p>  case 4:s=s+30+29+31+a.day;break;</p><p>  case 5:s=s+30+29+31+30+a.day;break;</p><p>  case 6:s=s+30+29+31+30+31+a.day;break;</p><p>  case 7:s=s+30+29+31+30+31+30+a.day;b

42、reak;</p><p>  case 8:s=s+30+29+31+30+31+30+31+a.day;break;</p><p>  case 9:s=s+30+29+31+30+31+30+31+31+a.day;break;</p><p>  case 10:s=s+30+29+31+30+31+30+31+31+30+a.day;break;<

43、/p><p>  case 11:s=s+30+29+31+30+31+30+31+31+30+31+a.day;break;</p><p>  case 12:s=s+30+29+31+30+31+30+31+31+30+31+30+a.day;break;</p><p><b>  }</b></p><p><

44、;b>  A=s%7;</b></p><p><b>  switch(A)</b></p><p><b>  {</b></p><p>  case 0:B=6;break;</p><p>  case 1:B=7;break;</p><p> 

45、 case 2:B=1;break;</p><p>  case 3:B=2;break;</p><p>  case 4:B=3;break;</p><p>  case 5:B=4;break;</p><p>  case 6:B=5;break;</p><p><b>  }</b>

46、;</p><p><b>  return B;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  for(i=2000;i&

47、lt;a.year;i++)</p><p><b>  {</b></p><p>  if(runnian(i)==1)</p><p><b>  C=C+366;</b></p><p><b>  else</b></p><p><b&

48、gt;  C=C+365;</b></p><p><b>  }</b></p><p><b>  D=C%7;</b></p><p><b>  switch(D)</b></p><p><b>  {</b></p>

49、<p>  case 0:E=6;break;</p><p>  case 1:E=7;break;</p><p>  case 2:E=1;break;</p><p>  case 3:E=2;break;</p><p>  case 4:E=3;break;</p><p>  case 5:E=

50、4;break;</p><p>  case 6:E=5;break;</p><p><b>  }</b></p><p>  if(runnian(a.year)==1)</p><p><b>  {</b></p><p>  switch(a.month)<

51、;/p><p><b>  {</b></p><p>  case 1:F=a.day-1;break;</p><p>  case 2:F=30+a.day;break;</p><p>  case 3:F=30+29+a.day;break;</p><p>  case 4:F=30+29

52、+31+a.day;break;</p><p>  case 5:F=30+29+31+30+a.day;break;</p><p>  case 6:F=30+29+31+30+31+a.day;break;</p><p>  case 7:F=30+29+31+30+31+30+a.day;break;</p><p>  case

53、 8:F=30+29+31+30+31+30+31+a.day;break;</p><p>  case 9:F=30+29+31+30+31+30+31+31+a.day;break;</p><p>  case 10:F=30+29+31+30+31+30+31+31+30+a.day;break;</p><p>  case 11:F=30+29+31+

54、30+31+30+31+31+30+31+a.day;break;</p><p>  case 12:F=30+29+31+30+31+30+31+31+30+31+30+a.day;break;</p><p><b>  }</b></p><p><b>  G=F%7;</b></p><p&

55、gt;<b>  switch(G)</b></p><p><b>  {</b></p><p>  case 0:return E;</p><p>  case 1:if(E+G==7)</p><p><b>  return 7;</b></p>&l

56、t;p><b>  else</b></p><p>  return ((E+G)%7);</p><p>  case 2:if(E+G==7)</p><p><b>  return 7;</b></p><p><b>  else</b></p>

57、<p>  return ((E+G)%7);</p><p>  case 3:if(E+G==7)</p><p><b>  return 7;</b></p><p><b>  else</b></p><p>  return ((E+G)%7);</p>&l

58、t;p>  case 4:if(E+G==7)</p><p><b>  return 7;</b></p><p><b>  else</b></p><p>  return ((E+G)%7);</p><p>  case 5:if(E+G==7)</p><p

59、><b>  return 7;</b></p><p><b>  else</b></p><p>  return ((E+G)%7);</p><p>  case 6:if(E+G==7)</p><p><b>  return 7;</b></p>

60、;<p><b>  else</b></p><p>  return ((E+G)%7);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p>

61、<p><b>  {</b></p><p>  switch(a.month)</p><p><b>  {</b></p><p>  case 1:F=a.day-1;break;</p><p>  case 2:F=30+a.day;break;</p>&l

62、t;p>  case 3:F=30+28+a.day;break;</p><p>  case 4:F=30+28+31+a.day;break;</p><p>  case 5:F=30+28+31+30+a.day;break;</p><p>  case 6:F=30+28+31+30+31+a.day;break;</p><

63、p>  case 7:F=30+28+31+30+31+30+a.day;break;</p><p>  case 8:F=30+28+31+30+31+30+31+a.day;break;</p><p>  case 9:F=30+28+31+30+31+30+31+31+a.day;break;</p><p>  case 10:F=30+28+31

64、+30+31+30+31+31+30+a.day;break;</p><p>  case 11:F=30+28+31+30+31+30+31+31+30+31+a.day;break;</p><p>  case 12:F=30+28+31+30+31+30+31+31+30+31+30+a.day;break;</p><p><b>  }<

65、;/b></p><p><b>  G=F%7;</b></p><p><b>  switch(G)</b></p><p><b>  {</b></p><p>  case 0:return E;</p><p>  case 1:if

66、(E+G==7)</p><p><b>  return 7;</b></p><p><b>  else</b></p><p>  return ((E+G)%7);</p><p>  case 2:if(E+G==7)</p><p><b>  ret

67、urn 7;</b></p><p><b>  else</b></p><p>  return ((E+G)%7);</p><p>  case 3:if(E+G==7)</p><p><b>  return 7;</b></p><p><b&

68、gt;  else</b></p><p>  return ((E+G)%7);</p><p>  case 4:if(E+G==7)</p><p><b>  return 7;</b></p><p><b>  else</b></p><p>  r

69、eturn ((E+G)%7);</p><p>  case 5:if(E+G==7)</p><p><b>  return 7;</b></p><p><b>  else</b></p><p>  return ((E+G)%7);</p><p>  case

70、 6:if(E+G==7)</p><p><b>  return 7;</b></p><p><b>  else</b></p><p>  return ((E+G)%7);</p><p><b>  }</b></p><p><b&

71、gt;  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  int datdiff(struct dat a)</p><p><b>  {</b></p><p><b&

72、gt;  int i;</b></p><p><b>  int c=0;</b></p><p>  for(i=0;i<a.year;i++)</p><p><b>  {</b></p><p>  if(runnian(i)==1)</p><p&g

73、t;<b>  c=c+366;</b></p><p><b>  else</b></p><p><b>  c=c+365;</b></p><p><b>  }</b></p><p>  if(runnian(a.year)==1)</

74、p><p><b>  {</b></p><p>  switch(a.month)</p><p><b>  {</b></p><p>  case 1:c=c+a.day;break;</p><p>  case 2:c=c+31+a.day;break;</p

75、><p>  case 3:c=c+31+29+a.day;break;</p><p>  case 4:c=c+31+29+31+a.day;break;</p><p>  case 5:c=c+31+29+31+30+a.day;break;</p><p>  case 6:c=c+31+29+31+30+31+a.day;break;

76、</p><p>  case 7:c=c+31+29+31+30+31+30+a.day;break;</p><p>  case 8:c=c+31+29+31+30+31+30+31+a.day;break;</p><p>  case 9:c=c+31+29+31+30+31+30+31+31+a.day;break;</p><p&g

77、t;  case 10:c=c+31+29+31+30+31+30+31+31+30+a.day;break;</p><p>  case 11:c=c+31+29+31+30+31+30+31+31+30+31+a.day;break;</p><p>  case 12:c=c+31+29+31+30+31+30+31+31+30+31+30+a.day;break;</p&g

78、t;<p><b>  }</b></p><p><b>  return c;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b>&l

79、t;/p><p>  switch(a.month)</p><p><b>  {</b></p><p>  case 1:c=c+a.day;break;</p><p>  case 2:c=c+31+a.day;break;</p><p>  case 3:c=c+31+28+a.day;

80、break;</p><p>  case 4:c=c+31+28+31+a.day;break;</p><p>  case 5:c=c+31+28+31+30+a.day;break;</p><p>  case 6:c=c+31+28+31+30+31+a.day;break;</p><p>  case 7:c=c+31+28+

81、31+30+31+30+a.day;break;</p><p>  case 8:c=c+31+28+31+30+31+30+31+a.day;break;</p><p>  case 9:c=c+31+28+31+30+31+30+31+31+a.day;break;</p><p>  case 10:c=c+31+28+31+30+31+30+31+31+

82、30+a.day;break;</p><p>  case 11:c=c+31+28+31+30+31+30+31+31+30+31+a.day;break;</p><p>  case 12:c=c+31+28+31+30+31+30+31+31+30+31+30+a.day;break;</p><p><b>  }</b></

83、p><p><b>  return c;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  int compare(struct dat dat3,struct dat dat4)</p><p>

84、<b>  {</b></p><p>  if(dat3.year>dat4.year)</p><p><b>  return 1;</b></p><p>  else if(dat3.year<dat4.year)</p><p>  return -1;</p>

85、<p>  else if(dat3.month>dat4.month)</p><p><b>  return 1;</b></p><p>  else if(dat3.month<dat4.month)</p><p>  return -1;</p><p>  else if(dat3

86、.day>dat4.day)</p><p><b>  return 1;</b></p><p>  else if(dat3.day<dat4.day)</p><p>  return -1;</p><p>  else if(dat3.hour>dat4.hour)</p>&

87、lt;p><b>  return 1;</b></p><p>  else if(dat3.hour<dat4.hour)</p><p>  return -1;</p><p>  else if(dat3.minute>dat4.minute)</p><p><b>  retur

88、n 1;</b></p><p>  else if(dat3.minute<dat4.minute)</p><p>  return -1;</p><p>  else if(dat3.second>dat4.second)</p><p><b>  return 1;</b></p

89、><p>  else if(dat3.second<dat4.second)</p><p>  return -1;</p><p><b>  else</b></p><p><b>  return 0;</b></p><p><b>  }</

90、b></p><p>  int runnian(int x)</p><p><b>  {</b></p><p>  if((x%4==0&&x%100!=0)||(x%100==0&&x%400==0))</p><p><b>  return 1;</b&

溫馨提示

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

評論

0/150

提交評論