c學(xué)生選修課程系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
c學(xué)生選修課程系統(tǒng)課程設(shè)計(jì)_第2頁(yè)
c學(xué)生選修課程系統(tǒng)課程設(shè)計(jì)_第3頁(yè)
c學(xué)生選修課程系統(tǒng)課程設(shè)計(jì)_第4頁(yè)
c學(xué)生選修課程系統(tǒng)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄封面1任務(wù)書(shū)1一、需求分析51.1、系統(tǒng)設(shè)計(jì)目的與意義 51.2、系統(tǒng)功能需求(系統(tǒng)流程圖)51.3、輸入輸出的要求6二、結(jié)構(gòu)設(shè)計(jì)6三、界面設(shè)計(jì)與各功能模塊實(shí)現(xiàn).7四、系統(tǒng)調(diào)試8五、使用說(shuō)明及編程體會(huì)95.1、使用說(shuō)明 9 5.2、編程體會(huì) 13附件 13參考文獻(xiàn) 32評(píng)分表 33(一)需求分析1.1、系統(tǒng)設(shè)計(jì)目的與意義當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開(kāi)信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算

2、機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開(kāi)發(fā)密切相關(guān),系統(tǒng)的開(kāi)發(fā)是系統(tǒng)管理的前提。 本系統(tǒng)就是為了管理好選課信息而設(shè)計(jì)的。學(xué)校作為一種信息資源的集散地,學(xué)生和課程繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的學(xué)校都是初步開(kāi)始使用,甚至尚未使用計(jì)算機(jī)進(jìn)行信息管理。根據(jù)調(diào)查得知,他們以前對(duì)信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于選課情況的統(tǒng)計(jì)和查詢等往往采用對(duì)課程的人工檢查進(jìn)行,對(duì)學(xué)生的選課權(quán)限、以及選課代號(hào)等用人工計(jì)算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯(cuò);由于數(shù)據(jù)繁多,容易丟失,且不易查找。總的來(lái)說(shuō),缺乏系統(tǒng),規(guī)范的信息管理手段。盡管學(xué)校都有計(jì)算機(jī),但是尚未用于信息管理,沒(méi)有發(fā)揮它

3、的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開(kāi)發(fā)的基本環(huán)境。數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改。學(xué)校采取手工方式對(duì)學(xué)生選課情況進(jìn)行人工管理,由于信息比較多,選課信息的管理工作混亂而又復(fù)雜;一般選課情況是記錄在文件上,課程的數(shù)目和代號(hào)也記錄在文件中,學(xué)校的工作人員也只是當(dāng)時(shí)對(duì)它比較清楚,時(shí)間長(zhǎng)了,如再要進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費(fèi)時(shí)、費(fèi)力。如要對(duì)很長(zhǎng)時(shí)間以前的選課進(jìn)行更改就更加困難了。 基于這些問(wèn)題,我認(rèn)為有必要建立一個(gè)學(xué)生選課系統(tǒng),使選課管理工作規(guī)范化,系統(tǒng)化,程序化,避免選課管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改

4、選課情況。1.2、系統(tǒng)功能需求(系統(tǒng)流程圖)主 模 塊學(xué)生模塊管理員模塊學(xué)生選課學(xué)生情況選課情況 退出系統(tǒng) 增加課程刪除學(xué)生刪除課程 填寫(xiě)成績(jī) 更改學(xué)分 學(xué)生情況選課情況保存數(shù)據(jù) 增加學(xué)生退出系統(tǒng)1.3、輸入輸出的要求(1) 輸入:確定與功能有關(guān)的所有輸入信息,包括數(shù)據(jù)來(lái)源、意義、格式、接收方法、數(shù)量、輸入范圍及處理方法,必須說(shuō)明時(shí)間要求、優(yōu)先順序、操作控制和使用的輸入設(shè)備(媒體)。(2) 輸出:對(duì)錯(cuò)誤輸入提示(二)結(jié)構(gòu)設(shè)計(jì)(1)(ER圖);(2)類(lèi)層次圖 StudentSubjectCourse(三)界面設(shè)計(jì)與各功能模塊實(shí)現(xiàn)界面設(shè)計(jì)1、 主界面:* * 選修課小系統(tǒng) * * * 操作方式:

