c+學(xué)生選課系統(tǒng)設(shè)計(jì)報(bào)告_第1頁(yè)
c+學(xué)生選課系統(tǒng)設(shè)計(jì)報(bào)告_第2頁(yè)
c+學(xué)生選課系統(tǒng)設(shè)計(jì)報(bào)告_第3頁(yè)
c+學(xué)生選課系統(tǒng)設(shè)計(jì)報(bào)告_第4頁(yè)
c+學(xué)生選課系統(tǒng)設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩38頁(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、C+程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告課題名稱(chēng): 學(xué)生選修課程系統(tǒng)設(shè)計(jì) 組 號(hào): 第八組 指導(dǎo)教師: 張 帆 目 錄 引言.一 設(shè)計(jì)目的及內(nèi)容二 課題總體設(shè)計(jì)1. 性能需求2. 功能需求.3. 功能模塊圖三 詳細(xì)設(shè)計(jì). 1.各模塊說(shuō)明. . 2.各模塊功能流程圖 四 測(cè)試與調(diào)試五 心得體會(huì).六 附:源代碼.引 言21世紀(jì)以高科技為核心的知識(shí)經(jīng)濟(jì)占主導(dǎo)地位,國(guó)家的綜合國(guó)力和以國(guó)際競(jìng)爭(zhēng)力將越來(lái)越取決于科學(xué)技術(shù)創(chuàng)新水平。教育作為知識(shí)創(chuàng)新,傳播和應(yīng)用的基礎(chǔ),培養(yǎng)和輸送人才的搖籃,已經(jīng)成為經(jīng)濟(jì)發(fā)展和社會(huì)進(jìn)步的基礎(chǔ)。 盡管人類(lèi)進(jìn)步的程度隨著不同時(shí)代,不同地區(qū)而有所變化,教育的口徑不斷擴(kuò)寬,以便使過(guò)去僅供少數(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í)際問(wèn)題相連接的關(guān)鍵步驟。此次程序設(shè)計(jì)綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題,將課堂的書(shū)本知識(shí)有效的在程序中體現(xiàn)出來(lái),讓學(xué)生更理解了C+功能之強(qiáng)大,進(jìn)一步讓學(xué)生對(duì)面向?qū)ο蟮姆椒ㄒ约癈+的編程思想有了較好了解和認(rèn)識(shí)。一 設(shè)計(jì)目的及內(nèi)容:網(wǎng)上選課系統(tǒng)是針對(duì)在校學(xué)生和教師使用,從學(xué)生的角度來(lái)說(shuō),由于學(xué)校教學(xué)制度的改革,現(xiàn)在大部分高等院校開(kāi)始實(shí)行的是學(xué)生的自主選課模式,傳統(tǒng)的教學(xué)模式(學(xué)生按照學(xué)校安排好的課程上

3、課)已經(jīng)不能適應(yīng)新型的教學(xué)手段,如果仍然通過(guò)紙上的選課,一方面浪費(fèi)大量的人力,物力資源,另一方面浪費(fèi)時(shí)間以及在人為的統(tǒng)計(jì)過(guò)程中不可避免出現(xiàn)的差錯(cuò)等情況。隨著學(xué)校規(guī)模的不斷擴(kuò)大,專(zhuān)業(yè),班級(jí),學(xué)生的數(shù)量急劇增加,有關(guān)學(xué)生選課的各種信息也成倍增加,而目前許多高校的學(xué)生的選課管理仍然停留在復(fù)雜的人工操作上,重復(fù)工作較多,工作量大,效率低,各種弊端會(huì)越來(lái)越多的暴露出來(lái),因此利用網(wǎng)絡(luò),使學(xué)生只要在計(jì)算機(jī)前輸入自己的個(gè)人選課信息即可完成原來(lái)幾倍的工作量。從教師的角度上來(lái)說(shuō),同樣是節(jié)省了大量的工作量,由于教師提出代課申請(qǐng)完成課程發(fā)布的工作較學(xué)生選課而言更加的復(fù)雜,因此在網(wǎng)上進(jìn)行課程發(fā)布能大幅度的減少教師的工作

