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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  課程設(shè)計(jì)題目:年歷顯示</p><p><b>  學(xué)生姓名: </b></p><p>  專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)</p><p>  班 級(jí):10204101</p><p><b

2、>  指導(dǎo)教師: </b></p><p>  2011年 5月 4 日</p><p><b>  課程設(shè)計(jì)目的</b></p><p>  1、設(shè)計(jì)年歷顯示程序,方便查詢?nèi)諝v。</p><p>  2、培養(yǎng)學(xué)生用程序解決實(shí)際問(wèn)題的能力和興趣。</p><p>  3、加深對(duì)C

3、程序設(shè)計(jì)的理解,掌握程序設(shè)計(jì)的一般方法。</p><p><b>  課程設(shè)計(jì)的要求 </b></p><p>  利用學(xué)到的編程知識(shí)和編程技巧,要求學(xué)生:</p><p>  1、對(duì)系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確</p><p>  2、系統(tǒng)設(shè)計(jì)要能完成題目所要求的功能。</p><p>

4、;  3、編程簡(jiǎn)練,可用,盡可能的使系統(tǒng)的功能更加完善和全面</p><p>  4、說(shuō)明書、流程圖要清楚。</p><p>  5、特別要求自己獨(dú)立完成。</p><p><b>  三、課程設(shè)計(jì)內(nèi)容</b></p><p>  1、課程設(shè)計(jì)的題目及簡(jiǎn)介</p><p><b>  年

5、歷顯示的程序</b></p><p>  要求:設(shè)計(jì)年歷顯示的程序可以為我們提供下列各項(xiàng)服務(wù):</p><p>  1、輸入一個(gè)年份,輸出是在屏幕上顯示該年的日歷。假定輸入的年份在1940-2040年之間。</p><p>  2、輸入年月,輸出該月的日歷。</p><p>  3、輸入年月日,輸出距今天還有多少天,星期幾,是否是

6、公歷節(jié)日。</p><p><b>  2、設(shè)計(jì)說(shuō)明</b></p><p>  根據(jù)c課程的要求,在盡量滿足題目的功能的前提下,采取結(jié)構(gòu)化程序設(shè)計(jì)思路,把問(wèn)題要求1、2和3分開(kāi)用函數(shù)實(shí)現(xiàn),用for語(yǔ)句和switch,print_其函數(shù)具體方法,把問(wèn)題一一解決,功能逐步實(shí)現(xiàn)。在輸入輸出方面控制的比較嚴(yán)格,盡量做到界面友好。</p><p>&l

7、t;b>  具體說(shuō)明如下:</b></p><p>  編寫年歷顯示的程序,首先定義如下變量,描述如下:</p><p><b>  數(shù)據(jù):</b></p><p>  int monthdays; // 定義平年的每個(gè)月最后一天是幾號(hào)</p><p>  int leapyearmonthdays;

8、 // 定義閏年的每個(gè)月最后一天是幾號(hào)</p><p>  int year; // 編程序是哪年</p><p>  int month; // 編程序是哪月</p><p>  int day; // 編程序是哪天</p><p>  int isweekday; // 定義日期</p><p>

9、;<b>  運(yùn)算:</b></p><p>  void print_month(int y,int m); // 查詢?cè)路莸暮瘮?shù)</p><p>  void print_year(int y); // 查詢年份的函數(shù)</p><p>  int counterdays(int y,int m,int d); // 查詢距離今天的函

10、數(shù)</p><p>  void setday(int y,int m,int d); // 設(shè)置日期的函數(shù)</p><p>  在主函數(shù)中,首先輸出提示用戶輸入本站所有航班信息,系統(tǒng)開(kāi)始記錄輸.在switch體中提示用戶進(jìn)行4種操作:1:查詢年歷,2查詢?cè)職v,3計(jì)算日期,4設(shè)置當(dāng)前日期(%d/%d/%d).特別說(shuō)明1,2,3,4每次運(yùn)行后,利用break語(yǔ)句返回到. switch體中繼續(xù)

11、提示用戶進(jìn)行4種操作,直到用戶輸入"任意鍵退出"以結(jié)束.</p><p>  進(jìn)過(guò)多次檢驗(yàn)與測(cè)試,并逐步完善,程序運(yùn)行正確。</p><p><b>  3、程序流程圖</b></p><p><b>  1程序總體流程</b></p><p>  程序總體流程說(shuō)明如下:<

12、/p><p>  1.程序開(kāi)始,用戶輸入命令進(jìn)行操作::請(qǐng)輸入要查詢的方式(1.查詢年歷2.查詢?cè)職v3.計(jì)算日期4.設(shè)置當(dāng)前日期(%d/%d/%d) 特別說(shuō)明1,2,3,4每次運(yùn)行后,利用break語(yǔ)句返回到. switch體中繼續(xù)提示用戶進(jìn)行4種操作,直到用戶輸入"Y鍵繼續(xù),任意鍵退出"以結(jié)束.</p><p><b>  見(jiàn)圖一:</b></

