版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C+程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告課題名稱: 學(xué)生選修課程系統(tǒng)設(shè)計(jì) 組 號(hào): 第八組 指導(dǎo)教師: 張 帆 目 錄 引言.一 設(shè)計(jì)目的及內(nèi)容二 課題總體設(shè)計(jì)1. 性能需求2. 功能需求.3. 功能模塊圖三 詳細(xì)設(shè)計(jì). 1.各模塊說明. . 2.各模塊功能流程圖 四 測(cè)試與調(diào)試五 心得體會(huì).六 附:源代碼.引 言21世紀(jì)以高科技為核心的知識(shí)經(jīng)濟(jì)占主導(dǎo)地位,國(guó)家的綜合國(guó)力和以國(guó)際競(jìng)爭(zhēng)力將越來越取決于科學(xué)技術(shù)創(chuàng)新水平。教育作為知識(shí)創(chuàng)新,傳播和應(yīng)用的基礎(chǔ),培養(yǎng)和輸送人才的搖籃,已經(jīng)成為經(jīng)濟(jì)發(fā)展和社會(huì)進(jìn)步的基礎(chǔ)。 盡管人類進(jìn)步的程度隨著不同時(shí)代,不同地區(qū)而有所變化,教育的口徑不斷擴(kuò)寬,以便使過去僅供少數(shù)人使用的教育
2、資源能夠?yàn)楦喔鞣N年齡,不同社會(huì)階層和背景的人們所用。在信息爆炸的時(shí)代,傳統(tǒng)教學(xué)管理面臨諸多挑戰(zhàn)。課程設(shè)計(jì)是課程教學(xué)必不可缺的一個(gè)重要環(huán)節(jié),可加深學(xué)生對(duì)該課程所學(xué)內(nèi)容的進(jìn)一步的了解與鞏固,是將計(jì)算機(jī)課程與實(shí)際問題相連接的關(guān)鍵步驟。此次程序設(shè)計(jì)綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問題,將課堂的書本知識(shí)有效的在程序中體現(xiàn)出來,讓學(xué)生更理解了C+功能之強(qiáng)大,進(jìn)一步讓學(xué)生對(duì)面向?qū)ο蟮姆椒ㄒ约癈+的編程思想有了較好了解和認(rèn)識(shí)。一 設(shè)計(jì)目的及內(nèi)容:網(wǎng)上選課系統(tǒng)是針對(duì)在校學(xué)生和教師使用,從學(xué)生的角度來說,由于學(xué)校教學(xué)制度的改革,現(xiàn)在大部分高等院校開始實(shí)行的是學(xué)生的自主選課模式,傳統(tǒng)的教學(xué)模式(學(xué)生按照學(xué)校安排好的課程上
3、課)已經(jīng)不能適應(yīng)新型的教學(xué)手段,如果仍然通過紙上的選課,一方面浪費(fèi)大量的人力,物力資源,另一方面浪費(fèi)時(shí)間以及在人為的統(tǒng)計(jì)過程中不可避免出現(xiàn)的差錯(cuò)等情況。隨著學(xué)校規(guī)模的不斷擴(kuò)大,專業(yè),班級(jí),學(xué)生的數(shù)量急劇增加,有關(guān)學(xué)生選課的各種信息也成倍增加,而目前許多高校的學(xué)生的選課管理仍然停留在復(fù)雜的人工操作上,重復(fù)工作較多,工作量大,效率低,各種弊端會(huì)越來越多的暴露出來,因此利用網(wǎng)絡(luò),使學(xué)生只要在計(jì)算機(jī)前輸入自己的個(gè)人選課信息即可完成原來幾倍的工作量。從教師的角度上來說,同樣是節(jié)省了大量的工作量,由于教師提出代課申請(qǐng)完成課程發(fā)布的工作較學(xué)生選課而言更加的復(fù)雜,因此在網(wǎng)上進(jìn)行課程發(fā)布能大幅度的減少教師的工作
4、量,減少錯(cuò)誤發(fā)生幾率,作為教師,也只要通過自己的電腦來操作即可,不用奔波于教務(wù)處和辦公室之間。1、課題名稱:學(xué)生選修課程系統(tǒng)設(shè)計(jì)2、課程設(shè)計(jì)詳細(xì)內(nèi)容說明:假定有n門課程,每門課程有課程編號(hào)、課程名稱、課程性質(zhì)、總學(xué)時(shí)、授課學(xué)時(shí)、實(shí)驗(yàn)學(xué)時(shí)、學(xué)分、開課學(xué)期等信息。學(xué)生可以按要求(如每個(gè)學(xué)生總學(xué)分不得少于20、沒學(xué)期不能超過3門課程,每門課程不得超過50個(gè)人,但不能少于10否則該課程不開設(shè))自由選課。使之能提供一些功能:要求:具體設(shè)計(jì)要求實(shí)現(xiàn)如下功能:1、 課程信息錄入功能2、 課程信息瀏覽功能3、 查詢功能:(按課程性質(zhì)查詢、按課程學(xué)分查詢,查詢每個(gè)學(xué)生的選修信息、查詢每門課程的選修信息等)4、
5、學(xué)生選修課程5、修改課程或選課信息(根據(jù)課程編號(hào)或名稱修改課程信息、根據(jù)學(xué)生姓名修改選課信息);6、刪除課程或選課信息(根據(jù)課程編號(hào)或名稱刪除課程信息、根據(jù)學(xué)生姓名刪除選課信息);二 課題總體設(shè)計(jì):1、 性能需求:在現(xiàn)代,高科技的飛躍發(fā)展,人們工作習(xí)慣的改變,別特是電腦的大量普及,人們生活節(jié)奏越來越來快,怎樣提高工作效率是人們首先考慮的問題。學(xué)生選課是一個(gè)非常繁瑣與復(fù)雜的一項(xiàng)工作,一個(gè)原因就是工作量大,不好管。對(duì)于一個(gè)學(xué)校而言,更應(yīng)該運(yùn)用一些本地資源,提高管理的力度,對(duì)學(xué)生負(fù)責(zé),對(duì)國(guó)家負(fù)責(zé)。 顯然,靠手工進(jìn)行管理這種選課方法已經(jīng)不能適應(yīng)時(shí)代的發(fā)展,學(xué)校的需求。今天這種傳統(tǒng)的管理方法必然會(huì)被計(jì)算
6、機(jī)為基礎(chǔ)的信息系統(tǒng)所代替。同時(shí)這種傳統(tǒng)方式放映出很多問題:第一, 當(dāng)要查詢某個(gè)同學(xué)或某個(gè)班級(jí)的選課情況極不方便;第二, 每次 選課時(shí)省老師花大量時(shí)間統(tǒng)計(jì)各班級(jí)各學(xué)生的選課情況,這樣準(zhǔn)確率也較難保證;第三, 選課的可靠性很低;第四, 現(xiàn)在學(xué)校雖然已用計(jì)算機(jī)進(jìn)行選課管理,但工作并不完善,有很大的局限性。2、 功能需求:我們?cè)O(shè)計(jì)的是一個(gè)學(xué)生選修金額系統(tǒng),這個(gè)系統(tǒng)的功能比較完善。使用主函數(shù)中的switch語句實(shí)現(xiàn)該結(jié)構(gòu),進(jìn)而實(shí)現(xiàn)該系統(tǒng)的各項(xiàng)功能。該系統(tǒng)能實(shí)現(xiàn)六項(xiàng)功能:1.錄入信息、2.查詢信息、3.刪除課程、4.顯示課程、5.保存信息、6.讀取信息,設(shè)計(jì)本次試驗(yàn)所用到的知識(shí)點(diǎn)有:類和對(duì)象、FOR循環(huán)、
7、switch語句、do while()語句、構(gòu)造函數(shù)等等。3、 功能模塊圖:學(xué)生信息模塊課程信息模塊選課模塊三 詳細(xì)設(shè)計(jì):1. 各模塊說明:(1) 我們這學(xué)生選修課系統(tǒng)的主界面分有兩個(gè)選項(xiàng)一個(gè)是學(xué)生使用的學(xué)生端一個(gè)是老師使用的教師端。(2) 學(xué)生端包括學(xué)生的選課情況、學(xué)生情況和學(xué)生選課,學(xué)生可在這里進(jìn)行選課查詢各學(xué)生選修課情況還可以查看學(xué)生的情況。(3) 選課系統(tǒng)管理端只有教師可以進(jìn)入因?yàn)樾枰艽a,設(shè)計(jì)密碼是防止學(xué)生進(jìn)入管理端隨意修改。管理端包括一些要求里有的如:課程瀏覽、課程錄入、課程刪除、課程查詢等,還包括一些要求里邊沒有的功能如:填寫成績(jī)、更改學(xué)分等。這些功能只有管理員才能進(jìn)行修改和填寫
8、。2 各模塊功能流程圖:開始(1)主界面流程圖:接受數(shù)據(jù)數(shù)據(jù)依據(jù)輸入值執(zhí)行i=1i=1i=2i=2Case 2Case 1Case 1Case 2結(jié)束(2)學(xué)生端流程圖:開始按任意鍵輸入數(shù)據(jù)是否為4學(xué)生選課學(xué)生情況選課情況nY結(jié)束(3)管理端流程圖:開始否但小于三次輸入數(shù)據(jù)是否為123456Y否且大于三次輸入數(shù)據(jù)錄入課程刪除課程保存數(shù)據(jù)等N是否為0Y結(jié)束四 測(cè)試與調(diào)試:運(yùn)行:1. 學(xué)生選課主界面2. 選修課系統(tǒng)學(xué)生端3. 系統(tǒng)管理端4. 學(xué)生選課界面5. 查詢學(xué)生所選課程界面6. 刪除課程界面7. 課程信息錄入功能8. 按課程查詢所選人數(shù)遇到的問題和解決辦法:這個(gè)程序用到了數(shù)據(jù)結(jié)構(gòu)的內(nèi)容可是我
9、們還沒有學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)當(dāng)時(shí)這件事真是吧我們難住了,沒辦法只能自己上網(wǎng)還有去圖書館這中間也去問過老師最終還是把主要問題解決了,不過這中間可能有一些問題是我們現(xiàn)在解決不了的。五 心得體會(huì):1 每當(dāng)拿到一個(gè)小工程,我們都得先仔細(xì)分析用戶的需求,然后再給程序定位(所花費(fèi)的人力、物力以及財(cái)力),這將花費(fèi)我們大量的時(shí)間,就如本次任務(wù)一樣,我們首先聚在一起分析,然后得出大致方向,再具體分配任務(wù),無論哪一部分都是我們努力的結(jié)果。2 通過這次學(xué)生選課系統(tǒng)設(shè)計(jì),以C+語言為基礎(chǔ)的編寫,更讓我掌握到C+語言中的相關(guān)語句的應(yīng)用。3 用Visual C+ 6.0 環(huán)境下編寫,我覺得,從文件中讀入數(shù)據(jù)十分麻煩,沒有數(shù)據(jù)庫中
10、讀入數(shù)據(jù)那么輕松,如果我要用到兩個(gè)表中的記錄,非常麻煩。4 整個(gè)設(shè)計(jì)過程過后,我也基本掌握了設(shè)計(jì)的基本步驟,為我們以后做畢業(yè)論文也有很好的幫助。5 C+是很好的系統(tǒng)編程語言,但不能以此獨(dú)立,但用C+語言是做不出好的系統(tǒng),還是要和其他軟件結(jié)合,以C+為基礎(chǔ)編寫的系統(tǒng),這樣做出來的系統(tǒng)也更好,更美觀。6 這次系統(tǒng)設(shè)計(jì)有很多不足之處,在這過程中也認(rèn)識(shí)到自己對(duì)C+也有很多的沒掌握的地方。但是在老師和同學(xué)的幫助下,也算是弄出了一個(gè)簡(jiǎn)單的系統(tǒng),在以后也要更加努力的學(xué)習(xí),掌握更好的編程技術(shù)。7 做程序真的是個(gè)很累的活,有時(shí)就為了一個(gè)小小的錯(cuò)誤,可以一兩頓飯不吃,但是做出來的那一刻,真心的感覺很開心,很有成就
11、感,雖然其應(yīng)用性不高,至少這也是我們小組努力的結(jié)果。8 經(jīng)過我們多天的團(tuán)結(jié)合作終于把這個(gè)學(xué)生選課系統(tǒng)做完了,雖然這過程是艱難的但是做完之后感覺挺有成就感的,在這個(gè)過程中我們學(xué)到了很多光聽老師講學(xué)不到的東西。在寫這個(gè)程序的時(shí)候用到了數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,如果不是這個(gè)程序我覺得我是不會(huì)去自學(xué)數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。參考書目:1 譚浩強(qiáng),C+程序設(shè)計(jì),清華大學(xué)出版社,2002.42 求是科技,Visual C+ 6.0信息管理系統(tǒng)開發(fā),人民郵電出版社,2005.43 陳良銀、游洪躍、李旭偉,C語言程序設(shè)計(jì)(C99版),清華大學(xué)出版社,2006.104 殷人昆,數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ㄅcC+語言描述),清華大學(xué)出版
12、社,2007.2編程人員:孫雙蕾、白曉蘭實(shí)驗(yàn)報(bào)告設(shè)計(jì):牟煉調(diào)試人員:孫雙蕾講解人員:白曉蘭附錄:源代碼#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é)生類class studentpublic:stud
13、ent()root = NULL;const int maxcourse = 5;factcourse = 0;void readname(char N ); /讀入學(xué)生的姓名void getname(char N); /得到學(xué)生的姓名void wrecourse(char N,float score); /要據(jù)課程名寫入學(xué)生課程的成績(jī)float average(); /學(xué)生課程的平均成績(jī)void addcourse(char N,float g); /給學(xué)生增加一門課int findcourse(char N); /查找是否已有此課程,如果有返回,如果沒有返回int retfactcours
14、e() return factcourse; /得到所學(xué)的課程數(shù)目course *retroot() return root; /利用鍵表將所有的課程保存起來int retmaxcourse() return 5; /得到最多可學(xué)的課程數(shù)目void clrroot() /清零root = NULL;factcourse = 0;private:char sname20; /學(xué)生的姓名int maxcourse; /學(xué)生最多可以學(xué)五門課程int factcourse; /學(xué)生實(shí)際所學(xué)的課程數(shù)目course *root; /課程的根結(jié)點(diǎn)指針;void student:readname (char
15、N)/讀入學(xué)生的姓名 strcpy(sname,N); void student:getname(char N)/得到學(xué)生的姓名 strcpy(N,sname); void student:wrecourse(char N,float score)/要據(jù)課程名寫入學(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é)生課程的平均
16、成績(jī)float aver=0.0;course *p = root;while (p) aver = aver+p->grade; aver = aver/factcourse;return aver; void student:addcourse (char N,float g)/給學(xué)生增加一門課course *s = new course;s->Next=NULL;if(root = NULL)root = s;course *p = root;course *newcourse = new course;newcourse->Next = p->Next;p-&g
17、t;Next=newcourse;strcpy(newcourse->cname,N);newcourse->grade = g;factcourse+;int student:findcourse (char N)/查找是否已有此課程,如果有返回,如果沒有返回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;stude
18、ntdb *Next; ;struct studentnamechar tname20; /學(xué)生的名字float result; /學(xué)生所得的該課程分?jǐn)?shù)studentname *Next; ; /課程類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ī)voi
19、d getkname(char N); /讀出課程的名稱void setkname(char 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; /從文件中讀出來后將實(shí)
20、際學(xué)生數(shù)清零private:int maxstudent; /最多學(xué)生數(shù)int activestudnet; /實(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
21、k = 0.0;studentname *p;p=first->Next;if(p=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:getkna
22、me (char N) /讀出課程的名稱 strcpy(N,kname); void subject: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
23、->stu.retroot();if(Y =NULL) K = K->Next;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 = Acod
24、e;activestudnet = activestudnet + 1;break; Y = 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("
25、cls");cout<<endl<<endl;cout<<"*n"<<"* *n"<<"* 學(xué)生選修課系統(tǒng) *n"<<"* *n"<<"* *n"<<"* 操作方式: *n"<<"* 1.選修課系統(tǒng)學(xué)生端 *n"<<"* *n"<<"* 2.選修課系統(tǒng)管理端 *n"<&l
26、t;"* *n"<<"*n"<<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ò)誤輸入
27、次數(shù)超過三次,你將被強(qiáng)制退出!nn"<<endl;cout<<"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"<<" 操作方式:.
28、 n"<<" 1、 學(xué)生選課 n"<<" 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(
29、b=A0) return b; cerr<<"ntttt輸入有誤!n"<<endl;k+;if(k>2)system("cls");cerr<<"nnttt提示:錯(cuò)誤輸入超過三次!你將被強(qiáng)制退出!n"<<endl;cout<<"tt按任意鍵繼續(xù)"<<endl;getch();tuichu(); char server()char A10;char b;char i;int k = 0;system("cls");cou
30、t<<"nnn"<<"n"<<" n"<<" 選修課系統(tǒng)管理端 n"<<" n"<<" 操作方式: n"<<" 1.增加學(xué)生 2.增加課程 n"<<" 3.刪除學(xué)生 4.刪除課程 n"<<" 5.填寫成績(jī) 6.更改學(xué)分 n"<<" 7.學(xué)生情況 8.選課情況 n"<<
31、" 9.保存數(shù)據(jù) 0.退出系統(tǒng) n"<<" n"<<"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ò)誤輸入超過
32、三次!n"exit(-1); /密碼檢查void password()int k=0,i;char A="123456"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
33、;elsek+;cerr<<"nnttt密碼輸入錯(cuò)誤!請(qǐng)重新輸入!n"<<endl;if(k>=3)system("cls");cerr<<"nnttt輸入錯(cuò)誤密碼超過三次!請(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
34、(subjectdb *P);/學(xué)生端功能函數(shù)int menu_1_1(studentdb *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ì)不起,暫無學(xué)生名單!請(qǐng)先創(chuàng)建!請(qǐng)按任意鍵繼續(xù).&q
35、uot;<<endl;return 1; while(q)q->stu.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=
36、0,k=1;if(i=0)cout<<"nntt沒有這個(gè)學(xué)生! 請(qǐng)按任意鍵返回."<<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輸入有誤!按任意鍵繼
37、續(xù)"<<endl;return 1; q = P->Next;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)co
38、ut<<"nnntt所有課程如下:"<<endl;cout<<"ntttt課程名稱tt 學(xué)分"<<endl; elsecerr<<"nnntt對(duì)不起,暫時(shí)沒有課程"<<endl;return 1; while(t)t->sub.getkname(N1);cout<<"tttt "<<N1<<setw(26-strlen(N1)<<t->sub.readcredit()<<e
39、ndl;t = t->Next ; char N220;cout<<"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此課程你已選過了,不能再選.按任意鍵繼續(xù)"<<endl;return 1; t=X->Next;char NA20;while(t)t->sub.getkname(NA
40、);if(strcmp(NA,N2)=0)if(t->sub.retactivestudent()>=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沒有此課程!按
41、任意鍵繼續(xù)"<<endl; return 1; q = q->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&
42、lt;<"tt 姓名ttt選課情況n"<<endl; elsecerr<<"nnntt對(duì)不起,暫時(shí)沒有學(xué)生名單!請(qǐng)按任意鍵繼續(xù)."<<endl;return 1; while(q)q->stu.getname(N);cout<<"tt "<<N<<setw(25-strlen(N)<<" 已選"<<q->stu.retfactcourse()<<" 門課"<<
43、endl;q = q->Next ; char M20;cout<<"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沒找到這個(gè)學(xué)生!請(qǐng)按任意鍵繼續(xù)."<<endl;return 1; else if(i>1)cout<<"ntt共找到"<&
44、lt;i<<"個(gè)姓名為"<<M<<"的學(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("
45、;cls");course *T=q->stu.retroot();if(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()<<"門課,具體如下nn&qu
46、ot;<<endl;cout<<"ttt課程名稱tt成績(jī)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(subje
47、ctdb *P) /選課情況subjectdb *q=P->Next;char N20;system("cls");cout<<"nntttt選課情況操作"<<endl;if(q!=NULL)cout<<"nnntt所有選課情況如下:n"<<endl;cout<<"nttt課程名稱tt選課人數(shù)n"<<endl; elsecerr<<"nnntt對(duì)不起,暫時(shí)沒有課程!請(qǐng)按任意鍵繼續(xù)."<<endl
48、;return 1; while(q)q->sub.getkname(N);cout<<"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
49、 0; /管理端功能函數(shù)int menu_2_1(studentdb *P) /增加學(xué)生char 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-&g
50、t;Next ;newnode->stu.readname(N);P->Next = 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-&g
51、t;sub.getkname(M);if(strcmp(N,M)=0)cout<<"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.
52、setkname(N);newnode->sub.getcredit(k);P->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>&
53、gt;N;i=0;while(q)q->stu.getname(M);if(strcmp(N,M)=0)i+;q = q->Next; int j=0,k=1;if(i=0)cerr<<"ntt沒有這個(gè)學(xué)生!請(qǐng)按任意鍵繼續(xù)."<<endl;return 1; else if(i>1)cout<<"ntt共找到"<<i<<"個(gè)姓名為"<<N<<"的學(xué)生"<<endl;cout<<"ntt要?jiǎng)h除第幾個(gè):"cin>>k; if(k>i|k<=0)return 1;q = P->Next;studentdb *R = P;j=0;while(q)q->stu.getname(M);if(strcmp(N,M)=0)j+;if(j=k)R->Next = q->Next;free(q);cout<<"ntt刪除學(xué)生操作成功,按任意鍵繼續(xù)."<<endl;return 1; q = q->Next;R = R->Next; return 1; int menu_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 拋荒整治協(xié)議合同
- 2024年生物制藥試劑定制生產(chǎn)合同樣本2篇
- 2025年云南貨運(yùn)資格證題庫在線練習(xí)
- 2025年黃岡貨運(yùn)從業(yè)資格證考試模擬
- 2025年貴港b2貨運(yùn)資格證全題
- 2024年度生物制藥研發(fā)委托技術(shù)合同范本3篇
- 2024年環(huán)保項(xiàng)目實(shí)施方案保密協(xié)議
- 2024年版綜合性勞動(dòng)協(xié)議范本版
- 2025年北京貨運(yùn)資格證考試70題
- 《工程制圖與CAD(軌道交通)》課件-鐵路線路平面圖認(rèn)識(shí)
- 松果體區(qū)腫瘤護(hù)理
- 《施工現(xiàn)場(chǎng)安全防護(hù)標(biāo)準(zhǔn)化防高墜篇》測(cè)試附有答案
- 流動(dòng)資金貸款管理辦法培訓(xùn)1
- 血管瘤護(hù)理措施
- 智能穿戴行業(yè)發(fā)展趨勢(shì)
- 公共場(chǎng)所的肺結(jié)核消毒措施
- 圓及其在生活中的應(yīng)用
- 春節(jié)晚宴策劃方案1
- 如何制作一個(gè)簡(jiǎn)易的動(dòng)物細(xì)胞模型
- 2024年便攜式X光機(jī)行業(yè)分析報(bào)告及未來發(fā)展趨勢(shì)
- 騰訊公司營(yíng)銷策略
評(píng)論
0/150
提交評(píng)論