課程設(shè)計---機房收費設(shè)計報告_第1頁
已閱讀1頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  第一章 課程設(shè)計目的和要求1</p><p>  1.1 課程設(shè)計目的1</p><p>  1.2 課程設(shè)計要求2</p><p>  第二章 課程設(shè)計任務(wù)內(nèi)容3</p><p>  2.1 課程設(shè)計任務(wù)3</p&g

2、t;<p>  2.2 課程設(shè)計內(nèi)容3</p><p>  2.4 課程設(shè)計開發(fā)環(huán)境和工具3</p><p>  第三章 詳細設(shè)計說明4</p><p>  3.1 系統(tǒng)詳細描述4</p><p>  3.1.1 系統(tǒng)設(shè)計背景4</p><p>  3.1.2 系統(tǒng)設(shè)計詳細信息4</p&

3、gt;<p>  3.2 系統(tǒng)功能描述4</p><p>  3.3 系統(tǒng)流程圖6</p><p>  第四章 軟件測試及使用說明9</p><p>  4.1 系統(tǒng)開發(fā)與運行環(huán)境9</p><p>  4.2 運行及測試結(jié)果10</p><p>  第五章 課程設(shè)計心得體會14</p&

4、gt;<p>  附錄1:參考文獻15</p><p>  附錄2:程序代碼16</p><p>  第一章 課程設(shè)計目的和要求</p><p>  1.1 課程設(shè)計目的</p><p>  這次設(shè)計實驗要求利用C++語言來完成系統(tǒng)的設(shè)計,突出模塊設(shè)計,實現(xiàn)每一個子功能,得有清晰的程序流程圖和數(shù)據(jù)結(jié)構(gòu)的詳細定義,表現(xiàn)此次設(shè)計

5、的目的,再設(shè)計中熟練掌握C++對文件的各種操作。</p><p>  1.2 課程設(shè)計要求</p><p> ?。?)要求用C++語言編程在Visual C++環(huán)境下調(diào)試完成;</p><p><b>   </b></p><p> ?。?)要求劃分功能模塊各個功能分別使用函數(shù)來完成;</p>&

6、lt;p><b>   </b></p><p>  (3)源代碼程序要求必要的注釋.</p><p>  第二章 課程設(shè)計任務(wù)內(nèi)容</p><p>  2.1 課程設(shè)計任務(wù)</p><p> ?。?)、輸入功能:輸入30個學(xué)生的學(xué)號、班級、姓名、上機起始時間。</p><p> ?。?

7、)、計算功能:計算每個下機學(xué)生的上機費用,每小時1元。</p><p> ?。ㄉ蠙C費用=上機時間*1.0h,不足一小時按一小時計算)</p><p> ?。?)、查詢功能:按條件(班級、學(xué)號、姓名)顯示學(xué)生上機時間。</p><p> ?。?)、機器使用情況的顯示(顯示方式不限但要一目了然)</p><p>  2.2 課程設(shè)計內(nèi)容</

8、p><p>  每一次程序執(zhí)行的過程中,先輸出主菜單,主菜單中有幾個平行的功能選項,但須需要在執(zhí)行完1后才可以有意義的執(zhí)行其后的功能選項,完成各自的功能。</p><p> ?。?)主函數(shù)void main()模塊</p><p>  由switch函數(shù)決定各個模塊的進入,while函數(shù)決定輸入的數(shù)字是符合要求的,若符合要求,則進入該模塊執(zhí)行功能,否則重新返回主菜單,再

9、次選擇要進入的模塊。</p><p>  (2)學(xué)生數(shù)據(jù)的輸入void Intital()模塊</p><p>  由指針確定該學(xué)生所使用的計算機,然后由for函數(shù)依次輸入,為一次性輸入學(xué)生的所有信息。</p><p> ?。?)付費模塊void charge()</p><p>  先輸入當前的時間,而后會要求學(xué)生輸入學(xué)號,輸入該生的學(xué)號即

10、可,計算機會通過順序查找法查找是否有該學(xué)生在上機,若有,則通過公式計算上機時間,上機費用,并輸出。</p><p>  (4)查詢學(xué)生上機模塊void query()</p><p>  查詢每個學(xué)生的上機情況,可以根據(jù)該生的學(xué)號,姓名,班級查詢,具體通過switch函數(shù)來實現(xiàn),由if函數(shù)決定進入的模塊是否符合要求,若符合要求,則進入該模塊執(zhí)行功能,若不,則要求重新選擇要通過的方式。<