5、* 1.選修課系統(tǒng)學(xué)生端 * * 2.選修課系統(tǒng)管理端 * *2、選修課系統(tǒng)學(xué)生端: 選修課系統(tǒng)學(xué)生端 操作方式: 1.學(xué)生選課 2.學(xué)生情況 3.選課情況 4.退出系統(tǒng) 3、選修課系統(tǒng)管理端 : 選修課系統(tǒng)管理端 操作方式: 1.增加學(xué)生 2.增加課程 3.刪除學(xué)生 4.刪除課程 5.填寫(xiě)成績(jī) 6.更改學(xué)分 7.學(xué)生情況 8.選課情況 9.保存數(shù)據(jù) 0.退出系統(tǒng) (四)系統(tǒng)調(diào)試在這一節(jié)中,主要解決的了兩個(gè)問(wèn)題,一個(gè)是系統(tǒng)的聯(lián)機(jī)文檔,另一個(gè)是系統(tǒng)的測(cè)試,下面我們分別加以說(shuō)明。作為一個(gè)完整的系統(tǒng),聯(lián)機(jī)文檔是其中不可缺少的部分也是相當(dāng)重要的部分。好的文檔能夠使用戶快速了解并準(zhǔn)確的使用系統(tǒng)的各項(xiàng)功能

6、。減少誤操作,減少錯(cuò)誤產(chǎn)生的可能,這對(duì)用戶和開(kāi)發(fā)人員都有很多的好處。所以在開(kāi)發(fā)本系統(tǒng)中,也加入了不少的文檔,除了對(duì)于四大模塊的詳細(xì)說(shuō)明外,對(duì)于易出錯(cuò)和不易操作的地方(如多條件查詢部分)又作了詳細(xì)的說(shuō)明。 由于本身能力的局限性,所以做編寫(xiě)的代碼,即使經(jīng)過(guò)反復(fù)檢查也難免出錯(cuò)所以在本階段力求使用有限的時(shí)間找出盡可能多的錯(cuò)誤,力求系統(tǒng)盡量正確。我們?cè)诒鞠到y(tǒng)的測(cè)試中使用了黑盒法(即不關(guān)心程序內(nèi)部的邏輯結(jié)構(gòu),而是根據(jù)程序的功能來(lái)設(shè)計(jì)是檢測(cè))請(qǐng)一位不熟悉本系統(tǒng)的人來(lái)進(jìn)行隨意性的操作,打破習(xí)慣的操作順序,從中發(fā)現(xiàn)錯(cuò)誤,在此階段系統(tǒng)的大量錯(cuò)誤得到了改正。 信息管理系統(tǒng)所涉及的數(shù)據(jù)庫(kù)設(shè)計(jì)的重要步驟加載測(cè)試。加載測(cè)

7、試工作貫穿于程序測(cè)試工作的全過(guò)程,整個(gè)錄入、修改、查詢、處理工作均可視為對(duì)數(shù)據(jù)庫(kù)的加載測(cè)試工作。要設(shè)計(jì)出一個(gè)好的信息管理系統(tǒng)數(shù)據(jù)庫(kù),除滿足系統(tǒng)所要求的功能外,還必須遵守下列原則:1)基本表的個(gè)數(shù)越少越好。2) 主鍵的個(gè)數(shù)越少越好。鍵是表間連接的工具,主鍵越少,表間的連接就越簡(jiǎn)單。3)字段的個(gè)數(shù)越少越好。4) 所有基本表的設(shè)計(jì)均應(yīng)盡量符合第三范式。數(shù)據(jù)庫(kù)的設(shè)計(jì)中,如何處理多對(duì)多的關(guān)系和如何設(shè)計(jì)主鍵,是兩個(gè)有著較大難度、需要重點(diǎn)考慮的問(wèn)題。 例如:-Configuration: 8 - Win32 Debug-Compiling.9.cppE:新建文件夾9.cpp(53) : error C253

