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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、t;<p>  2.2 課程設計內容3</p><p>  2.4 課程設計開發(fā)環(huán)境和工具3</p><p>  第三章 詳細設計說明4</p><p>  3.1 系統(tǒng)詳細描述4</p><p>  3.1.1 系統(tǒng)設計背景4</p><p>  3.1.2 系統(tǒng)設計詳細信息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 運行及測試結果10</p><p>  第五章 課程設計心得體會14</p&

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

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

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

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

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

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

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

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

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

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

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

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

16、>  此功能為計費功能,每小時1元不足一小時按一小時計費。(其中使用取整函數“%”)如圖3-3</p><p>  查詢功能:按條件(班級、學號、姓名)顯示學生上機時間。如圖3-4</p><p>  圖3-4 查詢功能 </p><p>  此功能為查詢功能,可以根據學生信息查詢該生上機時間。如圖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;  代碼實現:C++語言程序</p><p>  開發(fā)工具:VC++6.0</p><p>  WEB服務器:IIS4.0及以上</p><p>  服務器端:WinNT、Win2000 Server、Win2003 Server</p><p>  數據庫: Microsoft SQL Server 2000</p>&

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

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

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

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

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

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

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

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

27、分析到程序設計,電子工業(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//共有多少個學生需要輸入</p><p>  void initial();//定義完成各模塊所需要的函數</p><p>  void charge();</p><p>  void query();</p><p>  void show();</p&g

29、t;<p>  typedef struct student//定義結構體,需要輸入學生信息中所包含的幾項</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()//主菜單模塊,顯示主菜單的內容</p><p><b>  {</b></p><p>  cout<<"--------------------------------------------------------

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

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

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

35、數,從主函數中分別調入各從函數,執(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";</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、/直接調出程序,system為清屏程序</p><p><b>  }</b></p><p><b>  }</b></p><p>  void initial()//數據的初始化模塊,在每次啟動程序后必須鍵入所需數據</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、; ******數據初始化*****\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<<"個學生的信息:";</p><p>  cout<<"學號:&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應寫成1330):";</p><p>  cin>>ST[i].st_time;</p><p>  cout<<"機器編號AB(A表示A到J的大寫字母;B表示0到9的數字):&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()//收費函數,看某個學生的上機費用,在輸入時間,該學生學號后執(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應寫成1330):";</p><p>  cin>>time;</p><p>  a=time/100+time%100/60;</p><p>  cout<<"請輸入下機學生學號:";</

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<<"該學生沒有在機房上機?。?!\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_<<"學號"<<ST[i].no<<"共上機"<<a-b<<"小時,應付上機費"<<c<<"元!";</p><p>  (int)

54、 c<c?(int )c+1:(int) c;</p><p><b>  }</b></p><p>  void query()//查詢每個學生的上機情況,可以根據該生的學號,姓名,班級查詢</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. 按學號查詢\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<<"輸入數據有誤,

59、請輸入0--3以內的整數?。?!\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<<"請輸入學號:";</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<<"該學生沒有在機房上機!??!\n";</p><p><b>  break;</b></p><p><b>  }</b></p><p>  cout<<ST[i].name<<"

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

64、<p>  case 2://該模塊可以輸出多個學生</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_<<"學號"<<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<<"該班級沒有學生在機房上機?。?!\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_<<"學號"<<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<<"該學生沒有在機房上機!?。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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論