4、量,減少錯(cuò)誤發(fā)生幾率,作為教師,也只要通過(guò)自己的電腦來(lái)操作即可,不用奔波于教務(wù)處和辦公室之間。1、課題名稱(chēng):學(xué)生選修課程系統(tǒng)設(shè)計(jì)2、課程設(shè)計(jì)詳細(xì)內(nèi)容說(shuō)明:假定有n門(mén)課程,每門(mén)課程有課程編號(hào)、課程名稱(chēng)、課程性質(zhì)、總學(xué)時(shí)、授課學(xué)時(shí)、實(shí)驗(yàn)學(xué)時(shí)、學(xué)分、開(kāi)課學(xué)期等信息。學(xué)生可以按要求(如每個(gè)學(xué)生總學(xué)分不得少于20、沒(méi)學(xué)期不能超過(guò)3門(mén)課程,每門(mén)課程不得超過(guò)50個(gè)人,但不能少于10否則該課程不開(kāi)設(shè))自由選課。使之能提供一些功能:要求:具體設(shè)計(jì)要求實(shí)現(xiàn)如下功能:1、 課程信息錄入功能2、 課程信息瀏覽功能3、 查詢功能:(按課程性質(zhì)查詢、按課程學(xué)分查詢,查詢每個(gè)學(xué)生的選修信息、查詢每門(mén)課程的選修信息等)4、

5、學(xué)生選修課程5、修改課程或選課信息(根據(jù)課程編號(hào)或名稱(chēng)修改課程信息、根據(jù)學(xué)生姓名修改選課信息);6、刪除課程或選課信息(根據(jù)課程編號(hào)或名稱(chēng)刪除課程信息、根據(jù)學(xué)生姓名刪除選課信息);二 課題總體設(shè)計(jì):1、 性能需求:在現(xiàn)代,高科技的飛躍發(fā)展,人們工作習(xí)慣的改變,別特是電腦的大量普及,人們生活節(jié)奏越來(lái)越來(lái)快,怎樣提高工作效率是人們首先考慮的問(wèn)題。學(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)方式放映出很多問(wèn)題:第一, 當(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語(yǔ)句實(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)有:類(lèi)和對(duì)象、FOR循環(huán)、

7、switch語(yǔ)句、do while()語(yǔ)句、構(gòu)造函數(shù)等等。3、 功能模塊圖:學(xué)生信息模塊課程信息模塊選課模塊三 詳細(xì)設(shè)計(jì):1. 各模塊說(shuō)明:(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)入管理端隨意修改。管理端包括一些要求里有的如:課程瀏覽、課程錄入、課程刪除、課程查詢等,還包括一些要求里邊沒(méi)有的功能如:填寫(xiě)成績(jī)、更改學(xué)分等。這些功能只有管理員才能進(jìn)行修改和填寫(xiě)

8、。2 各模塊功能流程圖:開(kāi)始(1)主界面流程圖:接受數(shù)據(jù)數(shù)據(jù)依據(jù)輸入值執(zhí)行i=1i=1i=2i=2Case 2Case 1Case 1Case 2結(jié)束(2)學(xué)生端流程圖:開(kāi)始按任意鍵輸入數(shù)據(jù)是否為4學(xué)生選課學(xué)生情況選課情況nY結(jié)束(3)管理端流程圖:開(kāi)始否但小于三次輸入數(shù)據(jù)是否為Y否且大于三次輸入數(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ù)遇到的問(wèn)題和解決辦法:這個(gè)程序用到了數(shù)據(jù)結(jié)構(gòu)的內(nèi)容可是我們還沒(méi)有學(xué)習(xí)

9、數(shù)據(jù)結(jié)構(gòu)當(dāng)時(shí)這件事真是吧我們難住了,沒(méi)辦法只能自己上網(wǎng)還有去圖書(shū)館這中間也去問(wèn)過(guò)老師最終還是把主要問(wèn)題解決了,不過(guò)這中間可能有一些問(wèn)題是我們現(xiàn)在解決不了的。五 心得體會(huì):1 每當(dāng)拿到一個(gè)小工程,我們都得先仔細(xì)分析用戶的需求,然后再給程序定位(所花費(fèi)的人力、物力以及財(cái)力),這將花費(fèi)我們大量的時(shí)間,就如本次任務(wù)一樣,我們首先聚在一起分析,然后得出大致方向,再具體分配任務(wù),無(wú)論哪一部分都是我們努力的結(jié)果。2 通過(guò)這次學(xué)生選課系統(tǒng)設(shè)計(jì),以C+語(yǔ)言為基礎(chǔ)的編寫(xiě),更讓我掌握到C+語(yǔ)言中的相關(guān)語(yǔ)句的應(yīng)用。3 用Visual C+ 6.0 環(huán)境下編寫(xiě),我覺(jué)得,從文件中讀入數(shù)據(jù)十分麻煩,沒(méi)有數(shù)據(jù)庫(kù)中讀入數(shù)據(jù)那么

10、輕松,如果我要用到兩個(gè)表中的記錄,非常麻煩。4 整個(gè)設(shè)計(jì)過(guò)程過(guò)后,我也基本掌握了設(shè)計(jì)的基本步驟,為我們以后做畢業(yè)論文也有很好的幫助。5 C+是很好的系統(tǒng)編程語(yǔ)言,但不能以此獨(dú)立,但用C+語(yǔ)言是做不出好的系統(tǒng),還是要和其他軟件結(jié)合,以C+為基礎(chǔ)編寫(xiě)的系統(tǒng),這樣做出來(lái)的系統(tǒng)也更好,更美觀。6 這次系統(tǒng)設(shè)計(jì)有很多不足之處,在這過(guò)程中也認(rèn)識(shí)到自己對(duì)C+也有很多的沒(méi)掌握的地方。但是在老師和同學(xué)的幫助下,也算是弄出了一個(gè)簡(jiǎn)單的系統(tǒng),在以后也要更加努力的學(xué)習(xí),掌握更好的編程技術(shù)。7 做程序真的是個(gè)很累的活,有時(shí)就為了一個(gè)小小的錯(cuò)誤,可以一兩頓飯不吃,但是做出來(lái)的那一刻,真心的感覺(jué)很開(kāi)心,很有成就感,雖然其應(yīng)

11、用性不高,至少這也是我們小組努力的結(jié)果。8 經(jīng)過(guò)我們多天的團(tuán)結(jié)合作終于把這個(gè)學(xué)生選課系統(tǒng)做完了,雖然這過(guò)程是艱難的但是做完之后感覺(jué)挺有成就感的,在這個(gè)過(guò)程中我們學(xué)到了很多光聽(tīng)老師講學(xué)不到的東西。在寫(xiě)這個(gè)程序的時(shí)候用到了數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,如果不是這個(gè)程序我覺(jué)得我是不會(huì)去自學(xué)數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。參考書(shū)目:1 譚浩強(qiáng),C+程序設(shè)計(jì),清華大學(xué)出版社,2002.42 求是科技,Visual C+ 6.0信息管理系統(tǒng)開(kāi)發(fā),人民郵電出版社,2005.43 陳良銀、游洪躍、李旭偉,C語(yǔ)言程序設(shè)計(jì)(C99版),清華大學(xué)出版社,2006.104 殷人昆,數(shù)據(jù)結(jié)構(gòu)(用面向?qū)ο蠓椒ㄅcC+語(yǔ)言描述),清華大學(xué)出版社,2007