8、5: '_thiscall student:student(void)' : member function already defined or declared E:新建文件夾9.cpp(24) : see declaration of 'student:student'執(zhí)行 cl.exe 時(shí)出錯(cuò).9.obj - 1 error(s), 0 warning(s)改正:將中的去掉(五)使用說(shuō)明及編程體會(huì)5.1使用說(shuō)明1、登錄首先,運(yùn)行學(xué)生選課系統(tǒng),出現(xiàn)學(xué)生選課系統(tǒng)畫(huà)面 :2、進(jìn)入選修課系統(tǒng)學(xué)生端當(dāng)主菜單出現(xiàn)后,在“請(qǐng)選擇登錄方式:”后輸入“1”,就進(jìn)入了“選修

9、課系統(tǒng)學(xué)生端”,界面如下:3、選課在“請(qǐng)選擇操作方式: ”輸入“1”,進(jìn)入網(wǎng)上選課系統(tǒng),請(qǐng)首先進(jìn)入課程預(yù)覽菜單,預(yù)覽自己的課程表,學(xué)生自行選課后,也可進(jìn)入課程預(yù)覽菜單,查看選課結(jié)果。課程表中已有的課程為教務(wù)處按各班教學(xué)計(jì)劃整班指定上去的,不得自行退選4、管理員登錄管理員密碼admin。用管理員帳號(hào)登錄可以查看每個(gè)人的選課,及退課情況。(1)如密碼正確,則出現(xiàn)以下界面:此時(shí),管理員可以在“請(qǐng)選擇操作方式: ”后輸入相應(yīng)的數(shù)字,比如數(shù)日“1”,那么所執(zhí)行的操作就是:增加學(xué)生,則出現(xiàn)以下界面: (2)若密碼不正確,則出現(xiàn)界面第一次密碼錯(cuò)誤第二次密碼錯(cuò)誤5 、退出系統(tǒng) (1)學(xué)生選課完成后可以按“4”

10、退出選課系統(tǒng),以防他人修改數(shù)據(jù)。(2)密碼錯(cuò)誤次數(shù)超過(guò)3次,可按任意鍵退出,界面如下:5.2編程體會(huì) 剛看到這個(gè)課程設(shè)計(jì)題目時(shí),覺(jué)得這個(gè)課題比較難。今天回過(guò)去看看,卻十分的欣慰,因?yàn)橥ㄟ^(guò)我們的努力終于完成了。雖然這不是我讀大學(xué)以來(lái)第一次做課程設(shè)計(jì),但卻是花費(fèi)心血最多的一次,這是對(duì)我這學(xué)期學(xué)習(xí)下來(lái)最好的檢驗(yàn)。經(jīng)過(guò)這次課程設(shè)計(jì),我的能力有了很大的提高,比如操作能力、分析問(wèn)題的能力、合作精神、嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)等方方面面都進(jìn)步了。 還要特別感謝老師對(duì)我的悉心指導(dǎo),幫我理清設(shè)計(jì)思路,指導(dǎo)操作方法,并對(duì)我所做的設(shè)計(jì)方案提出有效的改進(jìn)方案。老師淵博的知識(shí)、嚴(yán)謹(jǐn)?shù)淖黠L(fēng)、誨人不倦的態(tài)度和學(xué)術(shù)上精益求精的精神讓我受

11、益終生。附件:#include <iostream>#include <iomanip>#include <fstream>#include <conio.h>using namespace std; /定義課程class course /某個(gè)學(xué)生所學(xué)的課程中的某一個(gè)public:char cname20; /課程名稱float grade; /課程成績(jī)course *Next; /指向下一個(gè)課程的指針;/學(xué)生類(lèi)class studentpublic:student()root = NULL;const int maxcourse = 5;fac

12、tcourse = 0;void readname(char N ); /讀入學(xué)生的姓名void getname(char N); /得到學(xué)生的姓名void wrecourse(char N,float score); /要據(jù)課程名寫(xiě)入學(xué)生課程的成績(jī)float average(); /學(xué)生課程的平均成績(jī)void addcourse(char N,float g); /給學(xué)生增加一門(mén)課int findcourse(char N); /查找是否已有此課程,如果有返回,如果沒(méi)有返回int retfactcourse() return factcourse; /得到所學(xué)的課程數(shù)目course *ret

