版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)生成績(jī)管理系統(tǒng)要求用C+語言編寫學(xué)生成績(jī)管理系統(tǒng),要求能進(jìn)行添加刪除修改輸入輸出等的操作,并能使用面相對(duì)像原理對(duì)此系統(tǒng)進(jìn)行實(shí)現(xiàn)。學(xué)生成績(jī)管理系統(tǒng)分析:學(xué)生成績(jī)管理系統(tǒng)分為8個(gè)模塊,分別是:添加學(xué)生信息,輸出學(xué)生成績(jī),查找學(xué)生成績(jī),修改學(xué)生成績(jī),刪除學(xué)生成績(jī),學(xué)生成績(jī)排序,保存數(shù)據(jù)到文件和讀取文件中學(xué)生成績(jī)的模塊。學(xué)生成績(jī)管理系統(tǒng)結(jié)構(gòu): Main()函數(shù)Menu()函數(shù)Student()Add()Output()Find()Modify()Deleted()Sort()Save()Load()重載符號(hào)Student類私有成員:char name20; char sex5; int number
2、; int score3; int total; int average;公有函數(shù)各個(gè)子函數(shù)功能及其流程:1. 首先定義一個(gè)學(xué)生類Class Student;并定義其各個(gè)私有變量和公有函數(shù)Class Studentload重載Classaddoutputfinddeletemodifysave私有變量2. Student();構(gòu)造函數(shù),用于初始化學(xué)生類中的各個(gè)變量并記錄3. Add();函數(shù):用于添加學(xué)生信息的函數(shù)包括學(xué)號(hào)姓名成績(jī)等的內(nèi)容主函數(shù)main()菜單函數(shù)menu()選擇菜單中的選項(xiàng)添加學(xué)生信息調(diào)用Add()函數(shù)調(diào)用重載<<并添加信息4. Output();函數(shù):用于輸出學(xué)
3、生信息,包括學(xué)號(hào)姓名各科及總分平均成績(jī)主函數(shù)main()菜單函數(shù)menu()選擇菜單中的選項(xiàng)輸出學(xué)生信息調(diào)用Output()函數(shù)輸出學(xué)生信息5. Find();函數(shù):用于查找學(xué)生各項(xiàng)信息。主函數(shù)main()菜單函數(shù)menu()選擇菜單中的選項(xiàng)查找學(xué)生信息調(diào)用find()函數(shù)查找并輸出學(xué)生信息要求輸入學(xué)生姓名6. modify();函數(shù):用于修改學(xué)生各項(xiàng)信息。主函數(shù)main()菜單函數(shù)menu()選擇菜單中的選項(xiàng)修改學(xué)生信息調(diào)用modify()函數(shù)修改并保存學(xué)生信息要求輸入學(xué)生姓名7. delete();函數(shù):用于刪除學(xué)生信息。主函數(shù)main()菜單函數(shù)menu()選擇菜單中的選項(xiàng)刪除學(xué)生信息調(diào)
4、用delete()函數(shù)刪除學(xué)生信息要求輸入學(xué)生姓名8.sort();函數(shù):對(duì)學(xué)生各項(xiàng)信息進(jìn)行排序操作。主函數(shù)main()菜單函數(shù)menu()選擇菜單中的選項(xiàng)學(xué)生信息排序調(diào)用Sort()函數(shù)完成排序操作8. save()和load();函數(shù):將學(xué)生信息保存到文件中,并在需要的時(shí)候調(diào)用該文件將其中的學(xué)生信息顯示出來 主函數(shù)main()菜單函數(shù)menu()選擇菜單中的選項(xiàng)選保存或讀取調(diào)用load()函數(shù)文件讀取成功調(diào)用save()函數(shù)按要求輸入文件名文件保存成功9.“=”“<<”“>>”符號(hào)的重載:在各個(gè)函數(shù)處理數(shù)據(jù)過程中對(duì)這些的調(diào)用處理函數(shù)源代碼:此函數(shù)源代碼在Visual
5、C+6.0環(huán)境下編譯通過。具體如下:#include"iostream.h" #include"conio.h" #include"iomanip.h" #include"stdio.h" #include"string.h" #include"stdlib.h" #include"fstream.h" class student /定義學(xué)生類 char name20; /名字char sex5; /性別int number; /學(xué)號(hào)int score3;
6、 /分?jǐn)?shù)int total; /總分int average; /平均分 public: /公有成員student(); /學(xué)生構(gòu)造函數(shù),用于學(xué)生數(shù)據(jù)的初始化及保存學(xué)生數(shù)據(jù)void add(); /添加學(xué)生信息函數(shù)void output(); /輸出學(xué)生信息函數(shù)void find(); /查找學(xué)生數(shù)據(jù)函數(shù)void modify(); /修改學(xué)生信息函數(shù)void deleted(); /刪除學(xué)生信息函數(shù)void sort(); /排序函數(shù)void save(); /保存學(xué)生信息并寫入文件函數(shù)void load (); /打開寫有學(xué)生信息的文件的函數(shù)student & operator=(s
7、tudent & T); /重載“=”符號(hào)friend istream & operator >> (istream & scin, student &s1); /重載“>>”符號(hào)friend ostream & operator << (ostream & scout, student &s2); /重載“>>”符號(hào); student stu100; int n=0;void student:add() /添加函數(shù) char flag='Y' while(toupper(f
8、lag)='Y') cin>>stun; n+; cout<<" 要繼續(xù)添加嗎(y/n)" cin>>flag; if(toupper(flag)!='Y') if(toupper(flag)='N') break; else cout<<"錯(cuò)誤,請(qǐng)重輸:" cin>>flag; void student:output() /輸出函數(shù) if(n!=0) cout<<" -n" cout<<" n
9、umber name sex math C+ English total averagen" cout<<" - n" for(int t=0;t<n;t+) cout<<stut; getch(); void student:find() /查找函數(shù) int f3=0; char n120; student temp; cout<<" 輸入你要查找的人的姓名: " cin>>n1; for(int j=0;j<n;j+) if(strcmp(,n1)=0) temp
10、=stuj; f3=1; if(f3=0) cout<<"對(duì)不起,沒有你要查找的學(xué)生成績(jī)"<<endl; else cout<<" -n" cout<<" number name sex math C+ English total averagen" cout<<" - n" cout<<" "<<temp.number<<" "<<<<&
11、quot; "<<temp.sex<<" "<<temp.score0 <<" "<<temp.score1<<" "<<temp.score2<<" "<<temp.total<<" "<<temp.average<<endl; getch(); void student:modify() /修改函數(shù) int f4=0; int t; cha
12、r n250; cout<<" 輸入你要修改的人的姓名:" cin>>n2; for(int j=0;j<n;j+) if(strcmp(,n2)=0) t=j; f4=1; if(f4=0) cout<<"對(duì)不起,沒有你要修改的學(xué)生成績(jī)"<<endl; else cout<< "請(qǐng)輸入學(xué)號(hào): " cin>>stut.number; cout<< " 姓名: " cin>>; c
13、out<< " 性別 : " cin>>stut.sex; cout<< " 數(shù)學(xué)成績(jī): " cin>>stut.score0; cout<< " C+成績(jī): " cin>>stut.score1; cout<< " 英語成績(jī): " cin>>stut.score2; stut.total=stut.score0+stut.score1+stut.score2; stut.average=stut.total/3; co
14、ut<<" 修改成功 !"<<endl; getch(); void student:deleted() /刪除函數(shù) char n320; bool f5=0; char c; do cout<<"請(qǐng)輸入您要?jiǎng)h除的學(xué)生姓名:" cin>>n3; for(int i=0;i<n;i+) if(strcmp(n3,)=0) f5=1; n-; do stui=stui+1; i+; while(i<=n); if(f5=0) cout<<"您要求刪除的對(duì)象本來
15、就不存在!" cout<<"要繼續(xù)刪除嗎?(y/n)"<<endl; cin>>c; if(toupper(c)!='Y'&&toupper(c)!='N') cout<<"輸入指令錯(cuò)誤!請(qǐng)重新輸入Y或N!"<<endl; cin>>c; while(toupper(c)='Y'); getch(); void student:sort() /排序函數(shù) int i,j,k; student s3; for( i
16、=0;i<(n-1);i+) k=i; for(j=i+1;j<n;j+) if(stuj.average>stui.average)k=j; if(k!=i) s3=stui; stui=stuk; stuk=s3; cout<<"nn排序成功!nn" void student:save() /保存函數(shù) char filename120;cout<<"請(qǐng)輸入文件名: " cin>>filename1; ofstream fout(filename1,ios:app); if(!fout)cout&l
17、t;<"文件不能打開!"<<endl; else for(int i=0;i<n;i+) fout<<' '<<<<' '<<stui.sex<<' '<<stui.number<<' ' <<stui.score0<<' '<<stui.score1<<' '<<stui.score2<&
18、lt;' '<<stui.total<<' '<<stui.average<<' ' cout<<"保存成功!"<<endl; fout.close(); getch(); void student:load() /讀取函數(shù) char filename220; cout<<"請(qǐng)輸入你要讀取的文件名: " cin>>filename2; ifstream fin(filename2,ios:in); if(!fin
19、)cout<<"文件打不開 !"<<endl; else for(int i=0;i+,n=i-1) if(fin.eof()break; fin>>>>stui.sex>>stui.number >>stui.score0>>stui.score1>>stui.score2>>stui.total>>stui.average; cout<<"文件已讀取成功!"<<endl; fin.close
20、(); getch(); student & student:operator=(student & T) /重載= strcpy(name,T.name); strcpy(sex,T.sex); number=T.number; for(int i=0;i<3;i+)scorei=T.scorei; total=T.total; average=T.average; return ( * this ); ostream & operator << (ostream & scout, student &s2) /重載<< c
21、out<<setw(6)<<s2.number<<setw(10)<<<<setw(8)<<s2.sex<<setw(8)<<s2.score0 <<setw(8)<<s2.score1<<setw(10)<<s2.score2<<setw(10)<<s2.total<<setw(8)<<s2.average<<endl; return scout; istream &
22、operator >> (istream & scin,student &s1) /重載>> cout<< " t學(xué)號(hào):" scin>>s1.number; cout<< " t姓名:" scin>>; cout<< " t性別 :" scin>>s1.sex; cout<< " t數(shù)學(xué)成績(jī):" scin>>s1.score0; cout<< "
23、 tC+成績(jī):" scin>>s1.score1; cout<< " t英語成績(jī):" scin>>s1.score2; s1.total=s1.score0+s1.score1+s1.score2; s1.average=s1.total/3; return scin; student:student() /構(gòu)造函數(shù) strcpy(name," "); strcpy(sex," "); number=0; for(int i=0;i<3;i+)scorei=0; total=0; average=0; void menu() /菜單函數(shù) cout<<"nnn學(xué)生成績(jī)管理系統(tǒng)主菜單 "<<endl; cout<<
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年水泥買賣合同(含合同變更和補(bǔ)充條款)
- 2024年度綠色建筑設(shè)計(jì)與施工合作協(xié)議書3篇
- 學(xué)困生轉(zhuǎn)化工作計(jì)劃
- 小學(xué)校本教研活動(dòng)計(jì)劃
- 電話銷售業(yè)務(wù)員工作計(jì)劃
- 勞動(dòng)合同樣板
- 公司員工自我鑒定
- 制定護(hù)士的年度工作計(jì)劃
- 政府公共關(guān)系(第二版)課件 第6章 政府的公眾對(duì)象與輿論環(huán)境
- 經(jīng)典國(guó)學(xué)教學(xué)計(jì)劃
- 2024-2030年中國(guó)硅肥行業(yè)規(guī)模分析及投資前景研究報(bào)告
- 電網(wǎng)行業(yè)工作匯報(bào)模板22
- 2024年度跨境電商平臺(tái)承包經(jīng)營(yíng)合同3篇
- 2025年上半年人民日?qǐng)?bào)社招聘應(yīng)屆高校畢業(yè)生85人筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 山東省臨沂市2023-2024學(xué)年高二上學(xué)期期末考試生物試題 含答案
- 2024-2025學(xué)年一年級(jí)數(shù)學(xué)上冊(cè)期末樂考非紙筆測(cè)試題(二 )(蘇教版2024秋)
- 辦公樓電氣改造施工方案
- 浙江省衢州市2023-2024學(xué)年高一上學(xué)期期末英語試題(含答案)3
- 上學(xué)期高二期末語文試卷(含答案)
- 超齡員工用工免責(zé)協(xié)議書
- 《雁門太守行》課件
評(píng)論
0/150
提交評(píng)論