11、;/p><p> ?。?)輸出所有機器的使用情況void show()</p><p>  由于在之前已由指針變量確定某生使用的計算機,并用@予以標記,在該步中用for函數(shù)予以分別輸出。</p><p>  2.4 課程設(shè)計開發(fā)環(huán)境和工具</p><p>  1.系統(tǒng)平臺:WINDOWS環(huán)境</p><p>  2.程序設(shè)

12、計語言:C++</p><p>  3.開發(fā)工具:VC++6.0</p><p><b>  詳細設(shè)計說明</b></p><p>  3.1 系統(tǒng)詳細描述</p><p>  3.1.1 系統(tǒng)設(shè)計背景</p><p>  在學(xué)習(xí)和了解操作系統(tǒng)課程之后,需要進一步對其功能進行深入了解,以課堂所學(xué)的

13、理論知識,去設(shè)計機房收費系統(tǒng)。</p><p>  3.1.2 系統(tǒng)設(shè)計詳細信息</p><p>  該系統(tǒng)主要通過對機房的機器的收費管理來體現(xiàn)操作系統(tǒng)間的聯(lián)系和各個子功能的獨立表達,輸入功能、計算功能、查詢功能、機器使用情況的顯示。</p><p>  3.2 系統(tǒng)功能描述</p><p>  根據(jù)課程設(shè)計題目描述,該系統(tǒng)主要分為四個功能模

14、,即塊輸入功能、計算功能、查詢功能、機器使用情況的顯示,通過四個模塊實現(xiàn)機房收費管理。如圖3-2-1</p><p>  圖3-1 機房收費管理系統(tǒng)</p><p><b>  3.3 系統(tǒng)流程圖</b></p><p>  輸入功能:輸入30個學(xué)生的學(xué)號、班級、姓名、上機起始時間。如圖3-1</p><p>  圖3-

15、2 輸入功能</p><p>  這里可以輸入學(xué)生的信息比如:學(xué)號,班級,姓名,上機時間。如圖3-2</p><p>  計算功能:計算每個下機學(xué)生的上機費用,每小時1元。</p><p>  (上機費用=上機時間*1.0h,不足一小時按一小時計算)如圖3-3</p><p>  圖3-3 計算功能 </p><p

16、>  此功能為計費功能,每小時1元不足一小時按一小時計費。(其中使用取整函數(shù)“%”)如圖3-3</p><p>  查詢功能:按條件(班級、學(xué)號、姓名)顯示學(xué)生上機時間。如圖3-4</p><p>  圖3-4 查詢功能 </p><p>  此功能為查詢功能,可以根據(jù)學(xué)生信息查詢該生上機時間。如圖3-4</p><p>  機器使用情

17、況的顯示。(顯示方式不限但要一目了然)如圖3-5</p><p>  圖3-5 機器使用情況顯示</p><p>  此功能為機器使用情況顯示功能,可以查詢機器的使用情況。如圖3-5</p><p><b>  軟件測試及使用說明</b></p><p>  4.1 系統(tǒng)開發(fā)與運行環(huán)境</p><p&

18、gt;  代碼實現(xiàn):C++語言程序</p><p>  開發(fā)工具:VC++6.0</p><p>  WEB服務(wù)器:IIS4.0及以上</p><p>  服務(wù)器端:WinNT、Win2000 Server、Win2003 Server</p><p>  數(shù)據(jù)庫: Microsoft SQL Server 2000</p>&

19、lt;p>  4.2 運行及測試結(jié)果</p><p>  1. 進入輸入功能如圖4-1所示:</p><p>  圖4-1 進入輸入功能</p><p>  在這里輸入使用的主菜單,如1。然后輸入學(xué)生信息,如,學(xué)號110113,班級111,姓名,如weizheng,上機時間,如,1226(格式HHMM如13:30寫為1330)如圖4-1所示</p>

20、<p>  2. 進入計算功能如圖4-2所示:</p><p>  圖4-2進入計算功能</p><p>  輸入菜單號2開啟,此功能負責(zé)內(nèi)部計費,如該同學(xué)上機5小時,應(yīng)收費5元(上機費用=上機時間*1.0h,不足一小時按一小時計算)如圖4-2所示</p><p>  3. 進入查詢功能如圖4-3所示:</p><p>  圖4

21、-3進入計算功能</p><p>  輸入菜單號3開啟,此功能主要負責(zé)上級查詢,可以按學(xué)號,班級,姓名查詢學(xué)生上機時間。如圖4-3所示</p><p>  4. 進入機器使用情況顯示功能如圖4-4所示:</p><p>  圖4-4進入機器使用情況顯示功能</p><p>  輸入菜單號4開啟,此功能主要負責(zé)機房機器使用情況,空閑表示“-”,

