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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  《高級(jí)語言程序設(shè)計(jì)》</p><p><b>  課程設(shè)計(jì)說明書</b></p><p>  設(shè)計(jì)題目:萬年歷程序設(shè)計(jì)</p><p><b>  班 級(jí): </b></p><p>  學(xué) 號(hào): </p><p>  姓 名:

2、 </p><p><b>  完成日期: </b></p><p><b>  一:課程設(shè)計(jì)目的</b></p><p>  《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)是電子信息、光信息專業(yè)以及物理學(xué)專業(yè)集中實(shí)踐性環(huán)節(jié)之一,是學(xué)習(xí)完《高級(jí)語言程序設(shè)計(jì)》課程后進(jìn)行的一次全面的綜合練習(xí),其目的在于加深對(duì)程序設(shè)計(jì)基本知識(shí)的理

3、解,掌握使用C語言進(jìn)行模塊化軟件設(shè)計(jì)的基本方法,提高通過編寫程序解決實(shí)際問題的能力,為今后從事設(shè)計(jì)工作和后續(xù)各種編程課程的學(xué)習(xí)打好基礎(chǔ)。</p><p><b>  二:需求分析</b></p><p><b>  題目:</b></p><p>  要求:輸入年份和月份,自動(dòng)輸出該月的日歷,清楚的顯示每一天是星期幾,輸入

4、年份,月份和具體日期能確定某天是星期幾。</p><p>  萬年歷是采用數(shù)字電路實(shí)現(xiàn)對(duì).時(shí),分,秒.數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車站, 碼頭辦公室等公共場(chǎng)所,成為人們常生活中不可少的必需品,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。</p><p>  

5、諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,但是所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究萬年歷及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),對(duì)于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、周日、時(shí)、分、秒等信息,還具有時(shí)間校準(zhǔn)等功能。</p><p>  綜上所述此萬年歷具

6、有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。</p><p><b>  三:概要設(shè)計(jì)</b></p><p><b>  1-判斷是否為閏年</b></p><p>  計(jì)算所輸入的年份是否可被4整除,若不能被整除,為平年。若可被4整除,計(jì)算此年份能否被1

7、00整除,不能被100整除則為閏年。既能被4整除,也能被100整除的年份,若也能被400整除,則為閏年,否則為平年。閏年366天,平年365天</p><p><b>  2-主要設(shè)計(jì)思路</b></p><p><b>  四:詳細(xì)設(shè)計(jì)</b></p><p>  源程序:#include <stdio.h>

8、</p><p>  #include <stdlib.h></p><p>  void DayOfWeek() </p><p><b>  { </b></p><p>  int rtnDay;</p><p>  int y,m,d;</p><p

