版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)ppt
- c++課程設(shè)計(jì)報(bào)告--高校人員管理系統(tǒng)
- c++課程設(shè)計(jì)--某高校信息管理
- c++課程設(shè)計(jì) 高校人事管理系統(tǒng)
- c++課程設(shè)計(jì)--c++程序設(shè)計(jì)語(yǔ)言
- 串口通信c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)-- c++面向?qū)ο蟪绦蛟O(shè)計(jì)
- c++掃雷課程設(shè)計(jì)報(bào)告
- 中南大學(xué)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)-教學(xué)游戲
- c++課程設(shè)計(jì)——乘積最大
- 高校人事管理系統(tǒng)課程設(shè)計(jì)c++版
- c++課程設(shè)計(jì)--高校工資管理系統(tǒng)
- c++課程設(shè)計(jì)--學(xué)生成績(jī)表
- c++課程設(shè)計(jì)——矩陣類(lèi)
- c++課程設(shè)計(jì)---商場(chǎng)管理
- c++課程設(shè)計(jì)(文章編輯)
- c++課程設(shè)計(jì)高校水電費(fèi)管理系統(tǒng)
- c++課程設(shè)計(jì)-----高校工資管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論