22、使用表示“@”。如圖4-4所示</p><p><b>  課程設(shè)計心得體會</b></p><p>  通過這次的c++程序設(shè)計,我受益良多,本來以為是一個簡單的C語言設(shè)計,但是在實際操作中我發(fā)現(xiàn)其中的難題那不是一點點而已,我花了整整2天時間去設(shè)計,但是無果,后來在同學(xué)的幫助下列出了設(shè)計框架和函數(shù)運用,這次設(shè)計我覺得很有難度,可能是我自己學(xué)習(xí)的不好,但是在這次作業(yè)中

23、也是學(xué)習(xí)到了很多以前不知道的東西,在這次設(shè)計編程中我發(fā)現(xiàn)C語言的編程是一件需要人去用心,用腦,用毅力做的,因為編程中有很多問題,而且問題都是很細小的縫隙中,比如什么“;”、“‘’”、“()”、“{}”很多很多,有時候就忘記了,返回來改的時候又要有很大的毅力,老師別笑話我,我第一次編譯完80多行有200幾個錯誤,我不知道是我裝的C++有問題還是怎么地,我當時備受打擊,差點就放棄做這個作業(yè)了,但是過了幾天,我覺得我做的編程的確漏洞百出,我有

24、在原來的框架上改動了很多東西,翻閱了大一學(xué)過的《C++程序設(shè)計》和《c語言編程設(shè)計》書,發(fā)現(xiàn)我最大的問題就是“不按套路出牌”,就像是“中國式英語”一樣,自己想到了什么就寫個什么到最后,自己連自己都不知道在寫什么。</p><p>  后來在同學(xué)的幫助下,應(yīng)該是師傅領(lǐng)進門修行還得靠自己,因為大家都要做自己的東西都很忙,不管怎么樣都感謝他們在百忙之中還來幫我,他們都是先設(shè)計整個程序的總體運行圖,就好比是寫一個作文要先

25、寫出提綱一樣,有了這個骨架,接下來應(yīng)該給他血肉,然后再用標注來給他生動的面容,接下來就該在C++中運行了,當然運行不是一般的簡單,因為老是有錯誤,老運行不出來,這個得靠毅力,慢慢的一步一步改,改完繼續(xù)發(fā)現(xiàn)問題再改動,就這樣,反反復(fù)復(fù)得好長時間才行,最后完成后覺得很高興。</p><p>  在這次C++語言報告中我學(xué)到了很多以前沒有學(xué)到的東西,匪夷匪淺,在接下來的學(xué)習(xí)中我要補缺不足,發(fā)現(xiàn)自己的問題更好的學(xué)習(xí)這門課

26、程。</p><p><b>  附錄1:參考文獻</b></p><p>  [1] 譚浩強著.C程序設(shè)計,清華大學(xué)出版社,1999年12月第2版</p><p>  [2] 譚浩強著.C++程序設(shè)計實踐指導(dǎo),清華大學(xué)出版社,2005年7月底1版</p><p>  [3]【美】D.C.Malik:C++編程——從問題

27、分析到程序設(shè)計,電子工業(yè)出版社,2003年7月第1版</p><p><b>  附錄2:程序代碼</b></p><p>  #include <iostream.h></p><p>  #include <stdlib.h></p><p>  #include <string.h&g

28、t;</p><p>  #define M 30//共有多少個學(xué)生需要輸入</p><p>  void initial();//定義完成各模塊所需要的函數(shù)</p><p>  void charge();</p><p>  void query();</p><p>  void show();</p&g

29、t;<p>  typedef struct student//定義結(jié)構(gòu)體,需要輸入學(xué)生信息中所包含的幾項</p><p><b>  {</b></p><p><b>  int no;</b></p><p>  char class_[30];</p><p>  char n

30、ame[20];</p><p>  int st_time;</p><p>  char num[3];</p><p><b>  }STU;</b></p><p>  STU ST[M];</p><p>  char mx[10][10];</p><p>&l

31、t;b>  int time;</b></p><p>  void CaiDan()//主菜單模塊,顯示主菜單的內(nèi)容</p><p><b>  {</b></p><p>  cout<<"--------------------------------------------------------

32、-----\n";</p><p>  cout<<" ******機房收費管理系統(tǒng)******\n\n";</p><p>  cout<<"1.請輸入數(shù)據(jù)\n";</p><p>  cout<<"2. 上機費用\n";&l

