




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、綜合程序課程設(shè)計(jì)說明書課程設(shè)計(jì)名稱:綜合程序課程設(shè)計(jì)課程設(shè)計(jì)題目:學(xué)生成績管理系統(tǒng)學(xué)院名稱:信息工程學(xué)院專業(yè):電子信息工程班級:學(xué)號:姓名:評分:教師:2017年3月3日1 / 29由每位學(xué)生填寫、由任教教師保存待查摘要該學(xué)生成績管理系統(tǒng)能夠?qū)W(xué)生信息進(jìn)行保存、查詢、修改、排序等基本功能,對學(xué)生成績進(jìn)行了有效且便利的管理。本次是利用計(jì)算機(jī)中的VC6.0綠色版軟件來完成,利用了不同功能模塊程序?qū)崿F(xiàn)所需功能。成績管理系統(tǒng)讓老師和同學(xué)甚至家長們更加直觀方便的了解到學(xué)生們的成績,給生活帶來不少便利,也增加了自身的實(shí)踐動手能力。關(guān)鍵詞:增加刪除、修改排序、查詢保存、管理系統(tǒng)、成績查詢。目錄一、設(shè)計(jì)要求4
2、1.基本要求42. 提高要求4二、實(shí)驗(yàn)內(nèi)容4三、設(shè)計(jì)的原理6四、系統(tǒng)組成7五、概要設(shè)計(jì)81.信息維護(hù)82.信息查詢83.信息排序:94、大概程序程序流程圖9六、 詳細(xì)設(shè)計(jì)10七、調(diào)試結(jié)果與分析121、調(diào)試方法與技巧122、調(diào)試結(jié)果12結(jié)論16參考文獻(xiàn)16附錄17一、設(shè)計(jì)要求1.基本要求能夠準(zhǔn)確實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)的基本維護(hù)、統(tǒng)計(jì)、排序已經(jīng)查詢的功能。并且學(xué)生信息能以文件的形式進(jìn)行保存、讀取和管理。2. 提高要求盡量增加新的功能模塊,使得系統(tǒng)功能更加多樣化,在程序中注意格式,排版整齊,記得標(biāo)上注釋,利于理解。二、實(shí)驗(yàn)內(nèi)容學(xué)生成績管理系統(tǒng)現(xiàn)有學(xué)生成績信息,內(nèi)容如下姓名學(xué)號語文數(shù)學(xué)英語政治張明明01
3、 67 78 82 90李成友02 78 91 88 80張輝燦03 68 82 56 87王露04 56 45 77 67陳東明05 67 38 47 70.請用C編寫一系統(tǒng),實(shí)現(xiàn)學(xué)生信息管理,軟件的入口界面應(yīng)包括如下幾個方面:(一)功能要求:(1)信息維護(hù):要求:學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息(2)信息查詢:要求:查詢時可實(shí)現(xiàn)按姓名查詢、按學(xué)號查詢(3)成績統(tǒng)計(jì):要求:A輸入任意的一個課程名(如數(shù)學(xué))和一個分?jǐn)?shù)段(如60-70),統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況。(4)排序:能對用戶指定的任意課程名,按成績升
4、序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果(使用表格的形式顯示排序后的輸出結(jié)果)(使用多種方法排序者,加分)(二)其它要求:(1)使用C或C+語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀(2)采用文本菜單界面(3)學(xué)生可增加新功能模塊三、設(shè)計(jì)的原理用數(shù)組或鏈表數(shù)據(jù)結(jié)構(gòu)完成一個學(xué)生成績管理系統(tǒng),此系統(tǒng)的具體功能要求如下:(1)信息維護(hù)功能1、增加學(xué)生信息:輸入學(xué)生學(xué)號、姓名、性別、語文、數(shù)學(xué)、英語、政治四門課成績,可插入一個或多個學(xué)生信息到當(dāng)前編輯的班級數(shù)據(jù)中。2、刪除學(xué)生信息:可按學(xué)號或者姓名刪除一個或多個學(xué)生信息。3、修改學(xué)生信息:可按學(xué)號或者姓名修改學(xué)生語文、數(shù)學(xué)、英語、政治四門課任一門及多門科目成
5、績。4、學(xué)生信息每一班存為一個數(shù)據(jù)文件,數(shù)據(jù)文件可在程序中編輯和重新保存。5、用戶輸入學(xué)生信息可隨時保存數(shù)據(jù)文件。(2)信息查詢功能1、按某一學(xué)科分?jǐn)?shù)段查詢2、按學(xué)號查詢學(xué)生信息;3、按姓名查詢學(xué)生信息;(3)排序功能1、按學(xué)號輸出一個班學(xué)生信息:學(xué)號、姓名、語文、數(shù)學(xué)、英語、政治成績和總成績到屏幕和文件。2、成績排名按總成績或各科成績排序輸出學(xué)生信息四、系統(tǒng)組成系統(tǒng)以如下幾個模塊組成:(一)學(xué)生信息增加及修改、刪除模塊增加學(xué)生的信息:學(xué)號、姓名、語文、數(shù)學(xué)、英語、政治四門成績。當(dāng)然也可以進(jìn)行修改和刪除。(二)文件保存功能模塊可以將學(xué)生信息存為一個數(shù)據(jù)文件。用戶輸入的學(xué)生信息可隨時保存數(shù)據(jù)文件
6、。(三)查詢功能模塊在此模塊里,用戶可實(shí)現(xiàn)以下操作:1、按某科目分?jǐn)?shù)段查詢學(xué)生信息;2、按學(xué)號查詢學(xué)生信息;3、按姓名查詢學(xué)生信息;(四)文件讀取功能模塊在此模塊中,用戶可以裝入文件中所有學(xué)生的信息。(程序中為data.txt文件)(5) 排序模塊在此模塊中,可以通過學(xué)號或者各類科目成績或總分進(jìn)行排序。程序開頭與結(jié)尾需要定義兩個類和一主函數(shù),使得程序具備完整性。五、概要設(shè)計(jì)系統(tǒng)功能可分為三大類:信息維護(hù)、信息查詢已經(jīng)信息排序。如下三個系統(tǒng)層次結(jié)構(gòu)圖如圖所示:文件保存文件讀取1.信息維護(hù)信息維護(hù)信息增加修改信息刪除信息圖1.1信息維護(hù)功能概要圖2.信息查詢按學(xué)號查詢信息查詢按姓名查詢分?jǐn)?shù)段查詢成
7、績統(tǒng)計(jì)圖1.2信息維護(hù)功能概要圖排序3.信息排序:按各科成績排序按總分排序按學(xué)號排序圖1.3信息排序功能概要圖了解大概功能,可以根據(jù)這些來確定系統(tǒng)具體分支,可用17分別代表添加、刪除、修改、查詢、排序、保存、讀取。4、大概程序程序流程圖開始準(zhǔn)備:各類頭文件,用類定義主要使用的成員及函數(shù),并且建立構(gòu)造函數(shù)和解析函數(shù)構(gòu)造添加學(xué)生函數(shù)構(gòu)造刪除學(xué)生函數(shù)構(gòu)造查詢學(xué)生函數(shù)構(gòu)造修改學(xué)生函數(shù)構(gòu)造排序?qū)W生函數(shù)保存讀取文件模塊程序定義主函數(shù),構(gòu)造操作界面終止6、 詳細(xì)設(shè)計(jì)1、準(zhǔn)備工作:首先,導(dǎo)入std命名空間中所有名稱,設(shè)max為100再準(zhǔn)備頭文件:#include<iostream>,#includ
8、e<fstream>,#include<string>,#include<stdlib.h>,#include<iomanip>然后,定義兩個類student和cla,分別定義了程序中主要使用的成員;建立構(gòu)造函數(shù)和解析函數(shù)及聲明各類函數(shù)。2、構(gòu)造sadd()添加函數(shù)先定義所需的q,name,num,x,y,z,m。用DOS下的清屏命令,再輸出給用戶的提示語句,用“q=new student(name1,num1,x1,y1,z1,m1);”建立新的student。利用鏈表判斷輸入的學(xué)號是否與頭結(jié)點(diǎn)或后面的結(jié)點(diǎn)數(shù)據(jù)相同,若不同則用“stu=q;”增
9、加學(xué)生信息。3、構(gòu)造sremove()刪除函數(shù)準(zhǔn)備工作如上(2)一樣,用while()函數(shù)找出要刪除的學(xué)生信息對應(yīng)結(jié)點(diǎn),若找到則刪除,在刪除之前要確定是否刪除:“cout<<"確定刪除嗎?Y/N"<<endl;”這里用if語句判斷用戶回答是“Y”還是“N”。刪除時也要分是刪除第一個結(jié)點(diǎn)還是后續(xù)結(jié)點(diǎn)。補(bǔ)缺后用delete刪除p1。4、構(gòu)造samend()修改函數(shù)大體和3一樣,修改前的準(zhǔn)備,確定要修改的結(jié)點(diǎn),最后用cin直接修改。5、構(gòu)造ssearch()查詢函數(shù)查詢函數(shù)有多個分支,這里都用選擇語句case來對不同的情況進(jìn)行編程。在這里只需邏輯清晰,語法
10、沒有錯誤就能完成,但也要注意括號的搭配和break的使用。在用for語句時要注意循環(huán)次數(shù)不能過大,應(yīng)對應(yīng)學(xué)生的人數(shù)。6、構(gòu)造staxis()排序函數(shù)用case語句使輸入的17數(shù)字分別對應(yīng)函數(shù)pxh()(學(xué)號排序)、psx()(數(shù)學(xué))、pyw()(語文)、pyy()(英語)、pAA()(總分)、返回、pzz()(政治)。這些排序函數(shù)定義內(nèi)容幾乎一樣。首先用for語句判斷n(信息條數(shù))為多少,如果頭結(jié)點(diǎn)大于第二個的頭結(jié)點(diǎn)則交換,再判斷中間的結(jié)點(diǎn)大小則交換,最后依次重復(fù)。7、構(gòu)造ssave()函數(shù)sload()函數(shù)(保存與讀?。┰谶@里注意鏈表要求即可。8、定義主函數(shù)產(chǎn)生操作界面也用case語句使18
11、代表不同功能。(詳見附錄)七、調(diào)試結(jié)果與分析1、調(diào)試方法與技巧代碼完成后,保存代碼并嘗試運(yùn)行程序,啟動調(diào)試。往往會出現(xiàn)以下幾種常見錯誤。1case語句中內(nèi)容重復(fù),沒有用一函數(shù)替代,使程序過為繁瑣。2括號沒有匹配;3循環(huán)體的邏輯錯誤;4 case語句中缺少了break,沒有跳出循環(huán)。5錯誤使用了for語句,造成已經(jīng)出現(xiàn)結(jié)果后(鏈表為空)依舊繼續(xù)運(yùn)行,造成問題,無法繼續(xù)使用該系統(tǒng)。2、調(diào)試結(jié)果1、學(xué)生信息的添加、刪除、修改。 圖2.1.1刪除 圖2.1.2添加學(xué)生信息圖2.1.3修改學(xué)生信息圖2.1.4此時文件的內(nèi)容2、 按姓名查詢。 圖2.2.13.按學(xué)號查詢。 圖2.3.14、按成績查詢。圖2
12、.4.15、成績排序。 圖2.5.1學(xué)號排序 圖2.5.2單科(數(shù)學(xué))成績排序 圖2.5.3總分排序6、保存: 圖2.6.17、讀取: 圖2.7.18、退出:圖2.8.1結(jié)論雖然過程有些磕磕絆絆,但最后成績管理系統(tǒng)終于成功了。該系統(tǒng)能夠?yàn)榇蠹規(guī)順O大的便利,便于以后成績的有效管理。以后大家像成績排序,找出某個科目及格的學(xué)生也容易很多。該系統(tǒng)雖具有基本的功能,但還是存在一些不足。例如增加刪除學(xué)生信息時不能在界面上自動呈現(xiàn)增加或者刪除的結(jié)果,需要操作者手動打開文件或者通過排序來間接查看結(jié)果。這次課設(shè)讓大家學(xué)到了很多書本外的知識,鍛煉了實(shí)踐操作的能力。不僅熟悉了VC6軟件,也讓大家知道,紙上談兵遠(yuǎn)遠(yuǎn)
13、沒有自己動手體驗(yàn)來的深刻。參考文獻(xiàn)1.黃維通,賈續(xù)涵、Visual C+面對對象與可視化程序設(shè)計(jì)(第三版)、清華大學(xué)出版社、2011年06月版2.譚浩強(qiáng)、C語言程序設(shè)計(jì)(第四版)、清華大學(xué)出版社、2010年06月版附錄#include<iostream>#include<fstream>#include<string>#include<stdlib.h>#include<iomanip>/用于程序的暫停屬于c的運(yùn)用方法using namespace std;/導(dǎo)入std命名空間中所有名稱。#define max 100;/設(shè)max為1
14、00class student/定義類student定義了程序中主要使用的成員public:student*next;/定義next指針public:string name;/姓名long num;/學(xué)號int x,y,z,m;int low,high;/數(shù)學(xué),語文,英語,政治int AA;/總分void play()cout<<name<<"學(xué)生的學(xué)號是"<<num<<",數(shù)學(xué):"<<x<<",語文:"<<y<<",英語:&qu
15、ot;<<z<<",政治:"<<m<<",總分:"<<AA<<endl;student(string sname,long snum,int sx,int sy,int sz,int sm)name=sname;num=snum;x=sx;y=sy;z=sz;m=sm;class cla/定義類2包括建立構(gòu)造函數(shù)和解析函數(shù)public:cla()/構(gòu)造函數(shù)stu=0;sload();cla()/析構(gòu)函數(shù)student*p;p=stu;while(p)p=p->next;dele
16、te stu;stu=p;stu=0;/這一部分是對函數(shù)的聲明void sadd();/添加void sremove();/刪除void samend();/修改void ssearch();/查詢void staxis();/排序void ssave();/保存void sload();/讀取/排序函數(shù)的聲明void pxh();void psx();void pyw();void pyy();void pzz();void pAA();/共有5個排序函數(shù)private:student*stu;/頭接點(diǎn);void cla:sadd()/此處構(gòu)造了添加學(xué)生函數(shù)student*q;string
17、name1;long num1;int x1,y1,z1,m1;system("cls");/調(diào)用DOS下的的清屏命令“cls”cout<<"n*增加的學(xué)生*n"<<endl;cout<<"請輸入學(xué)生的(中間用空格間隔)"<<endl;cout<<"姓名學(xué)號數(shù)學(xué)成績語文成績英語政治成績:"<<endl;cin>>name1>>num1>>x1>>y1>>z1>>m1;q=n
18、ew student(name1,num1,x1,y1,z1,m1);q->next=0;q->AA=x1+y1+z1+m1;if(stu)student*t;t=stu;if(t->num=num1)cout<<"學(xué)號已存在,請重新輸入"<<endl;return;while(t->next)if(t->num=num1)cout<<"學(xué)號已存在,請重新輸入"<<endl;return;t=t->next;t->next=q;elsestu=q;cout<&
19、lt;"輸入完畢"<<endl;void cla:sremove()/刪除system("cls");int num1;cout<<"n*刪除學(xué)生信息*n"cout<<"請輸入想要刪除學(xué)生的學(xué)號:"cin>>num1;/查找要刪除的結(jié)點(diǎn)student*p1,*p2;p1=stu;while(p1)if(p1->num=num1)break;elsep2=p1;p1=p1->next;/刪除結(jié)點(diǎn)if(p1!=NULL)/若找到結(jié)點(diǎn),則刪除p1->pla
20、y();cout<<"確定刪除嗎?Y/N"<<endl;char c;cin>>c;if(toupper(c)!='Y')return;if(p1=stu)/若要刪除的結(jié)點(diǎn)是第一個結(jié)點(diǎn)stu=p1->next;/將第二個結(jié)點(diǎn)往上推,成為頭結(jié)點(diǎn)。delete p1;else/若要刪除的結(jié)點(diǎn)是后續(xù)結(jié)點(diǎn)p2->next=p1->next;/補(bǔ)缺delete p1;cout<<"找到學(xué)號為"<<num1<<"的學(xué)生,并刪除n"else/未
21、找到結(jié)點(diǎn)cout<<"未找到想要刪除的學(xué)生!n"void cla:samend()/修改system("cls");long num1;cout<<"n*修改學(xué)生信息*n"cout<<"輸入要修改學(xué)生的學(xué)號"cin>>num1;/查找要修改的結(jié)點(diǎn)student*p1,*p2;p1=stu;while(p1)if(p1->num=num1)break;elsep2=p1;p1=p1->next;if(p1!=NULL)cout<<"學(xué)號
22、是"<<num1<<"的學(xué)生的信息"<<endl;cout<<"姓名"<<p1->name<<"數(shù)學(xué)"<<p1->x<<"語文"<<p1->y<<"英語"<<p1->z<<"政治"<<p1->m<<endl;cout<<"請輸入修改后的信息:姓名數(shù)學(xué)
23、成績語文成績英語政治成績"<<endl;cin>>p1->name>>p1->x>>p1->y>>p1->z>>p1->m;p1->AA=p1->x+p1->y+p1->z+p1->m;/求總分cout<<"修改成功"<<endl;else/未找到接點(diǎn)cout<<"未找到!"<<endl;void cla:ssearch()/查詢system("cls&qu
24、ot;);cout<<"n*查詢學(xué)生信息*n"<<endl;cout<<"請輸入查詢方式:"<<endl;cout<<"1.按學(xué)號查詢"<<endl;cout<<"2.按姓名查詢"<<endl;cout<<"0.按科目分?jǐn)?shù)段查詢"<<endl;cout<<"3.返回"<<endl;char c;cin>>c;switch(
25、c)/通過switch語句來選擇排序函數(shù)case'0':int x,y,z,m;long num;char w;int high,low;cout<<"輸入要查找成績科目代表的數(shù)字(數(shù)語英政分別為ad):"<<w<<endl;cin>>w;/查找要查詢的結(jié)點(diǎn)cout<<"最低分為:"<<endl;cin>>low;cout<<"最高分為:"<<endl;cin>>high;student*p1,*p2
26、;p1=stu;switch(w)case'a':cout<<"數(shù)學(xué)成績在"<<low<<"-"<<high<<"分?jǐn)?shù)段的學(xué)生為:"<<endl;while(p1!=NULL)if(p1->x>=low&&p1->x<=high)cout<<"姓名:"<<p1->name<<"數(shù)學(xué):"<<p1->x<&l
27、t;"語文:"<<p1->y<<"英語:"<<p1->z<<"政治:"<<p1->m<<endl;p2=p1;p1=p1->next;cout<<"查詢完畢n"break;case'b':cout<<"語文成績在"<<low<<"-"<<high<<"分?jǐn)?shù)段的學(xué)生為:"<
28、;<endl;while(p1!=NULL)if(p1->y>=low&&p1->y<=high)cout<<"姓名:"<<p1->name<<"數(shù)學(xué):"<<p1->x<<"語文:"<<p1->y<<"英語:"<<p1->z<<"政治:"<<p1->m<<endl;p2=p1;p1=p1-&
29、gt;next;cout<<"查詢完畢n"break;case'c':cout<<"英語成績在"<<low<<"-"<<high<<"分?jǐn)?shù)段的學(xué)生為:"<<endl;while(p1!=NULL)if(p1->z>=low&&p1->z<=high)cout<<"姓名:"<<p1->name<<"數(shù)學(xué):&q
30、uot;<<p1->x<<"語文:"<<p1->y<<"英語:"<<p1->z<<"政治:"<<p1->m<<endl;p2=p1;p1=p1->next;cout<<"查詢完畢n"break;case'd':cout<<"政治成績在"<<low<<"-"<<high<&
31、lt;"分?jǐn)?shù)段的學(xué)生為:"<<endl;while(p1!=NULL)if(p1->m>=low&&p1->m<=high)cout<<"姓名:"<<p1->name<<"數(shù)學(xué):"<<p1->x<<"語文:"<<p1->y<<"英語:"<<p1->z<<"政治:"<<p1->m
32、<<endl;p2=p1;p1=p1->next;cout<<"查詢完畢n"break;break;case'1':long num1;cout<<"要查詢的學(xué)號"<<endl;cin>>num1;/查找要查詢的結(jié)點(diǎn)student*p1,*p2;p1=stu;while(p1)if(p1->num=num1)break;elsep2=p1;p1=p1->next;if(p1!=NULL)cout<<"學(xué)號是"<<num
33、1<<"的學(xué)生的信息"<<endl;cout<<"姓名:"<<p1->name<<"數(shù)學(xué):"<<p1->x<<"語文:"<<p1->y<<"英語:"<<p1->z<<"政治:"<<p1->m<<endl;cout<<"查詢完畢."else/未找到接點(diǎn)cout&l
34、t;<"未找到!n"/break;break;case'2':string name1;cout<<"要查詢的學(xué)生姓名"<<endl;cin>>name1;/查找要查詢的結(jié)點(diǎn)student*p1,*p2;p1=stu;while(p1)if(p1->name=name1)break;elsep2=p1;p1=p1->next;if(p1!=NULL)cout<<name1<<"的學(xué)生的信息"<<endl;cout<<&
35、quot;學(xué)號:"<<p1->num<<"數(shù)學(xué):"<<p1->x<<"語文:"<<p1->y<<"英語:"<<p1->z<<"政治"<<p1->m<<endl;cout<<"查詢完畢."else/未找到接點(diǎn)cout<<"未找到!n"break;case'3':return;voi
36、d cla:pxh()/按學(xué)號排序函數(shù)的定義student*p1,*p2;int n;p1=stu;n=1;while(p1->next)/p1->next!=0n+;p1=p1->next;cout<<"共有"<<n<<"條信息."<<endl;int i;p1=stu;for(i=1;i<n;i+)p1=stu;if(p1->num>p1->next->num)/如果頭結(jié)點(diǎn)大于第二個的p2=p1->next;p1->next=p1->ne
37、xt->next;p2->next=p1;/頭結(jié)點(diǎn)交換stu=p2;/下一個學(xué)生p1=stu;/交換while(p1->next->next)/中間的交換p2=p1;p1=p1->next;if(p1->num>p1->next->num)p2->next=p1->next;p1->next=p1->next->next;p2->next->next=p1;p1=p2->next;/交換p1=stu;dop1->play();p1=p1->next;while(p1);void c
38、la:psx()/按數(shù)學(xué)成績排序函數(shù)的定義student*p1,*p2;int n;p1=stu;n=1;while(p1->next)n+;p1=p1->next;cout<<"共有"<<n<<"條信息."<<endl;int i;p1=stu;for(i=1;i<n;i+)p1=stu;if(p1->x>p1->next->x)/如果頭結(jié)點(diǎn)大于第二個的p2=p1->next;p1->next=p1->next->next;p2->n
39、ext=p1;/頭結(jié)點(diǎn)交換stu=p2;p1=stu;while(p1->next->next)/中間的交換p2=p1;p1=p1->next;if(p1->x>p1->next->x)p2->next=p1->next;p1->next=p1->next->next;p2->next->next=p1;p1=p2->next;/交換p1=stu;dop1->play();p1=p1->next;while(p1);void cla:pyw()/按語文成績排序函數(shù)的定義student*p1,*
40、p2;int n;p1=stu;n=1;while(p1->next)n+;p1=p1->next;cout<<"共有"<<n<<"條信息."<<endl;int i;p1=stu;for(i=1;i<n;i+)p1=stu;if(p1->y>p1->next->y)/如果頭結(jié)點(diǎn)大于第二個的p2=p1->next;p1->next=p1->next->next;p2->next=p1;/頭結(jié)點(diǎn)交換stu=p2;p1=stu;while(
41、p1->next->next)/中間的交換p2=p1;p1=p1->next;if(p1->y>p1->next->y)p2->next=p1->next;p1->next=p1->next->next;p2->next->next=p1;p1=p2->next;/交換p1=stu;dop1->play();p1=p1->next;while(p1);void cla:pyy()/按英語成績排序函數(shù)的定義student*p1,*p2;int n;p1=stu;n=1;while(p1->
42、next)n+;p1=p1->next;cout<<"共有"<<n<<"條信息."<<endl;int i;p1=stu;for(i=1;i<n;i+)p1=stu;if(p1->z>p1->next->z)/如果頭結(jié)點(diǎn)大于第二個的p2=p1->next;p1->next=p1->next->next;p2->next=p1;/頭結(jié)點(diǎn)交換stu=p2;p1=stu;while(p1->next->next)/中間的交換p2=p1;
43、p1=p1->next;if(p1->z>p1->next->z)p2->next=p1->next;p1->next=p1->next->next;p2->next->next=p1;p1=p2->next;/交換p1=stu;dop1->play();p1=p1->next;while(p1);void cla:pzz()/按政治成績排序函數(shù)的定義student*p1,*p2;int n;p1=stu;n=1;while(p1->next)n+;p1=p1->next;cout<&l
44、t;"共有"<<n<<"條信息."<<endl;int i;p1=stu;for(i=1;i<n;i+)p1=stu;if(p1->m>p1->next->m)/如果頭結(jié)點(diǎn)大于第二個的p2=p1->next;p1->next=p1->next->next;p2->next=p1;/頭結(jié)點(diǎn)交換stu=p2;p1=stu;while(p1->next->next)/中間的交換p2=p1;p1=p1->next;if(p1->y>p1-
45、>next->y)p2->next=p1->next;p1->next=p1->next->next;p2->next->next=p1;p1=p2->next;/交換p1=stu;dop1->play();p1=p1->next;while(p1);void cla:pAA()/按總分排序的定義student*p1,*p2;int n;p1=stu;n=1;while(p1->next)n+;p1=p1->next;cout<<"共有"<<n<<&quo
46、t;條信息."<<endl;int i;p1=stu;for(i=1;i<n;i+)p1=stu;if(p1->AA>p1->next->AA)/如果頭結(jié)點(diǎn)大于第二個的p2=p1->next;p1->next=p1->next->next;p2->next=p1;/頭結(jié)點(diǎn)交換stu=p2;p1=stu;while(p1->next->next)/中間的交換p2=p1;p1=p1->next;if(p1->AA>p1->next->AA)p2->next=p1->
47、;next;p1->next=p1->next->next;p2->next->next=p1;p1=p2->next;/交換p1=stu;dop1->play();p1=p1->next;while(p1);void cla:staxis()/排序函數(shù)的選擇system("cls");char c;cout<<"請選擇以何種方式排序:"<<endl;cout<<"1以學(xué)號排序"<<endl;cout<<"2以數(shù)學(xué)成績
48、排序"<<endl;cout<<"3以語文成績排序"<<endl;cout<<"4以英語成績排序"<<endl;cout<<"5以總分排序"<<endl;cout<<"6返回"<<endl;cout<<"請選擇(1-7)"<<endl;cout<<"7以政治成績排序"<<endl;cin>>c;swi
49、tch(c)case'1':cla:pxh();break;/通過數(shù)據(jù)c來選擇不同的排序函數(shù)case'2':cla:psx();break;case'3':cla:pyw();break;case'4':pyy();break;case'5':cla:pAA();break;case'7':cla:pzz();break;case'6':return;void cla:ssave()/保存到文件system("cls");char c;cout<<"n保存學(xué)生信息,是否繼續(xù)?Y/N:"cin>>c;if(toupper(c)!='Y')return;ofstream tfile("date.txt",ios_base:binary);student*p=stu;while(p)/寫入文件tfile<<p->name<<"t"<<p->num<<"t"<<p->x<
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國云母發(fā)熱片行業(yè)深度研究分析報(bào)告
- 安全檢查表模板
- 行車安全應(yīng)急預(yù)案范文
- 事故案例的心得體會
- 消防安全會議
- 中國增強(qiáng)聚丙烯(FRPP)行業(yè)調(diào)查報(bào)告
- 2021-2026年中國金屬制液體儲藏罐市場全面調(diào)研及行業(yè)投資潛力預(yù)測報(bào)告
- 安全生產(chǎn)法15條
- 工作總結(jié)安全生產(chǎn)工作總結(jié)
- 2024-2030年中國網(wǎng)絡(luò)社區(qū)行業(yè)市場深度分析及發(fā)展趨勢預(yù)測報(bào)告
- 車工考評員培訓(xùn)課件
- 站姿走姿坐姿禮儀培訓(xùn)
- 小規(guī)模稅務(wù)視頻教學(xué)課件
- 苗木種植專項(xiàng)方案(3篇)
- 監(jiān)督檢查酒店管理制度
- 河南省鄭州市鞏義市2023-2024學(xué)年六年級下學(xué)期科學(xué)6月期末試卷(含答案)
- 業(yè)務(wù)外包費(fèi)用管理制度
- 痛風(fēng)的康復(fù)護(hù)理課件
- 2024年山西特崗教師招聘筆試真題
- 【英語 北京版】2025年普通高等學(xué)校招生選擇性考試含答案
- 黑龍江省哈爾濱市第九中學(xué)校2024-2025學(xué)年高一下學(xué)期6月月考化學(xué)試題(含答案)
評論
0/150
提交評論