c++課程設(shè)計--高校課程表設(shè)計_第1頁
已閱讀1頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  高校課程表設(shè)計</b></p><p>  課程設(shè)計的的題目:高校課程表設(shè)計</p><p><b>  功能說明:</b></p><p>  學(xué)生課表建立系統(tǒng)是學(xué)生日常生活中必不可少的實用型小工具,它對于學(xué)生平時的學(xué)習(xí)生活有著相當(dāng)重要的幫助作用。便于操作、顯示精確、短小實用就是它的明顯特點

2、。</p><p>  本次課程設(shè)計目的:通過一個課程表建立系統(tǒng),使學(xué)生的學(xué)業(yè)及其他事物的時間安排更加合理,從而達到提高日常工作、學(xué)習(xí)效率。使學(xué)生掌握一門高級程序設(shè)計語言,了解面向?qū)ο蟪绦蛟O(shè)計的基本概念與方法,進而學(xué)會利用C++語言學(xué)會解決一般應(yīng)用問題,并為后續(xù)的專業(yè)課程奠定程序設(shè)計基礎(chǔ)。</p><p>  系統(tǒng)的基本模塊:根據(jù)系統(tǒng)功能的要求,課程表建立系統(tǒng)可以分為課程信息的輸入,課程表

3、的處理及建立等模塊。通過分析可以知道該軟件主要有以下功能模塊:</p><p><b>  學(xué)生課程名稱顯示</b></p><p><b>  總學(xué)周時間顯示</b></p><p><b>  教師顯示</b></p><p><b>  地點顯示</b&g

4、t;</p><p><b>  星期顯示</b></p><p><b>  一天中具體時間顯示</b></p><p>  其中本次課程設(shè)計實現(xiàn)的檔案模塊又分為如下子模塊:</p><p>  登陸界面:主要是增加系統(tǒng)的人性化,使用戶舒心</p><p>  信息錄入:主

5、要是將課程相關(guān)信息錄入</p><p><b>  信息處理</b></p><p>  顯示項目:對學(xué)生課程信息進行處理、列表、顯示。</p><p><b>  系統(tǒng)結(jié)構(gòu)圖1如下:</b></p><p><b>  圖1 系統(tǒng)結(jié)構(gòu)圖</b></p><

6、p>  類的.設(shè)計:各類的具體說明及描述</p><p>  kecheng類的設(shè)計 </p><p>  為了實現(xiàn)管理系統(tǒng)的各功能首先定義了一個kecheng類,用來定義各種數(shù)據(jù)成員,聲明這些功能函數(shù)。比如:說明為什么要這樣設(shè)計</p><p>  setvalue(),showke()等 ,同時聲明一些私有成員。</p><p> 

7、 class kecheng</p><p><b>  {</b></p><p><b>  public:</b></p><p>  void setvalue();</p><p>  void showke();</p><p>  string ming[16]

8、;</p><p>  string jiao[16];</p><p>  string di[16];</p><p>  int qi[16];</p><p>  int jie[16];</p><p>  int xing[16];</p><p>  int tang[16];&l

9、t;/p><p><b>  };</b></p><p><b>  關(guān)鍵功能的實現(xiàn)</b></p><p><b> ?。?)信息的輸入</b></p><p>  setvalue()函數(shù)用來輸入相關(guān)信息,包括課程名稱、教師名稱、教室地點、課程起始周、課程結(jié)束周、上課的星期、

