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

下載本文檔

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

文檔簡介

1、<p><b>  信息科學(xué)與技術(shù)學(xué)院</b></p><p>  程序設(shè)計基礎(chǔ)課程設(shè)計報告</p><p>  題目名稱: 萬年歷系統(tǒng) </p><p>  學(xué)生姓名: </p><p>  學(xué) 號: 201

2、1508020 </p><p>  專業(yè)班級: </p><p>  指導(dǎo)教師: </p><p>  2012年 7 月 1 日</p><p><b>  目 錄</b></p&

3、gt;<p>  1 課程設(shè)計目的及要求1</p><p><b>  1.1設(shè)計題目1</b></p><p><b>  1.2設(shè)計要求1</b></p><p><b>  1.3其他要求1</b></p><p><b>  2課題總體設(shè)

4、計2</b></p><p>  2.1系統(tǒng)功能模塊圖2</p><p>  2.2系統(tǒng)流程圖 ..........................................................................................................2</p><p><b>  3

5、.詳細(xì)設(shè)計3</b></p><p>  3.1 printWNL()3</p><p>  3.2 isRunNian()模塊設(shè)計4</p><p>  3.3 getDays模塊設(shè)計5</p><p>  3.4 主函數(shù)main()模塊設(shè)計6</p><p><b>  4調(diào)試與測試

6、7</b></p><p>  5課程設(shè)計總結(jié)10</p><p><b>  參考文獻(xiàn)11</b></p><p><b>  附 錄12</b></p><p><b>  萬年歷系統(tǒng)的設(shè)計</b></p><p>  1

7、課程設(shè)計目的及要求</p><p><b>  1.1設(shè)計題目</b></p><p><b>  萬年歷系統(tǒng)</b></p><p><b>  1.2設(shè)計要求</b></p><p><b>  模仿現(xiàn)實(shí)中的日歷</b></p><

8、p>  1.、當(dāng)前頁以系統(tǒng)當(dāng)前日期的月份為準(zhǔn),顯示當(dāng)前月的每一天(顯示出日及對應(yīng)的星期幾);</p><p>  2、當(dāng)系統(tǒng)日期變到下一個月時,系統(tǒng)自動翻頁到下一月。</p><p><b>  1.3其他要求</b></p><p>  1、只能使用c/c++語言,源程序要有適當(dāng)?shù)淖⑨專钩绦蛉菀组喿x。</p><p

9、>  2、至少采用文本菜單界面。</p><p>  3、學(xué)生可自動增加新功能模塊。</p><p><b>  2課題總體設(shè)計</b></p><p>  2.1系統(tǒng)功能模塊圖</p><p>  圖1-1 系統(tǒng)功能模塊圖</p><p>  2.2系統(tǒng)流程圖 <

10、/p><p>  圖1-2 系統(tǒng)流程圖</p><p><b>  3.詳細(xì)設(shè)計</b></p><p>  3.1 printWNL()</p><p>  圖1-3 printWNL()模塊設(shè)計圖</p><p>  模塊說明:prinWNL()先后調(diào)用week(),getdays()打印出簡單

11、的日歷。</p><p>  3.2 isRunNian()模塊設(shè)計</p><p>  圖1-4 isRunNian()函數(shù)模塊設(shè)計圖</p><p>  模塊說明: 若該年不是閏年,則輸出0,相反則輸出1;</p><p>  設(shè)年數(shù)為X,先判斷X能否被4整除,若不能則輸出0;</p><p>  若能整除,則判斷

12、X能否被100整除,若不能則輸出1;</p><p>  若能整除,則判斷X能否被400整除,若不能則輸出0,若能則輸出1。</p><p>  3.3 getDays模塊設(shè)計</p><p>  圖1-5 getDays模塊設(shè)計圖 </p><p>  模塊說明:判斷系統(tǒng)月份,以月份為主,三十一天的有一月,三月,五月,七月,八月,十月,十

13、二月;</p><p>  三十天的有四月,六月,九月,十一月。若是閏年,則二月為二十九天,不是,則為二十八天。</p><p>  3.4 主函數(shù)main()模塊設(shè)計</p><p>  圖1-6 主函數(shù)體main()模塊設(shè)計圖</p><p>  模塊說明:主函數(shù)體主要調(diào)用printWNL函數(shù)對由getsystime函數(shù)讀取的主板時間進(jìn)行