12、.2編程人員:孫雙蕾、白曉蘭實(shí)驗(yàn)報(bào)告設(shè)計(jì):牟煉調(diào)試人員:孫雙蕾講解人員:白曉蘭附錄:源代碼#include #include #include #include using namespace std; /定義課程class course /某個(gè)學(xué)生所學(xué)的課程中的某一個(gè)public:char cname20; /課程名稱(chēng)float grade; /課程成績(jī)course *Next; /指向下一個(gè)課程的指針;/學(xué)生類(lèi)class studentpublic:student()root = NULL;const int maxcourse = 5;factcourse = 0;void readna

13、me(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 *retroot() return root; /利用

14、鍵表將所有的課程保存起來(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:getname(char N)/得到學(xué)生的姓名 st

15、rcpy(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) aver = aver+p-grade; aver = aver/factco

16、urse;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,N);newcourse-grade = g;factcourse+;int student:findcourse (char

17、 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; /學(xué)生的名字float result; /學(xué)生所得的該課程分?jǐn)?shù)studentname *Next; ; /課程類(lèi)class subjectpublic:su

18、bject()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); /讀出課程的名稱(chēng)void setkname(char N); /讀入課程的名稱(chēng)studentname *retfirst() return first; /返回根結(jié)點(diǎn)void findstudent(stu

19、dentdb *P); /根據(jù)該課程的名稱(chēng),尋找選這課程的學(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 activestudnet; /實(shí)際學(xué)生數(shù)studentname *first; /學(xué)生名單float credit; /該課程的學(xué)分float averagerus

20、ult; /該課程的平均成績(jī)char kname20; /該課程的名稱(chēng);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=NULL)return 0;while(p)k = k + p-result;p = p-Next ; return k/activestudnet; float

