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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、p>  類(lèi)的.設(shè)計(jì):各類(lèi)的具體說(shuō)明及描述</p><p>  kecheng類(lèi)的設(shè)計(jì) </p><p>  為了實(shí)現(xiàn)管理系統(tǒng)的各功能首先定義了一個(gè)kecheng類(lèi),用來(lái)定義各種數(shù)據(jù)成員,聲明這些功能函數(shù)。比如:說(shuō)明為什么要這樣設(shè)計(jì)</p><p>  setvalue(),showke()等 ,同時(shí)聲明一些私有成員。</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)鍵功能的實(shí)現(xiàn)</b></p><p><b> ?。?)信息的輸入</b></p><p>  setvalue()函數(shù)用來(lái)輸入相關(guān)信息,包括課程名稱(chēng)、教師名稱(chēng)、教室地點(diǎn)、課程起始周、課程結(jié)束周、上課的星期、

10、上課的具體時(shí)間。輸入一次信息之后可選擇是否繼續(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<<"*請(qǐng)輸入課程名稱(chēng)(請(qǐng)簡(jiǎn)寫(xiě) 不要超過(guò)6個(gè)字)"<<endl;</p><p>  cin>>ming[i];</p&

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

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

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

15、jie[i];</p><p><b>  } </b></p><p>  3.程序會(huì)對(duì)一課程多節(jié)課的現(xiàn)象進(jìn)行處理</p><p>  cout<<"*請(qǐng)輸入課程一周有幾天有"<<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<<"*請(qǐng)輸入第"<<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<<"輸入錯(cuò)誤! 請(qǐng)重新輸入&q

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

20、t;/p><p>  if(tang[i+u]>5)</p><p><b>  {</b></p><p>  cout<<"輸入錯(cuò)誤! 請(qǐng)重新輸入"<<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.輸完一門(mén)課程之后,系統(tǒng)會(huì)自動(dòng)提示是否進(jìn)行下一課程的輸入</p>&

22、lt;p>  cout<<"*請(qǐng)問(wèn)是否繼續(xù)下一個(gè)課程?(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ù),此部分用來(lái)實(shí)現(xiàn)課

24、程相關(guān)信息的排序,包括表格的建立與信息的對(duì)應(yīng)輸出,此函數(shù)用來(lái)顯示課程表的界面,用了一些“——”號(hào)建立表格,</p><p>  在程序重的最后,通過(guò)for 來(lái)實(shí)現(xiàn)整個(gè)程序的循環(huán),并且使用了switch選擇分支結(jié)構(gòu),使功能更容易實(shí)現(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>  對(duì)一天時(shí)間(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),用于控制表格位置的對(duì)號(hào)輸出及信息的循環(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>  軟件測(cè)試與調(diào)試<

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

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

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

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

42、整輸入以及各類(lèi)報(bào)表的打印。對(duì)于數(shù)據(jù)的一致性的問(wèn)題也通過(guò)程序進(jìn)行了有效的解決?!?#160; 但是由于課程設(shè)計(jì)時(shí)間較短,所以該系統(tǒng)還有許多不足之處:比如 系統(tǒng)維護(hù)功能,還不能讓用戶(hù)進(jìn)行數(shù)據(jù)備份和恢復(fù);用戶(hù)界面不夠美觀;這些都有待進(jìn)一步改善。</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]; //教室地點(diǎn)</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<<"*請(qǐng)輸入課程名稱(chēng)(請(qǐng)簡(jiǎn)寫(xiě) 不要超過(guò)6個(gè)字)"<<endl;&

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

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

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

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

52、/b></p><p>  cout<<"輸入錯(cuò)誤! 請(qǐng)重新輸入"<<endl;</p><p>  cin>>jie[i]; //重新輸入</p><p><b>  } </b></p><p>  cout

53、<<"*請(qǐng)輸入課程一周有幾天有"<<endl; //一門(mén)課一周幾節(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<<"*請(qǐng)輸入第"<<u+1<<"次課是星期幾"<<endl;</p><p> 

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

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

58、;<b>  {</b></p><p>  cout<<"輸入錯(cuò)誤! 請(qǐng)重新輸入"<<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<<"*請(qǐng)問(wèn)是否繼續(xù)下一個(gè)課程?(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ù)下一個(gè)</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; //課表的頁(yè)眉</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來(lái)檢測(cè)此項(xiàng)是否有內(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<<" |"; //若沒(méi)有則輸出空格</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<<" | "; //若沒(méi)有則輸出空格</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]<<"| "; //地點(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<<" | "; //若沒(méi)有則輸出空格</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)<<" "; //若沒(méi)有則輸出空格</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)進(jìn)入</p><p>  kecheng ke;</p><p>  cout<<" *************** 請(qǐng)輸入相關(guān)課程信息***************"<<endl<&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論