14、相應(yīng)的編輯和輸出,并根據(jù)用戶指令“↑↓←→”Esc實(shí)現(xiàn)年份及月份的調(diào)整,并退出程序</p><p><b>  4調(diào)試與測試</b></p><p>  此課程設(shè)計要求如生活中的掛歷,要以當(dāng)前頁以系統(tǒng)當(dāng)前日期的月份為準(zhǔn),顯示當(dāng)前月的每一天,并且當(dāng)系統(tǒng)日期變到下一個月是,系統(tǒng)自動翻頁到下一月。然而在調(diào)試過程中首先自己沒有注意到區(qū)分閏年,沒有考慮到二月有二十八天,與二十九

15、天的區(qū)別,其次沒有做到每一天對應(yīng)的每個星期,再次在調(diào)用函數(shù)時出錯,本代碼無法做到在改變系統(tǒng)年份或月份時,不能立即運(yùn)行,需要重新調(diào)試,所以此代碼還是有不足之處的。經(jīng)過不斷的修改與嘗試,最終將代碼完成。</p><p>  當(dāng)對上面的程序進(jìn)行了調(diào)試后運(yùn)行會出現(xiàn)下面圖2-1所示:</p><p><b>  圖2-1</b></p><p>  滿足

16、當(dāng)前頁以系統(tǒng)當(dāng)前日期的月份為準(zhǔn),顯示當(dāng)前月的每一天。</p><p>  按“↑ ”鍵其下面接著會顯示上一月的萬年歷,如圖2-2</p><p><b>  圖2-2</b></p><p>  按“↓ ”鍵其下面會接著顯示下一月的萬年歷,如圖2-3</p><p><b>  圖2-3</b>&l

17、t;/p><p>  按“→”鍵下面將會接著顯示當(dāng)年上一個月的萬年歷,如題2-4</p><p><b>  圖2-4</b></p><p>  按“← ”鍵將會在下面接著顯示當(dāng)年下一個月的萬年歷,如圖2-5</p><p><b>  圖2-5</b></p><p>  

18、以上所顯示按EsC后將會退去該程序。</p><p>  以上運(yùn)行的結(jié)果可知該C語言所設(shè)計的萬年歷滿足設(shè)計要求</p><p><b>  5課程設(shè)計總結(jié)</b></p><p>  課程設(shè)計時一個很好的提高我們專業(yè)編程水平的方法,讓我們充分了解我們自己的水平,自主學(xué)習(xí)一些我們所短缺的知識。主動督促我們?nèi)パa(bǔ)充我們的知識漏洞。在這期間我對于我所不

19、知道的問題,我總是去查考一些資料,從那些書中我了解到了許多,同時我也知道書是多么的重要。與此同時,在這個課設(shè)的過程中,我更了解到團(tuán)隊(duì)合作的重要,同學(xué)們總是給我一些重要的資料,出奇的想法,老師則對我的課設(shè)中的不足的提出寶貴的意見,供我參考、提高,因此,我才能完成這次課程設(shè)計。從這次課設(shè)中我認(rèn)為編寫程序中掌握總體思想是其中的重要部分,清晰的思路能讓我們快速的解決問題。</p><p>  這次課程設(shè)計,我改了好幾次,

20、每次的改動讓我對編程體會更加深刻,相信經(jīng)過多次的訓(xùn)練后,我的編程能力會更上一層樓。總而言之,從這次課設(shè),我得到了很多人的幫助,感謝那些幫助過我的同學(xué)、老師。通過對C語言萬年歷的設(shè)計進(jìn)一步的鞏固了用C語言編寫程序,并且有利于更好的掌握C語言。</p><p>  在C語言程序設(shè)計的過程中也知道了自己在以前的學(xué)習(xí)中有很大的不足導(dǎo)致在設(shè)計過程中出現(xiàn)了很多的問題,有些地方看不懂也不知道怎么去設(shè)計,但是在設(shè)計過程中也學(xué)習(xí)了

21、很多,掌握了自己以前沒有學(xué)好的知識,雖然一時可以掌握完以前沒有學(xué)好的知識,不過也給自己敲響了警鐘,在學(xué)習(xí)中不可以伏于表面,要想學(xué)好每一門課程都要踏踏實(shí)實(shí),做什么都不是給別人看的!都是要更好的掌握該門知識,提高自己的自身的修養(yǎng),提高自己的能力!為以后的工作打下良好的知識基礎(chǔ)和技能基礎(chǔ)!</p><p>  在萬年歷的編寫過程中我也體會到了做事情一頂有耐心呢、細(xì)心,認(rèn)真。也培養(yǎng)了我獨(dú)立思考、 綜合運(yùn)用所學(xué)有關(guān)相應(yīng)知識