21、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) /讀出課程的名稱(chēng) strcpy(N,kname); void subject:setkname (char N) /讀入課程的名稱(chēng) strcpy(kname,N); void subject:findstudent(studentdb *P) /根據(jù)該課程的名稱(chēng),尋找選

22、這課程的學(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-Next;continue; if(Y!=NULL)Y = Y-Next;while(Y) if(strcmp(Y-cname,kname)=0)studentname *Acode = new studentname;char Name20;

23、K-stu.getname(Name);strcpy(Acode-tname,Name);Acode-result = Y-grade;Acode-Next = T-Next;T-Next = Acode;activestudnet = activestudnet + 1;break; Y = Y-Next; K = K-Next; return ; void tuichu()system(cls);coutnn謝謝你使用選修課系統(tǒng)nnendl;coutn youre welcome ! nendl; getch();exit(-1); /總菜單char menu()int k=0;char

24、a3,c,i;system(cls);coutendlendl;cout*n* *n* 學(xué)生選修課系統(tǒng) *n* *n* *n* 操作方式: *n* 1.選修課系統(tǒng)學(xué)生端 *n* *n* 2.選修課系統(tǒng)管理端 *n* *n*nendl;while(1)couta;if(strlen(a)=1)for(i=1;i=2;i+)c=i;if(c=a0)return c; cerrnntttt輸入有誤!n2)system(cls);cerrnnntt提示:錯(cuò)誤輸入次數(shù)超過(guò)三次,你將被強(qiáng)制退出!nnendl;couttt按任意鍵繼續(xù)endl;getch();tuichu(); /選修課系統(tǒng)端操作char

25、custom()char A10;char b;char i;int k = 0;system(cls);coutnnnn 選修課系統(tǒng)學(xué)生端 n n 操作方式:. n 1、 學(xué)生選課 n 2、 學(xué)生情況 n 3、 選課情況 n 4、 退出系統(tǒng) n nnendl;while(1)coutA;if(strlen(A)=1)for(i=1;i=4;i+)b=i;if(b=A0) return b; cerrntttt輸入有誤!n2)system(cls);cerrnnttt提示:錯(cuò)誤輸入超過(guò)三次!你將被強(qiáng)制退出!nendl;couttt按任意鍵繼續(xù)endl;getch();tuichu(); cha

26、r server()char A10;char b;char i;int k = 0;system(cls);coutnnnn 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 nnendl;while(1)coutA;if(strlen(A)=1)for(i=0;i=9;i+)b=i;if(b=A0)return b; cerrntttt輸入有誤!n2)cerr錯(cuò)誤輸入超過(guò)三次!n;exit(-1); /密碼檢查void password

27、()int k=0,i;char A=;char B10;char a;system(cls);for(i=0;i8;i+)coutendl;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+;cerrnnttt密碼輸入錯(cuò)誤!請(qǐng)重新輸入!n=3)system(cls);cerrnnttt輸入錯(cuò)誤密碼超過(guò)三次!請(qǐng)按任意鍵退出.endl;getch();tuichu();struct subjectdbsubj

28、ect 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 *P,subjectdb *X) /學(xué)生選課system(cls);coutnntttt學(xué)生選課操作Next;int i;char N20,M20;if(q!=NULL)coutnnntt所有學(xué)生名單如下:nendl;elsecerrnnntt對(duì)不起,暫無(wú)學(xué)生名單!請(qǐng)先創(chuàng)建!請(qǐng)按任意鍵繼續(xù).stu.g