10、上課的具體時間。輸入一次信息之后可選擇是否繼續(xù)添加新的課程。</p><p><b>  此函數(shù)代碼如下:</b></p><p><b>  1.基本信息輸入</b></p><p>  void kecheng::setvalue()</p><p><b>  {</b>

11、</p><p>  for(int i=0;i<16;i++)</p><p><b>  {</b></p><p>  cout<<"*請輸入課程名稱(請簡寫 不要超過6個字)"<<endl;</p><p>  cin>>ming[i];</p&

12、gt;<p>  cout<<"*請輸入課程教師"<<endl;</p><p>  cin>>jiao[i];</p><p>  cout<<"*請輸入教室"<<endl;</p><p>  cin>>di[i];</p>

13、<p>  cout<<"*請輸入課程的起始周"<<endl;</p><p>  cin>>qi[i];</p><p>  2.如果輸入錯誤,系統(tǒng)會自檢,提示錯誤</p><p>  cout<<"*請輸入課程的結(jié)束周"<<endl;</p>

14、;<p>  cin>>jie[i];</p><p>  if(jie[i]>20)</p><p><b>  {</b></p><p>  cout<<"輸入錯誤! 請重新輸入"<<endl;</p><p>  cin>>

15、jie[i];</p><p><b>  } </b></p><p>  3.程序會對一課程多節(jié)課的現(xiàn)象進行處理</p><p>  cout<<"*請輸入課程一周有幾天有"<<endl;</p><p><b>  int s;</b></p&

16、gt;<p><b>  cin>>s;</b></p><p><b>  {</b></p><p>  for(int u=0;u<s;u++)</p><p><b>  {</b></p><p>  ming[i+u]=ming[i]

17、;</p><p>  jiao[i+u]=jiao[i];</p><p>  di[i+u]=di[i];</p><p>  qi[i+u]=qi[i];</p><p>  jie[i+u]=jie[i];</p><p>  cout<<"*請輸入第"<<u+1&l

18、t;<"次課是星期幾"<<endl;</p><p>  cin>>xing[i+u];</p><p>  if(xing[i+u]>7)</p><p><b>  {</b></p><p>  cout<<"輸入錯誤! 請重新輸入&q

19、uot;<<endl;</p><p>  cin>>xing[i+u];</p><p><b>  }</b></p><p>  cout<<"*請輸入課程是第幾堂"<<endl;</p><p>  cin>>tang[i+u];&l

20、t;/p><p>  if(tang[i+u]>5)</p><p><b>  {</b></p><p>  cout<<"輸入錯誤! 請重新輸入"<<endl;</p><p>  cin>>tang[i+u];</p><p>&

21、lt;b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  i=i+s;</b></p><p>  4.輸完一門課程之后,系統(tǒng)會自動提示是否進行下一課程的輸入</p>&

22、lt;p>  cout<<"*請問是否繼續(xù)下一個課程?(Y/N)"<<endl;</p><p><b>  char num;</b></p><p><b>  cin>>num;</b></p><p>  if(num=='Y'||num

23、=='y') continue;</p><p>  else break;</p><p><b>  }</b></p><p><b>  }</b></p><p> ?。?)信息的處理與輸出</p><p>  showke()函數(shù),此部分用來實現(xiàn)課

24、程相關(guān)信息的排序,包括表格的建立與信息的對應(yīng)輸出,此函數(shù)用來顯示課程表的界面,用了一些“——”號建立表格,</p><p>  在程序重的最后,通過for 來實現(xiàn)整個程序的循環(huán),并且使用了switch選擇分支結(jié)構(gòu),使功能更容易實現(xiàn)。</p><p><b>  基本課表表頭的輸出</b></p><p><b>  此函數(shù)代碼如下:&

25、lt;/b></p><p>  void kecheng::showke()</p><p><b>  {</b></p><p>  cout<<" ////////////////////////////////"<<e

26、ndl;</p><p>  cout<<" //課 程 表//"<<endl;</p><p>  cout<<" ////////////////

27、////////////////"<<endl;</p><p>  cout<<"_____________________________________________________________________________________________________"<<endl;</p><p>  c

28、out<<" | 一 | 二 | 三 | 四 | 五 | 六 | 日 | "<<endl;</p><p>  cout<<"______________________________________________

29、_______________________________________________________"<<endl;</p><p>  對一天時間(1~10節(jié))的格式輸出</p><p><b>  此函數(shù)代碼如下:</b></p><p>  for(int i=1;i<6;i++)</p>

30、<p><b>  {</b></p><p><b>  int l;</b></p><p><b>  switch(i)</b></p><p><b>  {</b></p><p>  case 1:cout<<&qu

31、ot;一(1-2) |";break;</p><p>  case 2:cout<<"二(3-4) |";break;</p><p>  case 3:cout<<"三(5-6) |";break;</p><p>  case 4:cout<<"四(7-8)

32、 |";break;</p><p>  case 5:cout<<"五(9-10) |";break;</p><p><b>  }</b></p><p>  循環(huán)輸出課程信息,這里采用雙循環(huán),用于控制表格位置的對號輸出及信息的循環(huán)輸出</p><p><b> 

33、 此函數(shù)代碼如下:</b></p><p>  for(int j=1;j<8;j++)</p><p><b>  {</b></p><p><b>  l=0;</b></p><p>  for(int n=0;n<16;n++)</p><p&g

34、t;<b>  {</b></p><p>  if(tang[n]==i&&xing[n]==j)</p><p><b>  {</b></p><p>  cout<<setw(12)<<ming[n]<<"|";</p><

35、p><b>  l=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(l==0)</b></p><p><b>  {</b></p>

36、<p>  cout<<" |";</p><p><b>  }</b></p><p><b>  }</b></p><p>  cout<<endl;</p><p>  cout<<"

37、 | ";</p><p>  cout<<"_____________________________________________________________________________________________________"<<endl;}}</p><p><b>  軟件測試與調(diào)試<

38、;/b></p><p>  進入本程序如圖2所示</p><p><b>  圖2 登陸界面</b></p><p>  系統(tǒng)會提示輸入相關(guān)信息,課程是星期幾、第幾堂是必須輸入的,輸入一次信息之后可選擇是否繼續(xù)添加新的課程如圖3所示。</p><p><b>  圖3顯示輸入界面</b>&l

39、t;/p><p>  如果選擇不繼續(xù) 系統(tǒng)就會顯示結(jié)果如圖4所示</p><p><b>  圖4顯示輸出界面</b></p><p>  程序在執(zhí)行時經(jīng)常會出現(xiàn)一些違反設(shè)計期望的異常情況(如數(shù)值過大),一些大型的應(yīng)用系統(tǒng)的開發(fā)人員提出,可以在允許的范圍內(nèi)由應(yīng)用程序自身來處理一般性的程序運行錯誤。C++語言異常處理由三個部分構(gòu)成。異常檢測的觸發(fā)、異

40、常檢測的捕獲和異常檢測的處理。在這里我通過添加檢測函數(shù)來確保程序的正常運行</p><p><b>  代碼如下:</b></p><p>  if(xing[i+u]>7)</p><p><b>  {</b></p><p>  cout<<"輸入錯誤! 請重新輸

41、入"<<endl;</p><p>  cin>>xing[i+u];</p><p><b>  }</b></p><p><b>  結(jié)束語</b></p><p>  經(jīng)過1周多的設(shè)計和開發(fā),學(xué)生課程表建立基本開發(fā)完畢。其功能基本符合用戶需求,能夠完成信息完

42、整輸入以及各類報表的打印。對于數(shù)據(jù)的一致性的問題也通過程序進行了有效的解決?!?#160; 但是由于課程設(shè)計時間較短,所以該系統(tǒng)還有許多不足之處:比如 系統(tǒng)維護功能,還不能讓用戶進行數(shù)據(jù)備份和恢復(fù);用戶界面不夠美觀;這些都有待進一步改善。</p><p><b>  附錄: 要注釋</b></p><p><b>  源程序清單</b><

43、;/p><p>  #include<iostream></p><p>  #include<string></p><p>  #include<iomanip></p><p>  using namespace std;</p><p>  class kecheng

44、 //模塊一</p><p><b>  {</b></p><p>  public: //公有數(shù)據(jù)</p><p>  void setvalue(); //輸入函數(shù)</p><p>  void showke(); //處理、輸出函數(shù)</p>

45、<p>  string ming[16]; //課程名</p><p>  string jiao[16]; //教師名</p><p>  string di[16]; //教室地點</p><p>  int qi[16]; //課程起始周</p><p>  int jie[16

46、]; //課程結(jié)束周</p><p>  int xing[16]; //星期</p><p>  int tang[16]; //第幾堂</p><p><b>  }; </b></p><p>  void kecheng::setvalue() //模塊二</p&g

47、t;<p><b>  {</b></p><p>  for(int i=0;i<16;i++) //for循環(huán)控制輸入</p><p><b>  {</b></p><p>  cout<<"*請輸入課程名稱(請簡寫 不要超過6個字)"<<endl;&

48、lt;/p><p>  cin>>ming[i];</p><p>  cout<<"*請輸入課程教師"<<endl;</p><p>  cin>>jiao[i];</p><p>  cout<<"*請輸入教室"<<endl;<

49、;/p><p>  cin>>di[i];</p><p>  cout<<"*請輸入課程的起始周"<<endl;</p><p>  cin>>qi[i];</p><p>  if(qi[i]>20) </p><p>&l

50、t;b>  {</b></p><p>  cout<<"輸入錯誤! 請重新輸入"<<endl; //錯誤判斷</p><p>  cin>>qi[i]; //重新輸入</p><p><b>  } </b>

51、</p><p>  cout<<"*請輸入課程的結(jié)束周"<<endl;</p><p>  cin>>jie[i];</p><p>  if(jie[i]>20) //錯誤判斷</p><p><b>  {<

52、/b></p><p>  cout<<"輸入錯誤! 請重新輸入"<<endl;</p><p>  cin>>jie[i]; //重新輸入</p><p><b>  } </b></p><p>  cout

53、<<"*請輸入課程一周有幾天有"<<endl; //一門課一周幾節(jié)的處理</p><p><b>  int s;</b></p><p>  cin>>s; //輸入節(jié)數(shù)</p><p><b>  {</b&g

54、t;</p><p>  for(int u=0;u<s;u++) //for循環(huán)控制多節(jié)輸入</p><p><b>  {</b></p><p>  ming[i+u]=ming[i];</p><p>  jiao[i+u]=jiao[i];</p><p

55、>  di[i+u]=di[i];</p><p>  qi[i+u]=qi[i];</p><p>  jie[i+u]=jie[i];</p><p>  cout<<"*請輸入第"<<u+1<<"次課是星期幾"<<endl;</p><p> 

56、 cin>>xing[i+u];</p><p>  if(xing[i+u]>7)</p><p><b>  {</b></p><p>  cout<<"輸入錯誤! 請重新輸入"<<endl;</p><p>  cin>>xing[i+u

57、];</p><p><b>  }</b></p><p>  cout<<"*請輸入課程是第幾堂"<<endl;</p><p>  cin>>tang[i+u];</p><p>  if(tang[i+u]>5)</p><p>

58、;<b>  {</b></p><p>  cout<<"輸入錯誤! 請重新輸入"<<endl;</p><p>  cin>>tang[i+u];</p><p><b>  }</b></p><p><b>  }</

59、b></p><p><b>  }</b></p><p><b>  i=i+s;</b></p><p>  cout<<"*請問是否繼續(xù)下一個課程?(Y/N)"<<endl; //是否繼續(xù)輸入</p><p><b>  char

60、 num;</b></p><p><b>  cin>>num;</b></p><p>  if(num=='Y'||num=='y') continue; //繼續(xù)下一個</p><p>  else break;

61、 //結(jié)束輸入</p><p><b>  }</b></p><p><b>  }</b></p><p>  void kecheng::showke() //模塊三</p><p><b&g

62、t;  {</b></p><p>  cout<<" ////////////////////////////////"<<endl; //課表的頁眉</p><p>  cout<<"

63、 //課 程 表//"<<endl;</p><p>  cout<<" ////////////////////////////////"<<endl;</p>

64、<p>  cout<<"_____________________________________________________________________________________________________"<<endl;</p><p>  cout<<" | 一 | 二

65、 | 三 | 四 | 五 | 六 | 日 | "<<endl;</p><p>  cout<<"___________________________________________________________________________________________

66、__________"<<endl;</p><p>  for(int i=1;i<6;i++)</p><p><b>  {</b></p><p>  int l; //用l來檢測此項是否有內(nèi)容輸出</p><p>  switch(i

67、) //課表的一天節(jié)數(shù) 輸出</p><p><b>  {</b></p><p>  case 1:cout<<"一(1-2) |";break;</p><p>  case 2:cout<<"二(3-4) |";break;&

68、lt;/p><p>  case 3:cout<<"三(5-6) |";break;</p><p>  case 4:cout<<"四(7-8) |";break;</p><p>  case 5:cout<<"五(9-10) |";break;</p>

69、<p><b>  }</b></p><p>  for(int j=1;j<8;j++)</p><p><b>  {</b></p><p><b>  l=0;</b></p><p>  for(int n=0;n<16;n++)</p

70、><p><b>  {</b></p><p>  if(tang[n]==i&&xing[n]==j)</p><p><b>  {</b></p><p>  cout<<setw(12)<<ming[n]<<"|"; /

71、/課名輸出</p><p><b>  l=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(l==0)</b></p><p><b>  {

72、</b></p><p>  cout<<" |"; //若沒有則輸出空格</p><p><b>  }</b></p><p><b>  }</b></p><p>  cout<<endl;&l

73、t;/p><p>  cout<<" | ";</p><p>  for( j=1;j<8;j++)</p><p><b>  {</b></p><p><b>  l=0;</b></p><p>  for(int

74、n=0;n<16;n++)</p><p><b>  {</b></p><p>  if(tang[n]==i&&xing[n]==j)</p><p><b>  {</b></p><p>  cout<<setw(10)<<jiao[n]<

75、;<" | "; //教師輸出</p><p><b>  l=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(l==0)</b></p>

76、;<p><b>  {</b></p><p>  cout<<" | "; //若沒有則輸出空格</p><p><b>  }</b></p><p><b>  }</b></p><p&

77、gt;  cout<<endl;</p><p>  cout<<" | "; </p><p>  for( j=1;j<8;j++)</p><p><b>  {</b></p><p><b>  

78、l=0;</b></p><p>  for(int n=0;n<16;n++)</p><p><b>  {</b></p><p>  if(tang[n]==i&&xing[n]==j)</p><p><b>  {</b></p><

79、p>  cout<<setw(11)<<di[n]<<"| "; //地點輸出</p><p><b>  l=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><

80、;p><b>  if(l==0)</b></p><p><b>  {</b></p><p>  cout<<" | "; //若沒有則輸出空格</p><p><b>  }</b></p><p&

81、gt;<b>  }</b></p><p>  cout<<endl;</p><p>  cout<<" |";</p><p>  for( j=1;j<8;j++)</p><p><b>  {</b></p>

82、<p><b>  l=0;</b></p><p>  for(int n=0;n<16;n++)</p><p><b>  {</b></p><p>  if(tang[n]==i&&xing[n]==j)</p><p><b>  {</

83、b></p><p>  cout<<" ("<<setw(2)<<qi[n]<<" -"<<setw(2)<<jie[n]<<")周 "; //總周數(shù)輸出</p><p>  cout<<"|";</

84、p><p><b>  l=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(l==0)</b></p><p><b>  {</b>

85、</p><p>  cout<<setw(12)<<" "; //若沒有則輸出空格</p><p>  cout<<"|";</p><p><b>  }</b></p><p><b>  }</b

86、></p><p>  cout<<endl;</p><p>  cout<<"_____________________________________________________________________________________________________"<<endl;</p><

87、;p><b>  }</b></p><p><b>  }</b></p><p>  int main() //模塊四</p><p><b>  {</b></p><p>  cout<<"*****

88、**********歡迎使用課程表建立系統(tǒng) ^-^***************"<<endl<<endl;; //系統(tǒng)進入</p><p>  kecheng ke;</p><p>  cout<<" *************** 請輸入相關(guān)課程信息***************"<<endl<&

溫馨提示

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

評論

0/150

提交評論