版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
綜合程序課程設(shè)計(jì)說明書課程設(shè)計(jì)名稱:綜合程序課程設(shè)計(jì)課程設(shè)計(jì)題目:學(xué)生成績管理系統(tǒng)學(xué)院名稱:信息工程學(xué)院專業(yè):電子信息工程班級(jí):學(xué)號(hào):姓名:評(píng)分:教師:2023年3月3日由每位學(xué)生填寫、由任教教師保存待查摘要該學(xué)生成績管理系統(tǒng)可以對(duì)學(xué)生信息進(jìn)行保存、查詢、修改、排序等基本功能,對(duì)學(xué)生成績進(jìn)行了有效且便利的管理。本次是運(yùn)用計(jì)算機(jī)中的VC6.0綠色版軟件來完畢,運(yùn)用了不同功能模塊程序?qū)崿F(xiàn)所需功能。成績管理系統(tǒng)讓老師和同學(xué)甚至家長們更加直觀方便的了解到學(xué)生們的成績,給生活帶來不少便利,也增長了自身的實(shí)踐動(dòng)手能力。關(guān)鍵詞:增長刪除、修改排序、查詢保存、管理系統(tǒng)、成績查詢。目錄TOC\o"1-3"\h\u15109一、設(shè)計(jì)規(guī)定 4228521.基本規(guī)定 4173342.提高規(guī)定 48511二、實(shí)驗(yàn)內(nèi)容 411447三、設(shè)計(jì)的原理 628165四、系統(tǒng)組成 720264五、概要設(shè)計(jì) 830821.信息維護(hù) 8205032.信息查詢 8103413.信息排序: 982494、大約程序程序流程圖 919053六、具體設(shè)計(jì) 107076七、調(diào)試結(jié)果與分析 12168141、調(diào)試方法與技巧 1249782、調(diào)試結(jié)果 1224495結(jié)論 1620237參考文獻(xiàn) 1631943附錄 17一、設(shè)計(jì)規(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é)號(hào)語文數(shù)學(xué)英語政治張明明0167788290李成友0278918880張輝燦0368825687王露0456457767陳東明0567384770……請(qǐng)用C編寫一系統(tǒng),實(shí)現(xiàn)學(xué)生信息管理,軟件的入口界面應(yīng)涉及如下幾個(gè)方面:(一)功能規(guī)定:(1)信息維護(hù):規(guī)定:學(xué)生信息數(shù)據(jù)要以文獻(xiàn)的形式保存,能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊涉及子模塊有:增長學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息(2)信息查詢:規(guī)定:查詢時(shí)可實(shí)現(xiàn)按姓名查詢、按學(xué)號(hào)查詢(3)成績記錄:規(guī)定:A輸入任意的一個(gè)課程名(如數(shù)學(xué))和一個(gè)分?jǐn)?shù)段(如60--70),記錄出在此分?jǐn)?shù)段的學(xué)生情況。(4)排序:能對(duì)用戶指定的任意課程名,按成績升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果(使用表格的形式顯示排序后的輸出結(jié)果)(使用多種方法排序者,加分)(二)其它規(guī)定:(1)使用C或C++語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀(2)采用文本菜單界面(3)學(xué)生可增長新功能模塊三、設(shè)計(jì)的原理用數(shù)組或鏈表數(shù)據(jù)結(jié)構(gòu)完畢一個(gè)學(xué)生成績管理系統(tǒng),此系統(tǒng)的具體功能規(guī)定如下:(1)信息維護(hù)功能1、增長學(xué)生信息:輸入學(xué)生學(xué)號(hào)、姓名、性別、語文、數(shù)學(xué)、英語、政治四門課成績,可插入一個(gè)或多個(gè)學(xué)生信息到當(dāng)前編輯的班級(jí)數(shù)據(jù)中。2、刪除學(xué)生信息:可按學(xué)號(hào)或者姓名刪除一個(gè)或多個(gè)學(xué)生信息。3、修改學(xué)生信息:可按學(xué)號(hào)或者姓名修改學(xué)生語文、數(shù)學(xué)、英語、政治四門課任一門及多門科目成績。4、學(xué)生信息每一班存為一個(gè)數(shù)據(jù)文獻(xiàn),數(shù)據(jù)文獻(xiàn)可在程序中編輯和重新保存。5、用戶輸入學(xué)生信息可隨時(shí)保存數(shù)據(jù)文獻(xiàn)。(2)信息查詢功能1、按某一學(xué)科分?jǐn)?shù)段查詢2、按學(xué)號(hào)查詢學(xué)生信息;3、按姓名查詢學(xué)生信息;(3)排序功能1、按學(xué)號(hào)輸出一個(gè)班學(xué)生信息:學(xué)號(hào)、姓名、語文、數(shù)學(xué)、英語、政治成績和總成績到屏幕和文獻(xiàn)。2、成績排名按總成績或各科成績排序輸出學(xué)生信息四、系統(tǒng)組成系統(tǒng)以如下幾個(gè)模塊組成:(一)學(xué)生信息增長及修改、刪除模塊增長學(xué)生的信息:學(xué)號(hào)、姓名、語文、數(shù)學(xué)、英語、政治四門成績。當(dāng)然也可以進(jìn)行修改和刪除。(二)文獻(xiàn)保存功能模塊可以將學(xué)生信息存為一個(gè)數(shù)據(jù)文獻(xiàn)。用戶輸入的學(xué)生信息可隨時(shí)保存數(shù)據(jù)文獻(xiàn)。(三)查詢功能模塊在此模塊里,用戶可實(shí)現(xiàn)以下操作:1、按某科目分?jǐn)?shù)段查詢學(xué)生信息;2、按學(xué)號(hào)查詢學(xué)生信息;3、按姓名查詢學(xué)生信息;(四)文獻(xiàn)讀取功能模塊在此模塊中,用戶可以裝入文獻(xiàn)中所有學(xué)生的信息。(程序中為data.txt文獻(xiàn))排序模塊在此模塊中,可以通過學(xué)號(hào)或者各類科目成績或總分進(jìn)行排序。程序開頭與結(jié)尾需要定義兩個(gè)類和一主函數(shù),使得程序具有完整性。五、概要設(shè)計(jì)系統(tǒng)功能可分為三大類:信息維護(hù)、信息查詢已經(jīng)信息排序。如下三個(gè)系統(tǒng)層次結(jié)構(gòu)圖如圖所示:文獻(xiàn)保存文獻(xiàn)讀取1.信息維護(hù)文獻(xiàn)保存文獻(xiàn)讀取信息維護(hù)信息維護(hù)信息增長修改信息信息增長修改信息刪除信息刪除信息圖1.1信息維護(hù)功能概要圖2.信息查詢按學(xué)號(hào)查詢信息查詢按學(xué)號(hào)查詢信息查詢按姓名查詢按姓名查詢分?jǐn)?shù)段查詢成績記錄分?jǐn)?shù)段查詢成績記錄圖1.2信息維護(hù)功能概要圖排序3.信息排序:排序按各科成績排序按總分排序按各科成績排序按總分排序按學(xué)號(hào)排序按學(xué)號(hào)排序圖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è)計(jì)1、準(zhǔn)備工作:一方面,導(dǎo)入std命名空間中所有名稱,設(shè)max為100再準(zhǔn)備頭文獻(xiàn):#include<iostream>,#include<fstream>,#include<string>,#include<stdlib.h>,#include<iomanip>然后,定義兩個(gè)類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é)號(hào)是否與頭結(jié)點(diǎn)或后面的結(jié)點(diǎn)數(shù)據(jù)相同,若不同則用“stu=q;”增長學(xué)生信息。3、構(gòu)造sremove()刪除函數(shù)準(zhǔn)備工作如上(2)同樣,用while()函數(shù)找出要?jiǎng)h除的學(xué)生信息相應(yīng)結(jié)點(diǎn),若找到則刪除,在刪除之前要擬定是否刪除:“cout<<"擬定刪除嗎?[Y/N]"<<endl;”這里用if語句判斷用戶回答是“Y”還是“N”。刪除時(shí)也要分是刪除第一個(gè)結(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ù)有多個(gè)分支,這里都用選擇語句case來對(duì)不同的情況進(jìn)行編程。在這里只需邏輯清楚,語法沒有錯(cuò)誤就能完畢,但也要注意括號(hào)的搭配和break的使用。在用for語句時(shí)要注意循環(huán)次數(shù)不能過大,應(yīng)相應(yīng)學(xué)生的人數(shù)。6、構(gòu)造staxis()排序函數(shù)用case語句使輸入的1~7數(shù)字分別相應(yīng)函數(shù)pxh()(學(xué)號(hào)排序)、psx()(數(shù)學(xué))、pyw()(語文)、pyy()(英語)、pAA()(總分)、返回、pzz()(政治)。這些排序函數(shù)定義內(nèi)容幾乎同樣。一方面用for語句判斷n(信息條數(shù))為多少,假如頭結(jié)點(diǎn)大于第二個(gè)的頭結(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)營程序,啟動(dòng)調(diào)試。往往會(huì)出現(xiàn)以下幾種常見錯(cuò)誤。1case語句中內(nèi)容反復(fù),沒有用一函數(shù)替代,使程序過為繁瑣。2括號(hào)沒有匹配;3循環(huán)體的邏輯錯(cuò)誤;4case語句中缺少了break,沒有跳出循環(huán)。5錯(cuò)誤使用了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此時(shí)文獻(xiàn)的內(nèi)容按姓名查詢。圖2.2.13.按學(xué)號(hào)查詢。圖2.3.14、按成績查詢。圖2.4.15、成績排序。圖2.5.1學(xué)號(hào)排序圖2.5.2單科(數(shù)學(xué))成績排序圖2.5.3總分排序6、保存:圖2.6.17、讀取:圖2.7.18、退出:圖2.8.1結(jié)論雖然過程有些磕磕絆絆,但最后成績管理系統(tǒng)終于成功了。該系統(tǒng)可認(rèn)為大家?guī)順O大的便利,便于以后成績的有效管理。以后大家像成績排序,找出某個(gè)科目及格的學(xué)生也容易很多。該系統(tǒng)雖具有基本的功能,但還是存在一些局限性。例如增長刪除學(xué)生信息時(shí)不能在界面上自動(dòng)呈現(xiàn)增長或者刪除的結(jié)果,需要操作者手動(dòng)打開文獻(xiàn)或者通過排序來間接查看結(jié)果。這次課設(shè)讓大家學(xué)到了很多書本外的知識(shí),鍛煉了實(shí)踐操作的能力。不僅熟悉了VC6軟件,也讓大家知道,紙上談兵遠(yuǎn)遠(yuǎn)沒有自己動(dòng)手體驗(yàn)來的深刻。參考文獻(xiàn)1.黃維通,賈續(xù)涵、《VisualC++面對(duì)對(duì)象與可視化程序設(shè)計(jì)(第三版)》、清華大學(xué)出版社、2023年06月版2.譚浩強(qiáng)、《C語言程序設(shè)計(jì)(第四版)》、清華大學(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é)號(hào) intx,y,z,m;intlow,high;//數(shù)學(xué),語文,英語,政治 intAA;//總分 voidplay() { cout<<name<<"學(xué)生的學(xué)號(hào)是"<<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; }//這一部分是對(duì)函數(shù)的聲明 voidsadd();//添加 voidsremove();//刪除 voidsamend();//修改 voidssearch();//查詢 voidstaxis();//排序 voidssave();//保存 voidsload();//讀取 //排序函數(shù)的聲明 voidpxh(); voidpsx(); voidpyw(); voidpyy(); voidpzz(); voidpAA();//共有5個(gè)排序函數(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<<"請(qǐng)輸入學(xué)生的(中間用空格間隔)"<<endl; cout<<"姓名學(xué)號(hào)數(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é)號(hào)已存在,請(qǐng)重新輸入"<<endl; return;} while(t->next) { if(t->num==num1) { cout<<"學(xué)號(hào)已存在,請(qǐng)重新輸入"<<endl; return; } t=t->next; } t->next=q;} else { stu=q; } cout<<"輸入完畢"<<endl;}voidcla::sremove()//刪除{ system("cls"); intnum1; cout<<"\n**刪除學(xué)生信息**\n"; cout<<"請(qǐng)輸入想要?jiǎng)h除學(xué)生的學(xué)號(hào):"; cin>>num1;//查找要?jiǎng)h除的結(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ǎng)h除的結(jié)點(diǎn)是第一個(gè)結(jié)點(diǎn) { stu=p1->next;//將第二個(gè)結(jié)點(diǎn)往上推,成為頭結(jié)點(diǎn)。 deletep1; } else//若要?jiǎng)h除的結(jié)點(diǎn)是后續(xù)結(jié)點(diǎn) { p2->next=p1->next;//補(bǔ)缺 deletep1; } cout<<"找到學(xué)號(hào)為"<<num1<<"的學(xué)生,并刪除\n"; } else//未找到結(jié)點(diǎn) cout<<"未找到想要?jiǎng)h除的學(xué)生!\n"; }voidcla::samend()//修改{ system("cls");longnum1;cout<<"\n**修改學(xué)生信息**\n";cout<<"輸入要修改學(xué)生的學(xué)號(hào)";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é)號(hào)是"<<num1<<"的學(xué)生的信息"<<endl; cout<<"姓名"<<p1->name<<"數(shù)學(xué)"<<p1->x<<"語文"<<p1->y<<"英語"<<p1->z<<"政治"<<p1->m<<endl; cout<<"請(qǐng)輸入修改后的信息:姓名數(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<<"請(qǐng)輸入查詢方式:"<<endl; cout<<"1.按學(xué)號(hào)查詢"<<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é)成績?cè)?<<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<<"語文成績?cè)?<<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<<"英語成績?cè)?<<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<<"政治成績?cè)?<<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é)號(hào)"<<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é)號(hào)是"<<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é)號(hào):"<<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é)號(hào)排序函數(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)大于第二個(gè)的 { p2=p1->next; p1->next=p1->next->next; p2->next=p1;//頭結(jié)點(diǎn)互換 stu=p2;//下一個(gè)學(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)大于第二個(gè)的 { 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)大于第二個(gè)的 { 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)大于第二個(gè)的 { 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)大于第二個(gè)的 { 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)大于第二個(gè)的 { 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<<"請(qǐng)選擇以何種方式排序:"<<endl; cout<<"1……以學(xué)號(hào)排序"<<endl; cout<<"2……以數(shù)學(xué)成績排序"<<endl; cout<<"3……以語文成績排序"<<endl; cout<<"4……以英語成績排序"<<endl; cout<<"5……以總分排序"<<endl; cout<<"6……返回"<<endl;cout<<"請(qǐng)選擇(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度二零二五年度豪華別墅租賃定金及維護(hù)協(xié)議
- 二零二五年度理發(fā)店轉(zhuǎn)讓合同-附帶店鋪裝修及經(jīng)營策略指導(dǎo)
- 二零二五年度砂石料運(yùn)輸安全培訓(xùn)及應(yīng)急預(yù)案協(xié)議
- 基于大數(shù)據(jù)的小學(xué)數(shù)學(xué)教育分析
- 提升安保措施保障智慧旅游出行安全
- 專業(yè)育嬰師服務(wù)合同
- XX省重點(diǎn)水電工程擴(kuò)建項(xiàng)目合同2025
- 個(gè)人股權(quán)轉(zhuǎn)讓合同書
- 產(chǎn)品售后保養(yǎng)服務(wù)合同樣本
- 個(gè)人借款抵押存單合同范本
- 2024年公安機(jī)關(guān)理論考試題庫附答案【考試直接用】
- 課題申報(bào)參考:共同富裕進(jìn)程中基本生活保障的內(nèi)涵及標(biāo)準(zhǔn)研究
- 2025年浙江嘉興桐鄉(xiāng)市水務(wù)集團(tuán)限公司招聘10人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 食品企業(yè)如何做好蟲鼠害防控集
- 2025中國聯(lián)通北京市分公司春季校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 康復(fù)醫(yī)學(xué)科患者隱私保護(hù)制度
- 環(huán)保工程信息化施工方案
- 狂犬病暴露后預(yù)防處置
- 農(nóng)信社運(yùn)營主管述職報(bào)告【三篇】
- 48個(gè)國際音標(biāo)表(打印版)已整理
- 建標(biāo) 198-2022 城市污水處理工程項(xiàng)目建設(shè)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論