13、root() return root; /利用鍵表將所有的課程保存起來(lái)int retmaxcourse() return 5; /得到最多可學(xué)的課程數(shù)目void clrroot() /清零root = NULL;factcourse = 0;private:char sname20; /學(xué)生的姓名int maxcourse; /學(xué)生最多可以學(xué)五門(mén)課程int factcourse; /學(xué)生實(shí)際所學(xué)的課程數(shù)目course *root; /課程的根結(jié)點(diǎn)指針;void student:readname (char N)/讀入學(xué)生的姓名 strcpy(sname,N); void student:get

14、name(char N)/得到學(xué)生的姓名 strcpy(N,sname); void student:wrecourse(char N,float score)/要據(jù)課程名寫(xiě)入學(xué)生課程的成績(jī)course *p = root;if(p=NULL)return;if(p!=NULL)p = p->Next;while(p)if(strcmp(p->cname,N)=0)p->grade = score;p = p->Next;float student:average()/學(xué)生課程的平均成績(jī)float aver=0.0;course *p = root;while (p)

15、aver = aver+p->grade; aver = aver/factcourse;return aver; void student:addcourse (char N,float g)/給學(xué)生增加一門(mén)課course *s = new course;s->Next=NULL;if(root = NULL)root = s;course *p = root;course *newcourse = new course;newcourse->Next = p->Next;p->Next=newcourse;strcpy(newcourse->cname,

16、N);newcourse->grade = g;factcourse+;int student:findcourse (char N)/查找是否已有此課程,如果有返回,如果沒(méi)有返回course *p = root;if(root=NULL)return 0;p = p->Next;while(p) if(strcmp(p->cname,N)=0)return 1;p = p->Next;return 0; class studentdbpublic:student stu;studentdb *Next; ;struct studentnamechar tname20;

17、 /學(xué)生的名字float result; /學(xué)生所得的該課程分?jǐn)?shù)studentname *Next; ; /課程類(lèi)class subjectpublic:subject()first = NULL;maxstudent=30;activestudnet=0; float readcredit(); /得到課程的學(xué)分void getcredit(float a); /設(shè)置學(xué)分float getaverage(); /得到學(xué)生的平均成績(jī)float getresult(char N); /查找某個(gè)學(xué)生的成績(jī)void getkname(char N); /讀出課程的名稱void setkname(ch

18、ar N); /讀入課程的名稱studentname *retfirst() return first; /返回根結(jié)點(diǎn)void findstudent(studentdb *P); /根據(jù)該課程的名稱,尋找選這課程的學(xué)生int retactivestudent() return activestudnet; /返回實(shí)際學(xué)生數(shù)int retmaxstudent() return 30; /返回最多學(xué)生數(shù)void clractivestudnet() activestudnet = 0; /從文件中讀出來(lái)后將實(shí)際學(xué)生數(shù)清零private:int maxstudent; /最多學(xué)生數(shù)int acti

19、vestudnet; /實(shí)際學(xué)生數(shù)studentname *first; /學(xué)生名單float credit; /該課程的學(xué)分float averagerusult; /該課程的平均成績(jī)char kname20; /該課程的名稱;float subject:readcredit ()/得到課程的學(xué)分 return credit; void subject:getcredit (float a)/設(shè)置學(xué)分 credit=a; float subject:getaverage()/得到學(xué)生的平均成績(jī)float k = 0.0;studentname *p;p=first->Next;if(p

20、=NULL)return 0;while(p)k = k + p->result;p = p->Next ; return k/activestudnet; float subject:getresult (char N) /查找某個(gè)學(xué)生的成績(jī)studentname *p;p = first;while(p)if(strcpy(p->tname ,N)=0)return p->result;p = p->Next ; return -1; void subject:getkname (char N) /讀出課程的名稱 strcpy(N,kname); void s

21、ubject:setkname (char N) /讀入課程的名稱 strcpy(kname,N); void subject:findstudent(studentdb *P) /根據(jù)該課程的名稱,尋找選這課程的學(xué)生studentname *newcode = new studentname;newcode->Next=NULL;first = newcode;studentname *T = first;studentdb *K = P->Next;while(K)course *Y = K->stu.retroot();if(Y =NULL) K = K->Nex

22、t;continue; if(Y!=NULL)Y = Y->Next;while(Y) if(strcmp(Y->cname,kname)=0)studentname *Acode = new studentname;char Name20;K->stu.getname(Name);strcpy(Acode->tname,Name);Acode->result = Y->grade;Acode->Next = T->Next;T->Next = Acode;activestudnet = activestudnet + 1;break; Y