13、p><p>  按Y繼續(xù) 按Y繼續(xù)</p><p>  temp=1 temp=2</p><p>  temp= 3 temp=4</p><p>  任意鍵退出

14、 任意鍵退出</p><p>  圖一 (程序總體流程圖) </p><p>  2顯示查詢年歷信息流程</p><p>  當(dāng)用戶輸入命令為1時(shí),顯示本年所有月份的信息。當(dāng)查詢結(jié)束時(shí),返回用戶輸入命令進(jìn)行繼續(xù)操作。本流程圖與查詢年歷流程圖算法基本一致,所以就略去查詢?cè)職v具體流

15、程圖。</p><p><b>  按Y繼續(xù)</b></p><p><b>  任意鍵退出</b></p><p>  圖二(顯示本年所有的信息)</p><p>  3計(jì)算日期信息查詢流程</p><p>  當(dāng)用戶輸入命令為3時(shí),輸入要計(jì)算的日期信息。計(jì)算結(jié)束時(shí)返回用戶

16、輸入命令進(jìn)行繼續(xù)操作。本流程圖與設(shè)置當(dāng)前日期流程圖算法基本一致,所以就略去設(shè)置當(dāng)前日期具體流程圖。</p><p><b>  見(jiàn)圖三</b></p><p><b>  按Y繼續(xù)</b></p><p><b>  任意鍵退出</b></p><p>  圖三(計(jì)算日期信息查

17、詢)</p><p><b>  4、程序清單</b></p><p>  #include <stdio.h></p><p>  int monthdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};</p><p>  int leapyearmonthdays

18、[12]={31,29,31,30,31,30,31,31,30,31,30,31};</p><p>  int year=2011;</p><p>  int month=4;</p><p>  int day=26;</p><p>  int isweekday(int y,int m,int d)</p><