33、t;/p><p>  cout<<"3. 查詢學(xué)生上機情況\n";</p><p>  cout<<"4. 機器使用使用與否\n";</p><p>  cout<<"0. 退出\n";</p><p>  cout<<"提示

34、:程序初次使用必須在1中輸入數(shù)據(jù)?。?!\n";</p><p>  cout<<"-------------------------------------------------------------\n";</p><p><b>  }</b></p><p>  void main()//主函

35、數(shù),從主函數(shù)中分別調(diào)入各從函數(shù),執(zhí)行各自的模塊</p><p><b>  {</b></p><p><b>  int n;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p>&

36、lt;p><b>  CaiDan();</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  cout<<"輸入菜單號進入:";</p><p><b>  c

37、in>>n;</b></p><p>  if(n>=0&&n<=4)</p><p><b>  break;</b></p><p>  cout<<"請輸入0--4以內(nèi)的整數(shù)!?。n";</p><p><b>  }&

38、lt;/b></p><p><b>  switch(n)</b></p><p><b>  {</b></p><p>  case 1:initial();continue;</p><p>  case 2:charge();continue;</p><p&g

39、t;  case 3:query();continue;</p><p>  case 4:show();continue;</p><p>  case 0:exit(0);//c語言中正常退出模塊</p><p><b>  }</b></p><p>  system("pause");/

40、/直接調(diào)出程序,system為清屏程序</p><p><b>  }</b></p><p><b>  }</b></p><p>  void initial()//數(shù)據(jù)的初始化模塊,在每次啟動程序后必須鍵入所需數(shù)據(jù)</p><p><b>  {</b></p&g

41、t;<p><b>  int i;</b></p><p>  char *p=&mx[0][0];</p><p>  cout<<"\n-------------------------------------------\n";</p><p>  cout<<"

42、; ******數(shù)據(jù)初始化*****\n";</p><p>  cout<<"-------------------------------------------\n";</p><p>  for(i=0;i<100;i++)</p><p>  *(p+i)='-';<

43、;/p><p>  for(i=0;i<M;i++)</p><p><b>  {</b></p><p>  cout<<"\n請輸入第"<<i+1<<"個學(xué)生的信息:";</p><p>  cout<<"學(xué)號:&q

44、uot;;</p><p>  cin>>ST[i].no;</p><p>  cout<<"班級:";</p><p>  cin>>ST[i].class_;</p><p>  cout<<"姓名:";</p><p>  

45、cin>>ST[i].name;</p><p>  cout<<"上機時間(時間格式hhmm,如13:30應(yīng)寫成1330):";</p><p>  cin>>ST[i].st_time;</p><p>  cout<<"機器編號AB(A表示A到J的大寫字母;B表示0到9的數(shù)字):&q

46、uot;;</p><p>  cin>>ST[i].num;</p><p>  mx[ST[i].num[1]-48][ST[i].num[0]-65]='@';</p><p><b>  }</b></p><p><b>  }</b></p>&

47、lt;p>  void charge()//收費函數(shù),看某個學(xué)生的上機費用,在輸入時間,該學(xué)生學(xué)號后執(zhí)行</p><p><b>  {</b></p><p>  int xia,i;</p><p>  double a,b,c;</p><p>  cout<<"\n----------

48、---------------------------------\n";</p><p>  cout<<" ******上機計費*****\n";</p><p>  cout<<"-------------------------------------------\n";</p&g

49、t;<p>  cout<<"請輸入當前時間(時間格式hhmm,如13:30應(yīng)寫成1330):";</p><p>  cin>>time;</p><p>  a=time/100+time%100/60;</p><p>  cout<<"請輸入下機學(xué)生學(xué)號:";</

50、p><p><b>  cin>>xia;</b></p><p>  for(i=0;i<M;i++)</p><p><b>  {</b></p><p>  if(xia==ST[i].no)</p><p><b>  break;</

51、b></p><p><b>  }</b></p><p><b>  if(i>=M)</b></p><p><b>  {</b></p><p>  cout<<"該學(xué)生沒有在機房上機?。。n";</p>&

52、lt;p><b>  return;</b></p><p><b>  }</b></p><p>  b=ST[i].st_time/100+ST[i].st_time%100/60;</p><p><b>  c=(a-b);</b></p><p>  cout

53、<<ST[i].name<<"班級"<<ST[i].class_<<"學(xué)號"<<ST[i].no<<"共上機"<<a-b<<"小時,應(yīng)付上機費"<<c<<"元!";</p><p>  (int)