9、><b>  char ch;</b></p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  printf("請(qǐng)輸入年月日(xxxx,xx,xx): ");</p><p>  scanf(

10、"%d,%d,%d", &y, &m, &d);</p><p>  fflush(stdin);</p><p>  rtnDay = (3*y-(7*(y+(m+9)/12))/4+(23*m)/9+d+17-((y+(m<3?-1:0))/100+1)*3/4) % 7;</p><p>  printf(&q

11、uot;%04d年%02d月%02d日 是 星期%d\n", y, m, d, rtnDay?rtnDay:7);</p><p>  printf("繼續(xù)查詢(y/n)");</p><p>  ch = getchar();</p><p>  if(ch != 'y' && ch != 'Y

12、')</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void GetMonth(int D, int md, int n)</p><p>&

13、lt;b>  {</b></p><p>  int N ,m,d,y,c,Wd;</p><p>  int i,maxday,i1; </p><p>  if(md>=13||md<=0) </p><p>  printf("HAVE WRONG!"); </p><

14、;p><b>  else</b></p><p><b>  {</b></p><p>  for(i1=0;;md++,i1++) </p><p><b>  {</b></p><p>  if(md==0) </p><p><b

15、>  { </b></p><p><b>  md=12; </b></p><p><b>  D-=1; </b></p><p><b>  } </b></p><p><b>  else </b></p>&l

16、t;p>  if(md==13) </p><p><b>  {</b></p><p><b>  md=1; </b></p><p><b>  D+=1; </b></p><p><b>  } </b></p><p

17、><b>  m=md; </b></p><p>  printf("\n============%d,%2d============\n",D,md); </p><p>  if(0<m&&m<=12) </p><p><b>  { </b></p>

18、;<p>  switch(m) </p><p><b>  { </b></p><p>  case 1:maxday=31;break; </p><p>  case 2:if(D%4==0&&D%100!=0||D%400==0) </p><p>  maxday=29; &l

19、t;/p><p><b>  else </b></p><p>  maxday=28; </p><p><b>  break; </b></p><p>  case 3:maxday=31;break; </p><p>  case 4:maxday=30;break

20、; </p><p>  case 5:maxday=31;break; </p><p>  case 6:maxday=30;break; </p><p>  case 7:maxday=31;break; </p><p>  case 8:maxday=31;break; </p><p>  case 9:

21、maxday=30;break; </p><p>  case 10:maxday=31;break; </p><p>  case 11:maxday=30;break; </p><p>  case 12:maxday=31;break; </p><p>  default:printf("HAVE WRONG"

22、;); </p><p><b>  } </b></p><p>  if(0<m&&m<=2) </p><p><b>  { </b></p><p><b>  N=D-1; </b></p><p><b&g

23、t;  m=m+10; </b></p><p><b>  } </b></p><p><b>  else </b></p><p><b>  { </b></p><p><b>  N=D; </b></p><

24、p><b>  m=m-2; </b></p><p><b>  } </b></p><p><b>  c=N/100; </b></p><p><b>  y=N%100; </b></p><p>  Wd=((1+(13*m-1)/5+

25、y+y/4+c/4-2*c)%7+7)%7; </p><p>  printf(" SUN MOU TUE WED TUR FRI SAT\n"); </p><p>  for(i=0;i<Wd;i++) </p><p>  printf("%4c",' '); </p><p&

26、gt;  for(d=1;d<=maxday;d++) </p><p><b>  { </b></p><p>  printf("%4d",d); </p><p>  Wd=(Wd+1)%7; </p><p>  if(Wd==0) </p><p>  pri

27、ntf("\n"); </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  else </b></p><p>  printf("HAVE WRONG!"); </p&g

28、t;<p>  if(i1==n) </p><p><b>  break; </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><

29、;p>  void MonthOfYear()</p><p><b>  {</b></p><p><b>  char ch;</b></p><p><b>  int y, m;</b></p><p><b>  while (1)</b>

30、;</p><p><b>  {</b></p><p>  printf("請(qǐng)輸入年月(xxxx,xx): ");</p><p>  scanf("%d,%d", &y, &m);</p><p>  fflush(stdin);</p><

31、;p>  GetMonth(y, m, 0);</p><p>  printf("\n繼續(xù)查詢(y/n)");</p><p>  ch = getchar();</p><p>  if(ch != 'y' && ch != 'Y')</p><p><b&g

32、t;  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void GetYear()</p><p><b>  {</b></p><p><b>  ch

33、ar ch;</b></p><p><b>  int y;</b></p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  printf("請(qǐng)輸入年: ");</p>

34、<p>  scanf("%d", &y);</p><p>  fflush(stdin);</p><p>  GetMonth(y, 1, 11);</p><p>  printf("\n繼續(xù)查詢(y/n)");</p><p>  ch = getchar();</p&

35、gt;<p>  if(ch != 'y' && ch != 'Y')</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

36、;  int main() </p><p><b>  {</b></p><p><b>  char ch;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>

37、;  system("cls");</p><p>  printf("1.查詢星期\n");</p><p>  printf("2.查詢?cè)路輁n");</p><p>  printf("3.顯示一年\n");</p><p>  printf("4

38、.退出程序\n");</p><p>  ch = getchar();</p><p>  fflush(stdin);</p><p>  switch(ch)</p><p><b>  {</b></p><p><b>  case '1':</

39、b></p><p>  DayOfWeek();</p><p><b>  break;</b></p><p><b>  case '2':</b></p><p>  MonthOfYear();</p><p><b>  brea

40、k;</b></p><p><b>  case '3':</b></p><p>  GetYear();</p><p><b>  break;</b></p><p><b>  case '4':</b></p>

41、;<p>  printf("是否退出(y/n)");</p><p>  ch = getchar();</p><p>  fflush(stdin);</p><p>  if(ch == 'y' || ch == 'Y')</p><p><b>  exit

42、(0);</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>

43、;  五:運(yùn)行效果及分析</b></p><p><b>  1 登錄界面</b></p><p>  輸入3,通過輸入年份可顯示一年每個(gè)月份的日歷;輸入2,通過輸入年份和月份(中間以空格分開)可顯示該月的日歷;若輸入1,通過輸入年份月份和日期(中間以逗號(hào)分開)可顯示該日的星期;輸入4,則退出查詢系統(tǒng)</p><p><b&g

44、t;  2查詢星期</b></p><p>  輸入1后回車,然后輸入具體的年月日可查出該天為星期幾</p><p><b>  3查詢?cè)職v</b></p><p>  輸入2回車,然后輸入年月可顯示該月月歷</p><p><b>  4顯示一年</b></p><

45、p>  輸入3后回車,輸入一個(gè)有效年份可顯示該年的十二個(gè)月的月歷。</p><p><b>  六:課程設(shè)計(jì)心得</b></p><p>  通過本次課程設(shè)計(jì)我第一次通過自己的實(shí)踐對(duì)書本上的知識(shí)進(jìn)行了與生活相關(guān)的運(yùn)用。在這個(gè)程序中,主要應(yīng)用了這學(xué)期所學(xué)習(xí)的循環(huán),條件語句,數(shù)組以及調(diào)用函數(shù)。這些知識(shí)的應(yīng)用使我對(duì)課本內(nèi)容的認(rèn)識(shí)得到了加深。</p>&l

46、t;p>  在編寫程序的過程中,也出現(xiàn)了很多錯(cuò)誤。比如程序語句錯(cuò)誤導(dǎo)致檢測(cè)時(shí)連續(xù)報(bào)錯(cuò);函數(shù)語句編寫錯(cuò)誤導(dǎo)致輸出結(jié)果與實(shí)際不符等。出現(xiàn)這些情況后,通過對(duì)一些新知識(shí)的學(xué)習(xí)和對(duì)網(wǎng)上相關(guān)資料的閱覽,我發(fā)現(xiàn)了自己的程序的問題所在并進(jìn)行了改正。最后得到了正確的結(jié)果。</p><p>  在程序的編寫完成后,我按照要求對(duì)程序進(jìn)行了拓展。在輸出年歷的基礎(chǔ)上增加了月歷及確定日期的輸出。經(jīng)過這一次的課程設(shè)計(jì)我再一次清楚地認(rèn)識(shí)到

47、了編譯的重要性,雖然課程結(jié)業(yè)了,但我們?nèi)匀灰粩嗟膶W(xué)習(xí)這一方面的知識(shí),只有這樣我們才能夠成為一個(gè)出色的大學(xué)生!</p><p>  參考文獻(xiàn):《c語言程序設(shè)計(jì)教程》第三版 譚浩強(qiáng)</p><p>  《C語言程序設(shè)計(jì)》.北京:清華大學(xué)出版社. 李澤中孫紅艷主編.</p><p>  《.C語言程序設(shè)計(jì)教程[M]》清華大學(xué)出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論