版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
綜合程序課程設(shè)計說明書課程設(shè)計名稱:綜合程序課程設(shè)計課程設(shè)計題目:學(xué)生成績管理系統(tǒng)學(xué)院名稱:信息工程學(xué)院專業(yè):電子信息工程班級:學(xué)號:姓名:評分:教師:2023年3月3日由每位學(xué)生填寫、由任教教師保存待查摘要該學(xué)生成績管理系統(tǒng)可以對學(xué)生信息進(jìn)行保存、查詢、修改、排序等基本功能,對學(xué)生成績進(jìn)行了有效且便利的管理。本次是運(yùn)用計算機(jī)中的VC6.0綠色版軟件來完畢,運(yùn)用了不同功能模塊程序?qū)崿F(xiàn)所需功能。成績管理系統(tǒng)讓老師和同學(xué)甚至家長們更加直觀方便的了解到學(xué)生們的成績,給生活帶來不少便利,也增長了自身的實(shí)踐動手能力。關(guān)鍵詞:增長刪除、修改排序、查詢保存、管理系統(tǒng)、成績查詢。目錄TOC\o"1-3"\h\u15109一、設(shè)計規(guī)定 4228521.基本規(guī)定 4173342.提高規(guī)定 48511二、實(shí)驗(yàn)內(nèi)容 411447三、設(shè)計的原理 628165四、系統(tǒng)組成 720264五、概要設(shè)計 830821.信息維護(hù) 8205032.信息查詢 8103413.信息排序: 982494、大約程序程序流程圖 919053六、具體設(shè)計 107076七、調(diào)試結(jié)果與分析 12168141、調(diào)試方法與技巧 1249782、調(diào)試結(jié)果 1224495結(jié)論 1620237參考文獻(xiàn) 1631943附錄 17一、設(shè)計規(guī)定1.基本規(guī)定可以準(zhǔn)的確現(xiàn)學(xué)生成績管理系統(tǒng)的基本維護(hù)、記錄、排序已經(jīng)查詢的功能。并且學(xué)生信息能以文獻(xiàn)的形式進(jìn)行保存、讀取和管理。提高規(guī)定盡量增長新的功能模塊,使得系統(tǒng)功能更加多樣化,在程序中注意格式,排版整齊,記得標(biāo)上注釋,利于理解。二、實(shí)驗(yàn)內(nèi)容學(xué)生成績管理系統(tǒng)現(xiàn)有學(xué)生成績信息,內(nèi)容如下姓名學(xué)號語文數(shù)學(xué)英語政治張明明0167788290李成友0278918880張輝燦0368825687王露0456457767陳東明0567384770……請用C編寫一系統(tǒng),實(shí)現(xiàn)學(xué)生信息管理,軟件的入口界面應(yīng)涉及如下幾個方面:(一)功能規(guī)定:(1)信息維護(hù):規(guī)定:學(xué)生信息數(shù)據(jù)要以文獻(xiàn)的形式保存,能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊涉及子模塊有:增長學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息(2)信息查詢:規(guī)定:查詢時可實(shí)現(xiàn)按姓名查詢、按學(xué)號查詢(3)成績記錄:規(guī)定:A輸入任意的一個課程名(如數(shù)學(xué))和一個分?jǐn)?shù)段(如60--70),記錄出在此分?jǐn)?shù)段的學(xué)生情況。(4)排序:能對用戶指定的任意課程名,按成績升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果(使用表格的形式顯示排序后的輸出結(jié)果)(使用多種方法排序者,加分)(二)其它規(guī)定:(1)使用C或C++語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀(2)采用文本菜單界面(3)學(xué)生可增長新功能模塊三、設(shè)計的原理用數(shù)組或鏈表數(shù)據(jù)結(jié)構(gòu)完畢一個學(xué)生成績管理系統(tǒng),此系統(tǒng)的具體功能規(guī)定如下:(1)信息維護(hù)功能1、增長學(xué)生信息:輸入學(xué)生學(xué)號、姓名、性別、語文、數(shù)學(xué)、英語、政治四門課成績,可插入一個或多個學(xué)生信息到當(dāng)前編輯的班級數(shù)據(jù)中。2、刪除學(xué)生信息:可按學(xué)號或者姓名刪除一個或多個學(xué)生信息。3、修改學(xué)生信息:可按學(xué)號或者姓名修改學(xué)生語文、數(shù)學(xué)、英語、政治四門課任一門及多門科目成績。4、學(xué)生信息每一班存為一個數(shù)據(jù)文獻(xiàn),數(shù)據(jù)文獻(xiàn)可在程序中編輯和重新保存。5、用戶輸入學(xué)生信息可隨時保存數(shù)據(jù)文獻(xiàn)。(2)信息查詢功能1、按某一學(xué)科分?jǐn)?shù)段查詢2、按學(xué)號查詢學(xué)生信息;3、按姓名查詢學(xué)生信息;(3)排序功能1、按學(xué)號輸出一個班學(xué)生信息:學(xué)號、姓名、語文、數(shù)學(xué)、英語、政治成績和總成績到屏幕和文獻(xiàn)。2、成績排名按總成績或各科成績排序輸出學(xué)生信息四、系統(tǒng)組成系統(tǒng)以如下幾個模塊組成:(一)學(xué)生信息增長及修改、刪除模塊增長學(xué)生的信息:學(xué)號、姓名、語文、數(shù)學(xué)、英語、政治四門成績。當(dāng)然也可以進(jìn)行修改和刪除。(二)文獻(xiàn)保存功能模塊可以將學(xué)生信息存為一個數(shù)據(jù)文獻(xiàn)。用戶輸入的學(xué)生信息可隨時保存數(shù)據(jù)文獻(xiàn)。(三)查詢功能模塊在此模塊里,用戶可實(shí)現(xiàn)以下操作:1、按某科目分?jǐn)?shù)段查詢學(xué)生信息;2、按學(xué)號查詢學(xué)生信息;3、按姓名查詢學(xué)生信息;(四)文獻(xiàn)讀取功能模塊在此模塊中,用戶可以裝入文獻(xiàn)中所有學(xué)生的信息。(程序中為data.txt文獻(xiàn))排序模塊在此模塊中,可以通過學(xué)號或者各類科目成績或總分進(jìn)行排序。程序開頭與結(jié)尾需要定義兩個類和一主函數(shù),使得程序具有完整性。五、概要設(shè)計系統(tǒng)功能可分為三大類:信息維護(hù)、信息查詢已經(jīng)信息排序。如下三個系統(tǒng)層次結(jié)構(gòu)圖如圖所示:文獻(xiàn)保存文獻(xiàn)讀取1.信息維護(hù)文獻(xiàn)保存文獻(xiàn)讀取信息維護(hù)信息維護(hù)信息增長修改信息信息增長修改信息刪除信息刪除信息圖1.1信息維護(hù)功能概要圖2.信息查詢按學(xué)號查詢信息查詢按學(xué)號查詢信息查詢按姓名查詢按姓名查詢分?jǐn)?shù)段查詢成績記錄分?jǐn)?shù)段查詢成績記錄圖1.2信息維護(hù)功能概要圖排序3.信息排序:排序按各科成績排序按總分排序按各科成績排序按總分排序按學(xué)號排序按學(xué)號排序圖1.3信息排序功能概要圖了解大約功能,可以根據(jù)這些來擬定系統(tǒng)具體分支,可用1~7分別代表添加、刪除、修改、查詢、排序、保存、讀取。4、大約程序程序流程圖開始開始準(zhǔn)備:各類頭文獻(xiàn),用類定義重要使用的成員及函數(shù),并且建立構(gòu)造函數(shù)和解析函數(shù)準(zhǔn)備:各類頭文獻(xiàn),用類定義重要使用的成員及函數(shù),并且建立構(gòu)造函數(shù)和解析函數(shù)構(gòu)造添加學(xué)生函數(shù)構(gòu)造添加學(xué)生函數(shù)構(gòu)造刪除學(xué)生函數(shù)構(gòu)造刪除學(xué)生函數(shù)構(gòu)造查詢學(xué)生函數(shù)構(gòu)造修改學(xué)生函數(shù)構(gòu)造查詢學(xué)生函數(shù)構(gòu)造修改學(xué)生函數(shù)構(gòu)造排序?qū)W生函數(shù)構(gòu)造排序?qū)W生函數(shù)保存讀取文獻(xiàn)模塊程序保存讀取文獻(xiàn)模塊程序定義主函數(shù),構(gòu)造操作界面定義主函數(shù),構(gòu)造操作界面終止終止具體設(shè)計1、準(zhǔn)備工作:一方面,導(dǎo)入std命名空間中所有名稱,設(shè)max為100再準(zhǔn)備頭文獻(xiàn):#include<iostream>,#include<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=newstudent(name1,num1,x1,y1,z1,m1);”建立新的student。運(yùn)用鏈表判斷輸入的學(xué)號是否與頭結(jié)點(diǎn)或后面的結(jié)點(diǎn)數(shù)據(jù)相同,若不同則用“stu=q;”增長學(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)行編程。在這里只需邏輯清楚,語法沒有錯誤就能完畢,但也要注意括號的搭配和break的使用。在用for語句時要注意循環(huán)次數(shù)不能過大,應(yīng)相應(yīng)學(xué)生的人數(shù)。6、構(gòu)造staxis()排序函數(shù)用case語句使輸入的1~7數(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ù)(保存與讀?。┰谶@里注意鏈表規(guī)定即可。8、定義主函數(shù)產(chǎn)生操作界面也用case語句使1~8代表不同功能。(詳見附錄)七、調(diào)試結(jié)果與分析1、調(diào)試方法與技巧代碼完畢后,保存代碼并嘗試運(yùn)營程序,啟動調(diào)試。往往會出現(xiàn)以下幾種常見錯誤。1case語句中內(nèi)容反復(fù),沒有用一函數(shù)替代,使程序過為繁瑣。2括號沒有匹配;3循環(huán)體的邏輯錯誤;4case語句中缺少了break,沒有跳出循環(huán)。5錯誤使用了for語句,導(dǎo)致已經(jīng)出現(xiàn)結(jié)果后(鏈表為空)依舊繼續(xù)運(yùn)營,導(dǎo)致問題,無法繼續(xù)使用該系統(tǒng)。2、調(diào)試結(jié)果1、學(xué)生信息的添加、刪除、修改。圖2.1.1刪除圖2.1.2添加學(xué)生信息圖2.1.3修改學(xué)生信息圖2.1.4此時文獻(xiàn)的內(nèi)容按姓名查詢。圖2.2.13.按學(xué)號查詢。圖2.3.14、按成績查詢。圖2.4.15、成績排序。圖2.5.1學(xué)號排序圖2.5.2單科(數(shù)學(xué))成績排序圖2.5.3總分排序6、保存:圖2.6.17、讀?。簣D2.7.18、退出:圖2.8.1結(jié)論雖然過程有些磕磕絆絆,但最后成績管理系統(tǒng)終于成功了。該系統(tǒng)可認(rèn)為大家?guī)順O大的便利,便于以后成績的有效管理。以后大家像成績排序,找出某個科目及格的學(xué)生也容易很多。該系統(tǒng)雖具有基本的功能,但還是存在一些局限性。例如增長刪除學(xué)生信息時不能在界面上自動呈現(xiàn)增長或者刪除的結(jié)果,需要操作者手動打開文獻(xiàn)或者通過排序來間接查看結(jié)果。這次課設(shè)讓大家學(xué)到了很多書本外的知識,鍛煉了實(shí)踐操作的能力。不僅熟悉了VC6軟件,也讓大家知道,紙上談兵遠(yuǎn)遠(yuǎn)沒有自己動手體驗(yàn)來的深刻。參考文獻(xiàn)1.黃維通,賈續(xù)涵、《VisualC++面對對象與可視化程序設(shè)計(第三版)》、清華大學(xué)出版社、2023年06月版2.譚浩強(qiáng)、《C語言程序設(shè)計(第四版)》、清華大學(xué)出版社、2023年06月版附錄#include<iostream>#include<fstream>#include<string>#include<stdlib.h>#include<iomanip>//用于程序的暫停屬于c的運(yùn)用方法usingnamespacestd;//導(dǎo)入std命名空間中所有名稱。#definemax100;//設(shè)max為100classstudent//定義類student定義了程序中重要使用的成員{ public:student*next;//定義next指針 public:stringname;//姓名 longnum;//學(xué)號 intx,y,z,m;intlow,high;//數(shù)學(xué),語文,英語,政治 intAA;//總分 voidplay() { cout<<name<<"學(xué)生的學(xué)號是"<<num<<",數(shù)學(xué):"<<x<<",語文:"<<y<<",英語:"<<z<<",政治:"<<m<<",總分:"<<AA<<endl; }; student(stringsname,longsnum,intsx,intsy,intsz,intsm) { name=sname;num=snum;x=sx;y=sy;z=sz;m=sm; }};classcla//定義類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; deletestu; stu=p; } stu=0; }//這一部分是對函數(shù)的聲明 voidsadd();//添加 voidsremove();//刪除 voidsamend();//修改 voidssearch();//查詢 voidstaxis();//排序 voidssave();//保存 voidsload();//讀取 //排序函數(shù)的聲明 voidpxh(); voidpsx(); voidpyw(); voidpyy(); voidpzz(); voidpAA();//共有5個排序函數(shù) private:student*stu;//頭接點(diǎn)};voidcla::sadd()//此處構(gòu)造了添加學(xué)生函數(shù){ student*q; stringname1; longnum1; intx1,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=newstudent(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;} else { stu=q; } cout<<"輸入完畢"<<endl;}voidcla::sremove()//刪除{ system("cls"); intnum1; cout<<"\n**刪除學(xué)生信息**\n"; cout<<"請輸入想要刪除學(xué)生的學(xué)號:"; cin>>num1;//查找要刪除的結(jié)點(diǎn) student*p1,*p2; p1=stu; while(p1) { if(p1->num==num1) break; else { p2=p1; p1=p1->next; } }//刪除結(jié)點(diǎn)if(p1!=NULL)//若找到結(jié)點(diǎn),則刪除{ p1->play(); cout<<"擬定刪除嗎?[Y/N]"<<endl; charc; 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)。 deletep1; } else//若要刪除的結(jié)點(diǎn)是后續(xù)結(jié)點(diǎn) { p2->next=p1->next;//補(bǔ)缺 deletep1; } cout<<"找到學(xué)號為"<<num1<<"的學(xué)生,并刪除\n"; } else//未找到結(jié)點(diǎn) cout<<"未找到想要刪除的學(xué)生!\n"; }voidcla::samend()//修改{ system("cls");longnum1;cout<<"\n**修改學(xué)生信息**\n";cout<<"輸入要修改學(xué)生的學(xué)號";cin>>num1;//查找要修改的結(jié)點(diǎn) student*p1,*p2;p1=stu; while(p1) { if(p1->num==num1) break; else { p2=p1;p1=p1->next; } }if(p1!=NULL){ cout<<"學(xué)號是"<<num1<<"的學(xué)生的信息"<<endl; cout<<"姓名"<<p1->name<<"數(shù)學(xué)"<<p1->x<<"語文"<<p1->y<<"英語"<<p1->z<<"政治"<<p1->m<<endl; cout<<"請輸入修改后的信息:姓名數(shù)學(xué)成績語文成績英語政治成績"<<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;}voidcla::ssearch()//查詢{ system("cls"); cout<<"\n**查詢學(xué)生信息**\n"<<endl; cout<<"請輸入查詢方式:"<<endl; cout<<"1.按學(xué)號查詢"<<endl; cout<<"2.按姓名查詢"<<endl; cout<<"0.按科目分?jǐn)?shù)段查詢"<<endl; cout<<"3.返回"<<endl; charc; cin>>c; switch(c)//通過switch語句來選擇排序函數(shù){ case'0': { intx,y,z,m; longnum; charw; inthigh,low; cout<<"輸入要查找成績科目代表的數(shù)字(數(shù)語英政分別為a~d):"<<w<<endl; cin>>w;//查找要查詢的結(jié)點(diǎn) cout<<"最低分為:"<<endl; cin>>low; cout<<"最高分為:"<<endl; cin>>high; student*p1,*p2; 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<<"語文:"<<p1->y<<"英語:"<<p1->z<<"政治:"<<p1->m<<endl; } p2=p1; p1=p1->next; } cout<<"查詢完畢\n"; break; case'b': cout<<"語文成績在"<<low<<"-"<<high<<"分?jǐn)?shù)段的學(xué)生為:"<<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->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é):"<<p1->x<<"語文:"<<p1->y<<"英語:"<<p1->z<<"政治:"<<p1->m<<endl; } p2=p1; p1=p1->next; } cout<<"查詢完畢\n"; break; case'd': cout<<"政治成績在"<<low<<"-"<<high<<"分?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<<endl; } p2=p1; p1=p1->next; } cout<<"查詢完畢\n"; break; } break; } case'1': { longnum1; cout<<"要查詢的學(xué)號"<<endl; cin>>num1;//查找要查詢的結(jié)點(diǎn) student*p1,*p2; p1=stu; while(p1) { if(p1->num==num1) break; else { p2=p1;p1=p1->next; } }if(p1!=NULL) { cout<<"學(xué)號是"<<num1<<"的學(xué)生的信息"<<endl; cout<<"姓名:"<<p1->name<<"數(shù)學(xué):"<<p1->x<<"語文:"<<p1->y<<"英語:"<<p1->z<<"政治:"<<p1->m<<endl; cout<<"查詢完畢..."; } else//未找到接點(diǎn)cout<<"未找到!\n";//break; break; }case'2': { stringname1; cout<<"要查詢的學(xué)生姓名"<<endl; cin>>name1;//查找要查詢的結(jié)點(diǎn) student*p1,*p2; p1=stu; while(p1) { if(p1->name==name1) break; else { p2=p1; p1=p1->next; } } if(p1!=NULL) { cout<<name1<<"的學(xué)生的信息"<<endl; cout<<"學(xué)號:"<<p1->num<<"數(shù)學(xué):"<<p1->x<<"語文:"<<p1->y<<"英語:"<<p1->z<<"政治"<<p1->m<<endl; cout<<"查詢完畢..."; } else//未找到接點(diǎn) cout<<"未找到!\n"; break; }case'3':return;}}voidcla::pxh()//按學(xué)號排序函數(shù)的定義{ student*p1,*p2; intn; p1=stu;n=1; while(p1->next)//p1->next!=0 { n++;p1=p1->next; } cout<<"共有"<<n<<"條信息..."<<endl; inti; 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->next->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;do{ p1->play(); p1=p1->next; }while(p1);}voidcla::psx()//按數(shù)學(xué)成績排序函數(shù)的定義{ student*p1,*p2;intn; p1=stu; n=1; while(p1->next) { n++;p1=p1->next; } cout<<"共有"<<n<<"條信息..."<<endl; inti; 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->next=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; do{ p1->play(); p1=p1->next; } while(p1);} voidcla::pyw()//按語文成績排序函數(shù)的定義 { student*p1,*p2; intn; p1=stu; n=1; while(p1->next) { n++;p1=p1->next;} cout<<"共有"<<n<<"條信息..."<<endl; inti; 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(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; do { p1->play();p1=p1->next; } while(p1); } voidcla::pyy()//按英語成績排序函數(shù)的定義 { student*p1,*p2; intn; p1=stu; n=1; while(p1->next) { n++;p1=p1->next; } cout<<"共有"<<n<<"條信息..."<<endl; inti; 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; 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; do { p1->play(); p1=p1->next; } while(p1); } voidcla::pzz()//按政治成績排序函數(shù)的定義 { student*p1,*p2; intn; p1=stu; n=1; while(p1->next) { n++;p1=p1->next; } cout<<"共有"<<n<<"條信息..."<<endl; inti; 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->next->y){p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next;//互換 } } } p1=stu; do { p1->play();p1=p1->next; } while(p1); } voidcla::pAA()//按總分排序的定義 {student*p1,*p2;intn; p1=stu;n=1; while(p1->next) { n++;p1=p1->next; } cout<<"共有"<<n<<"條信息..."<<endl; inti; 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->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next;//互換 } } } p1=stu; do{p1->play(); p1=p1->next;} while(p1);}voidcla::staxis()//排序函數(shù)的選擇{ system("cls"); charc; cout<<"請選擇以何種方式排序:"<<endl; cout<<"1……以學(xué)號排序"<<endl; cout<<"2……以數(shù)學(xué)成績排序"<<endl; cout<<"3……以語文成績排序"<<endl; cout<<"4……以英語成績排序"<<endl; cout<<"5……以總分排序"<<endl; cout<<"6……返回"<<endl;cout<<"請選擇(1-7)"<<endl; cout<<"7……以政治成績排序"<<endl; cin>>c; switch(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; }}voidcla::ssave()//保存到文獻(xiàn) {system("cls"); charc; cout<<"\n保存學(xué)生信息,是否繼續(xù)?[Y/N]:"; cin>>c; if(toupper(c)!='Y')return; ofstr
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度建筑幕墻工程金屬幕墻清洗勞務(wù)分包合同樣本4篇
- 2025版智慧城市建設(shè)履約擔(dān)保合同模板4篇
- 2025年度二零二五年度木質(zhì)包裝材料銷售合同范本4篇
- 2025年度個人意外傷害保險借款合同范本3篇
- 2025版小程序功能開發(fā)授權(quán)合同模板3篇
- 2025年分期付款數(shù)碼產(chǎn)品購買合同
- 2025年機(jī)械設(shè)備加工合同
- 2025版外貿(mào)出口農(nóng)產(chǎn)品質(zhì)量安全合同3篇
- 2025年度環(huán)保認(rèn)證木制品采購合同范本4篇
- 二零二五年度知識產(chǎn)權(quán)留置擔(dān)保協(xié)議書4篇
- 中國末端執(zhí)行器(靈巧手)行業(yè)市場發(fā)展態(tài)勢及前景戰(zhàn)略研判報告
- 北京離婚協(xié)議書(2篇)(2篇)
- 2025中國聯(lián)通北京市分公司春季校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- Samsung三星SMARTCAMERANX2000(20-50mm)中文說明書200
- 2024年藥品質(zhì)量信息管理制度(2篇)
- 2024年安徽省高考地理試卷真題(含答案逐題解析)
- 廣東省廣州市2024年中考數(shù)學(xué)真題試卷(含答案)
- 內(nèi)審檢查表完整版本
- 3級人工智能訓(xùn)練師(高級)國家職業(yè)技能鑒定考試題及答案
- 孤殘兒童護(hù)理員技能鑒定考試題庫(含答案)
- 瑤浴話術(shù)資料
評論
0/150
提交評論