版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
word文檔可自由復(fù)制編輯《C++程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告(2012—2013學(xué)年第二學(xué)期)題目:學(xué)生成績信息管理系統(tǒng)專業(yè):信息管理與信息系統(tǒng)班級:姓名學(xué)號:指導(dǎo)教師:word文檔可自由復(fù)制編輯一、題目:學(xué)生成績管理系統(tǒng)二、程序設(shè)計(jì)要求:(1)要求用Visual
C++語言來實(shí)現(xiàn)一個簡單的學(xué)生成績管理系統(tǒng),該系統(tǒng)完成之后,基本上要能夠無錯運(yùn)行,能達(dá)到學(xué)生成績管理系統(tǒng)的基本要求。(2)各個功能分別使用函數(shù)來完成,主函數(shù)和各個函數(shù)分別存放在不同的.CPP文件中,要求使用頭文件。(3)準(zhǔn)備系統(tǒng)模擬的數(shù)據(jù),不得少于10條。(4)成績管理程序至少應(yīng)具備以下功能:1)輸入:學(xué)生的基本信息,包括學(xué)號.姓名.性別.籍貫.VisualC++成績.英語成績.物理成績等;2)計(jì)算:每個學(xué)生的總成績.平均成績.所有學(xué)生單科的平均成績,找出總成績和單科成績最高的學(xué)生并輸出;3)查詢:可以按學(xué)號.姓名.
Visual
C++成績查詢4)排序:可以按學(xué)號.姓名.
Visual
C++成績.英語成績.物理成績.總成績.平均成績等進(jìn)行排序并輸出;5)刪除:刪除某條記錄;6)按學(xué)分績點(diǎn)計(jì)算辦法計(jì)算每個學(xué)生學(xué)分績點(diǎn),并從高到低輸出;7)按獎學(xué)金評定辦法,從特等開始輸出獲得獎學(xué)金學(xué)生名單及其成績與績點(diǎn);8)按三好學(xué)生評定辦法,輸出三好學(xué)生名單;9)幫助和關(guān)于;10)退出:退出整個系統(tǒng)的運(yùn)行。三、程序的運(yùn)行(1)進(jìn)入系統(tǒng)(2)系統(tǒng)選擇界面(3)管理系統(tǒng)的運(yùn)行1、增加學(xué)生成績2、顯示學(xué)生成績3、排序統(tǒng)計(jì)成績4、查找學(xué)生成績5、刪除學(xué)生成績6、修改學(xué)生成績7、獲獎學(xué)金學(xué)生8、查看三好學(xué)生9、幫助與關(guān)于安全退出系統(tǒng)四、心得與體會在此次的課程設(shè)計(jì)的活動中,我大大加強(qiáng)了自己的動手能力,更進(jìn)一步的學(xué)習(xí)了C++的編程的方面的學(xué)習(xí),熟練了自己的編程技巧,這次課程設(shè)計(jì),提高了我獨(dú)立分析解決問題的能力和培養(yǎng)了我的創(chuàng)新精神。五、程序的編寫#include<iostream>#include<stdlib.h>#include<fstream>#include<string.h>#include<conio.h>//用getch();usingnamespacestd;//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌classStudent{public: charname[20];charId[20]; charsex[10]; charorigin[30];intCnum;//C課程得分intEnum;//英語課程得分 intPnum;//物理課程得分intsum;//個人總分 floataverage;//個人平均分 floatPoints;//個人學(xué)分積點(diǎn)Student*Next;voidInput() { system("cls"); cout<<"請輸入學(xué)生的姓名:"; cin>>name;cout<<"請輸入學(xué)生的學(xué)號:"; cin>>Id; cout<<"請輸入學(xué)生的性別:"; cin>>sex; cout<<"請輸入學(xué)生的籍貫:"; cin>>origin;cout<<"請輸入C++課程的成績:"; cin>>Cnum;cout<<"請輸入英語課程的成績:"; cin>>Enum;cout<<"請輸入物理課程的成績:"; cin>>Pnum;sum=Cnum+Enum+Pnum; average=sum/3; Points=(Cnum+Enum+Pnum)/10-15; } voidReadFile(istream&in) { in>>name>>Id>>sex>>origin>>Cnum>>Enum>>Pnum>>sum>>average>>Points; }voidShow() {cout<<"姓名:"<<name<<endl; cout<<"學(xué)號:"<<Id<<endl; cout<<"性別:"<<sex<<endl; cout<<"籍貫:"<<origin<<endl; cout<<"C++:"<<Cnum<<endl;cout<<"英語:"<<Enum<<endl; cout<<"物理:"<<Pnum<<endl; cout<<"總成績:"<<sum<<endl; cout<<"平均成績:"<<average<<endl; cout<<"學(xué)分積點(diǎn):"<<Points<<endl; cout<<"\n\n"; }};//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌classStudentmassage{public: Studentmassage(); ~Studentmassage();voidShowMenu();voidFind(); voidPoint();voidSave();voidModifyItem();voidRemoveItem();voidSwap(Student*,Student*);voidSort();intListCount(); voidDisplay() { inta=0,b=0,c=0,x=0,A,B,C,SS=0,CC=0,EE=0,PP=0; charxa[20],xb[20],xc[20],xd[20]; system("cls"); Student*p; for(p=Head->Next;p!=End;p=p->Next) { p->Show(); a+=p->Cnum; b+=p->Enum; c+=p->Pnum; x++; if(SS<p->sum) { SS=p->sum; strcpy(xa,p->name); } if(CC<p->Cnum) { CC=p->Cnum; strcpy(xb,p->name); } if(EE<p->Enum) { EE=p->Enum; strcpy(xc,p->name); } if(PP<p->Pnum) { PP=p->Pnum; strcpy(xd,p->name); } } A=a/x; B=b/x; C=c/x; cout<<endl; cout<<"所有學(xué)生的C++平均成績?yōu)?"<<A<<'\n'<<endl; cout<<"所有學(xué)生的英語平均成績?yōu)?"<<B<<'\n'<<endl; cout<<"所有學(xué)生的物理平均成績?yōu)?"<<C<<"\n\n\n"<<endl; cout<<"總分最高的學(xué)生為:"<<xa<<"\t\t總分為:"<<SS<<'\n'<<endl; cout<<"C++分?jǐn)?shù)最高的學(xué)生為:"<<xb<<"\tC++分?jǐn)?shù)為:"<<CC<<'\n'<<endl; cout<<"英語分?jǐn)?shù)最高的學(xué)生為:"<<xc<<"\t英語分?jǐn)?shù)為:"<<EE<<'\n'<<endl; cout<<"物理分?jǐn)?shù)最高的學(xué)生為:"<<xd<<"\t物理分?jǐn)?shù)為:"<<PP<<'\n'<<endl; cout<<"\n按任意鍵繼續(xù).."; getch(); } voidScholarship() { intM=10; charMM[20]; Student*p; system("cls"); cout<<"獲得獎學(xué)金的學(xué)生如下:"<<"\n\n\n"; for(p=Head->Next;p!=End;p=p->Next) { if(M<=p->Points) { strcpy(MM,p->name); cout<<MM<<":"<<"\n\t"<<"C++成績:"<<p->Cnum<<"\t\t"<<"英語成績:"<<p->Enum<<"\t\t"; cout<<"物理成績:"<<p->Pnum<<"\t\t\t"<<"總成績:"<<p->sum<<"\t\t"<<"平均成績:"; cout<<p->average<<"\t\t"<<"學(xué)分積點(diǎn):"<<p->Points<<"\n\n"; } } cout<<"按任意鍵繼續(xù).."<<endl; getch(); } voidmerit() { charSH[20]; Student*p; system("cls"); cout<<"三好學(xué)生的名單如下:"<<"\n\n\n"; for(p=Head->Next;p!=End;p=p->Next) { if(p->Cnum>=80&&p->Enum>=80&&p->Pnum>=80) { strcpy(SH,p->name); cout<<"\t\t"<<SH<<endl; } } cout<<"按任意鍵繼續(xù).."; getch(); }voidAddItem() { End->Input();End->Next=newStudent;End=End->Next;cout<<"\n添加成功!"<<endl;cout<<"\n按任意鍵繼續(xù)..";getch(); } voidHelp() { system("cls"); cout<<"幫助:\n\n\t該系統(tǒng)是C++學(xué)生成績管理系統(tǒng),輸入一些學(xué)生信息及考試成績,"; cout<<"可以相應(yīng)的顯示出學(xué)生的信息,各科成績,總成績,平均成績,學(xué)分積點(diǎn)等。"; cout<<"通過輸入、排序、刪除等功能,可以任意的對學(xué)生的信息加以變動。"; cout<<"在主頁面輸入對應(yīng)的數(shù)字,可以對不同的選項(xiàng)進(jìn)行操作。";cout<<"\n\n\n\n"; cout<<"關(guān)于:\n\n\t系統(tǒng)名稱:學(xué)生成績管理系統(tǒng)\n\n\t制作人:袁永國1240407128"; cout<<"\n\n\n"; cout<<"按任意鍵繼續(xù).."; getch(); }private: Student*Head,*End;ifstreamin;ofstreamout;Student*FindItem(char*name) { for(Student*p=Head;p->Next!=End;p=p->Next) if(!strcmp(p->Next->name,name))returnp; returnNULL; } Student*FindID(char*Id) { for(Student*p=Head;p->Next!=End;p=p->Next) if(!strcmp(p->Next->Id,Id))returnp; returnNULL; } Student*FindSex(char*sex) { for(Student*p=Head;p->Next!=End;p=p->Next) if(!strcmp(p->Next->sex,sex))returnp; returnNULL; } Student*FindOrigin(char*origin) { for(Student*p=Head;p->Next!=End;p=p->Next) if(!strcmp(p->Next->origin,origin))returnp; returnNULL; }};//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌構(gòu)造函數(shù)﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage::Studentmassage(){ Head=newStudent;Head->Next=newStudent;End=Head->Next;in.open("sort.txt"); if(!in) cout<<"這是一個新系統(tǒng),無學(xué)生信息。請先輸入。"<<endl; else { while(!in.eof()) { End->ReadFile(in); if(End->name[0]=='\0')break; End->Next=newStudent; End=End->Next; } in.close(); cout<<"\t\t讀取學(xué)生信息成功!"<<endl; }}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析構(gòu)函數(shù)﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage::~Studentmassage(){ Save(); for(Student*temp;Head->Next!=End;) { temp=Head->Next; Head->Next=Head->Next->Next; deletetemp; } deleteHead,End;}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜單﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::ShowMenu(){ cout<<"------------------<<學(xué)生成績管理系統(tǒng)>>------------------"<<endl; cout<<"****************************************************************************"<<endl; cout<<"$1.增加學(xué)生成績$"<<endl; cout<<"$2.顯示學(xué)生成績$"<<endl; cout<<"$3.排序統(tǒng)計(jì)成績$"<<endl; cout<<"$4.查找學(xué)生成績$"<<endl; cout<<"$5.刪除學(xué)生成績$"<<endl; cout<<"$6.修改學(xué)生信息$"<<endl; cout<<"$7.獲獎學(xué)金學(xué)生$"<<endl; cout<<"$8.查看三好學(xué)生$"<<endl; cout<<"$9.幫助與關(guān)于$"<<endl; cout<<"$0.安全退出系統(tǒng)$"<<endl; cout<<"****************************************************************************"<<endl; cout<<"\n\t\t\n\t\t請選擇:";}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函數(shù)﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::Find(){ system("cls"); charname[20],Id[10]; intx; Student*p=NULL; cout<<"\n\t\t*********************************\n"; cout<<"\t\t※1.按學(xué)生的姓名查找\n\t\t※2.按學(xué)生學(xué)號查找"; cout<<"\n\t\t*********************************\n請選擇:"; cin>>x; switch(x) { case1: { cout<<"請輸入要查找的學(xué)生的姓名:";cin>>name; if(p=FindItem(name)) { p->Next->Show(); cout<<"\n按任意鍵繼續(xù).."; getch(); } else { cout<<"沒有找到該姓名的學(xué)生!"<<'\n'<<endl; cout<<"\n按任意鍵繼續(xù).."; getch(); } }break; case2: { cout<<"\t\t請輸入要查找的學(xué)生的學(xué)號:";cin>>Id; if(p=FindID(Id)) { p->Next->Show(); cout<<"\n按任意鍵繼續(xù).."; getch(); } else { cout<<"沒有找到該學(xué)好的學(xué)生!"<<'\n'<<endl; cout<<"\n按任意鍵繼續(xù).."; getch(); } }break; }}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::ModifyItem()//修改信息{ system("cls"); charname[20]; Student*p=NULL; cout<<"請輸入要修改的人的姓名:";cin>>name; if(p=FindItem(name)) { cout<<"已找到學(xué)生的信息,請輸入新的信息!"<<endl; p->Next->Input(); cout<<"\n修改成功!"<<endl; cout<<"\n按任意鍵繼續(xù).."; getch(); } else { cout<<"\n沒有找到!"<<endl; cout<<"\n按任意鍵繼續(xù).."; getch(); }}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌刪除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::RemoveItem()//刪除信息{ system("cls"); charname[20]; Student*p=NULL,*temp=NULL; cout<<"請輸入要刪除的學(xué)生的姓名:"<<endl;cin>>name; if(p=FindItem(name)) { temp=p->Next; p->Next=p->Next->Next; deletetemp; cout<<"\n刪除成功!"<<endl; cout<<"\n按任意鍵繼續(xù).."; getch(); } else { cout<<"\n沒有找到!"<<endl; cout<<"\n按任意鍵繼續(xù).."; getch(); }}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::Swap(Student*p1,Student*p2)//交換兩個combox變量的數(shù)據(jù)域{ Student*temp=newStudent; strcpy(temp->name,p1->name); strcpy(temp->Id,p1->Id); strcpy(temp->sex,p1->sex); strcpy(temp->origin,p1->origin); temp->Cnum=p1->Cnum; temp->Enum=p1->Enum; temp->Pnum=p1->Pnum; temp->sum=p1->sum; temp->average=p1->average; temp->Points=p1->Points; strcpy(p1->name,p2->name); strcpy(p1->Id,p2->Id); strcpy(p1->sex,p2->sex); strcpy(p1->origin,p2->origin); p1->Cnum=p2->Cnum; p1->Enum=p2->Enum; p1->Pnum=p2->Pnum; p1->sum=p2->sum; p1->average=p2->average; p1->Points=p2->Points; strcpy(p2->name,temp->name); strcpy(p2->Id,temp->Id); strcpy(p2->sex,temp->sex); strcpy(p2->origin,temp->origin); p2->Cnum=temp->Cnum; p2->Enum=temp->Enum; p2->Pnum=temp->Pnum; p2->sum=temp->sum; p2->average=temp->average; p2->Points=temp->Points;}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌intStudentmassage::ListCount()//統(tǒng)計(jì)當(dāng)前鏈表的記錄總數(shù),返回一個整數(shù){ if(!Head) return0; intn=0; for(Student*p=Head->Next;p!=End;p=p->Next) { n++; } returnn;}//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌voidStudentmassage::Sort()//對當(dāng)前鏈表進(jìn)行排序{ cout<<"Sorting..."<<endl; Student*p=NULL,*p1=NULL,*k=NULL; intn=Studentmassage::ListCount(); if(n<2) return; intT; system("cls"); cout<<"請選擇:\n\n\n\t\t\t1.按總成績排序\n\t\t\t2.按VC++成績排序\n\t\t\t3.按英語成績排序\n"; cout<<"\t\t\t4.按物理成績排序\n\t\t\t5.按平均成績排序\n\t\t\t6.按學(xué)分積點(diǎn)排序"<<"\n\n"; cin>>T; switch(T) { case1: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->sum>k->sum) { Studentmassage::Swap(k,p); } } cout<<"按總成績排序完成!請?jiān)陲@示學(xué)生成績中查看"<<endl; cout<<"按任意鍵繼續(xù).."; getch(); return; }break; case2: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->Cnum>k->Cnum) { Studentmassage::Swap(k,p); } } cout<<"按VC++成績排序完成!請?jiān)陲@示學(xué)生成績中查看"<<endl; cout<<"按任意鍵繼續(xù).."; getch(); return; }break; case3: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->Enum>k->Enum) { Studentmassage::Swap(k,p); } } cout<<"按英語成績排序完成!請?jiān)陲@示學(xué)生成績中查看"<<endl; cout<<"按任意鍵繼續(xù).."; getch(); return; }break; case4: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->Pnum>k->Pnum) { Studentmassage::Swap(k,p); } } cout<<"按物理成績排序完成!請?jiān)陲@示學(xué)生成績中查看"<<endl; cout<<"按任意鍵繼續(xù).."; getch(); return; }break; case5: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->average>k->average) { Studentmassage::Swap(k,p); } } cout<<"按平均成績排序完成!請?jiān)陲@示學(xué)生成績中查看"<<endl; cout<<"按任意鍵繼續(xù).."; getch(); return; }break; case6: { for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) { if(p->Points>k->Points) { Studentmassage::Swap(k,p)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年江蘇省連云港市中考地理試題含答案
- 2014-2016年中國可穿戴設(shè)備市場深度調(diào)查報(bào)告
- 2024至2030年中國密封保溫材料數(shù)據(jù)監(jiān)測研究報(bào)告
- 維護(hù)心理健康走好軍旅人生路副本圖文
- 2024至2030年中國塑膠噴嘴數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024至2030年中國吊鉤式拋丸機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國單橋探頭行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國中式橡塑大風(fēng)鏡行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年中國間三氟甲基芐醇市場調(diào)查研究報(bào)告
- 大學(xué)-建筑材料課件下載-墻體材料氣硬性膠凝材料
- 咖啡廳室內(nèi)設(shè)計(jì)PPT
- 北師大一年級數(shù)學(xué)上冊期中測試卷及答案
- 小學(xué)二年級上冊美術(shù)課件-5.17漂亮的鐘-嶺南版(14張)ppt課件
- 蘇教版六年級上冊音樂教案全冊
- 江蘇某市政道路地下通道工程深基坑支護(hù)及土方開挖施工專項(xiàng)方案(附圖)
- 靜物構(gòu)圖(課堂PPT)
- 生物校本教材—生活中的生物科學(xué)
- 北京市建筑施工起重機(jī)械設(shè)備管理的若干規(guī)定
- 新建時速200公里客貨共線鐵路設(shè)計(jì)暫行規(guī)定
- 邊溝、排水溝、截水溝施工方案(完整版)
- 實(shí)行特殊工時工作制實(shí)施方案
評論
0/150
提交評論