22、的能力,掌握 工程軟件設(shè)計的基本方法,強(qiáng)化上機(jī)動手編程能力,闖過理論與實(shí)踐相結(jié)合的難關(guān)!更加知道了要掌握好基礎(chǔ)知識的重要性。在萬年歷的設(shè)計過程中更加體會到了團(tuán)隊(duì)合作的重要性,三個臭皮匠抵上一個諸葛亮。大家在合作中共同努力,共同進(jìn)步!團(tuán)隊(duì)合作才會更好的完成設(shè)計!我也體會到以后在工作中團(tuán)隊(duì)合作的必要性和重要性!</p><p>  通過這次課程設(shè)計讓我在以后的學(xué)習(xí)中更加有信心!</p><p>

23、;<b>  參考文獻(xiàn)</b></p><p>  [1] 劉振安,劉燕君.《C程序設(shè)計課程設(shè)計》[M].北京:機(jī)械工業(yè)出版社,2004年9月</p><p>  [2] 譚浩強(qiáng).《C程序設(shè)計》(第三版).清華大學(xué)出版社,2005年7月</p><p>  [3] 嚴(yán)蔚敏,吳偉民.《數(shù)據(jù)結(jié)構(gòu)》(C語言版).清華大學(xué)出版社,1997年4月<

24、/p><p>  [4] 張?jiān)佬?,《Visual C++ 程序設(shè)計》.蘇州大學(xué)出版社,2007年12月</p><p>  [5] 徐寶文,《The C Programming Language 》.機(jī)械工業(yè)出版社,2004年1月</p><p>  [6] 黃明,梁旭,周紹斌,《Visual C++ 信息系統(tǒng)設(shè)計與開發(fā)實(shí)例》.機(jī)械工業(yè)出版社, 2005年3月</

25、p><p>  [7] AL KELLEY等著,麻志毅譯.《C語言解析教程》.北京:機(jī)械工業(yè)出版社,2002年</p><p>  [8] 李志球,《實(shí)用C語言程序設(shè)計教程》.北京:電子工業(yè)出版社,1999年</p><p>  [9] 王立柱,《C/C++與數(shù)據(jù)結(jié)構(gòu)》.北京:清華大學(xué)出版社,2002年</p><p>  [10] 李大友,《C

26、語言程序設(shè)計》.清華大學(xué)出版社,1999年</p><p><b>  附 錄</b></p><p>  #include <stdio.h></p><p>  #include <time.h></p><p>  #include <stdlib.h></p>

27、<p>  #include <conio.h></p><p>  #include <ctype.h></p><p>  #define CURU 72</p><p>  #define CURD 80</p><p>  #define CURL 75</p><p> 

28、 #define CURR 77</p><p>  #define ESC 27</p><p>  void printWNL(int, int); //簡單格式打印萬年歷</p><p>  int Week(int,int,int); //求星期幾</p><p>  int getDays(int, int); //計算某個月的天數(shù)

29、</p><p>  int isRunNian(int); //判斷是否閏年</p><p><b>  /*</b></p><p>  *簡單格式打印萬年歷</p><p>  *參數(shù): y 整型,接收年份值; m 整型,接收月份值;</p><p><b>  *返回值: 無

30、</b></p><p><b>  */</b></p><p>  void printWNL(int y, int m)</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  

31、int day = 1 - Week(y,m,1); //天數(shù)初始值,定位1號的位置</p><p>  int days = getDays(y,m);</p><p>  printf(" %4d年%2d月\n",y,m);</p><p>  printf(" 日 一 二 三 四 五 六\n");</p

32、><p>  for(i = 1; i <= 6; i++)</p><p><b>  {</b></p><p>  for(j = 1; j <= 7; j++)</p><p><b>  {</b></p><p>  if(day <= 0 || d

33、ay > days)</p><p>  printf(" ");</p><p><b>  else</b></p><p>  printf("%3d",day);</p><p><b>  day++;</b></p><

34、;p><b>  }</b></p><p>  printf("\n");</p><p><b>  }</b></p><p>  printf(" 提示:【←】減年 【→】加年 【↑】減月 【↓】加月 【ESC】退出\n");</p><p&