29、etname(N);coutttttN;coutNext ; q = P-Next;if(q=NULL)return 1;coutN;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)coutnntt沒(méi)有這個(gè)學(xué)生! 請(qǐng)按任意鍵返回.1)coutnntt共找到i個(gè)姓名為N的學(xué)生endl;coutk; if(ki|k=0)cerrnttt輸入有誤!按任意鍵繼續(xù)Next;j=0;while(q)q-stu.getname(M);if(strcmp(N,M)=0)j+;if(

30、j=k)if(q-stu.retfactcourse()=q-stu.retmaxcourse()coutntt所選課程已滿!按任意鍵繼續(xù)Next;char N120;system(cls);if(t!=NULL)coutnnntt所有課程如下:endl;coutntttt課程名稱(chēng)tt 學(xué)分endl; elsecerrnnntt對(duì)不起,暫時(shí)沒(méi)有課程sub.getkname(N1);couttttt N1setw(26-strlen(N1)sub.readcredit()Next ; char N220;coutN2;t = X-Next;while(t)t-sub.getkname(N1);i

31、f(strcmp(N1,N2)=0)if(q-stu.findcourse(N2)=1)coutntt此課程你已選過(guò)了,不能再選.按任意鍵繼續(xù)Next;char NA20;while(t)t-sub.getkname(NA);if(strcmp(NA,N2)=0)if(t-sub.retactivestudent()=t-sub.retmaxstudent ()coutntt此課程已選滿,不能選.按任意鍵繼續(xù)Next; q-stu.addcourse(N2,0.0);coutnntt選課成功!按任意鍵繼續(xù)Next; cerrntt沒(méi)有此課程!按任意鍵繼續(xù)Next; return 1; int

32、menu_1_2(studentdb *P,subjectdb *X) /學(xué)生情況studentdb *q=P-Next;char N20;system(cls);coutnntttt學(xué)生情況操作endl;int i;if(q!=NULL)coutnnntt所有學(xué)生選課信息如下:nendlendl;couttt 姓名ttt選課情況nendl; elsecerrnnntt對(duì)不起,暫時(shí)沒(méi)有學(xué)生名單!請(qǐng)按任意鍵繼續(xù).stu.getname(N);couttt Nsetw(25-strlen(N) 已選stu.retfactcourse() 門(mén)課Next ; char M20;coutM;i=0;q=

33、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)coutnttt沒(méi)找到這個(gè)學(xué)生!請(qǐng)按任意鍵繼續(xù).1)coutntt共找到i個(gè)姓名為M的學(xué)生endl;coutk; if(ki|k=0)cerrnttt輸入有誤!按任意鍵繼續(xù).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(T=NULL)coutnnntttN同

34、學(xué)你還未選課! 請(qǐng)按任意鍵繼續(xù).Next;coutnnnttN同學(xué)你已選stu.retfactcourse()門(mén)課,具體如下nnendl;coutttt課程名稱(chēng)tt成績(jī)nendl;while(T)coutttt cnamecname)gradeNext; j=0; q = q-Next; coutntt請(qǐng)按任意鍵繼續(xù).Next;char N20;system(cls);coutnntttt選課情況操作endl;if(q!=NULL)coutnnntt所有選課情況如下:nendl;coutnttt課程名稱(chēng)tt選課人數(shù)nendl; elsecerrnnntt對(duì)不起,暫時(shí)沒(méi)有課程!請(qǐng)按任意鍵繼續(xù).s

35、ub.getkname(N);couttttNsetw(28-strlen(N)sub.retactivestudent()Next ; coutntt請(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é)生char N20;system(cls);coutnntttt增加學(xué)生操作nendl;coutN;coutendltt增加學(xué)生操作成功,按任意鍵繼續(xù)Next = P-

36、Next ;newnode-stu.readname(N);P-Next = newnode ;return 1; int menu_2_2(subjectdb *P) /增加課程float k;char N20,M20;system(cls);coutnntttt增加課程操作nendl;coutN;coutNext;while(q)q-sub.getkname(M);if(strcmp(N,M)=0)coutntt此課程已經(jīng)存在,按任意鍵繼續(xù)Next; coutk;coutntt增加課程操作成功,按任意鍵繼續(xù)Next = P-Next ;newnode-sub.setkname(N);newnode-sub.getcredit(k);P-Next = newnode ;return 1; int menu_2_3(studentdb *P) /刪除學(xué)生system(cls);coutnntttt刪除學(xué)生操作Next;if(q=NULL)return 1;int i;char N20,M20;coutN;i=0;while(q)q-stu.getna

溫馨提示

  • 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)論