版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> ?。ㄒ唬?需求和規(guī)格說明</p><p> 安排研究生課程表。設(shè)有m個研究生和可選修的n門課程, 如果某個研究生選修的兩門課程安排在同一時間內(nèi)上課,則這兩門課程就會發(fā)生沖突,要求不沖突地安排課程表。</p><p> 提示:研究生選課信息可存放在m×n矩陣a中,a[i,j]= 1表示研究生i選修了課程j,a[i,j]=0表示研究生i未選修了課程j。<
2、/p><p><b> (二) 設(shè)計</b></p><p> 目標(biāo):(1)實現(xiàn)選修課系統(tǒng)學(xué)生端的幾個操作功能(學(xué)生選課、學(xué)生情況、選課情況、退出系統(tǒng))。</p><p> ?。?)實現(xiàn)選修課系統(tǒng)管理端的幾個操作功能(增加學(xué)生、增加課程、刪除學(xué)生、刪除課程、填寫成績、更改學(xué)分、學(xué)生情況、選課情況、保存數(shù)據(jù)、退出系統(tǒng))。[4]
3、 </p><p> 總體方案:先定義課程,在此類中先聲明課程名稱的字符型常量,然后聲明課程成績和指向下一個課程的指針。[5]然后分開開始定義學(xué)生類,課程類。在學(xué)生類中和課程類中聲明要操作的步驟,在學(xué)生類中要聲明學(xué)生姓名、學(xué)生選課、學(xué)生成績、學(xué)生的課程平均成績,最后用鏈表連接起來。在課程類中聲明課程名稱,課程的學(xué)分,該課程最多選的人和實際選該科得人,把他們用鏈表連接起來。[6]最
4、后用一個總菜單將學(xué)生選課、學(xué)生情況、選課情況、增加學(xué)生和課程、刪除學(xué)生、刪除課程等連接,這樣程序設(shè)計就算完成了。</p><p> 2-1選修課管理功能圖</p><p><b> 系統(tǒng)類圖</b></p><p> ?。ㄈ?程序運行平臺</p><p><b> VC++6.0。</b>&
5、lt;/p><p> 具體操作如下:打開VC++6.0,新建一個空工程,添加相應(yīng)的源文件,再編譯,鏈接,執(zhí)行。</p><p> 因為內(nèi)容過長只選取了其中的一部分作為說明</p><p> 1. 數(shù)據(jù)庫名:subject </p><p> 2.(1) 類subject里面的相關(guān)數(shù)據(jù)如下</p><p> 使用p
6、ublic成員函數(shù)、private成員函數(shù)[8]</p><p> 3. 對函數(shù)進行如下聲明:</p><p> void getcredit(float a);[9] 用于設(shè)置學(xué)分 </p><p> void getkname(char N[]); 用于讀出課程的名稱</p><p>
7、; void setkname(char N[]); [10] 用于讀入課程的名稱</p><p> void findstudent(studentdb *P); 用于該課程的名稱,尋找選這課程的學(xué)生</p><p> void clractivestudnet(); 用于從文件中讀出來后將實際學(xué)生數(shù)清零</p>
8、;<p> void subject::getcredit (float a) 用于設(shè)置學(xué)分 </p><p> void subject::getkname (char N[])[11] 用于讀出課程的名稱</p><p> void subject::setkname (char N[]) 用于讀入課程的名稱</p><p>
9、; void subject::findstudent(studentdb *P)[12] 用于根據(jù)該課程的名稱,尋找選這課程的學(xué)生</p><p> 4. 對主要的相關(guān)模塊進行說</p><p> ?。?)按順序輸入學(xué)生的信息,但不能超過30個</p><p> ?。?)輸入課程的名稱和該課程的學(xué)分</p><p> ?。?)可以選擇刪
10、除學(xué)生</p><p> ?。?)可以選擇上出課程</p><p> ?。?)可以填寫在(1)中輸入學(xué)生的成績</p><p> ?。?)可以更改在(2)中輸入課程的學(xué)分</p><p> ?。?)可以查看在操作(1)時學(xué)生</p><p> ?。?)可以查看在操作(2)時輸入的課程和選課的人數(shù)</p>
11、<p> ?。?)可以保存在以上的操作過程中輸入的內(nèi)容</p><p> ?。?)可以退出學(xué)生選修課系統(tǒng)</p><p><b> 調(diào)試結(jié)果如圖二:</b></p><p> 2-3選修課系統(tǒng)程序調(diào)試圖</p><p><b> (五) 源代碼</b></p><
12、p> 在設(shè)計程序時用到繼承與派生[這C++中最重要的一個特征,同時用到派生中的虛基類[使其在繼承時把重復(fù)的成員簡化,只保留相同成員中的一個;[13-14]其難點在于運用繼承與派生處對函數(shù)的繼承在進行添加修改[15],使其程序簡潔明了;調(diào)試程序是一個很重要的步驟,通過調(diào)試來找出錯誤,讓計算機識別指令最終達到預(yù)期效果,有其重要作用。</p><p><b> (六) 源代碼</b>&l
13、t;/p><p> 為了更好的體現(xiàn)本程序,特將代碼列出,以作為參考·.</p><p> #include <string.h></p><p> #include <stdio.h></p><p> #include <iostream.h></p><p> #
14、include <stdlib.h></p><p> #include <iomanip.h></p><p> #include <fstream.h></p><p> #include <conio.h></p><p> ////////////////////////////
15、///////////////////////////////////////////////</p><p><b> //定義課程</b></p><p> struct course //某個學(xué)生所學(xué)的課程中的某一個</p><p><b> {</b></p><p>
16、 char cname[20]; //課程名稱</p><p> float grade; //課程成績</p><p> course *Next; //指向下一個課程的指針</p><p><b> };</b></p><p> /////////////////////////////////
17、//////////////////////////////////////////</p><p><b> //學(xué)生類</b></p><p> class student</p><p><b> {</b></p><p><b> public:</b><
18、;/p><p><b> student()</b></p><p><b> {</b></p><p> root = NULL;</p><p> const maxcourse = 5;</p><p> factcourse = 0;</p>&
19、lt;p><b> }</b></p><p> void readname(char N[] ); //讀入學(xué)生的姓名</p><p> void getname(char N[]); //得到學(xué)生的姓名</p><p> void wrecourse(char N[],float score); //要據(jù)課程名寫
20、入學(xué)生課程的成績</p><p> float average(); //學(xué)生課程的平均成績</p><p> void addcourse(char N[],float g); //給學(xué)生增加一門課</p><p> int findcourse(char N[]); //查找是否已有此課程,如果有返回1,如果沒有返回0</p>
21、;<p> int retfactcourse()</p><p><b> {</b></p><p> return factcourse;</p><p> } //得到所學(xué)的課程數(shù)目</p><p> course *retroot()</p><p&g
22、t;<b> {</b></p><p> return root; //利用鍵表將所有的課程保存起來</p><p><b> }</b></p><p> int retmaxcourse()</p><p><b> {</b></p>
23、<p> return 5; //得到最多可學(xué)的課程數(shù)目</p><p><b> }</b></p><p> void clrroot() //清零</p><p><b> {</b></p><p> root = NULL;</p>&
24、lt;p> factcourse = 0;</p><p><b> }</b></p><p><b> private:</b></p><p> char sname[20]; //學(xué)生的姓名</p><p> int maxcourse; //學(xué)生最多
25、可以學(xué)五門課程</p><p> int factcourse; //學(xué)生實際所學(xué)的課程數(shù)目</p><p> course *root; //課程的根結(jié)點指針</p><p><b> };</b></p><p> void student::readname (char N[])//讀入
26、學(xué)生的姓名</p><p><b> {</b></p><p> strcpy(sname,N);</p><p><b> }</b></p><p> void student::getname(char N[])//得到學(xué)生的姓名</p><p><b&
27、gt; {</b></p><p> strcpy(N,sname);</p><p><b> }</b></p><p> void student::wrecourse(char N[],float score)//要據(jù)課程名寫入學(xué)生課程的成績</p><p><b> {</
28、b></p><p> course *p = root;</p><p> if(p==NULL)</p><p><b> return;</b></p><p> if(p!=NULL)</p><p> p = p->Next;</p><p>
29、;<b> while(p)</b></p><p><b> {</b></p><p> if(strcmp(p->cname,N)==0)</p><p> p->grade = score;</p><p> p = p->Next;</p><
30、;p><b> }</b></p><p><b> }</b></p><p> float student::average()//學(xué)生課程的平均成績</p><p><b> {</b></p><p> float aver=0.0;</p>
31、<p> course *p = root;</p><p><b> while (p)</b></p><p><b> {</b></p><p> aver = aver+p->grade;</p><p><b> }</b></p
32、><p> aver = aver/factcourse;</p><p> return aver;</p><p><b> }</b></p><p> void student::addcourse (char N[],float g)//給學(xué)生增加一門課</p><p><b&
33、gt; {</b></p><p> course *s = new course;</p><p> s->Next=NULL;</p><p> if(root == NULL)</p><p><b> root = s;</b></p><p> course
34、 *p = root;</p><p> course *newcourse = new course;</p><p> newcourse->Next = p->Next;</p><p> p->Next=newcourse;</p><p> strcpy(newcourse->cname,N);<
35、;/p><p> newcourse->grade = g;</p><p> factcourse++;</p><p><b> }</b></p><p> int student::findcourse (char N[])//查找是否已有此課程,如果有返回1,如果沒有返回0</p>&l
36、t;p><b> {</b></p><p> course *p = root;</p><p> if(root==NULL)</p><p><b> return 0;</b></p><p> p = p->Next;</p><p><
37、b> while(p)</b></p><p><b> {</b></p><p> if(strcmp(p->cname,N)==0)</p><p><b> return 1;</b></p><p> p = p->Next;</p>
38、<p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> ////////////////////////////////////////////////////////////////////////
39、/////////////////////</p><p> struct studentdb</p><p><b> {</b></p><p> student stu;</p><p> studentdb *Next;</p><p><b> };</b>
40、;</p><p> struct studentname</p><p><b> {</b></p><p> char tname[20]; //學(xué)生的名字</p><p> float result; //學(xué)生所得的該課程分?jǐn)?shù)</p><p> studen
41、tname *Next;</p><p><b> };</b></p><p> /////////////////////////////////////////////////////////////////////////////////////////////</p><p><b> //課程類</b>&
42、lt;/p><p> class subject</p><p><b> {</b></p><p><b> public:</b></p><p><b> subject()</b></p><p><b> {</b>
43、;</p><p> first = NULL;</p><p> maxstudent=30;</p><p> activestudnet=0;</p><p><b> }</b></p><p> float readcredit(); //得到課程的學(xué)分</p>
44、;<p> void getcredit(float a); //設(shè)置學(xué)分</p><p> float getaverage(); //得到學(xué)生的平均成績</p><p> float getresult(char N[]); //查找某個學(xué)生的成績</p><p> void getkname(char N[]); //讀出
45、課程的名稱</p><p> void setkname(char N[]); //讀入課程的名稱</p><p> studentname *retfirst()</p><p><b> {</b></p><p> return first; //返回根結(jié)點</p><p>
46、;<b> }</b></p><p> void findstudent(studentdb *P); //根據(jù)該課程的名稱,尋找選這課程的學(xué)生</p><p> int retactivestudent()</p><p><b> {</b></p><p> return act
47、ivestudnet; //返回實際學(xué)生數(shù)</p><p><b> }</b></p><p> int retmaxstudent()</p><p><b> {</b></p><p> return 30; //返回最多學(xué)生數(shù)30</p><p>
48、<b> }</b></p><p> void clractivestudnet()</p><p><b> {</b></p><p> activestudnet = 0; //從文件中讀出來后將實際學(xué)生數(shù)清零</p><p><b> }</b><
49、/p><p><b> private:</b></p><p> int maxstudent; //最多學(xué)生數(shù)</p><p> int activestudnet; //實際學(xué)生數(shù)</p><p> studentname *first; //學(xué)生名單</p><p>
50、float credit; //該課程的學(xué)分</p><p> float averagerusult; //該課程的平均成績</p><p> char kname[20]; //該課程的名稱</p><p><b> };</b></p><p> float subject::readcred
51、it ()//得到課程的學(xué)分</p><p><b> {</b></p><p> return credit;</p><p><b> }</b></p><p> void subject::getcredit (float a)//設(shè)置學(xué)分</p><p>
52、<b> {</b></p><p><b> credit=a;</b></p><p><b> }</b></p><p> float subject::getaverage()//得到學(xué)生的平均成績</p><p><b> {</b>
53、</p><p> float k = 0.0;</p><p> studentname *p;</p><p> p=first->Next;</p><p> if(p==NULL)</p><p><b> return 0;</b></p><p>
54、;<b> while(p)</b></p><p><b> {</b></p><p> k = k + p->result;</p><p> p = p->Next ;</p><p><b> }</b></p><p>
55、 return k/activestudnet;</p><p><b> }</b></p><p> float subject::getresult (char N[]) //查找某個學(xué)生的成績</p><p><b> {</b></p><p> studentname *p;&
56、lt;/p><p> p = first;</p><p><b> while(p)</b></p><p><b> {</b></p><p> if(strcpy(p->tname ,N)==0)</p><p> return p->result;
57、</p><p> p = p->Next ;</p><p><b> }</b></p><p> return -1;</p><p><b> }</b></p><p> void subject::getkname (char N[]) //讀出
58、課程的名稱</p><p><b> {</b></p><p> strcpy(N,kname);</p><p><b> }</b></p><p> void subject::setkname (char N[]) //讀入課程的名稱</p><p><
59、;b> {</b></p><p> strcpy(kname,N);</p><p><b> }</b></p><p> void subject::findstudent(studentdb *P) //根據(jù)該課程的名稱,尋找選這課程的學(xué)生</p><p><b> {<
60、;/b></p><p> studentname *newcode = new studentname;</p><p> newcode->Next=NULL;</p><p> first = newcode;</p><p> studentname *T = first;</p><p>
61、 studentdb *K = P->Next;</p><p><b> while(K)</b></p><p><b> {</b></p><p> course *Y = K->stu.retroot();</p><p> if(Y ==NULL)</p>
62、;<p><b> {</b></p><p> K = K->Next;</p><p><b> continue;</b></p><p><b> }</b></p><p> if(Y!=NULL)</p><p>
63、; Y = Y->Next;</p><p><b> while(Y)</b></p><p><b> {</b></p><p> if(strcmp(Y->cname,kname)==0)</p><p><b> {</b></p>
64、<p> studentname *Acode = new studentname;</p><p> char Name[20];</p><p> K->stu.getname(Name);</p><p> strcpy(Acode->tname,Name);</p><p> Acode->re
65、sult = Y->grade;</p><p> Acode->Next = T->Next;</p><p> T->Next = Acode;</p><p> activestudnet = activestudnet + 1;</p><p><b> break;</b><
66、;/p><p><b> }</b></p><p> Y = Y->Next;</p><p><b> }</b></p><p> K = K->Next;</p><p><b> }</b></p><p&
67、gt;<b> return ;</b></p><p><b> }</b></p><p> ///////////////////////////////////////////////////////////////////////////////////</p><p> void tuichu()<
68、;/p><p><b> {</b></p><p> system("cls");</p><p> cout<<"\n\n\t\t\t謝謝你使用選修課小系統(tǒng)\t再見\n\n"<<endl;</p><p> cout<<"\n\
69、t 如果你覺得此軟件有修改及補充之處,請按以下方式聯(lián)系我們,"</p><p> <<"\n\t提出你的寶貴意見.我們將不斷地改進并及時的公布新版本。謝謝!!\n\n"<<endl;</p><p> cout<<"\t\t聯(lián)系方式:\n"</p><p> <&l
70、t;"\t\t 姓名:史燕玲\n\n"</p><p> <<"\t\t 電話:0000-1234567\n\n"</p><p> <<"\t\t Email:SYL_studio@163.com\n\n"</p><p> <&
71、lt;"\t\t 學(xué)校地址:塔里木大學(xué)\t郵政編碼:843300\n\n\n"<<endl;</p><p><b> getch();</b></p><p><b> exit(-1);</b></p><p><b> }</b></p>
72、<p> //////////////////////////////////////////////////////////////////////////////////</p><p><b> //總菜單</b></p><p> char menu()</p><p><b> {</b>&l
73、t;/p><p><b> int k=0;</b></p><p> char a[3],c,i;</p><p> system("cls");</p><p> cout<<endl<<endl;</p><p> cout<<&
74、quot;\t\t\t\tC++課程設(shè)計課題\n\n"<<endl;</p><p> cout<<"\t\t********************************************\n"</p><p> <<"\t\t*
75、 *\n"</p><p> <<"\t\t* 選修課小系統(tǒng) *\n"</p><p> <<"\t\t* *\n"</p><p> &l
76、t;<"\t\t* *\n"</p><p> <<"\t\t* 操作方式: *\n"</p><p> <<"\t\t* 1.選修課系
77、統(tǒng)學(xué)生端 *\n"</p><p> <<"\t\t* *\n"</p><p> <<"\t\t* 2.選修課系統(tǒng)管理端 *\n"</p><p>
78、; <<"\t\t* *\n"</p><p> <<"\t\t********************************************\n"<<endl;</p><p><b> while(1)&
79、lt;/b></p><p><b> {</b></p><p> cout<<"\n\t\t請選擇登入方式: ";</p><p><b> cin>>a;</b></p><p> if(strlen(a)==1)</p>
80、<p><b> {</b></p><p> for(i='1';i<='2';i++)</p><p><b> {</b></p><p><b> c=i;</b></p><p> if(c==a[0])&l
81、t;/p><p><b> return c;</b></p><p><b> }</b></p><p><b> }</b></p><p> cerr<<"\n\n\t\t\t\t輸入有誤!\n"<<endl;</p
82、><p><b> k++;</b></p><p><b> if(k>2)</b></p><p><b> {</b></p><p> system("cls");</p><p> cerr<<&qu
83、ot;\n\n\n\t\t~~提示~~:錯誤輸入次數(shù)超過三次,你將被強制退出!!\n\n"<<endl;</p><p> cout<<"\t\t按任意鍵繼續(xù)"<<endl;</p><p><b> getch();</b></p><p><b> tuich
84、u();</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> //////////////////////////////////////////////////////
85、/////////////////////////////</p><p> //選修課系統(tǒng)端操作</p><p> char custom()</p><p><b> {</b></p><p> char A[10];</p><p><b> char b;</b
86、></p><p><b> char i;</b></p><p> int k = 0;</p><p> system("cls");;</p><p> cout<<"\n\n\n"</p><p> <<&q
87、uot;\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"</p><p> <<"\t\t※選修課系統(tǒng)學(xué)生端 ※\n"</p><p> <<"\t\t※
88、 ※\n"</p><p> <<"\t\t※ 操作方式:. ※\n"</p><p> <<"\t\t※1.學(xué)生選課. ※\n"</p>
89、;<p> <<"\t\t※2.學(xué)生情況. ※\n"</p><p> <<"\t\t※3.選課情況. ※\n"</p><p> <<&quo
90、t;\t\t※4.退出系統(tǒng). ※\n"</p><p> <<"\t\t※ ※\n"</p><p> <<"\t\t※※※※※※※※※※※※※※※※
91、※※※※※※※※※※※\n"<<endl;</p><p><b> while(1)</b></p><p><b> {</b></p><p> cout<<"\t\t\t請選擇操作方式: ";</p><p><b>
92、cin>>A;</b></p><p> if(strlen(A)==1)</p><p><b> {</b></p><p> for(i='1';i<='4';i++)</p><p><b> {</b></p>
93、;<p><b> b=i;</b></p><p> if(b==A[0]) return b;</p><p><b> }</b></p><p><b> }</b></p><p> cerr<<"\n\t\t\t\t輸入
94、有誤!\n"<<endl;</p><p><b> k++;</b></p><p><b> if(k>2)</b></p><p><b> {</b></p><p> system("cls");</p&g
95、t;<p> cerr<<"\n\n\t\t\t~~提示~~:錯誤輸入超過三次!你將被強制退出!!\n"<<endl;</p><p> cout<<"\t\t按任意鍵繼續(xù)"<<endl;</p><p><b> getch();</b></p>
96、<p><b> tuichu();</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> char server()</p><
97、;p><b> {</b></p><p> char A[10];</p><p><b> char b;</b></p><p><b> char i;</b></p><p> int k = 0;</p><p> syst
98、em("cls");;</p><p> cout<<"\n\n\n"</p><p> <<"\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"</p><p> <<"\t\t※
99、 ※\n"</p><p> <<"\t\t※ 選修課系統(tǒng)管理端 ※\n"</p><p> <<"\t\t※ ※\n&
100、quot;</p><p> <<"\t\t※ .操作方式: ※\n"</p><p> <<"\t\t※ 1.增加學(xué)生 2.增加課程 ※\n"</p><p> &l
101、t;<"\t\t※ 3.刪除學(xué)生 4.刪除課程 ※\n"</p><p> <<"\t\t※ 5.填寫成績 6.更改學(xué)分 ※\n"</p><p> <<"\t\t※ 7.
102、學(xué)生情況 8.選課情況 ※\n"</p><p> <<"\t\t※ 9.保存數(shù)據(jù) 0.退出系統(tǒng) ※\n"</p><p> <<"\t\t※ ※
103、\n"</p><p> <<"\t\t※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"<<endl;</p><p><b> while(1)</b></p><p><b> {</b></p><p> cout<
104、;<"\t\t 請選擇操作方式: ";</p><p><b> cin>>A;</b></p><p> if(strlen(A)==1)</p><p><b> {</b></p><p> for(i='0';i<='
105、;9';i++)</p><p><b> {</b></p><p><b> b=i;</b></p><p> if(b==A[0])</p><p><b> return b;</b></p><p><b> }&
106、lt;/b></p><p><b> }</b></p><p> cerr<<"\n\t\t\t\t輸入有誤!\n"<<endl;;</p><p><b> k++;</b></p><p><b> if(k>2)&l
107、t;/b></p><p><b> {</b></p><p> cerr<<"錯誤輸入超過三次!\n";</p><p><b> exit(-1);</b></p><p><b> }</b></p><
108、p><b> }</b></p><p><b> }</b></p><p> //////////////////////////////////////////////////////////////////////////////////</p><p><b> //密碼檢查</b&
109、gt;</p><p> void password()</p><p><b> {</b></p><p> int k=0,i;</p><p> char A[]="admin";</p><p> char B[10];</p><p&g
110、t;<b> char a;</b></p><p> system("cls");</p><p> for(i=0;i<8;i++)</p><p> cout<<endl; </p><p> while(k<=2)</p><p>&l
111、t;b> {</b></p><p> printf("\t\t\t請輸入管理員密碼:");</p><p><b> i=0;</b></p><p><b> while(1)</b></p><p><b> {</b>&l
112、t;/p><p> a=getch();</p><p><b> if(a==13)</b></p><p><b> break;</b></p><p><b> B[i]=a;</b></p><p><b> i++;</
113、b></p><p> printf("*");</p><p><b> }</b></p><p> B[i]='\0';</p><p> if(strcmp(A,B)==0)</p><p><b> return;</b
114、></p><p><b> else</b></p><p><b> {</b></p><p><b> k++;</b></p><p> cerr<<"\n\n\t\t\t密碼輸入錯誤!請重新輸入!\n"<<e
115、ndl;</p><p><b> }</b></p><p><b> if(k>=3)</b></p><p><b> {</b></p><p> system("cls");</p><p> cerr<
116、;<"\n\n\t\t\t輸入錯誤密碼超過三次!請按任意鍵退出.."<<endl;</p><p><b> getch();</b></p><p><b> tuichu();</b></p><p><b> }</b></p><
117、p><b> }</b></p><p><b> }</b></p><p> ///////////////////////////////////////////////////////////////////////</p><p> struct subjectdb</p><p
118、><b> {</b></p><p> subject sub;</p><p> subjectdb *Next;</p><p><b> };</b></p><p> int menu_2_7(studentdb *P);</p><p> int
119、 menu_2_9(studentdb *Y,subjectdb *P);</p><p> int menu_2_8(subjectdb *P);</p><p> ////////////////////////////////////////////////////////////////////////</p><p><b> //學(xué)生端功
120、能函數(shù)</b></p><p> int menu_1_1(studentdb *P,subjectdb *X) //學(xué)生選課</p><p><b> {</b></p><p> system("cls");</p><p> cout<<"\n\n
121、\t\t\t\t學(xué)生選課操作"<<endl;</p><p><b> //</b></p><p> studentdb *q=P->Next;</p><p><b> int i;</b></p><p> char N[20],M[20];</p&g
122、t;<p> if(q!=NULL)</p><p> cout<<"\n\n\n\t\t所有學(xué)生名單如下:\n"<<endl;</p><p><b> else</b></p><p><b> {</b></p><p> c
123、err<<"\n\n\n\t\t對不起,暫時沒有學(xué)生名單!請按任意鍵繼續(xù).."<<endl;</p><p><b> return 1;</b></p><p><b> }</b></p><p><b> while(q)</b></p&g
124、t;<p><b> {</b></p><p> q->stu.getname(N);</p><p> cout<<"\t\t\t\t"<<N;</p><p> cout<<endl;</p><p> q = q->Nex
125、t ;</p><p><b> }</b></p><p> q = P->Next;</p><p> if(q==NULL)</p><p><b> return 1;</b></p><p> cout<<"\n\n\t\t 請
126、輸入學(xué)生姓名:";</p><p><b> cin>>N;</b></p><p><b> i=0;</b></p><p> q=P->Next;</p><p><b> while(q)</b></p><p&g
127、t;<b> {</b></p><p> q->stu.getname(M);</p><p> if(strcmp(N,M)==0)</p><p><b> i++;</b></p><p> q = q->Next;</p><p><b&
128、gt; }</b></p><p> int j=0,k=1;</p><p><b> if(i==0)</b></p><p><b> {</b></p><p> cout<<"\n\n\t\t沒有這個學(xué)生!! 請按任意鍵返回.."<
129、;<endl;</p><p><b> return 1;</b></p><p><b> }</b></p><p> else if(i>1)</p><p><b> {</b></p><p> cout<<
130、"\n\n\t\t共找到"<<i<<"個姓名為"<<N<<"的學(xué)生"<<endl;</p><p> cout<<"\t\t選擇第幾個:";</p><p><b> cin>>k;</b></p
131、><p><b> }</b></p><p> if(k>i||k<=0)</p><p><b> {</b></p><p> cerr<<"\n\t\t\t輸入有誤!按任意鍵繼續(xù)"<<endl;</p><p&g
132、t;<b> return 1;</b></p><p><b> }</b></p><p> q = P->Next;</p><p><b> j=0;</b></p><p><b> while(q)</b></p>
133、<p><b> {</b></p><p> q->stu.getname(M);</p><p> if(strcmp(N,M)==0)</p><p><b> j++;</b></p><p><b> if(j==k)</b></p&
134、gt;<p><b> {</b></p><p> if(q->stu.retfactcourse()>=q->stu.retmaxcourse())</p><p><b> {</b></p><p> cout<<"\n\t\t所選課程已滿!按任意鍵繼續(xù)
135、"<<endl;</p><p><b> return 1;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p&
136、gt; subjectdb *t=X->Next;</p><p> char N1[20];</p><p> system("cls");;</p><p> if(t!=NULL)</p><p><b> {</b></p><p> cout<
137、<"\n\n\n\t\t所有課程如下:"<<endl;</p><p> cout<<"\n\t\t\t\t課程名稱\t\t 學(xué)分"<<endl;</p><p><b> }</b></p><p><b> else</b><
138、/p><p><b> {</b></p><p> cerr<<"\n\n\n\t\t對不起,暫時沒有課程"<<endl;</p><p><b> return 1;</b></p><p><b> }</b></p&
139、gt;<p><b> while(t)</b></p><p><b> {</b></p><p> t->sub.getkname(N1);</p><p> cout<<"\t\t\t\t "<<N1<<setw(26-strlen
140、(N1))<<t->sub.readcredit()<<endl;</p><p> t = t->Next ;</p><p><b> }</b></p><p> char N2[20];</p><p> cout<<"\n\t 輸入你所要選
141、的課程 : ";</p><p><b> cin>>N2;</b></p><p> t = X->Next;</p><p><b> while(t)</b></p><p><b> {</b></p><p>
142、; t->sub.getkname(N1);</p><p> if(strcmp(N1,N2)==0)</p><p><b> {</b></p><p> if(q->stu.findcourse(N2)==1)</p><p><b> {</b></p>
143、<p> cout<<"\n\t\t此課程你已選過了,不能再選.按任意鍵繼續(xù)"<<endl;</p><p><b> return 1;</b></p><p><b> }</b></p><p> t=X->Next;</p><
144、;p> char NA[20];</p><p><b> while(t)</b></p><p><b> {</b></p><p> t->sub.getkname(NA);</p><p> if(strcmp(NA,N2)==0)</p><p&
145、gt;<b> {</b></p><p> if(t->sub.retactivestudent()>=t->sub.retmaxstudent ())</p><p><b> { </b></p><p> cout<<"\n\t\t此課程已選滿,不能選.按任意鍵繼續(xù)&
146、quot;<<endl;</p><p><b> return 1;</b></p><p><b> }</b></p><p><b> }</b></p><p> t = t->Next;</p><p><b&
147、gt; }</b></p><p> q->stu.addcourse(N2,0.0);</p><p> cout<<"\n\n\t\t選課成功!按任意鍵繼續(xù)"<<endl;</p><p><b> return 1;</b></p><p>&l
148、t;b> }</b></p><p> t = t->Next;</p><p><b> }</b></p><p> cerr<<"\n\t\t沒有此課程!按任意鍵繼續(xù)"<<endl;</p><p><b> }</b&g
149、t;</p><p><b> return 1;</b></p><p><b> }</b></p><p> q = q->Next;</p><p><b> }</b></p><p><b> return 1;&l
150、t;/b></p><p><b> }</b></p><p> int menu_1_2(studentdb *P,subjectdb *X) //學(xué)生情況</p><p><b> {</b></p><p> studentdb *q=P->Next;</p&g
151、t;<p> char N[20];</p><p> system("cls");</p><p> cout<<"\n\n\t\t\t\t學(xué)生情況操作"<<endl;</p><p><b> int i;</b></p><p>
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++選修課管理系統(tǒng)課程設(shè)計說明書
- c++課程設(shè)計學(xué)生選修課選課系統(tǒng)
- c++畢業(yè)課程設(shè)計--學(xué)生選修課程系統(tǒng)設(shè)計
- c++課程設(shè)計報告--學(xué)生選修課程系統(tǒng)設(shè)計
- c語言課程設(shè)計--學(xué)生選修課系統(tǒng)
- 設(shè)計學(xué)生選修課程系統(tǒng)課程設(shè)計--設(shè)計學(xué)生選修課程系統(tǒng)
- c語言課程設(shè)計學(xué)生選修課系統(tǒng)
- c語言課程設(shè)計報告--學(xué)生選修課程管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生選修課系統(tǒng)設(shè)計
- c語言課程設(shè)計-學(xué)生選修課系統(tǒng)設(shè)計
- 課程設(shè)計---學(xué)生選修課管理系統(tǒng)
- c語言學(xué)生選修課程系統(tǒng)設(shè)計--學(xué)生選修課程系統(tǒng)設(shè)計
- c語言課程設(shè)計報告--學(xué)生選修課程系統(tǒng)
- c語言課程設(shè)計報告—學(xué)生選修課程系統(tǒng)設(shè)計
- 課程設(shè)計報告--選修課程管理
- c語言課程設(shè)計_學(xué)生選修課系統(tǒng)設(shè)計(1)
- 課程設(shè)計---學(xué)生選修課程系統(tǒng)設(shè)計
- 課程設(shè)計-----學(xué)生選修課程系統(tǒng)設(shè)計
- 課程設(shè)計報告---學(xué)生選修課程系統(tǒng)設(shè)計
- 課程設(shè)計報告---學(xué)生選修課系統(tǒng)設(shè)計
評論
0/150
提交評論