35、gt;<b>  }</b></p><p><b>  /*</b></p><p><b>  *求星期幾</b></p><p>  *參數(shù): y 整型,接收年份值; m 整型,接收月份值; d 整型,接收天的號數(shù)</p><p>  *返回值: 整型, 是0,1-6

36、七個數(shù)之間的一個數(shù),0代表星期日,1-6代表星期一至星期六</p><p><b>  */</b></p><p>  int Week(int y,int m,int d)</p><p><b>  {</b></p><p>  int days = 0; //總天數(shù)</p>

37、<p><b>  int i;</b></p><p>  for(i = 1; i < y; i++) //累計1到y(tǒng)-1年的天數(shù)</p><p>  days += isRunNian(i) ? 366 : 365;</p><p>  for(i = 1; i < m; i++) //累計y年第1月到第m-1月的天

38、數(shù)</p><p>  days += getDays(y,i);</p><p>  days += d; //累計當(dāng)月的天數(shù)。</p><p>  return days % 7; //返回星期值</p><p><b>  }</b></p><p><b>  /*</b&

39、gt;</p><p><b>  *判斷是否閏年</b></p><p>  *參數(shù): y 整型, 接收年份值</p><p>  *返回值: 整型, 只為0或1, 0代表假, 1代表真</p><p><b>  */</b></p><p>  int isRunN

40、ian(int y)</p><p><b>  {</b></p><p>  return (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) ? 1 : 0;</p><p><b>  }</b></p><p><b>  /

41、*</b></p><p><b>  *計算某個月的天數(shù)</b></p><p>  *參數(shù): y 整型,接收年份值; m 整型,接收月份值;</p><p>  *返回值: 整型, 是0, 28, 29, 30, 31之間的一個數(shù)</p><p>  *注意: 返回值為0,表示你調(diào)用該函數(shù)時傳遞了

42、不正確的年份值或月份值.</p><p><b>  */</b></p><p>  int getDays(int y, int m)</p><p><b>  {</b></p><p>  int days = 0;</p><p><b>  switc

43、h(m)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b>  case 3:</b></p><p><b>  case 5:</b></p><

44、p><b>  case 7:</b></p><p><b>  case 8:</b></p><p><b>  case 10:</b></p><p><b>  case 12:</b></p><p>  days = 31; brea

45、k;</p><p><b>  case 4:</b></p><p><b>  case 6:</b></p><p><b>  case 9:</b></p><p><b>  case 11:</b></p><p>

46、  days = 30; break;</p><p><b>  case 2:</b></p><p>  days = isRunNian(y) ? 29 : 28; break;</p><p><b>  default:;</b></p><p><b>  }</b&g

47、t;</p><p>  return days;</p><p><b>  }</b></p><p><b>  /*</b></p><p>  *主函數(shù),應(yīng)用程序入口</p><p><b>  */</b></p><p&

48、gt;  void main()</p><p><b>  {</b></p><p>  int year,month;</p><p>  struct tm t;</p><p><b>  char ch;</b></p><p>  _getsystime(&am

49、p;t); //標(biāo)準(zhǔn)函數(shù), 獲得系統(tǒng)當(dāng)前時間</p><p>  year = t.tm_year + 1900; //得到當(dāng)前年份</p><p>  month = t.tm_mon + 1; //得到當(dāng)前月份</p><p><b>  do</b></p><p><b>  {</b>&l

50、t;/p><p>  system("cls"); //調(diào)用DOS清屏命令</p><p>  printWNL(year,month); //自定義函數(shù), 打印萬年歷</p><p>  ch = getch(); //獲得無回顯控制臺輸入字符</p><p>  if(ch == ESC) //ESC鍵,退出循環(huán),結(jié)束程序

51、</p><p><b>  break;</b></p><p>  else if(ch == 0) //若值為零,則用戶敲了功能鍵,繼續(xù)獲取后續(xù)代碼。</p><p>  ch = getch(); </p><p>  switch(ch)</p><p><b>  {<

52、/b></p><p>  case CURL: year--; break; //左鍵減年</p><p>  case CURR: year++; break; //右鍵加年</p><p>  case CURU: //上鍵減月</p><p><b>  month--; </b&g

53、t;</p><p>  if(month == 0)</p><p><b>  {</b></p><p>  month = 12;</p><p><b>  year--;</b></p><p><b>  }</b></p>

54、<p><b>  break;</b></p><p>  case CURD: //下鍵加月</p><p><b>  month++;</b></p><p>  if(month == 13)</p><p><b>  {</b&g

55、t;</p><p>  month = 1;</p><p><b>  year++;</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  default:;<

溫馨提示

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

評論

0/150

提交評論