23、 = Y->Next; K = K->Next; return ; void tuichu()system("cls");cout<<"nn謝謝你使用選修課系統(tǒng)nn"<<endl;cout<<"n you're welcome ! n"<<endl; getch();exit(-1); /總菜單char menu()int k=0;char a3,c,i;system("cls");cout<<endl<<endl;cout

24、<<"*n"<<"* *n"<<"* 學(xué)生選修課系統(tǒng) *n"<<"* *n"<<"* *n"<<"* 操作方式: *n"<<"* 1.選修課系統(tǒng)學(xué)生端 *n"<<"* *n"<<"* 2.選修課系統(tǒng)管理端 *n"<<"* *n"<<"*n"<

25、<endl;while(1)cout<<"ntt請(qǐng)選擇登入方式: "cin>>a;if(strlen(a)=1)for(i='1'i<='2'i+)c=i;if(c=a0)return c; cerr<<"nntttt輸入有誤!n"<<endl;k+;if(k>2)system("cls");cerr<<"nnntt提示:錯(cuò)誤輸入次數(shù)超過(guò)三次,你將被強(qiáng)制退出!nn"<<endl;cout<

26、<"tt按任意鍵繼續(xù)"<<endl;getch();tuichu(); /選修課系統(tǒng)端操作char custom()char A10;char b;char i;int k = 0;system("cls");cout<<"nnn"<<"n"<<" 選修課系統(tǒng)學(xué)生端 n"<<" n"<<" 操作方式:. n"<<" 1、 學(xué)生選課 n"<&l

27、t;" 2、 學(xué)生情況 n"<<" 3、 選課情況 n"<<" 4、 退出系統(tǒng) n"<<" n"<<"n"<<endl;while(1)cout<<"ttt請(qǐng)選擇操作方式: "cin>>A;if(strlen(A)=1)for(i='1'i<='4'i+)b=i;if(b=A0) return b; cerr<<"ntttt輸入有誤!

28、n"<<endl;k+;if(k>2)system("cls");cerr<<"nnttt提示:錯(cuò)誤輸入超過(guò)三次!你將被強(qiáng)制退出!n"<<endl;cout<<"tt按任意鍵繼續(xù)"<<endl;getch();tuichu(); char server()char A10;char b;char i;int k = 0;system("cls");cout<<"nnn"<<"n"

29、;<<" n"<<" 選修課系統(tǒng)管理端 n"<<" n"<<" 操作方式: n"<<" 1.增加學(xué)生 2.增加課程 n"<<" 3.刪除學(xué)生 4.刪除課程 n"<<" 5.填寫(xiě)成績(jī) 6.更改學(xué)分 n"<<" 7.學(xué)生情況 8.選課情況 n"<<" 9.保存數(shù)據(jù) 0.退出系統(tǒng) n"<<" n

30、"<<"n"<<endl;while(1)cout<<"tt 請(qǐng)選擇操作方式: "cin>>A;if(strlen(A)=1)for(i='0'i<='9'i+)b=i;if(b=A0)return b; cerr<<"ntttt輸入有誤!n"<<endl;k+;if(k>2)cerr<<"錯(cuò)誤輸入超過(guò)三次!n"exit(-1); /密碼檢查void password()int

31、k=0,i;char A="admin"char B10;char a;system("cls");for(i=0;i<8;i+)cout<<endl;while(k<=2)printf("ttt請(qǐng)輸入管理員密碼:");i=0;while(1)a=getch();if(a=13)break;Bi=a;i+;printf("*");Bi='0'if(strcmp(A,B)=0)return;elsek+;cerr<<"nnttt密碼輸入錯(cuò)誤!請(qǐng)重新輸入!n

32、"<<endl;if(k>=3)system("cls");cerr<<"nnttt輸入錯(cuò)誤密碼超過(guò)三次!請(qǐng)按任意鍵退出."<<endl;getch();tuichu();struct subjectdbsubject sub;subjectdb *Next;int menu_2_7(studentdb *P);int menu_2_9(studentdb *Y,subjectdb *P);int menu_2_8(subjectdb *P);/學(xué)生端功能函數(shù)int menu_1_1(studentdb

