版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、C+程序設(shè)計課程設(shè)計報告課題名稱: 學(xué)生選修課程系統(tǒng)設(shè)計 組 號: 第八組 指導(dǎo)教師: 張 帆 目 錄 引言.一 設(shè)計目的及內(nèi)容二 課題總體設(shè)計1. 性能需求2. 功能需求.3. 功能模塊圖三 詳細(xì)設(shè)計. 1.各模塊說明. . 2.各模塊功能流程圖 四 測試與調(diào)試五 心得體會.六 附:源代碼.引 言21世紀(jì)以高科技為核心的知識經(jīng)濟占主導(dǎo)地位,國家的綜合國力和以國際競爭力將越來越取決于科學(xué)技術(shù)創(chuàng)新水平。教育作為知識創(chuàng)新,傳播和應(yīng)用的基礎(chǔ),培養(yǎng)和輸送人才的搖籃,已經(jīng)成為經(jīng)濟發(fā)展和社會進步的基礎(chǔ)。 盡管人類進步的程度隨著不同時代,不同地區(qū)而有所變化,教育的口徑不斷擴寬,以便使過去僅供少數(shù)人使用的教育
2、資源能夠為更多各種年齡,不同社會階層和背景的人們所用。在信息爆炸的時代,傳統(tǒng)教學(xué)管理面臨諸多挑戰(zhàn)。課程設(shè)計是課程教學(xué)必不可缺的一個重要環(huán)節(jié),可加深學(xué)生對該課程所學(xué)內(nèi)容的進一步的了解與鞏固,是將計算機課程與實際問題相連接的關(guān)鍵步驟。此次程序設(shè)計綜合運用所學(xué)知識解決實際問題,將課堂的書本知識有效的在程序中體現(xiàn)出來,讓學(xué)生更理解了C+功能之強大,進一步讓學(xué)生對面向?qū)ο蟮姆椒ㄒ约癈+的編程思想有了較好了解和認(rèn)識。一 設(shè)計目的及內(nèi)容:網(wǎng)上選課系統(tǒng)是針對在校學(xué)生和教師使用,從學(xué)生的角度來說,由于學(xué)校教學(xué)制度的改革,現(xiàn)在大部分高等院校開始實行的是學(xué)生的自主選課模式,傳統(tǒng)的教學(xué)模式(學(xué)生按照學(xué)校安排好的課程上
3、課)已經(jīng)不能適應(yīng)新型的教學(xué)手段,如果仍然通過紙上的選課,一方面浪費大量的人力,物力資源,另一方面浪費時間以及在人為的統(tǒng)計過程中不可避免出現(xiàn)的差錯等情況。隨著學(xué)校規(guī)模的不斷擴大,專業(yè),班級,學(xué)生的數(shù)量急劇增加,有關(guān)學(xué)生選課的各種信息也成倍增加,而目前許多高校的學(xué)生的選課管理仍然停留在復(fù)雜的人工操作上,重復(fù)工作較多,工作量大,效率低,各種弊端會越來越多的暴露出來,因此利用網(wǎng)絡(luò),使學(xué)生只要在計算機前輸入自己的個人選課信息即可完成原來幾倍的工作量。從教師的角度上來說,同樣是節(jié)省了大量的工作量,由于教師提出代課申請完成課程發(fā)布的工作較學(xué)生選課而言更加的復(fù)雜,因此在網(wǎng)上進行課程發(fā)布能大幅度的減少教師的工作
4、量,減少錯誤發(fā)生幾率,作為教師,也只要通過自己的電腦來操作即可,不用奔波于教務(wù)處和辦公室之間。1、課題名稱:學(xué)生選修課程系統(tǒng)設(shè)計2、課程設(shè)計詳細(xì)內(nèi)容說明:假定有n門課程,每門課程有課程編號、課程名稱、課程性質(zhì)、總學(xué)時、授課學(xué)時、實驗學(xué)時、學(xué)分、開課學(xué)期等信息。學(xué)生可以按要求(如每個學(xué)生總學(xué)分不得少于20、沒學(xué)期不能超過3門課程,每門課程不得超過50個人,但不能少于10否則該課程不開設(shè))自由選課。使之能提供一些功能:要求:具體設(shè)計要求實現(xiàn)如下功能:1、 課程信息錄入功能2、 課程信息瀏覽功能3、 查詢功能:(按課程性質(zhì)查詢、按課程學(xué)分查詢,查詢每個學(xué)生的選修信息、查詢每門課程的選修信息等)4、
5、學(xué)生選修課程5、修改課程或選課信息(根據(jù)課程編號或名稱修改課程信息、根據(jù)學(xué)生姓名修改選課信息);6、刪除課程或選課信息(根據(jù)課程編號或名稱刪除課程信息、根據(jù)學(xué)生姓名刪除選課信息);二 課題總體設(shè)計:1、 性能需求:在現(xiàn)代,高科技的飛躍發(fā)展,人們工作習(xí)慣的改變,別特是電腦的大量普及,人們生活節(jié)奏越來越來快,怎樣提高工作效率是人們首先考慮的問題。學(xué)生選課是一個非常繁瑣與復(fù)雜的一項工作,一個原因就是工作量大,不好管。對于一個學(xué)校而言,更應(yīng)該運用一些本地資源,提高管理的力度,對學(xué)生負(fù)責(zé),對國家負(fù)責(zé)。 顯然,靠手工進行管理這種選課方法已經(jīng)不能適應(yīng)時代的發(fā)展,學(xué)校的需求。今天這種傳統(tǒng)的管理方法必然會被計算
6、機為基礎(chǔ)的信息系統(tǒng)所代替。同時這種傳統(tǒng)方式放映出很多問題:第一, 當(dāng)要查詢某個同學(xué)或某個班級的選課情況極不方便;第二, 每次 選課時省老師花大量時間統(tǒng)計各班級各學(xué)生的選課情況,這樣準(zhǔn)確率也較難保證;第三, 選課的可靠性很低;第四, 現(xiàn)在學(xué)校雖然已用計算機進行選課管理,但工作并不完善,有很大的局限性。2、 功能需求:我們設(shè)計的是一個學(xué)生選修金額系統(tǒng),這個系統(tǒng)的功能比較完善。使用主函數(shù)中的switch語句實現(xiàn)該結(jié)構(gòu),進而實現(xiàn)該系統(tǒng)的各項功能。該系統(tǒng)能實現(xiàn)六項功能:1.錄入信息、2.查詢信息、3.刪除課程、4.顯示課程、5.保存信息、6.讀取信息,設(shè)計本次試驗所用到的知識點有:類和對象、FOR循環(huán)、
7、switch語句、do while()語句、構(gòu)造函數(shù)等等。3、 功能模塊圖:學(xué)生信息模塊課程信息模塊選課模塊三 詳細(xì)設(shè)計:1. 各模塊說明:(1) 我們這學(xué)生選修課系統(tǒng)的主界面分有兩個選項一個是學(xué)生使用的學(xué)生端一個是老師使用的教師端。(2) 學(xué)生端包括學(xué)生的選課情況、學(xué)生情況和學(xué)生選課,學(xué)生可在這里進行選課查詢各學(xué)生選修課情況還可以查看學(xué)生的情況。(3) 選課系統(tǒng)管理端只有教師可以進入因為需要密碼,設(shè)計密碼是防止學(xué)生進入管理端隨意修改。管理端包括一些要求里有的如:課程瀏覽、課程錄入、課程刪除、課程查詢等,還包括一些要求里邊沒有的功能如:填寫成績、更改學(xué)分等。這些功能只有管理員才能進行修改和填寫
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é)束四 測試與調(diào)試:運行:1. 學(xué)生選課主界面2. 選修課系統(tǒng)學(xué)生端3. 系統(tǒng)管理端4. 學(xué)生選課界面5. 查詢學(xué)生所選課程界面6. 刪除課程界面7. 課程信息錄入功能8. 按課程查詢所選人數(shù)遇到的問題和解決辦法:這個程序用到了數(shù)據(jù)結(jié)構(gòu)的內(nèi)容可是我
9、們還沒有學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)當(dāng)時這件事真是吧我們難住了,沒辦法只能自己上網(wǎng)還有去圖書館這中間也去問過老師最終還是把主要問題解決了,不過這中間可能有一些問題是我們現(xiàn)在解決不了的。五 心得體會:1 每當(dāng)拿到一個小工程,我們都得先仔細(xì)分析用戶的需求,然后再給程序定位(所花費的人力、物力以及財力),這將花費我們大量的時間,就如本次任務(wù)一樣,我們首先聚在一起分析,然后得出大致方向,再具體分配任務(wù),無論哪一部分都是我們努力的結(jié)果。2 通過這次學(xué)生選課系統(tǒng)設(shè)計,以C+語言為基礎(chǔ)的編寫,更讓我掌握到C+語言中的相關(guān)語句的應(yīng)用。3 用Visual C+ 6.0 環(huán)境下編寫,我覺得,從文件中讀入數(shù)據(jù)十分麻煩,沒有數(shù)據(jù)庫中
10、讀入數(shù)據(jù)那么輕松,如果我要用到兩個表中的記錄,非常麻煩。4 整個設(shè)計過程過后,我也基本掌握了設(shè)計的基本步驟,為我們以后做畢業(yè)論文也有很好的幫助。5 C+是很好的系統(tǒng)編程語言,但不能以此獨立,但用C+語言是做不出好的系統(tǒng),還是要和其他軟件結(jié)合,以C+為基礎(chǔ)編寫的系統(tǒng),這樣做出來的系統(tǒng)也更好,更美觀。6 這次系統(tǒng)設(shè)計有很多不足之處,在這過程中也認(rèn)識到自己對C+也有很多的沒掌握的地方。但是在老師和同學(xué)的幫助下,也算是弄出了一個簡單的系統(tǒng),在以后也要更加努力的學(xué)習(xí),掌握更好的編程技術(shù)。7 做程序真的是個很累的活,有時就為了一個小小的錯誤,可以一兩頓飯不吃,但是做出來的那一刻,真心的感覺很開心,很有成就
11、感,雖然其應(yīng)用性不高,至少這也是我們小組努力的結(jié)果。8 經(jīng)過我們多天的團結(jié)合作終于把這個學(xué)生選課系統(tǒng)做完了,雖然這過程是艱難的但是做完之后感覺挺有成就感的,在這個過程中我們學(xué)到了很多光聽老師講學(xué)不到的東西。在寫這個程序的時候用到了數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,如果不是這個程序我覺得我是不會去自學(xué)數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。參考書目:1 譚浩強,C+程序設(shè)計,清華大學(xué)出版社,2002.42 求是科技,Visual C+ 6.0信息管理系統(tǒng)開發(fā),人民郵電出版社,2005.43 陳良銀、游洪躍、李旭偉,C語言程序設(shè)計(C99版),清華大學(xué)出版社,2006.104 殷人昆,數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ㄅcC+語言描述),清華大學(xué)出版
12、社,2007.2編程人員:孫雙蕾、白曉蘭實驗報告設(shè)計:牟煉調(diào)試人員:孫雙蕾講解人員:白曉蘭附錄:源代碼#include <iostream>#include <iomanip>#include <fstream>#include <conio.h>using namespace std; /定義課程class course /某個學(xué)生所學(xué)的課程中的某一個public:char cname20; /課程名稱float grade; /課程成績course *Next; /指向下一個課程的指針;/學(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é)生課程的成績float average(); /學(xué)生課程的平均成績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é)生實際所學(xué)的課程數(shù)目course *root; /課程的根結(jié)點指針;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é)生課程的成績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、成績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é)生的平均成績float getresult(char N); /查找某個學(xué)生的成績voi
19、d getkname(char N); /讀出課程的名稱void setkname(char N); /讀入課程的名稱studentname *retfirst() return first; /返回根結(jié)點void findstudent(studentdb *P); /根據(jù)該課程的名稱,尋找選這課程的學(xué)生int retactivestudent() return activestudnet; /返回實際學(xué)生數(shù)int retmaxstudent() return 30; /返回最多學(xué)生數(shù)void clractivestudnet() activestudnet = 0; /從文件中讀出來后將實
20、際學(xué)生數(shù)清零private:int maxstudent; /最多學(xué)生數(shù)int activestudnet; /實際學(xué)生數(shù)studentname *first; /學(xué)生名單float credit; /該課程的學(xué)分float averagerusult; /該課程的平均成績char kname20; /該課程的名稱;float subject:readcredit ()/得到課程的學(xué)分 return credit; void subject:getcredit (float a)/設(shè)置學(xué)分 credit=a; float subject:getaverage()/得到學(xué)生的平均成績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) /查找某個學(xué)生的成績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請選擇登入方式: "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提示:錯誤輸入
27、次數(shù)超過三次,你將被強制退出!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請選擇操作方式: "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提示:錯誤輸入超過三次!你將被強制退出!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.填寫成績 6.更改學(xué)分 n"<<" 7.學(xué)生情況 8.選課情況 n"<<
31、" 9.保存數(shù)據(jù) 0.退出系統(tǒng) n"<<" n"<<"n"<<endl;while(1)cout<<"tt 請選擇操作方式: "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<<"錯誤輸入超過
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請輸入管理員密碼:");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密碼輸入錯誤!請重新輸入!n"<<endl;if(k>=3)system("cls");cerr<<"nnttt輸入錯誤密碼超過三次!請按任意鍵退出."<<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對不起,暫無學(xué)生名單!請先創(chuà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 請輸入學(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沒有這個學(xué)生! 請按任意鍵返回."<<endl;return 1; else if(i>1)cout<<"nntt共找到"<<i<<"個姓名為"<<N<<"的學(xué)生"<<endl;cout<<"tt選擇第幾個:"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對不起,暫時沒有課程"<<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對不起,暫時沒有學(xué)生名單!請按任意鍵繼續(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沒找到這個學(xué)生!請按任意鍵繼續(xù)."<<endl;return 1; else if(i>1)cout<<"ntt共找到"<&
44、lt;i<<"個姓名為"<<M<<"的學(xué)生"<<endl;cout<<"tt選擇第幾個:"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é)你還未選課! 請按任意鍵繼續(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成績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請按任意鍵繼續(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對不起,暫時沒有課程!請按任意鍵繼續(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請按任意鍵繼續(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請輸入學(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 請輸入課程名稱:"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請輸入要刪除的學(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沒有這個學(xué)生!請按任意鍵繼續(xù)."<<endl;return 1; else if(i>1)cout<<"ntt共找到"<<i<<"個姓名為"<<N<<"的學(xué)生"<<endl;cout<<"ntt要刪除第幾個:"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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院醫(yī)用耗材供應(yīng)鏈方案
- 2024至2030年長生壽酒項目投資價值分析報告
- 2024至2030年中效折疊式空氣過濾器項目投資價值分析報告
- 2024年玻璃角夾項目可行性研究報告
- 2024年小型矩陣控制系統(tǒng)項目可行性研究報告
- 圖書館圖書安全管理制度
- 住宅小區(qū)綠化養(yǎng)護協(xié)議書
- 學(xué)校防火涂料施工方案
- 高端人才培訓(xùn)班學(xué)員選拔管理制度
- 烈士紀(jì)念日國際交流活動方案
- 月報 施工單位完成工程量統(tǒng)計表
- 最新血小板減少癥課件
- 天津市單位消防安全管理標(biāo)準(zhǔn)
- 電力電纜基礎(chǔ)知識課件
- 情緒智力量表EIS
- 《 民航服務(wù)心理學(xué)》考試題及參考答案
- 利用相似三角形測高說課稿
- 高二期中考試家長會
- 圓錐曲線的光學(xué)性質(zhì)及其應(yīng)用(理科)課件
- 《水滸傳》導(dǎo)讀5武松課件
- 分光光度計使用
評論
0/150
提交評論