54、 c<c?(int )c+1:(int) c;</p><p><b>  }</b></p><p>  void query()//查詢每個學(xué)生的上機情況,可以根據(jù)該生的學(xué)號,姓名,班級查詢</p><p><b>  {</b></p><p>  int n,h,i,flag=1;&l

55、t;/p><p>  char s[30];</p><p>  cout<<"\n-------------------------------------------\n";</p><p>  cout<<" ******上機查詢*****\n\n";</p>&

56、lt;p>  cout<<"1. 按學(xué)號查詢\n";</p><p>  cout<<"2. 按班級查詢\n";</p><p>  cout<<"3. 按姓名查詢\n";</p><p>  cout<<"0. 返回\n";<

57、/p><p>  cout<<"-------------------------------------------\n";</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  cout<<&qu

58、ot;請輸入查詢方式:";</p><p><b>  cin>>n;</b></p><p>  if(n>=0&&n<=3)</p><p><b>  break;</b></p><p>  cout<<"輸入數(shù)據(jù)有誤,

59、請輸入0--3以內(nèi)的整數(shù)?。?!\n";</p><p><b>  }</b></p><p>  switch(n)//選擇用不同的方式來查詢</p><p><b>  {</b></p><p><b>  case 1:</b></p><

60、p><b>  {</b></p><p>  cout<<"請輸入學(xué)號:";</p><p><b>  cin>>h; </b></p><p>  for(i=0;i<M;i++)</p><p><b>  {</b&g

61、t;</p><p>  if(h==ST[i].no)</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  if(i>=M)</b></p><p><b>  {<

62、;/b></p><p>  cout<<"該學(xué)生沒有在機房上機?。?!\n";</p><p><b>  break;</b></p><p><b>  }</b></p><p>  cout<<ST[i].name<<"

63、班級"<<ST[i].class_<<"學(xué)號"<<ST[i].no<<"的上機時間"<<ST[i].st_time/100<<'.'<<ST[i].st_time%100;</p><p><b>  }break;</b></p>

64、<p>  case 2://該模塊可以輸出多個學(xué)生</p><p><b>  {</b></p><p>  cout<<"請輸入班級:";</p><p><b>  cin>>s; </b></p><p>  for(i=0;i&l

65、t;M;i++)</p><p><b>  {</b></p><p>  if(strcmp(s,ST[i].class_)==0)</p><p><b>  {</b></p><p>  cout<<ST[i].name<<"班級"<<

66、;ST[i].class_<<"學(xué)號"<<ST[i].no<<"的上機時間"<<ST[i].st_time/100<<'.'<<ST[i].st_time%100;</p><p><b>  flag=0;</b></p><p><

67、b>  }</b></p><p><b>  }</b></p><p><b>  if(flag)</b></p><p>  cout<<"該班級沒有學(xué)生在機房上機?。。n";</p><p><b>  }break;</

68、b></p><p><b>  case 3:</b></p><p><b>  {</b></p><p>  cout<<"請輸入姓名:";</p><p><b>  cin>>s; </b></p>&

69、lt;p>  for(i=0;i<M;i++)</p><p><b>  {</b></p><p>  if(strcmp(s,ST[i].name)==0)</p><p><b>  {</b></p><p>  cout<<ST[i].name<<&q

70、uot;班級"<<ST[i].class_<<"學(xué)號"<<ST[i].no<<"的上機時間"<<ST[i].st_time/100<<'.'<<ST[i].st_time%100;</p><p><b>  flag=0;</b></p

71、><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(flag)</b></p><p>  cout<<"該學(xué)生沒有在機房上機?。?!\n";</p><p><b&

72、gt;  }break;</b></p><p>  case 0:return;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void show()//輸出所有機器的使用情況</p><p><b

73、>  {</b></p><p><b>  int i,j;</b></p><p>  cout<<"\n-------------------------------------------\n";</p><p>  cout<<" *****

74、*機器顯示*****\n";</p><p>  cout<<" 本機房共有100臺機器\n";</p><p>  cout<<"-------------------------------------------\n\n";</p><p>  

75、cout<<" 提示:\'-\'表示機器空閑;\'@\'表示機器正在被使用\n";</p><p>  cout<<" ";</p><p>  for(i=0;i<10;i++)</p><p>  cout<<char(65+i);</p&

76、gt;<p>  cout<<"\n";</p><p>  for(i=0;i<10;i++)</p><p><b>  {</b></p><p><b>  cout<<i;</b></p><p>  for(j=0;j<

溫馨提示

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

評論

0/150

提交評論