33、 *P,subjectdb *X) /學(xué)生選課system("cls");cout<<"nntttt學(xué)生選課操作"<<endl;studentdb *q=P->Next;int i;char N20,M20;if(q!=NULL)cout<<"nnntt所有學(xué)生名單如下:n"<<endl;elsecerr<<"nnntt對(duì)不起,暫無(wú)學(xué)生名單!請(qǐng)先創(chuàng)建!請(qǐng)按任意鍵繼續(xù)."<<endl;return 1; while(q)q->stu.

34、getname(N);cout<<"tttt"<<N;cout<<endl;q = q->Next ; q = P->Next;if(q=NULL)return 1;cout<<"nntt 請(qǐng)輸入學(xué)生姓名:"cin>>N;i=0;q=P->Next;while(q)q->stu.getname(M);if(strcmp(N,M)=0)i+;q = q->Next; int j=0,k=1;if(i=0)cout<<"nntt沒(méi)有這個(gè)學(xué)生! 請(qǐng)按

35、任意鍵返回."<<endl;return 1; else if(i>1)cout<<"nntt共找到"<<i<<"個(gè)姓名為"<<N<<"的學(xué)生"<<endl;cout<<"tt選擇第幾個(gè):"cin>>k; if(k>i|k<=0)cerr<<"nttt輸入有誤!按任意鍵繼續(xù)"<<endl;return 1; q = P->Next;