19、p><b>  {</b></p><p>  int weekday;</p><p><b>  if(m<3) </b></p><p><b>  { </b></p><p><b>  m+=12; </b></p>

20、<p><b>  y--;</b></p><p><b>  }</b></p><p>  return weekday=(2+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;</p><p><b>  }</b></p><p>  i

21、nt isleapyear(int y)</p><p><b>  {</b></p><p>  if (y%400==0 || y%100!=0 && y%4==0)</p><p><b>  return 1;</b></p><p><b>  return 0

22、;</b></p><p><b>  }</b></p><p>  void print_month(int y,int m)</p><p><b>  {</b></p><p><b>  int A;</b></p><p>&l

23、t;b>  int i=0;</b></p><p>  int startday=isweekday(y,m,1);</p><p>  printf("\n┏==========%4d.%02d===========┓\n",y,m);</p><p>  printf("┇SUN MON TUE WED THU

24、FRI SAT ┇\n┇");</p><p>  for(i=0;i<startday;i++)</p><p><b>  {</b></p><p>  printf(" ");</p><p><b>  }</b></p><p

25、>  if(isleapyear(y))</p><p><b>  {</b></p><p>  for(i=1;i<=leapyearmonthdays[m-1];i++)</p><p><b>  { </b></p><p>  printf("%3d "

26、,i); </p><p>  if((startday+i)%7==0)</p><p>  printf("┇\n┇"); </p><p><b>  }</b></p><p>  for(i=1;i<=leapyearmonthdays[m-1];i++)</p>

27、<p>  A=27-((startday+i)%7*4);</p><p><b>  {</b></p><p>  for(i=0;i<=A;i++)</p><p>  printf(" ");</p><p><b>  }</b></p>

28、<p>  printf("┇");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  for(i=1;i<=monthdays[m-1];i+

29、+)</p><p><b>  {</b></p><p>  printf("%3d ",i); </p><p>  if((startday+i)%7==0)</p><p>  printf("┇\n┇");</p><p><b>  

30、}</b></p><p>  for(i=1;i<=monthdays[m-1];i++)</p><p>  A=27-((startday+i)%7*4);</p><p><b>  {</b></p><p>  for(i=0;i<=A;i++)</p><p>

31、;  printf(" ");</p><p><b>  }</b></p><p>  printf("┇");</p><p><b>  }</b></p><p>  printf("\n┗-------------------------

32、---┛\n");</p><p><b>  }</b></p><p>  void print_year(int y)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  for(

33、i=1;i<=12;i++)</p><p><b>  { </b></p><p>  print_month(y,i);</p><p><b>  }</b></p><p><b>  }</b></p><p>  int counte

34、rdays(int y,int m,int d)</p><p><b>  {</b></p><p>  int temp=0;</p><p>  int days=0;</p><p><b>  int i;</b></p><p>  for(i=year+1;i

35、<y;i++)</p><p><b>  {</b></p><p>  if(isleapyear(i))</p><p><b>  temp++;</b></p><p><b>  }</b></p><p>  if(y-year>

36、;=1)</p><p><b>  {</b></p><p>  if(isleapyear(year) && month<=2)</p><p><b>  temp++;</b></p><p>  if(isleapyear(y) && m>2

37、||(m==2 && d==29))</p><p><b>  temp++;</b></p><p>  for(i=month+1;i<=12;i++)</p><p><b>  {</b></p><p>  days+=monthdays[i-1];</p&g

38、t;<p><b>  }</b></p><p>  for(i=1;i<m;i++)</p><p><b>  {</b></p><p>  days+=monthdays[i-1];</p><p><b>  }</b></p>&

39、lt;p>  days+=(y-year-1)*365;</p><p><b>  }</b></p><p>  if(!(year==y && month==m))</p><p><b>  {</b></p><p>  days+=monthdays[month-1

40、]-day+d;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  days+=d-day;</p><p><b>  }</b>&l

41、t;/p><p>  days+=temp;</p><p>  printf("\n今天距%d/%d/%d還有%d天\n",y,m,d,days);</p><p>  return days;</p><p><b>  }</b></p><p>  void setday(

42、int y,int m,int d)</p><p><b>  {</b></p><p><b>  year=y;</b></p><p><b>  month=m;</b></p><p><b>  day=d;</b></p>

43、<p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  int temp;</b></p><p>  int y,m,d;</p><p><b&g

44、t;  char ch;</b></p><p><b>  do{</b></p><p>  printf("請(qǐng)輸入要查詢的方式(1.查詢年歷2.查詢?cè)職v3.計(jì)算日期4.設(shè)置當(dāng)前日期(%d/%d/%d)):",year,month,day);</p><p>  scanf("%d",&a

45、mp;temp);</p><p>  switch(temp)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  printf("請(qǐng)輸入年份(ep:2011):");</p><p>  sc

46、anf("%d",&y);</p><p>  print_year(y);</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  printf("請(qǐng)輸入年月(ep:2011/4):"

47、);</p><p>  scanf("%d/%d",&y,&m);</p><p>  print_month(y,m);</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p&g

48、t;  printf("請(qǐng)輸入日期(ep:2011/4/26):");</p><p>  scanf("%d/%d/%d",&y,&m,&d);</p><p>  counterdays(y,m,d);</p><p><b>  break;</b></p>&

49、lt;p><b>  case 4:</b></p><p>  printf("請(qǐng)輸入當(dāng)天日期(ep:2011/4/26):");</p><p>  scanf("%d/%d/%d",&y,&m,&d);</p><p>  setday(y,m,d);</p>

50、;<p><b>  break;</b></p><p><b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  printf("\n\n

51、是否繼續(xù)?(Y鍵繼續(xù),任意鍵退出)");</p><p>  getchar();</p><p>  scanf("%c",&ch);</p><p>  }while(ch=='y' || ch=='Y');</p><p><b>  }</b>

52、</p><p><b>  程序運(yùn)行結(jié)果</b></p><p><b>  1、查詢年歷:</b></p><p><b>  2、查詢?cè)職v:</b></p><p><b>  3、計(jì)算日期:</b></p><p><

53、b>  4、設(shè)置當(dāng)前:</b></p><p>  出現(xiàn)的問(wèn)題及解決方法</p><p>  不能輸出界面中的框的倒數(shù)二行的最后一個(gè)“┇”,經(jīng)過(guò)仔細(xì)的討論采用算術(shù)算出空出多少空格,再用for語(yǔ)句輸出多少空格,再在后面加上“┇”就可以了。</p><p><b>  四、課程設(shè)計(jì)總結(jié)</b></p><p&g

54、t;  經(jīng)過(guò)這幾天的C課程設(shè)計(jì),讓我知道了做課程設(shè)計(jì)的一般方法,通過(guò)各種努力終于完成了設(shè)計(jì)要求.這次課程設(shè)計(jì)基本上含蓋了大學(xué)一年級(jí)學(xué)習(xí)到的C語(yǔ)言知識(shí)點(diǎn),課設(shè)題目要求不僅要求對(duì)課本知識(shí)有較深刻的了解,同時(shí)要求程序設(shè)計(jì)者有較強(qiáng)的思維和動(dòng)手能力。這次課設(shè)使我了解我編程思想和編程技巧,也認(rèn)識(shí)了軟件生命周期的各個(gè)環(huán)境,包括構(gòu)思、設(shè)計(jì)、編寫、調(diào)試、修訂。</p><p>  獨(dú)立做課程設(shè)計(jì)不僅讓我修補(bǔ)了以前學(xué)習(xí)的漏洞,也讓我

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論