版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 學(xué)生選修課選課系統(tǒng)</b></p><p><b> 目 錄</b></p><p><b> 1 前言1</b></p><p><b> 2 需求分析2</b></p><p> 2.1 編寫(xiě)目的2<
2、;/p><p> 2.2 需求概述2</p><p> 2.3 需求說(shuō)明2</p><p> 2.4 開(kāi)發(fā)環(huán)境2</p><p><b> 3 總體設(shè)計(jì)3</b></p><p> 3.1功能模塊圖3</p><p><b> 3.2 流程圖4
3、</b></p><p> 3.3 類(lèi)的設(shè)計(jì)圖5</p><p> 4 各功能模塊設(shè)計(jì)7</p><p><b> 4.1整體設(shè)計(jì)7</b></p><p> 4.2主要的功能函數(shù)設(shè)計(jì)7</p><p><b> 5 系統(tǒng)調(diào)試8</b><
4、/p><p> 6 總結(jié)與體會(huì)14</p><p><b> 6.1 總結(jié)14</b></p><p> 6.2 編寫(xiě)程序中遇到的問(wèn)題及解決辦法14</p><p><b> 參考文獻(xiàn)15</b></p><p><b> 附錄 源程序16</
5、b></p><p><b> 須眉原作</b></p><p><b> 1 前言</b></p><p> 隨著計(jì)算機(jī)的普及,各高校均采用計(jì)算機(jī)進(jìn)行學(xué)生選課。學(xué)生選修課系統(tǒng)主要包含選修課管理系統(tǒng)及學(xué)生選課系統(tǒng)兩部分。</p><p> 學(xué)生選修課系統(tǒng)一般需要有管理員管理選修課課程,
6、然后學(xué)生對(duì)經(jīng)過(guò)管理員操作后的選修課進(jìn)行選課。選修課管理系統(tǒng)由管理員登錄,對(duì)當(dāng)前所有選修課課程進(jìn)行管理操作。學(xué)生選課系統(tǒng)則是由學(xué)生登錄,學(xué)生可以查看由管理員整理好的所有選修課,并從顯示出的選修課中選擇自己要選擇的課程。</p><p> 管理員管理選修課實(shí)質(zhì)是對(duì)后臺(tái)選修課庫(kù)中的選修課信息進(jìn)行操作,可以在庫(kù)中添加課程或刪除課程。學(xué)生選課的實(shí)質(zhì)即是先打印出后臺(tái)選修課庫(kù)中所有選修課信息以供選擇,選擇課程即是對(duì)后臺(tái)學(xué)生信
7、息庫(kù)里的學(xué)生信息進(jìn)行修改。</p><p><b> 2 需求分析</b></p><p><b> 2.1 編寫(xiě)目的</b></p><p> ?。?)要求學(xué)生達(dá)到熟練掌握C++語(yǔ)言的基本知識(shí)和技能; </p><p> (2)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法; </p>
8、<p> (3)能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問(wèn)題;</p><p> (4)通過(guò)編寫(xiě)此系統(tǒng),實(shí)現(xiàn)選修課系統(tǒng)的基本功能。</p><p><b> 2.2 需求概述</b></p><p> (1)系統(tǒng)中包括兩個(gè)登陸身份(管理員與學(xué)生),并對(duì)應(yīng)不同的功能;</p><p>
9、 ?。?)對(duì)于管理員,此系統(tǒng)具有添加、刪除、查看選修課等功能;</p><p> (3)對(duì)于學(xué)生,此系統(tǒng)具有選課、查詢等功能</p><p><b> 2.3 需求說(shuō)明</b></p><p> 此系統(tǒng)可以實(shí)現(xiàn)學(xué)生選課,管理員管理課程的基本功能</p><p><b> 2.4 開(kāi)發(fā)環(huán)境</b&g
10、t;</p><p> 使用Visual C++6.0編程軟件</p><p><b> 3 總體設(shè)計(jì)</b></p><p><b> 3.1功能模塊圖</b></p><p><b> (1)學(xué)生</b></p><p> 學(xué)生身份有兩個(gè)功
11、能,分別是選課與查看個(gè)人信息。如圖3.1所示。</p><p> 圖 3.1 學(xué)生功能模塊圖</p><p><b> 管理員</b></p><p> 管理員可以對(duì)選修課課程進(jìn)行管理。如下圖所示。</p><p> 圖 3.2 管理員功能模塊圖</p><p><b> 3.
12、2 流程圖</b></p><p> 進(jìn)入系統(tǒng)后可以選擇以學(xué)生身份或者管理員身份登錄。學(xué)生登錄需要輸入個(gè)人的學(xué)號(hào)及姓名,成功登錄后可以選課或查詢個(gè)人信息。管理員的登錄需要輸入密碼,成功登錄后則可以對(duì)當(dāng)前所有的選修課進(jìn)行管理操作,可添加新選修課或刪除已有的選修課。詳細(xì)操作流程如下圖所示。</p><p><b> 圖 3.3 流程圖</b></p&
13、gt;<p><b> 3.3 類(lèi)的設(shè)計(jì)圖</b></p><p><b> Course類(lèi)</b></p><p> Course類(lèi)即選修課課程類(lèi)。數(shù)據(jù)成員分別是:課程編號(hào)、課程名稱(chēng)、課程類(lèi)型、開(kāi)課時(shí)間、授課學(xué)時(shí)、實(shí)驗(yàn)學(xué)時(shí)、總學(xué)時(shí)以及學(xué)分。成員函數(shù)則包含所有數(shù)據(jù)成員的get函數(shù),用以獲取數(shù)據(jù)成員的值,set函數(shù)用來(lái)修改課程
14、,print函數(shù)則是打印課程的信息。如下圖所示。</p><p> 圖 3.4 Course類(lèi)</p><p><b> Student類(lèi)</b></p><p> Student類(lèi)即學(xué)生類(lèi)。其中包含了學(xué)生的學(xué)號(hào)、學(xué)生姓名、所選的兩門(mén)課程及兩門(mén)選修課課程的總學(xué)分。setId和setName是用來(lái)修改相關(guān)成員的值,getName獲取學(xué)生的
15、姓名,print函數(shù)用來(lái)打印學(xué)生的相關(guān)信息,個(gè)selectCourse則是用來(lái)選課。如下圖所示。</p><p> 圖3.5 Student類(lèi)</p><p><b> 4 各功能模塊設(shè)計(jì)</b></p><p><b> 4.1整體設(shè)計(jì)</b></p><p> 對(duì)于學(xué)生和選修課,我們分別
16、定義了相應(yīng)的類(lèi)Student和類(lèi)Course,其間的關(guān)系就是學(xué)生類(lèi)中有兩個(gè)選修課類(lèi)對(duì)象成員。而對(duì)于管理員我們并沒(méi)有單獨(dú)去定義類(lèi),因?yàn)楣芾韱T只是對(duì)選修課進(jìn)行操作,程序中并不需要訪問(wèn)管理員的信息。</p><p> 為了方便對(duì)選修課進(jìn)行管理及多位學(xué)生的登錄,我們定義了一個(gè)選修課數(shù)組和學(xué)生數(shù)組。</p><p> 4.2主要的功能函數(shù)設(shè)計(jì)</p><p><b&
17、gt; 選課函數(shù) </b></p><p> void selectCourse(Student s1[10], Course c1[M], int s_num1) </p><p> 對(duì)當(dāng)前學(xué)生對(duì)象進(jìn)行操作,覆蓋其選修課對(duì)象成員c1或c2,即學(xué)生的選課。</p><p> 兩種輸出所需選修課函數(shù)</p><p>
18、 按學(xué)分輸出選修課函數(shù) void selectScore(Course c1[M])</p><p> 按類(lèi)型輸出選修課void selectNature(Course c1[M])</p><p> 對(duì)傳遞進(jìn)來(lái)的選修課數(shù)組進(jìn)行掃描,輸出符合要求的選修課。</p><p><b> 選修課排序函數(shù) </b></p><
19、p> void xu(Course c1[M])</p><p> 使用冒泡排序法對(duì)選修課數(shù)組進(jìn)行編號(hào)從小到大的排序。</p><p><b> 主菜單函數(shù) </b></p><p> void menu(Course c1[6], Student s1[10])</p><p> 所有菜單循環(huán)都在其中,
20、調(diào)用其他函數(shù)來(lái)實(shí)現(xiàn)具體功能。</p><p><b> 5 系統(tǒng)調(diào)試</b></p><p><b> 系統(tǒng)主界面</b></p><p> 進(jìn)入系統(tǒng)主界面后可以選擇登錄身份或退出程序。如圖5.1所示。</p><p> 圖5.1 系統(tǒng)主界面</p><p><
21、b> 2.選修課管理系統(tǒng)</b></p><p> 圖5.1選擇登錄身份為管理員,默認(rèn)密碼123,輸入-1可返回圖5.1界面。密碼輸入正確后可進(jìn)入管理員登錄系統(tǒng)。如圖5.2所示。</p><p> 圖5.2 選修課管理系統(tǒng)</p><p><b> 按學(xué)分查看選修課</b></p><p>
22、圖5.2選擇查看選修課,可以查看當(dāng)前所有的選修課課程的相關(guān)信息。可以選擇不同的輸出方式:按學(xué)分查詢、按類(lèi)型查詢、顯示全部。選擇按學(xué)分查詢,在選擇0.5,可打印當(dāng)前所有課程中學(xué)分為0.5的課程信息。如圖5.3所示。</p><p> 圖5.3 按學(xué)分查看選修課</p><p><b> 查詢?nèi)窟x修課</b></p><p> 查看選修課功
23、能中可以選擇顯示全部,即羅列出當(dāng)前所有的選修課課程信息。如圖5.4所示。</p><p> 圖5.4 查詢?nèi)窟x修課</p><p><b> 管理員添加選修課</b></p><p> 圖5.2選擇添加選修課,可以添加一門(mén)新的選修課,然后按要求輸入課程信息。如圖5.5所示。</p><p> 圖5.5 管理員添
24、加選修課</p><p><b> 添加后的選修課信息</b></p><p> 添加選修課后選擇返回上一層,再選擇顯示全部選修課可以看到已新增的選修課已添加成功。如圖5.6所示。</p><p> 圖5.6 添加后的選修課</p><p><b> 管理員刪除選修課</b></p&g
25、t;<p> 圖5.2選擇刪除選修課。輸入要?jiǎng)h除的選修課的編號(hào),即可刪除相應(yīng)的選修課。如圖5.7所示。</p><p> 圖5.7 管理員刪除選修課</p><p><b> 刪除后的選修課信息</b></p><p> 刪除選修課后選擇返回上一層,再選擇顯示全部選修課可以看到已刪除的選修課已刪除成功。如圖5.8所示。&l
26、t;/p><p> 圖5.8 刪除后的選修課信息</p><p><b> 學(xué)生選課系統(tǒng)</b></p><p> 圖5.1選擇學(xué)生,然后輸入學(xué)生的姓名及學(xué)號(hào)就能進(jìn)入學(xué)生選課系統(tǒng)。如圖5.9所示。</p><p> 圖5.9 學(xué)生選課系統(tǒng)</p><p><b> 學(xué)生選課<
27、/b></p><p> 以學(xué)生身份登錄成功后,可以選擇選課或是查詢個(gè)人信息。選擇選課可以選擇按學(xué)分選課、按課程類(lèi)型選課或顯示全部課程再進(jìn)行選課。選擇按學(xué)分選課,再選藝術(shù)類(lèi),再輸入課程編號(hào)即可選擇相應(yīng)課程。如圖5.10所示。</p><p> 圖5.10 學(xué)生選課</p><p><b> 學(xué)生信息</b></p>&
28、lt;p> 選擇查看個(gè)人信息程序即打印出當(dāng)前學(xué)生的相關(guān)信息。如圖5.11 所示。</p><p> 圖5.11 學(xué)生信息</p><p><b> 退出</b></p><p> 圖5.1選擇退出即退出程序。如圖5.12所示。</p><p> 圖5.12 退出程序</p><p>
29、;<b> 6 總結(jié)與體會(huì)</b></p><p><b> 6.1 總結(jié)</b></p><p> 本程序?qū)崿F(xiàn)了學(xué)生選課及管理員對(duì)課程的操作功能,而學(xué)生的選課及管理員對(duì)課程的管理,都可以按學(xué)分或類(lèi)型來(lái)進(jìn)行操作。管理員登錄的默認(rèn)密碼是123,管理員可以添加新的選修課課程,也可以刪除原有的選修課。</p><p>
30、經(jīng)過(guò)此次的課程設(shè)計(jì),我們受益頗豐,尤其是對(duì)在編寫(xiě)過(guò)程中遇到的難題的處理方法,學(xué)會(huì)了很多程序設(shè)計(jì)的技巧。</p><p> 6.2 編寫(xiě)程序中遇到的問(wèn)題及解決辦法</p><p> (1)在無(wú)法與后臺(tái)交互的情況下如何實(shí)現(xiàn)用戶登錄?</p><p> 因?yàn)橹恍枰芾韱T有對(duì)選修課操作的能力,因此不需儲(chǔ)存管理員的信息,只需在其登錄前詢問(wèn)密碼即可。而學(xué)生的登錄,在其登錄
31、時(shí)分配一個(gè)對(duì)象空間,儲(chǔ)存在其登錄時(shí)獲取的學(xué)號(hào)及姓名即可,即每一個(gè)學(xué)生的登錄相當(dāng)于注冊(cè)過(guò)程。</p><p> (2)如何在不退出程序的情況下,能夠讓多位學(xué)生進(jìn)行選課?</p><p> 定義學(xué)生類(lèi)對(duì)象數(shù)組,每一位學(xué)生選完課后,再分配一個(gè)新的學(xué)生類(lèi)對(duì)象空間。</p><p> (3)如何實(shí)現(xiàn)對(duì)學(xué)生對(duì)象中課程對(duì)象成員的覆蓋?</p><p>
32、; 一開(kāi)始我們?yōu)榱朔奖闫鹨?jiàn)是考慮學(xué)生類(lèi)課程對(duì)象定義為引用,這樣只需引用已有的選修課課程即可,但這樣的話,在對(duì)學(xué)生對(duì)象初始化時(shí)引用的初始化就成了問(wèn)題,因此只能放棄。最終是選擇了使用set和get方法對(duì)對(duì)象成員的成員一個(gè)個(gè)覆蓋。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 黃維通.Visual C++面向?qū)ο笈c可視化程序設(shè)計(jì)(第2版)
33、.北京:清華大學(xué)出版社,2007.</p><p> [2] 張乃孝,陳光,孫猛.算法與數(shù)據(jù)結(jié)構(gòu)——C語(yǔ)言描述(第三版),2011.</p><p> [3] 譚浩強(qiáng).C程序語(yǔ)言設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社,2007.</p><p> [4] 楊永斌.數(shù)據(jù)結(jié)構(gòu)理論與實(shí)踐[M].天津:科學(xué)技術(shù)出版社,2011.</p><p&
34、gt; [5] 羅建軍.C++程序射機(jī)槍教程(第2版).北京:高等教育出版社,2004.</p><p> [6] 鄭振杰.C++程序設(shè)計(jì). 北京:人民郵電出版社,2005.</p><p> [7] 劉覺(jué)夫,王更生等.c++程序設(shè)計(jì).北京:郵電大學(xué)出版社,2011.</p><p> [8] 邵偉忠.C常用算法程序集.天津:人民出版社,2009.</
35、p><p> [9] 徐世亮.C++大學(xué)教程.北京:人民郵電出版社,2010.</p><p> [10] 吳華恩.C++程序設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2008.</p><p> [11] 邵偉忠.C常用算法程序集.天津:人民出版社,2009.</p><p><b> 附錄 源程序</b></p>
36、<p> #include <iostream.h></p><p> #include <string.h></p><p> #define M 10</p><p> class Course //選修課課程類(lèi)</p><p><b> {private:</b&
37、gt;</p><p> char * id;</p><p> char * name;</p><p> char * nature;</p><p> char * date;</p><p> int shours;</p><p> int ahours;</p>
38、;<p> int zhours;</p><p> double score;</p><p><b> public:</b></p><p><b> Course()</b></p><p><b> {</b></p><p
39、> id = "unknown";</p><p> name = "unknown";</p><p> nature = "unknown";</p><p> zhours = 0;</p><p> shours = 0;</p><
40、p> ahours = 0;</p><p> date = "unknown";</p><p> score = 0;</p><p><b> }</b></p><p> Course(char *a, char *b, char *c, char *d, int e, i
41、nt f, double g)</p><p><b> {</b></p><p><b> id = a;</b></p><p><b> name = b;</b></p><p> nature = c;</p><p><b&
42、gt; date = d;</b></p><p> shours = e;</p><p> ahours = f;</p><p> score = g;</p><p> zhours = e + f;</p><p><b> }</b></p>
43、<p> void set(char *a, char *b, char *c, char *d, int e, int f, double g)</p><p><b> {</b></p><p><b> id = a;</b></p><p><b> name = b;</b&
44、gt;</p><p> nature = c;</p><p><b> date = d;</b></p><p> shours = e;</p><p> ahours = f;</p><p> score = g;</p><p> zhou
45、rs = e + f;</p><p><b> }</b></p><p> char * getDate()</p><p> {return date;}</p><p> int getZhours()</p><p> {return zhours;}</p>&
46、lt;p> int getShours()</p><p> {eturn shours;}</p><p> int getAhours()</p><p> {return ahours;}</p><p> double getScore()</p><p> {return score;}&l
47、t;/p><p> char * getNature()</p><p> {return nature;}</p><p> char * getId()</p><p> {eturn id;}</p><p> char * getName()</p><p> {return n
48、ame;}</p><p> void print()</p><p><b> {</b></p><p> cout << "編號(hào): " << id << '\t';</p><p> cout << "名稱(chēng):
49、" << name << '\t';</p><p> cout << "類(lèi)型: " << nature << '\t';</p><p> cout << "上課時(shí)間: " << date << endl
50、;</p><p> cout << "總學(xué)時(shí): " << zhours << 'h' << '\t';</p><p> cout << "授課學(xué)時(shí): " << shours << 'h' << &
51、#39;\t';</p><p> cout << "實(shí)驗(yàn)學(xué)時(shí): " << ahours << 'h' << '\t';</p><p> cout << "學(xué)分: " << score << endl;</p&g
52、t;<p><b> }</b></p><p><b> };</b></p><p> class Student //學(xué)生類(lèi)</p><p><b> {</b></p><p> private:
53、 //學(xué)生選的課程是對(duì)象的成員</p><p> char * id;</p><p> char * name;</p><p> Course c1;</p><p> Course c2;</p><p> double zscore;</p><p><b> pu
54、blic:</b></p><p><b> Student()</b></p><p> {id = "unknown";</p><p> name = "unknown";</p><p> zscore = 0;</p><p>
55、<b> }</b></p><p> void setId(char * a1)</p><p><b> {d = a1;}</b></p><p> void setName(char * a1)</p><p> {name = a1;}</p><p>
56、 char * getName()</p><p> {return name;}</p><p> void print()</p><p><b> {</b></p><p> cout << "\n學(xué)號(hào): " << id << endl;</
57、p><p> cout << "姓名: " << name << endl;</p><p> cout << "您已選的選修課:\n1.";</p><p> c1.print();</p><p> cout << "2.&
58、quot;;</p><p> c2.print();</p><p> cout << "選修課總學(xué)分: " << c1.getScore() + c2.getScore() << '\n' <<endl;</p><p><b> }</b><
59、/p><p> void selectCourse_1(Course cc) //修改對(duì)象的課程成員</p><p> {c1.set(cc.getId(),cc.getName(),cc.getNature(),cc.getDate(),cc.getShours(),cc.getAhours(),cc.getScore());</p><p><
60、;b> }</b></p><p> void selectCourse_2(Course cc)</p><p> {c2.set(cc.getId(),cc.getName(),cc.getNature(),cc.getDate(),cc.getShours(),cc.getAhours(),cc.getScore());</p><p&g
61、t;<b> }</b></p><p><b> };</b></p><p> void selectCourse(Student s1[10], Course c1[M], int s_num1) //選課</p><p><b> {</b></p>
62、<p> char id[2][10], select1;</p><p> int i, j, k;</p><p> for(j=0; j<2; j++)</p><p><b> {</b></p><p> cout << "\n您想選您的第幾門(mén)選修課(1 or
63、2):";</p><p><b> cin >> k;</b></p><p> cout << "請(qǐng)輸入您想要選的選修課的編號(hào):";</p><p> cin >> id[j];</p><p> for(i=0; i<M &&a
64、mp; c1[i].getScore() !=0; i++) //掃描所有選修課,如果當(dāng)前選修課為空則跳出循環(huán)</p><p><b> {</b></p><p> if(strcmp(id[j], c1[i].getId())==0)</p><p><b> {</b></p>&l
65、t;p> if(1 == k)</p><p><b> {</b></p><p> s1[s_num1].selectCourse_1(c1[i]);</p><p><b> break;</b></p><p><b> }</b></p>
66、<p> if(2 == k)</p><p><b> {</b></p><p> s1[s_num1].selectCourse_2(c1[i]);</p><p><b> break;</b></p><p><b> }</b></p&g
67、t;<p><b> }</b></p><p><b> }</b></p><p> if(0 == j)</p><p><b> {</b></p><p> cout << "\n您是否想要繼續(xù)選課?(y/n):"
68、;;</p><p> cin >> select1;</p><p> if('n' == select1) break;</p><p><b> }</b></p><p><b> }</b></p><p> cout <
69、< "\n選課成功!" << endl;</p><p><b> }</b></p><p> void selectScore(Course c1[M]) //按學(xué)分查詢選修課</p><p><b> {</b></p><p> in
70、t select, num, i;</p><p> cout << "\n請(qǐng)輸入選修課的學(xué)分:";</p><p> cout << "\n 1. 0.5\n 2. 1.0" << endl;</p><p> cout << " 請(qǐng)選擇:";&
71、lt;/p><p> cin >> select;</p><p><b> num = 1;</b></p><p> if(1 == select)</p><p><b> {</b></p><p> for(i=0; i<M &&am
72、p; c1[i].getScore() !=0; i++)</p><p><b> {</b></p><p> if(0.5 == c1[i].getScore())</p><p><b> {</b></p><p> cout << num << '
73、.';</p><p> c1[i].print();</p><p> cout << endl;</p><p><b> num++;</b></p><p><b> }</b></p><p><b> }</b>
74、</p><p><b> }</b></p><p> else if(2 == select)</p><p><b> {</b></p><p> for(i=0; i<M && c1[i].getScore() !=0; i++)</p>&l
75、t;p><b> {</b></p><p> if(1.0 == c1[i].getScore())</p><p><b> {</b></p><p> cout << num << '.';</p><p> c1[i].print()
76、;</p><p> cout << endl;</p><p><b> num++;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>
77、</p><p> else cout << "對(duì)不起,您的輸入有誤,請(qǐng)重新輸入!\n\n";</p><p><b> }</b></p><p> void selectNature(Course c1[M]) //按類(lèi)型查詢選修課</p><p><b&g
78、t; {</b></p><p> int select, num, i;</p><p> char n1[10]="藝術(shù)類(lèi)", n2[10] ="學(xué)術(shù)類(lèi)";</p><p> cout << "請(qǐng)輸入選修課的學(xué)分:";</p><p> cout
79、 << "\n 1. 藝術(shù)類(lèi)\n 2. 學(xué)術(shù)類(lèi)" << endl;</p><p> cout << " 請(qǐng)選擇:";</p><p> cin >> select;</p><p><b> num = 1;</b></p>&l
80、t;p> if(1 == select)</p><p><b> {</b></p><p> for(i=0; i<M && c1[i].getScore() !=0; i++)</p><p><b> {</b></p><p> if(strcmp(n
81、1, c1[i].getNature()) == 0)</p><p><b> {</b></p><p> cout << num << '.';</p><p> c1[i].print();</p><p> cout << endl;</p>
82、;<p><b> num++;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> else if(2 == select)</p>
83、;<p><b> {</b></p><p> for(i=0; i<M && c1[i].getScore() !=0; i++)</p><p><b> {</b></p><p> if(strcmp(n2, c1[i].getNature()) == 0)</
84、p><p><b> {</b></p><p> cout << num << '.';</p><p> c1[i].print();</p><p> cout << endl;</p><p><b> num++;<
85、;/b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> else cout << "對(duì)不起,您的輸入有誤,請(qǐng)重新輸入!\n\n";</p&
86、gt;<p><b> }</b></p><p> void xu(Course c1[M]) //當(dāng)前所有選修課進(jìn)行排序(編號(hào)從小到大)</p><p><b> {</b></p><p> int i,j,k=0,num=0;</p><p> Cours
87、e cc;</p><p> for(j=0; j<M && c1[j].getScore() !=0; j++)</p><p><b> {</b></p><p> for(i=num; i<M && c1[i].getScore() !=0; i++)</p><p&
88、gt;<b> {</b></p><p> if(strcmp( c1[i].getId(), c1[i+1].getId() ) > 0)</p><p><b> {</b></p><p> k++;cc.set(c1[i].getId(),c1[i].getName(),c1[i].getNatu
89、re(),c1[i].getDate(),c1[i].getShours(),c1[i].getAhours(),c1[i].getScore());</p><p> c1[i].set(c1[i+1].getId(),c1[i+1].getName(),c1[i+1].getNature(),c1[i+1].getDate(),c1[i+1].getShours(),c1[i+1].getAhours(),
90、c1[i+1].getScore());</p><p> c1[i+1].set(cc.getId(),cc.getName(),cc.getNature(),cc.getDate(),cc.getShours(),cc.getAhours(),cc.getScore());</p><p><b> }</b></p><p> el
91、se k = 2;</p><p> if(1 == k) num = i;</p><p><b> }</b></p><p><b> k = 0;</b></p><p><b> }</b></p><p><b> }&l
92、t;/b></p><p> void menu(Course c1[6], Student s1[10]) //菜單</p><p><b> {</b></p><p> int flag0, flag1, flag2, flag3, flag4, password=0 ;</p><p>
93、 int select, s_num=0, i, j, num, newNum;</p><p> char id[10][10];</p><p> char select1;</p><p> char id1[10];</p><p> char name1[10];</p><p> char da[
94、20];</p><p> char na[10];</p><p><b> int sh;</b></p><p><b> int ah;</b></p><p> double sc;</p><p> flag0 = 1;</p><p
95、> while(flag0)</p><p><b> {</b></p><p> cout << "\n============" << endl;</p><p> cout << "| 菜 單 |" << endl;</p&
96、gt;<p> cout << "============" << endl;</p><p> cout << "| 1.管理員 |" << endl;</p><p> cout << "| 2.學(xué)生 |" << endl;<
97、/p><p> cout << "| 3.退出 |" << endl;</p><p> cout << "============" << endl;</p><p> cout << "\n請(qǐng)選擇:";</p><p&
98、gt; cin >> select;</p><p> switch(select)</p><p><b> {</b></p><p><b> case 1:</b></p><p> flag3 = 1;</p><p><b> w
99、hile(1)</b></p><p><b> {</b></p><p> cout << "請(qǐng)輸入密碼(輸入-1退出):";</p><p> cin >> password;</p><p> if(-1 == password) </p>
100、;<p><b> {</b></p><p><b> flag3 =0;</b></p><p><b> break;</b></p><p><b> }</b></p><p> if(123 == password)
101、 </p><p><b> {</b></p><p> cout << "\n 管理員,你好!歡迎登錄!" <<endl;</p><p><b> break;</b></p><p><b> }</
102、b></p><p> cout << "密碼錯(cuò)誤,請(qǐng)重新輸入!\n";</p><p><b> }</b></p><p> while(flag3)</p><p><b> {</b></p><p> cout <
103、;< "\n================" <<endl;</p><p> cout << "| 菜 單 |" <<endl;</p><p> cout << "================" <<endl;</p>&l
104、t;p> cout << "| 1.添加選修課 |" << endl;</p><p> cout << "| 2.刪除選修課 |" << endl;</p><p> cout << "| 3.查看選修課 |" << endl;</p>
105、;<p> cout << "| 4.返回上一層 |" << endl;</p><p> cout << "================" <<endl;</p><p> cout << "\n請(qǐng)選擇:";</p><p&g
106、t; cin >> select;</p><p> switch(select)</p><p><b> {</b></p><p><b> case 1:</b></p><p> newNum = 0;</p><p> for(i=0; i
107、<M && c1[i].getScore() !=0; i++) newNum++;</p><p> cout << "\n請(qǐng)按格式依次輸入選修課的編號(hào)、名稱(chēng)、上課時(shí)間(x.xx-x.xx)、類(lèi)型(藝術(shù)類(lèi)或?qū)W術(shù)類(lèi))、授課學(xué)時(shí)、實(shí)驗(yàn)學(xué)時(shí)、學(xué)分:" << endl;</p><p> cin >> id1 &g
108、t;> name1 >> da >> na >> sh >> ah >> sc;</p><p> c1[newNum].set(id1, name1, da, na, sh, ah, sc);</p><p><b> xu(c1);</b></p><p> cout
109、<< "添加成功!" << endl;</p><p><b> break;</b></p><p><b> case 2:</b></p><p> flag4 = 1;</p><p><b> j = 0;</b>&
110、lt;/p><p><b> num = 0;</b></p><p> while(flag4)</p><p><b> {</b></p><p> cout << "\n請(qǐng)輸入您想要?jiǎng)h除課程的編號(hào):";</p><p> cin
111、>> id[j];</p><p> for(i=0; i<M && c1[i].getScore() !=0; i++)</p><p><b> {</b></p><p> if(strcmp(id[j], c1[i].getId())==0)</p><p><b&g
112、t; {</b></p><p> for(num=i; num<M && c1[i].getScore() !=0; num++)</p><p><b> {</b></p><p> c1[num].set(c1[num+1].getId(),c1[num+1].getName(),c1[num+
113、1].getNature(),c1[num+1].getDate(),c1[num+1].getShours(),c1[num+1].getAhours(),c1[num+1].getScore());</p><p><b> }</b></p><p> c1[num] = Course();</p><p><b> br
114、eak;</b></p><p><b> }</b></p><p><b> }</b></p><p> cout << "刪除成功!\n";</p><p> cout << "\n您是否想要繼續(xù)刪除?(y/n):&q
115、uot;;</p><p> cin >> select1;</p><p> if('n' == select1) break;</p><p><b> j++;</b></p><p><b> }</b></p><p><b
116、> break;</b></p><p><b> case 3:</b></p><p> flag2 = 1;</p><p> while(flag2)</p><p><b> {</b></p><p> cout << &
117、quot;\n============================" <<endl;</p><p> cout << "| 菜 單 |" <<endl;</p><p> cout << "============================"
118、; <<endl;</p><p> cout << "| 1.按學(xué)分查詢選修課 |" << endl;</p><p> cout << "| 2.按選修課類(lèi)型查詢選修課 |" << endl;</p><p> cout << &qu
119、ot;| 3.顯示全部 |" << endl;</p><p> cout << "| 4.返回上一層 |" << endl;</p><p> cout << "============================" <<
120、;endl;</p><p> cout << "請(qǐng)選擇:";</p><p> cin >> select;</p><p> switch(select)</p><p><b> {</b></p><p><b> case
121、1:</b></p><p> selectScore(c1);</p><p><b> break;</b></p><p><b> case 2:</b></p><p> selectNature(c1);</p><p><b>
122、break;</b></p><p><b> case 3:</b></p><p> for(i=0; i<M && c1[i].getScore() !=0; i++)</p><p><b> {</b></p><p> cout <<
123、; i+1 << '.' ;</p><p> c1[i].print();</p><p> cout << endl;</p><p><b> }</b></p><p><b> break;</b></p><p>&
124、lt;b> case 4:</b></p><p> flag2 = 0;</p><p><b> break;</b></p><p><b> default :</b></p><p> cout << "對(duì)不起,您的輸入有誤,請(qǐng)重新輸入!\
125、n\n";</p><p><b> }</b></p><p><b> }</b></p><p><b> break;</b></p><p><b> case 4:</b></p><p> flag
126、3 = 0;</p><p><b> break;</b></p><p><b> default :</b></p><p> cout << "對(duì)不起,您的輸入有誤,請(qǐng)重新輸入!\n\n";</p><p><b> }</b>&
127、lt;/p><p><b> }</b></p><p><b> break;</b></p><p><b> case 2:</b></p><p> char a[10], b[10];</p><p> s1[s_num] = Stude
128、nt();</p><p> cout << "\n請(qǐng)輸入您的學(xué)號(hào):";</p><p><b> cin >> a;</b></p><p> s1[s_num].setId(a);</p><p> cout << "請(qǐng)輸入您的姓名:"
129、;;</p><p><b> cin >> b;</b></p><p> s1[s_num].setName(b);</p><p> flag1 = 1;</p><p> while(flag1)</p><p><b> {</b></
130、p><p> cout << "\n================" <<endl;</p><p> cout << "| 菜單 |" <<endl;</p><p> cout << "================" &
131、lt;<endl;</p><p> cout << "| 1.選課 |" << endl;</p><p> cout << "| 2.個(gè)人信息 |" << endl;</p><p> cout << "| 3.返回上一層 |
132、" << endl;</p><p> cout << "================" <<endl;</p><p> cout << "請(qǐng)選擇:";</p><p> cin >> select;</p><p>
133、switch(select)</p><p><b> {</b></p><p><b> case 1:</b></p><p> flag2 = 1;</p><p> cout << "\n" << s1[s_num].getName()
134、<< ",你好!歡迎登錄!" << endl;</p><p> while(flag2)</p><p><b> {</b></p><p> cout << "\n============================" <<endl;<
135、/p><p> cout << "| 菜 單 |" <<endl; </p><p> cout << "=============================" <<endl;</p><p> cout << &quo
136、t;| 1.按學(xué)分查詢選修課 |" << endl;</p><p> cout << "| 2.按選修課類(lèi)型查詢選修課 |" << endl;</p><p> cout << "| 3.顯示全部 |" << endl;</
137、p><p> cout << "| 4.返回上一層 |" << endl;</p><p> cout << "=============================" <<endl;</p><p> cout << "請(qǐng)選
138、擇:";</p><p> cin >> select;</p><p> switch(select)</p><p><b> {</b></p><p><b> case 1:</b></p><p> selectScore(c1);
139、</p><p> selectCourse(s1, c1 ,s_num);</p><p><b> break;</b></p><p><b> case 2:</b></p><p> selectNature(c1);</p><p> selectCou
140、rse(s1, c1 ,s_num);</p><p><b> break;</b></p><p><b> case 3:</b></p><p> for(i=0; i<M && c1[i].getScore() !=0; i++)</p><p><b&
141、gt; {</b></p><p> cout << i+1 << '.' ;</p><p> c1[i].print();</p><p> cout << endl;</p><p><b> }</b></p><p&g
142、t; selectCourse(s1, c1, s_num);</p><p><b> break;</b></p><p><b> case 4:</b></p><p> flag2 = 0;</p><p><b> break;</b></p>
143、<p><b> default :</b></p><p> cout << "對(duì)不起,您的輸入有誤,請(qǐng)重新輸入!\n\n";</p><p><b> }</b></p><p><b> }</b></p><p>&
144、lt;b> break;</b></p><p><b> case 2:</b></p><p> s1[s_num].print();</p><p><b> break;</b></p><p><b> case 3:</b></p&
145、gt;<p> flag1 = 0;</p><p><b> s_num++;</b></p><p><b> break;</b></p><p><b> default :</b></p><p> cout << "對(duì)不
146、起,您的輸入有誤,請(qǐng)重新輸入!\n\n";</p><p><b> }</b></p><p><b> }</b></p><p><b> break;</b></p><p><b> case 3:</b></p>
147、<p> flag0 = 0;</p><p> cout << " 謝謝使用!\n 再見(jiàn)!" << endl;</p><p><b> break;</b></p><p><b> default :</b></p><p&g
148、t; cout << "對(duì)不起,您的輸入有誤,請(qǐng)重新輸入!\n\n";</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void main()
149、 //管理員默認(rèn)密碼:123</p><p><b> {</b></p><p> Student s[10]; //學(xué)生數(shù)組,用于不同學(xué)生的選課</p><p> Course c[M]; //定義了一個(gè)課程類(lèi)的數(shù)組,儲(chǔ)存所有選修課</p><p>
150、 c[0] = Course("001", "健康與養(yǎng)生", "學(xué)術(shù)類(lèi)", "5.13-5.30", 15, 0, 1.0);</p><p> c[1] = Course("003", "音樂(lè)鑒賞", "藝術(shù)類(lèi)", "5.21-6.10", 12,
151、3, 0.5);</p><p> c[2] = Course("006", "數(shù)學(xué)建模", "學(xué)術(shù)類(lèi)", "5.7-6.2", 10, 6, 1.0);</p><p> c[3] = Course("007", "酒文化與鑒賞", "藝術(shù)類(lèi)",
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++畢業(yè)課程設(shè)計(jì)--學(xué)生選修課程系統(tǒng)設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告--學(xué)生選修課程系統(tǒng)設(shè)計(jì)
- 設(shè)計(jì)學(xué)生選修課程系統(tǒng)課程設(shè)計(jì)--設(shè)計(jì)學(xué)生選修課程系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生選修課系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生選修課系統(tǒng)
- c語(yǔ)言學(xué)生選修課程系統(tǒng)設(shè)計(jì)--學(xué)生選修課程系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生選修課系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生選修課系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生選修課程系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告—學(xué)生選修課程系統(tǒng)設(shè)計(jì)
- c++選修課管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- c++選修課管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- c語(yǔ)言課程設(shè)計(jì)_學(xué)生選修課系統(tǒng)設(shè)計(jì)(1)
- 課程設(shè)計(jì)---學(xué)生選修課程系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)-----學(xué)生選修課程系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--學(xué)生選修課程管理系統(tǒng)
- 課程設(shè)計(jì)---學(xué)生選修課管理系統(tǒng)
- 課程設(shè)計(jì)報(bào)告---學(xué)生選修課系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---學(xué)生選修課程系統(tǒng)設(shè)計(jì)
- 學(xué)生選修課程系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論