36、j=0;while(q)q->stu.getname(M);if(strcmp(N,M)=0)j+;if(j=k)if(q->stu.retfactcourse()>=q->stu.retmaxcourse()cout<<"ntt所選課程已滿!按任意鍵繼續(xù)"<<endl;return 1; elsesubjectdb *t=X->Next;char N120;system("cls");if(t!=NULL)cout<<"nnntt所有課程如下:"<<end

37、l;cout<<"ntttt課程名稱tt 學(xué)分"<<endl; elsecerr<<"nnntt對(duì)不起,暫時(shí)沒(méi)有課程"<<endl;return 1; while(t)t->sub.getkname(N1);cout<<"tttt "<<N1<<setw(26-strlen(N1)<<t->sub.readcredit()<<endl;t = t->Next ; char N220;cout<<&q

38、uot;nt 輸入你所要選的課程: "cin>>N2;t = X->Next;while(t)t->sub.getkname(N1);if(strcmp(N1,N2)=0)if(q->stu.findcourse(N2)=1)cout<<"ntt此課程你已選過(guò)了,不能再選.按任意鍵繼續(xù)"<<endl;return 1; t=X->Next;char NA20;while(t)t->sub.getkname(NA);if(strcmp(NA,N2)=0)if(t->sub.retactivest

39、udent()>=t->sub.retmaxstudent ()cout<<"ntt此課程已選滿,不能選.按任意鍵繼續(xù)"<<endl;return 1; t = t->Next; q->stu.addcourse(N2,0.0);cout<<"nntt選課成功!按任意鍵繼續(xù)"<<endl;return 1; t = t->Next; cerr<<"ntt沒(méi)有此課程!按任意鍵繼續(xù)"<<endl; return 1; q = q->

40、Next; return 1; int menu_1_2(studentdb *P,subjectdb *X) /學(xué)生情況studentdb *q=P->Next;char N20;system("cls");cout<<"nntttt學(xué)生情況操作"<<endl;int i;if(q!=NULL)cout<<"nnntt所有學(xué)生選課信息如下:n"<<endl<<endl;cout<<"tt 姓名ttt選課情況n"<<endl;

41、 elsecerr<<"nnntt對(duì)不起,暫時(shí)沒(méi)有學(xué)生名單!請(qǐng)按任意鍵繼續(xù)."<<endl;return 1; while(q)q->stu.getname(N);cout<<"tt "<<N<<setw(25-strlen(N)<<" 已選"<<q->stu.retfactcourse()<<" 門(mén)課"<<endl;q = q->Next ; char M20;cout<<&q

42、uot;ntt輸入要查看的學(xué)生姓名:"cin>>M;i=0;q=P->Next;while(q)q->stu.getname(N);if(strcmp(N,M)=0)i+;q = q->Next; int j=0,k=1;if(i=0)cout<<"nttt沒(méi)找到這個(gè)學(xué)生!請(qǐng)按任意鍵繼續(xù)."<<endl;return 1; else if(i>1)cout<<"ntt共找到"<<i<<"個(gè)姓名為"<<M<<

43、"的學(xué)生"<<endl;cout<<"tt選擇第幾個(gè):"cin>>k; if(k>i|k<=0)cerr<<"nttt輸入有誤!按任意鍵繼續(xù)."<<endl;return 1; q = P->Next;j=0;q=P->Next;while(q)q->stu.getname(N);if(strcmp(N,M)=0)j+;if(j=k)system("cls");course *T=q->stu.retroot();if(

44、T=NULL)cout<<"nnnttt"<<N<<"同學(xué)你還未選課! 請(qǐng)按任意鍵繼續(xù)."<<endl;return 1; if (T!=NULL)T = T->Next;cout<<"nnntt"<<N<<"同學(xué)你已選"<<q->stu.retfactcourse()<<"門(mén)課,具體如下nn"<<endl;cout<<"ttt課程名稱tt成績(jī)

45、n"<<endl;while(T)cout<<"ttt "<<T->cname<<setw(25-strlen(T->cname)<<T->grade<<endl;T = T->Next; j=0; q = q->Next; cout<<"ntt請(qǐng)按任意鍵繼續(xù)."<<endl;return 1; int menu_1_3(subjectdb *P) /選課情況subjectdb *q=P->Next;char N2

46、0;system("cls");cout<<"nntttt選課情況操作"<<endl;if(q!=NULL)cout<<"nnntt所有選課情況如下:n"<<endl;cout<<"nttt課程名稱tt選課人數(shù)n"<<endl; elsecerr<<"nnntt對(duì)不起,暫時(shí)沒(méi)有課程!請(qǐng)按任意鍵繼續(xù)."<<endl;return 1; while(q)q->sub.getkname(N);cout

47、<<"ttt"<<N<<setw(28-strlen(N)<<q->sub.retactivestudent()<<endl;q = q->Next ; cout<<"ntt請(qǐng)按任意鍵繼續(xù)."<<endl;return 1; int menu_1_4(studentdb *X,subjectdb *P) /退出系統(tǒng)menu_2_9(X,P);tuichu();return 0; /管理端功能函數(shù)int menu_2_1(studentdb *P) /增加學(xué)生c

48、har N20;system("cls");cout<<"nntttt增加學(xué)生操作n"<<endl;cout<<"nntt請(qǐng)輸入學(xué)生姓名:"cin>>N;cout<<endl<<"tt增加學(xué)生操作成功,按任意鍵繼續(xù)"<<endl;studentdb *newnode = new studentdb;newnode->Next = P->Next ;newnode->stu.readname(N);P->Nex

49、t = newnode ;return 1; int menu_2_2(subjectdb *P) /增加課程float k;char N20,M20;system("cls");cout<<"nntttt增加課程操作n"<<endl;cout<<"nntt 請(qǐng)輸入課程名稱:"cin>>N;cout<<endl;subjectdb *q = P->Next;while(q)q->sub.getkname(M);if(strcmp(N,M)=0)cout<&l

50、t;"ntt此課程已經(jīng)存在,按任意鍵繼續(xù)"<<endl;return 1; q = q->Next; cout<<"tt輸入此課程的學(xué)分:"cin>>k;cout<<"ntt增加課程操作成功,按任意鍵繼續(xù)"<<endl;subjectdb *newnode = new subjectdb;newnode->Next = P->Next ;newnode->sub.setkname(N);newnode->sub.getcredit(k);P-&g

51、t;Next = newnode ;return 1; int menu_2_3(studentdb *P) /刪除學(xué)生system("cls");cout<<"nntttt刪除學(xué)生操作"<<endl;menu_2_7(P);studentdb *q = P->Next;if(q=NULL)return 1;int i;char N20,M20;cout<<"nt請(qǐng)輸入要?jiǎng)h除的學(xué)生姓名:"cin>>N;i=0;while(q)q->stu.getname(M);if(strcmp(N,M)=0)i+;q = q-&

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論