版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 課程設(shè)計(jì)說(shuō)明書(shū)本科畢業(yè)設(shè)計(jì)(題 目: 學(xué)生成績(jī)管理系統(tǒng)(教師端)學(xué)生姓名: 陳學(xué) 院:工學(xué)院專(zhuān) 業(yè):數(shù)字媒體技術(shù)班 級(jí):2013級(jí)指導(dǎo)教師:二一四 年 十 一月 C+語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)目錄一、設(shè)計(jì)題目(問(wèn)題)描述和要求- 1 -二、系統(tǒng)分析與模塊設(shè)計(jì)- 1 -三、系統(tǒng)設(shè)計(jì)- 1 -1. 系統(tǒng)總體框架- 1 -2. 系統(tǒng)關(guān)鍵算法流程圖- 1 -四、運(yùn)行結(jié)果- 5 -五、小結(jié)- 5 -六、參考資料- 6 - 65 -一、設(shè)計(jì)題目(問(wèn)題)描述和要求設(shè)計(jì)目的:為方便對(duì)學(xué)生成績(jī)進(jìn)行高效的管理,編寫(xiě)該程序以提高學(xué)生成績(jī)管理效率。使用該程序之后,學(xué)校管理者可以查詢(xún)某位學(xué)生、某個(gè)科目的成績(jī)情況,
2、還可以對(duì)學(xué)生成績(jī)進(jìn)行排名,對(duì)學(xué)生的數(shù)據(jù)進(jìn)行修改和刪除,其中排名以按總分排名,并且還提供了多種瀏覽方式,查詢(xún)結(jié)果包括各個(gè)科目的分?jǐn)?shù)、總分。通過(guò)本系統(tǒng)可以很好的掌握學(xué)生成績(jī)的分布,減輕管理人員的負(fù)擔(dān),也使學(xué)生的成績(jī)和信息長(zhǎng)時(shí)期的保留。 問(wèn)題描述:編寫(xiě)一個(gè)簡(jiǎn)單的學(xué)生成績(jī)管理系統(tǒng)。學(xué)生成績(jī)管理系統(tǒng)有若干學(xué)生成績(jī)記錄組成,每個(gè)記錄由學(xué)號(hào)、姓名、性別、年級(jí)、班級(jí)、三個(gè)科目成績(jī)、總分、總排名、各科目排名幾個(gè)部分組成,學(xué)號(hào)不超過(guò)5個(gè)字符,姓名不超過(guò)3個(gè)字符,成績(jī)?yōu)閕nt型數(shù)據(jù)。該系統(tǒng)具有以下功能:程序開(kāi)始執(zhí)行時(shí)顯示如下版權(quán)信息和主菜單: *學(xué)生成績(jī)管理系統(tǒng)*學(xué)生信息l *1.登記l *2.編輯 l *3.順序
3、 l 4.刪除 瀏覽l * 5全部l *6個(gè)人l *7考試l * 8專(zhuān)業(yè)l *9指定系統(tǒng)設(shè)置 10默認(rèn) 0.退出 *請(qǐng)輸入(08): 通過(guò)鍵盤(pán)輸入數(shù)字010后,程序能夠執(zhí)行相應(yīng)的功能,執(zhí)行完后回到上述主菜單繼續(xù)等待用戶(hù)輸入,輸入數(shù)字0后退出程序。(1)選擇“登記”后,輸入學(xué)生個(gè)數(shù)。按程序提示輸入學(xué)號(hào)、姓名、性別、年級(jí)、班級(jí)、三個(gè)科目成績(jī)、總分、總排名、各科目排名。(2)選擇“編輯”,按提示輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào),輸入學(xué)號(hào),若改學(xué)號(hào)存在,則編輯相應(yīng)的學(xué)生記錄,如果該學(xué)號(hào)不存在,返回主菜單(3)選擇“順序”后,會(huì)顯示從成績(jī)高到低還是相反。該操作會(huì)改變程序中鏈表的連接順序,因此瀏覽時(shí)候顯示也是順序改
4、變后的鏈表順序輸出。(4)(5)選擇“全部”,系統(tǒng)會(huì)按照年級(jí)顯示全部學(xué)生其成績(jī)。(6)選擇“個(gè)人”,系統(tǒng)會(huì)提示輸入學(xué)生姓名或者學(xué)號(hào)進(jìn)行尋找并顯示。(7) 選擇“考試”, 會(huì)按照每一年級(jí)的每一次考試顯示成績(jī)。(8) 選擇“專(zhuān)業(yè)”,會(huì)按照專(zhuān)業(yè)進(jìn)行成績(jī)輸出。(9) 選擇“指定”,里面還有八種顯示方式:分?jǐn)?shù)段、排名、學(xué)期、班級(jí)、大一至大四,可以按照其進(jìn)行瀏覽。(10) 進(jìn)行系統(tǒng)相關(guān)的設(shè)置,如是否顯示歡迎窗口,是否自動(dòng)讀取信息或是手動(dòng)、是否瀏覽顯示全部等(0)退出操作。二、系統(tǒng)分析與模塊設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)結(jié)構(gòu)圖學(xué)生信息學(xué)生成績(jī)管理系主程序統(tǒng)創(chuàng)建鏈表1.登記學(xué)生信息0.退出程序6.排序?qū)W生成績(jī)5.瀏覽全
5、部信息4.修改學(xué)生信息3.刪除學(xué)生信息2.搜索學(xué)生信息7其他多種瀏覽方式8.默認(rèn)設(shè)置三、系統(tǒng)設(shè)計(jì)1. 系統(tǒng)總體框架學(xué)生成績(jī)管理系統(tǒng)流程圖學(xué)生成績(jī)管理系統(tǒng)創(chuàng)建鏈表打開(kāi)student.txt、set.txt文件 創(chuàng)建學(xué)生對(duì)象主菜單1.登記 退出系統(tǒng) 2.編輯3.順序保存為文件4.刪除5.全部6.個(gè)人9.指定 8.專(zhuān)業(yè) 7.考試10.默認(rèn)設(shè)置2. 系統(tǒng)關(guān)鍵算法流程圖 (1).系統(tǒng)包含的類(lèi)庫(kù)#include<iostream>#include<string>#include<fstream>#include<iomanip>#include<con
6、io.h>#include<windows.h>(2).主函數(shù) main()函數(shù) 創(chuàng)建Manage對(duì)象象象 進(jìn)入start并進(jìn)行信息讀取等前提操作,然后進(jìn)入用戶(hù)界面開(kāi)始有用戶(hù)選擇操作(3)student類(lèi)的設(shè)計(jì)與分析class student/*定義學(xué)生成績(jī)類(lèi)*/ private: Score *sco; string name;string pro; /專(zhuān)業(yè)int clas;int grade;string num;char sex;Student* next; ;表1 student類(lèi)說(shuō)明表名稱(chēng)屬性說(shuō)明sco數(shù)據(jù)成員成績(jī)類(lèi)開(kāi)頭name數(shù)據(jù)成員說(shuō)明學(xué)生姓名pro數(shù)據(jù)成員說(shuō)明
7、學(xué)生專(zhuān)業(yè)clas數(shù)據(jù)成員說(shuō)明學(xué)生班級(jí)grade數(shù)據(jù)成員說(shuō)明學(xué)生年級(jí)num數(shù)據(jù)成員說(shuō)明學(xué)生學(xué)號(hào)sex數(shù)據(jù)成員說(shuō)明學(xué)生性別next數(shù)據(jù)成員說(shuō)明指向下一個(gè)節(jié)點(diǎn)的指針(4) .Manage類(lèi)的設(shè)計(jì)與分析 class List int setSET; Student* stu;public: /添加void Add(); /添加學(xué)生 void AddScore(Student *istudent); /添加成績(jī) /瀏覽 int isEmpty(); int infoPass(string inum,string iname,char isex,int igrade,int iclas);void Ski
8、mAll(); void SkimClas(); void SkimPro(); void SpecSkim(); /指定的其他瀏覽方式void SkimByScore();void SkimByTerms();void SkimByPlace();void SkimByTest();void SkimByGrade(int igrade); void Find(string T); /查找void PrintAllScore(Score *q);/打印成績(jī),本程序用來(lái)打印第二次開(kāi)始的考試成績(jī)void InitScore(); /未給出成績(jī)的學(xué)生進(jìn)行 0 賦值void Delete(); /刪
9、除void Edit(string Y); /編輯void EditScore(Student *istu);void OrderConscore(); /按總成績(jī)排序void OrderObject(); /排名次void Compare(); /比較 void Save(); /保存int Read(); /讀取 string OfProfe(); /選擇學(xué)院專(zhuān)業(yè)int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInstance,LPSTR lpszCmdParam,int nCmdShow); /顯示歡迎對(duì)話框int countSpecS
10、tudent(int igrade); /返回指定年級(jí)的學(xué)生數(shù)int countConStudent(); /返回總學(xué)生數(shù)/默認(rèn)設(shè)置void DefaultSetting();/進(jìn)行默認(rèn)設(shè)置 void ReadSet(); /讀取默認(rèn)設(shè)置void SaveSet(); /保存默認(rèn)設(shè)置int* ReturnSet(); char ReturnjudgeOfadd();void JudgeOfSave(); /判斷是否保存已修改的信息void Start(); /類(lèi)內(nèi)部開(kāi)始運(yùn)行的操作void Interface(); /用戶(hù)使用界面;名稱(chēng)屬性說(shuō)明Add()成員函數(shù)添加學(xué)生AddScore()成員函
11、數(shù)添加成績(jī)isEmpty()成員函數(shù)判斷是否有學(xué)生infoPass()成員函數(shù)判斷輸入信息合法性SkimAll()成員函數(shù)全部瀏覽SkimClas成員函數(shù)按班級(jí)瀏覽SkimPro()成員函數(shù)按專(zhuān)業(yè)瀏覽SpecSkim()成員函數(shù)其他瀏覽方式Find(string T)成員函數(shù)按學(xué)號(hào)尋找PrintAllScore(Score *q)成員函數(shù)輸出所有學(xué)生數(shù)量InitScore()成員函數(shù)初始化成績(jī)未滿的學(xué)生的成績(jī)Delete()成員函數(shù)刪除學(xué)生Edit(string Y)成員函數(shù)編輯學(xué)生信息EditScore(Student *istu)成員函數(shù)編輯學(xué)生成績(jī)OrderConscore()成員函數(shù)將
12、鏈表改變連接順序進(jìn)而改變輸出順序OrderObject()成員函數(shù)給每個(gè)學(xué)生每次考試排名次Save()成員函數(shù)保存學(xué)生信息Read()成員函數(shù)讀取學(xué)生信息OfProfe()成員函數(shù)選擇學(xué)生專(zhuān)業(yè)countSpecStudent(int igrade)成員函數(shù)返回相應(yīng)年級(jí)學(xué)生數(shù)量countConStudent()成員函數(shù)返回總學(xué)生數(shù)DefaultSetting()成員函數(shù)默認(rèn)設(shè)置ReadSet()成員函數(shù)讀取設(shè)置SaveSet()成員函數(shù)保存設(shè)置ReturnSet()成員函數(shù)返回設(shè)置(5).Score類(lèi)名稱(chēng)屬性說(shuō)明Score()構(gòu)造函數(shù)無(wú)參構(gòu)造函數(shù)Score(int *sc)構(gòu)造函數(shù)只含成績(jī)構(gòu)造函
13、數(shù)Score(int *sc,int*or,int Con)構(gòu)造函數(shù)含全部信息構(gòu)造函數(shù)ReturnConScore()成員函數(shù)返回總分?jǐn)?shù)(6). 輸入學(xué)生資料模塊:主要功能用來(lái)對(duì)學(xué)生的成績(jī)進(jìn)行收集和輸入。在學(xué)生信息保存在系統(tǒng)中的前提下,輸入要輸入的人數(shù),成績(jī)錄入需要輸入學(xué)生資料,比如學(xué)號(hào),姓名。在準(zhǔn)確輸入學(xué)生資料后,就可以對(duì)該學(xué)生的各科成績(jī)進(jìn)行錄入。該學(xué)生各科成績(jī)輸入成功后,輸入下一個(gè)學(xué)生資料時(shí)會(huì)先判斷是否學(xué)號(hào)是否與之前的學(xué)生相同,如果相同,則顯示提示信息,不同則繼續(xù)輸入(6) 輸出學(xué)生資料模塊:主要功能用來(lái)對(duì)學(xué)生的成績(jī)進(jìn)行輸出。在系統(tǒng)已經(jīng)錄入了學(xué)生資料成績(jī)的前提下,使用該功能可以顯示所有學(xué)生
14、的信息,資料等等。具體包括學(xué)生的學(xué)號(hào),姓名和各科成績(jī)。在查看學(xué)生的資料,成績(jī)各方面的信息后,按任意鍵就可以返回到主菜單(5)查找并顯示學(xué)生資料模塊主要功能是用來(lái)查找學(xué)生資料。在系統(tǒng)保存了某學(xué)生資料的前提下,想要查找該學(xué)生資料,可以輸入該學(xué)生姓名,這樣系統(tǒng)就會(huì)顯示該學(xué)生資料和各科成績(jī)等信息(6)按學(xué)號(hào)查找,修改學(xué)生資料模塊主要功能是用來(lái)修改學(xué)生資料。在系統(tǒng)保存了某學(xué)生資料的前提下,想要查找該學(xué)生資料,可以輸入該學(xué)生學(xué)號(hào),系統(tǒng)就會(huì)顯示該學(xué)生資料和各科成績(jī)等信息,這樣就可以修改該學(xué)生的資料,成績(jī)等信息。(7)按學(xué)號(hào)查找,刪除該學(xué)生資料模塊主要功能是用來(lái)刪除學(xué)生資料。在系統(tǒng)保存學(xué)生資料的前提下,想刪除
15、某學(xué)生的資料,可以輸入學(xué)生學(xué)號(hào),系統(tǒng)查找該學(xué)生資料后,就可以刪除了。由于學(xué)生輟學(xué),畢業(yè)等原因,及時(shí)對(duì)系統(tǒng)進(jìn)行更新,刪除一些沒(méi)用的信息,可以使系統(tǒng)更加優(yōu)化(8)按學(xué)生成績(jī)總分進(jìn)行排列模塊主要功能是用來(lái)對(duì)學(xué)生的資料按總分進(jìn)行排序。在系統(tǒng)保存學(xué)生資料,成績(jī)的前提下,使用此功能可以對(duì)學(xué)生的資料按總分進(jìn)行排序,這樣就方便查找成績(jī)相同或是相近的同學(xué)的資料。(9)儲(chǔ)存學(xué)生資料并退出系統(tǒng)模塊 主要功能是用來(lái)儲(chǔ)存學(xué)生資料。在對(duì)系統(tǒng)進(jìn)行一系列操作,比如添加、刪除、修改學(xué)生資料后,對(duì)系統(tǒng)的最新操作進(jìn)行保存,及時(shí)更新系統(tǒng),方便下一次的操作。四、運(yùn)行結(jié)果1開(kāi)始界面2輸入數(shù)據(jù)3 搜索數(shù)據(jù)4 刪除5. 修改數(shù)據(jù)7. 顯示數(shù)
16、據(jù)8.系統(tǒng)設(shè)置五、小結(jié)這個(gè)程序經(jīng)過(guò)了暑假開(kāi)始到十月份的修改編輯,要感謝老師及同學(xué)的指導(dǎo),另外程序本身更適合學(xué)生數(shù)量不是特別多的情況下,加入學(xué)生有上千上萬(wàn)個(gè),那么應(yīng)該在添加幾個(gè)類(lèi),在學(xué)生類(lèi)之上的類(lèi),這樣才可以大大方便了各種操作以及瀏覽等。六、參考資料C+程序設(shè)計(jì)教程CSDN程序員社區(qū)代碼:/*學(xué)生成績(jī)管理系統(tǒng)*類(lèi):Student Score Manage*可保存學(xué)科:語(yǔ)文 數(shù)學(xué) 英語(yǔ)*時(shí)間段:大一至大四*說(shuō)明:該程序針對(duì)學(xué)生數(shù)較少的情況,假如面對(duì)上千上萬(wàn)的學(xué)生數(shù),應(yīng)該再將其中的存儲(chǔ)結(jié)構(gòu)進(jìn)行改變,* 分別分層次存儲(chǔ),例如大一至大四四個(gè)鏈表表頭,在每一個(gè)鏈表中又根據(jù)不同分類(lèi)依據(jù)細(xì)分,* 例如根據(jù)學(xué)院
17、、專(zhuān)業(yè)等,這樣的改變將大大有利于程序進(jìn)行的尋找、輸出、排序等涉及鏈表的操作,* 當(dāng)然相應(yīng)代碼也要稍作改變*/#include<iostream>#include<string>#include<fstream>#include<sstream>#include<iomanip>#include<conio.h>#include<windows.h>#include<vector>using namespace std;#define CONOBJ 3 /3科科目#define YEARS 4 /4個(gè)
18、學(xué)年#define SET 4 /4個(gè)設(shè)置要求class Scorepublic:int scoreCONOBJ; /chinese,math,english三科目分別對(duì)應(yīng)order0、order1、order2,每個(gè)學(xué)期兩次考試,分為期中和期末考試int orderCONOBJ; /MAX科學(xué)科排名int ConOrder; /總排名Score *next; /定義在學(xué)生類(lèi)當(dāng)中Score()next=NULL;int i;for(i=0;i<CONOBJ;i+)scorei=0;orderi=0;ConOrder=0;/無(wú)參構(gòu)造函數(shù)Score(int *sc)next=NULL;int
19、 i;for(i=0;i<CONOBJ;i+)scorei=*sc;orderi=0;sc+;ConOrder=0;/只有成績(jī)的構(gòu)造函數(shù)Score(int *sc,int*or,int Con)next=NULL;int j;for(j=0;j<CONOBJ;j+)scorej=*sc;orderj=*or;sc+;or+;ConOrder=Con;/含全部參數(shù)的構(gòu)造函數(shù)int ReturnConScore() /返回總分?jǐn)?shù)return score0+score1+score2;/=class Student/*Student類(lèi)中包含Score類(lèi)*用來(lái)存儲(chǔ)眾多的成績(jī),每個(gè)學(xué)期兩次成
20、績(jī), 每學(xué)年兩個(gè)學(xué)期*/Score *sco; string name;string pro; /專(zhuān)業(yè)int clas;int grade;string num;char sex;Student* next;public:/*幾個(gè)不同參數(shù)的Student構(gòu)造函數(shù)的重載,*分別對(duì)應(yīng)不同形式的構(gòu)造方式*/ Student(string iname):name(iname),next(NULL)sco=NULL; cout<<"tttt成功添加學(xué)生"<<name<<"n"/1.單參數(shù)時(shí)的構(gòu)造函數(shù)Student(string
21、iname="No name",string ipro="none",int iclass=0,int igrade=0,string inum="0",char isex='n'):name(iname),num(inum),sex(isex),next(NULL),pro(ipro),clas(iclass),grade(igrade)sco=NULL; cout<<"tttt成功添加學(xué)生"<<name<<"n"return;/2.用于添加
22、無(wú)輸入成績(jī)的構(gòu)造函數(shù)Student(string iname,string ipro,int iclas,int igrade,string inum,char isex,int *score):name(iname),pro(ipro),clas(iclas),grade(igrade),num(inum),sex(isex),next(NULL)sco=new Score(score);cout<<"tttt成功添加學(xué)生"<<name<<"n"/3.用于添加有成績(jī)的構(gòu)造函數(shù) Student(string iname
23、,string ipro,int iclas,int igrade,string inum,char isex,int *score,int conor,int *order):name(iname),pro(ipro),clas(iclas),grade(igrade),num(inum),sex(isex),next(NULL)sco=new Score(score,order,conor);/4.用于從文件讀入時(shí)候的構(gòu)造函數(shù)int CountOfScore(); /統(tǒng)計(jì)已經(jīng)存儲(chǔ)的成績(jī)數(shù)量,每個(gè)學(xué)期兩次考試,每次考試算作一次成績(jī)錄入 成績(jī)錄入總計(jì)= 4*igradefriend class
24、 Manage; ;/=class Manageint setSET;Student* stu; /*記錄是否執(zhí)行了修改學(xué)生信息操作,等于'n'表示未修改信息或者修改完了但已經(jīng)保存,等于'y'表示已經(jīng)修改并且還未保存*/char judgeOfAdd;public:Manage()stu=NULL;/*for(int i=0;i<SET;i+)seti=1;*/ judgeOfAdd='n'Start();Manage() /刪除所有記錄,釋放空間Student* p=stu;while(p)p=p->next;delete p;st
25、u=NULL;Student* ReturnStu()return stu;/添加void Add(); /添加學(xué)生 void AddScore(Student *istudent); /添加成績(jī) /瀏覽 int isEmpty(); int infoPass(string inum,string iname,char isex,int igrade,int iclas);void SkimAll(); void SkimClas(); void SkimPro(); void SpecSkim(); /指定的其他瀏覽方式void SkimByScore();void SkimByTerms(
26、);void SkimByPlace();void SkimByTest();void SkimByGrade(int igrade); void Find(string T); /查找void PrintAllScore(Score *q);/打印成績(jī),本程序用來(lái)打印第二次開(kāi)始的考試成績(jī)void InitScore(); /未給出成績(jī)的學(xué)生進(jìn)行 0 賦值void Delete(); /刪除void Edit(string Y); /編輯void EditScore(Student *istu);void OrderConscore(); /按總成績(jī)排序void OrderObject();
27、/排名次void Compare(); /比較 void Save(); /保存int Read(); /讀取 string OfProfe(); /選擇學(xué)院專(zhuān)業(yè)int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInstance,LPSTR lpszCmdParam,int nCmdShow); /顯示歡迎對(duì)話框int countSpecStudent(int igrade); /返回指定年級(jí)的學(xué)生數(shù)int countConStudent(); /返回總學(xué)生數(shù)/默認(rèn)設(shè)置void DefaultSetting();/進(jìn)行默認(rèn)設(shè)置 void Rea
28、dSet(); /讀取默認(rèn)設(shè)置void SaveSet(); /保存默認(rèn)設(shè)置int* ReturnSet(); char ReturnjudgeOfadd();void JudgeOfSave(); /判斷是否保存已修改的信息void Start(); /類(lèi)內(nèi)部開(kāi)始運(yùn)行的操作void Interface(); /用戶(hù)使用界面;/=/Student名空間中的成員函數(shù)的函數(shù)定義int Student:CountOfScore()Score *p=sco;int i;for(i=0;p;p=p->next,i+);return i;/=/=/Manage名空間中的成員函數(shù)的函數(shù)定義int* M
29、anage:ReturnSet() return set;/-char Manage:ReturnjudgeOfadd() return judgeOfAdd;/-int Manage:countSpecStudent(int igrade) /返回指定年級(jí)的學(xué)生數(shù)Student *p=stu;int count=0;for(;p!=NULL;p=p->next)if(p->grade=igrade)count+;return count;/-int Manage:countConStudent() /返回總學(xué)生數(shù)int count=0;for(int i=0;i<CONOB
30、J;i+)count+=countSpecStudent(i+1);return count;void Manage:AddScore(Student *istudent)system("CLS");/*if(!(istudent->CountOfScore()<istudent->grade*4) /成績(jī)已經(jīng)輸入滿了char judge;cout<<"成績(jī)已經(jīng)輸入完整,不需要再添加修改Y/返回N:"cin>>judge;if(!(judge='Y'|judge='y')retur
31、n ;*/int i,judge_grade,judge_term;char flag='y',judge_input='y'Score *temp;for(judge_grade=1;judge_grade<=istudent->grade;judge_grade+)for(judge_term=1;judge_term<=4;judge_term+)/由用戶(hù)選擇是否繼續(xù)輸入printf("n*是否輸入大%d第%d次考試成績(jī)是(y)/否(n)/返回(r):",judge_grade,judge_term);cin>&
32、gt;judge_input;if(judge_input='y'|judge_input='Y')printf("n請(qǐng)輸入大%d第%d次考試成績(jī):n",judge_grade,judge_term); /abs(istudent->CountOfScore()-(istudent->grade-1)*4+1)/輸入成績(jī)int scoreCONOBJ;for(i=0;i<CONOBJ;i+)if(i=0)cout<<"輸入語(yǔ)文成績(jī):"else if(i=1)cout<<"
33、輸入數(shù)學(xué)成績(jī):"elsecout<<"輸入英語(yǔ)成績(jī):"cin>>scorei;temp=new Score(score);else if(judge_input='n'|judge_input='N')temp=new Score(); /不輸入成績(jī)的學(xué)生會(huì)自動(dòng)賦分?jǐn)?shù)為0elsereturn ;/返回/做連接操作if(istudent->sco=NULL)istudent->sco=temp;elseScore *p=istudent->sco;while(p->next!=NULL)
34、p=p->next;p->next=temp;temp->next=NULL;/-void Manage:Compare() /比較/-void Manage:OrderObject() /各科目成績(jī)排名次,賦值給score類(lèi)中的orderif(!isEmpty()return ; Student *p,*pp;Score *qp,*qpp;int score,ch,ma,eng,igrade=1,times,count=0,c1=0,c2=0,c3=0;while(igrade<=YEARS)if(countSpecStudent(igrade)=0)igrade+;
35、continue;p=stu;times=1; while(times <= igrade*4)p=stu;c1+;/-核心部分-/while(p!=NULL) /p的循環(huán)是保證每個(gè)學(xué)生都進(jìn)行成績(jī)排序count+;if(p->grade=igrade)qp=p->sco; /qp指向該次所要排成績(jī)的學(xué)生的成績(jī)開(kāi)頭處for(int j=0;j<times-1;j+)qp=qp->next;/qpp=qpp->next;/*初始化及更新操作*/qp->ConOrder=countSpecStudent(igrade); /不同年級(jí)學(xué)生數(shù)for(int i=
36、0;i<CONOBJ;i+)qp->orderi=qp->ConOrder; /減少函數(shù)而調(diào)用采用的方法score=qp->ReturnConScore();ch=qp->score0;ma=qp->score1;eng=qp->score2;pp=stu; /每一次都從頭開(kāi)始進(jìn)行比較while(pp!=NULL)c3+;if(pp->grade=igrade && pp->num!=p->num)qpp=pp->sco;for(int j=0;j<times-1;j+)qpp=qpp->next;i
37、f(qpp->ReturnConScore() <= score)qp->ConOrder-;if(qpp->score0 <= ch)qp->order0-; if(qpp->score1 <= ma)qp->order1-;if(qpp->score2 <= eng)qp->order2-;pp=pp->next;/cout<<p->name<<" "p=p->next;times+;igrade+;/-int WINAPI Manage:WinMain(H
38、INSTANCE hInst,HINSTANCE hPrevInstance,LPSTR lpszCmdParam,int nCmdShow)MessageBox(NULL,/count,"您好,歡迎使用!","學(xué)生成績(jī)管理系統(tǒng)",MB_OK | MB_ICONINFORMATION);return 0;/-string Manage:OfProfe() /選擇學(xué)院專(zhuān)業(yè)int kh;string i; cout<<"nttn"cout<<"tt 1.工學(xué)院 n"cout<<&qu
39、ot;ttn"cout<<"tt 2.理學(xué)院 n"cout<<"ttn"cout<<"tt 3.醫(yī)學(xué)院 n"cout<<"ttn"cout<<"tt 4.農(nóng)學(xué)院 n"cout<<"ttn"cout<<"tt 5.經(jīng)管學(xué)院 n"cout<<"ttn"cout<<"tt 0.退出選擇 n"cout<
40、<"tt n"docout<<" tt請(qǐng)輸入相應(yīng)學(xué)院代號(hào):"cin>>kh;while(!(kh>=0&&kh<6);cout<<"t*n"switch (kh)case 1:cout<<"t* 11.數(shù)字媒體技術(shù)n" cout<<"t* 12.土木工程n" cout<<"t* 13.建筑學(xué)n" cout<<"t* 14.化學(xué)工程工藝n"
41、break;case 2:cout<<"t* 21.化學(xué)系n"cout<<"t* 22.地理工程n"cout<<"t* 23.環(huán)境工程n" break;case 3:cout<<"t* 31.臨床醫(yī)學(xué)n"cout<<"t* 32.麻醉學(xué)n"cout<<"t* 33.影像學(xué)n" break;case 4:cout<<"t* 41.院農(nóng)業(yè)機(jī)械n"cout<<&quo
42、t;t* 42.水產(chǎn)養(yǎng)殖n" break;case 5:cout<<"t* 51.經(jīng)濟(jì)學(xué)n"cout<<"t* 52.國(guó)際經(jīng)濟(jì)貿(mào)易n"cout<<"t* 53.金融學(xué)n" break;int ch;cout<<"t* 0.返回n"cout<<"t*n"do cout<<"t請(qǐng)輸入相應(yīng)專(zhuān)業(yè)代號(hào):"cin>>ch;if(ch=0)i=OfProfe();return i;while(!(
43、ch%10>0&&ch%10<4&&ch!=43&&ch/10=kh)|(ch=14&&ch/10=kh); cout<<"t*n" switch (ch)case 11:i="數(shù)字媒體技術(shù)" break;case 12:i="土木工程" break;case 13:i="建筑學(xué)" break;case 14:i="化學(xué)工程工藝" break;case 21:i="化學(xué)系" break;c
44、ase 22:i="地理工程" break;case 23:i="環(huán)境工程" break;case 31:i="臨床醫(yī)學(xué)" break;case 32:i="麻醉學(xué)" break;case 33:i="影像學(xué)" break;case 41:i="農(nóng)業(yè)機(jī)械" break;case 42:i="水產(chǎn)養(yǎng)殖" break;case 51:i="經(jīng)濟(jì)學(xué)" break;case 52:i="國(guó)際經(jīng)濟(jì)貿(mào)易" break;case
45、53:i="金融學(xué)" break;default:cout<<"t輸入錯(cuò)誤。" int judge=1; cout<<"t已經(jīng)選擇""<<i<<"專(zhuān)業(yè)",是否確定?nt* *nt是(1) 否(0)nt* *"cout<<"nt請(qǐng)選擇:" cin>>judge;while(!judge) i=OfProfe();return i;/-int Manage:infoPass(string inum,strin
46、g iname,char isex,int igrade,int iclas)int value=atoi(inum.c_str(),legal=1,count=1;cout<<"nn信息輸入合法性:n"if(!(igrade>=1 && igrade<=4)cout<<count<<":年級(jí)輸入不合法,請(qǐng)輸入大一大四n"legal=0;count+;else if(!(value >= igrade*10000 && value <= igrade*10000+
47、9999)cout<<count<<":學(xué)號(hào)輸入不正確大一(1000019999)/大二(2000029999).n"legal=0;count+;if(!(iclas>=1 && iclas<=99)cout<<count<<":班級(jí)輸入不合法,請(qǐng)輸入199n"legal=0;count+;if(isex!='w' && isex!='m')cout<<count<<":請(qǐng)輸入正確性別,男生-m,
48、女生-wn"legal=0;count+;if(iname.length()>2)cout<<count<<":姓名輸入不宜過(guò)長(zhǎng)n"legal=0;if(count=1)cout<<"ttt輸入合法nn"return legal;/-void Manage:Add()system("CLS");Student *p=stu,*q=NULL,*save=NULL;string inum,iname,ipro;int igrade,iclas,count=0;char flag,isex,see='y'if(stu=NULL)cout<<"ttt >>*還沒(méi)有學(xué)生信息!*<<"while(see='y') /備注:循環(huán),判斷是否多次輸入count+;cout<<endl<<count<<".n"<<"請(qǐng)輸入學(xué)號(hào): "cin>>inum;p=stu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商標(biāo)權(quán)知識(shí)產(chǎn)權(quán)轉(zhuǎn)讓合同
- 債權(quán)轉(zhuǎn)讓合同范例
- 戶(hù)外廣告合同樣本格式模板
- 二手車(chē)輛買(mǎi)賣(mài)協(xié)議范本
- 2024年接送服務(wù)合同標(biāo)準(zhǔn)范本
- 股份協(xié)議書(shū)合同股份協(xié)議書(shū)2024年
- 房屋買(mǎi)賣(mài)代理合同范文
- 2024年離婚協(xié)議書(shū)官方范本
- 2024年購(gòu)買(mǎi)香蕉的買(mǎi)賣(mài)合同范本
- 2024年居間公司股份轉(zhuǎn)讓合同
- 初二廣東省深圳市道德與法治上冊(cè)期中測(cè)試試題及答案
- 古詩(shī)詞誦讀《江城子-乙卯正月二十日夜記夢(mèng)》公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)統(tǒng)編版高中語(yǔ)文選擇性必修上冊(cè)
- 單身證明書(shū)12篇
- 備戰(zhàn)2024年高考英語(yǔ)考試易錯(cuò)點(diǎn)12 名詞性從句(4大陷阱)(解析版)
- 2023年職業(yè)技能:平版制版工技術(shù)及理論知識(shí)考試題附含答案
- 2024年甘肅省法院系統(tǒng)聘用制書(shū)記員招聘筆試參考題庫(kù)附帶答案詳解
- 中法教育比較
- 講座《如何備好一節(jié)數(shù)學(xué)課》(青年教師年月培訓(xùn))包新華課件
- 藥劑科考試題庫(kù)及答案大全
- 異常處理報(bào)告
- 《大學(xué)語(yǔ)文2》課程教學(xué)大綱
評(píng)論
0/150
提交評(píng)論