




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、#include<iostream.h>#include<fstream.h>#include<stdlib.h>#include<string.h>#include<stdio.h>class Stu /構建學生類public:friend void Input(Stu stud) ;friend void Statistic(Stu stud);friend void Lookup(Stu stud) ;friend void Modify(Stu stud) ;friend void Delete(Stu stud) ;frie
2、nd void Output(Stu stud) ;friend void Sort(Stu stud) ;friend void Insert(Stu stud) ;friend void Write(Stu stud,int n); friend int Read(Stu stud);private:char class_020;int num;char name8;float elec;float c_program;float media;float english;float math;float sport;float polity;float average;int order;
3、stud100;void Write(Stu stud,int n) /向文件中寫入數據fstream myFile;myFile.open("student.dat",ios:out|ios:binary);if(!myFile)cout<<"student.dat can't open!"<<endl;abort();int count=n;myFile<<count<<endl<<endl;for(int i=0;i<=count;i+)myFile<<studi
4、.class_0<<" "<<studi.num<<" "<<<<" "<<studi.elec<<" "<<studi.c_program<<" "<<studi.media<<" "<<studi.english<<" "<<studi.math<<&qu
5、ot; "<<studi.sport<<" "<<studi.polity<<" "<<studi.average<<endl; myFile.close();int Read(Stu stud) /從文件中讀數據 fstream myFile; myFile.open("student.dat",ios:in|ios:binary); if(!myFile)cout<<"student.dat can't open!&qu
6、ot;<<endl;abort(); int count; myFile.seekg(0); myFile>>count; for(int i=0;i<=count;i+) myFile>>studi.class_0>>studi.num>>>>studi.elec>>studi.c_program>>studi.media>>studi.english>>studi.math>>studi.sport>>studi.poli
7、ty>>studi.average; myFile.close(); return count ;void Input(Stu stud) /-輸入學生成績system("cls"); /*運行前清屏*/int i=0;int flag;char sign;cout<<endl<<"=>> 請輸入學生成績 <<="<<endl;while(sign!='n'&&sign!='N') /*判斷*/ cout<<"班級
8、:" /*交互輸入*/ cin>>studi.class_0; loop:cout<<"學號:" cin>>studi.num;int c=0;while(c<i)c+;if(studi.num=studi-c.num)cout<<" 你輸入的學號已經存在!請重新輸入。"<<endl;goto loop;cout<<"姓名:" cin>>; doflag=0; cout<<"電子技術成績:&qu
9、ot; cin>>studi.elec; if(studi.elec>100 |studi.elec<1) cout<<"對不起,請輸入1-100之間的數字!n" else flag=1;while(flag=0); do flag=0; cout<<"C+程序設計成績:" cin>>studi.c_program; if(studi.c_program>100 |studi.c_program<1) cout<<"對不起,請輸入1-100之間的數字!n&quo
10、t; else flag=1;while(flag=0); doflag=0;cout<<"多媒體技術成績:" cin>>studi.media; if(studi.media>100 |studi.media<1) cout<<"對不起,請輸入1-100之間的數字!n" else flag=1;while(flag=0); doflag=0; cout<<"大學英語成績:" cin>>studi.english; if(studi.english>100
11、|studi.english<1) cout<<"對不起,請輸入1-100之間的數字!n" else flag=1;while(flag=0); doflag=0;cout<<"高等數學成績:" cin>>studi.math; if(studi.math>100 |studi.math<1) cout<<"對不起,請輸入1-100之間的數字!n" else flag=1;while(flag=0); doflag=0; cout<<"大學體育成績
12、:" cin>>studi.sport; if(studi.sport>100 |studi.sport<1) cout<<"對不起,請輸入1-100之間的數字!n" else flag=1;while(flag=0); doflag=0; cout<<"馬克思主義政治經濟學成績:" cin>>studi.polity; if(studi.polity>100 |studi.polity<1) cout<<"對不起,請輸入1-100之間的數字!n&qu
13、ot; else flag=1;while(flag=0); studi.average=(studi.elec+studi.c_program+studi.media+studi.english+studi.math+studi.sport+studi.polity)/7; cout<<"平均分為:"<<studi.average<<endl; cout<<"=>提示:是否繼續寫入學生成績?(Y/N)" cin>>sign; /*輸入判斷*/ i+; Write(stud,i);void
14、 Statistic(Stu stud) /-統計學生數據 system("cls"); /*運行前清屏*/ int n=Read(stud);cout<<endl<<"=>> 輸出學生統計數據 <<="<<endl; cout<<"班級"<<"t"<<"學號"<<"t"<<" 姓名"<<"t"<&l
15、t;" 平均分"<<endl;for(int i=0;i<n;i+)cout<<studi.class_0<<"t"<<studi.num<<"t"<<<<"t"<<studi.average<<endl; system("pause"); void Lookup(Stu stud) /-查找學生成績 system("cls"); /*運行前清
16、屏*/ int n=Read(stud);int s; int i=0;cout<<endl<<"=>> 查找學生成績 <<="<<endl;cout<<"請輸入需要查找學生的學號:"<<endl; cin>>s; while(studi.num-s)!=0&&i<n) i+; /*查找判斷*/ if(i=n) cout<<"=>提示:對不起,無法找到該學生的信息!"<<endl; /*輸
17、入失敗信息*/ elsecout<<"-"<<endl; cout<<"班級:"<<studi.class_0<<endl; /*輸出該學生信息*/ cout<<"學號:"<<studi.num<<endl; cout<<"姓名:"<<<<endl; cout<<"電子技術:"<<studi.elec<<end
18、l; cout<<"C+程序設計:"<<studi.c_program<<endl; cout<<"多媒體技術:"<<studi.media<<endl; cout<<"大學英語:"<<studi.english<<endl; cout<<"高等數學:"<<studi.math<<endl; cout<<"大學體育:"<<stud
19、i.sport<<endl; cout<<"馬克思主義政治經濟學:"<<studi.polity<<endl; cout<<"平均分:"<<studi.average<<endl;void Modify(Stu stud) /-修改學生成績 system("cls"); /*運行前清屏*/ int n=Read(stud);int s; int i=0;cout<<endl<<"=>> 修改學生成績 <
20、;<="<<endl;cout<<"請輸入需要修改成績學生的學號:"<<endl; cin>>s; while(studi.num-s)!=0&&i<n) i+; /*查找判斷*/ if(i=n) cout<<"=>提示:對不起,無該學生的成績"<<endl; /*輸入失敗信息*/ elsecout<<"-該學生的信息-"<<endl; /*格式頭*/ cout<<"班級&q
21、uot;<<"t"<<"學號"<<"t"<<"姓名"<<"t"<<"電子"<<"t"<<"c+"<<"t"<<" 多媒體"<<"t"<<"英語"<<"t"<<"數
22、學"<<"t"<<"體育"<<"t"<<"政治"<<"t"<<"平均分"<<endl;cout<<"-"<<endl; cout<<studi.class_0<<"t"<<studi.num<<"t"<<<<&
23、quot;t"<<studi.elec<<"t"<<studi.c_program<<"t"<<studi.media<<"t"<<studi.english<<"t"<<studi.math<<"t"<<studi.sport<<"t"<<studi.polity<<"t"<
24、;<studi.average<<endl;cout<<"請重新輸入該學生的信息"<<endl;cout<<"班級:"<<endl; /*交互輸入*/ cin>>studi.class_0; cout<<"學號:"<<endl; cin>>studi.num; cout<<"姓名:"<<endl; cin>>; cout<<"
25、電子技術成績:"<<endl; cin>>studi.elec; cout<<"C+程序設計成績:"<<endl; cin>>studi.c_program; cout<<"多媒體技術成績:"<<endl; cin>>studi.media; cout<<"大學英語成績:"<<endl; cin>>studi.english; cout<<"高等數學成績:"<
26、;<endl; cin>>studi.math; cout<<"大學體育成績:"<<endl; cin>>studi.sport; cout<<"馬克思主義政治經濟學成績:"<<endl; cin>>studi.polity; studi.average=(studi.elec+studi.c_program+studi.media+studi.english+studi.math+studi.sport+studi.polity)/7; cout<<&
27、quot;平均分為:"<<studi.average<<endl; char c; cout<<"是否保存數據?(y/n)"<<endl; cin>>c; if(c!='n'&&c!='N') Write(stud,n);void Delete(Stu stud) /-按學號查找,刪除學生信息 system("cls"); /*運行前清屏*/ int n=Read(stud);int s; int i=0,j;cout<<en
28、dl<<"=>> 刪除學生成績 <<="<<endl;cout<<"請輸入需要刪除學生的學號:"<<endl; /*交互式問尋*/ cin>>s; while(studi.num-s)!=0&&i<n) i+; /*查找判斷*/ if(i=n) cout<<"=>提示:對不起,無法找到該學生"<<endl; /*返回失敗信息*/ elsefor(j=i;j<n-1;j+) /*刪除操作*/ st
29、rcpy(studj.class_0,studj+1.class_0); studj.num=studj+1.num; strcpy(,studj+1.name); studj.elec=studj+1.elec; studj.c_program=studj+1.c_program; studj.media=studj+1.media; studj.english=studj+1.english; studj.math=studj+1.math; studj.sport=studj+1.sport; studj.polity=studj+1.polity;studj.ave
30、rage=studj+1.average;cout<<"=>提示:已成功刪除!"<<endl; /*返回成功信息*/ Write(stud,n-1); void Insert(Stu stud) /-增加學生成績 system("cls"); /*運行前清屏*/int n=Read(stud);char s;cout<<endl<<"=>> 增加學生成績<<="<<endl;while(s!='n'&&s!=
31、9;N')cout<<"班級:"<<endl; /*交互輸入*/ cin>>studn.class_0; cout<<"學號:" cin>>studn.num; cout<<"姓名:" cin>>; cout<<"電子技術成績:" cin>>studn.elec; cout<<"C+程序設計成績:" cin>>studn.c_progra
32、m; cout<<"多媒體技術成績:" cin>>studn.media; cout<<"大學英語成績:" cin>>studn.english; cout<<"高等數學成績:" cin>>studn.math; cout<<"大學體育成績:" cin>>studn.sport; cout<<"馬克思主義政治經濟學成績:" cin>>studn.polity; studn.av
33、erage=(studn.elec+studn.c_program+studn.media+studn.english+ studn.math+studn.sport+studn.polity)/7; cout<<"平均分"<<studn.average;n+; cout<<"=>提示:插入成功!"<<endl; /*返回成功信息*/cout<<"是否繼續輸入(y/n)"<<endl;cin>>s;Write(stud,n); void Sort
34、(Stu stud) /-按平均分對學生成績記錄項進行降序排序 system("cls"); /*運行前清屏*/ int i,j,k; float s; char t20;cout<<endl<<"=>> 降序排序成績 <<="<<endl;int n=Read(stud);for(i=0;i<n-1;i+) /*冒泡法排序*/ for(j=0;j<n-1-i;j+) if(studj.average<studj+1.average) strcpy(t,studj+1.clas
35、s_0); strcpy(studj+1.class_0,studj.class_0); strcpy(studj.class_0,t); k=studj+1.num; studj+1.num=studj.num; studj.num=k; strcpy(t,studj+1.name); strcpy(studj+1.name,); strcpy(,t); s=studj+1.elec; studj+1.elec=studj.elec; studj.elec=s; s=studj+1.c_program; studj+1.c_program=studj.
36、c_program; studj.c_program=s; s=studj+1.media; studj+1.media=studj.media; studj.media=s; s=studj+1.english; studj+1.english=studj.english; studj.english=s; s=studj+1.math; studj+1.math=studj.math; studj.math=s; s=studj+1.sport; studj+1.sport=studj.sport; studj.sport=s; s=studj+1.polity; studj+1.poli
37、ty=studj.polity; studj.polity=s; s=studj+1.average; studj+1.average=studj.average; studj.average=s; cout<<"-"<<endl; /*格式頭*/ cout<<"班級"<<"t"<<"學號"<<"t"<<"姓名"<<"t"<<"電子&quo
38、t;<<"t"<<"C+"<<"t"<<"多媒體"<<"t"<<"英語"<<"t"<<"數學"<<"t"<<"體育"<<"t"<<"政治"<<"t"<<"平均分&
39、quot;<<"t"<<"名次"<<endl; cout<<"-"<<endl; for(i=0;i<n;i+) /*循環輸入*/ studi.order=i+1;cout<<studi.class_0<<"t"<<studi.num<<"t"<<<<"t"<<studi.elec<<"
40、t"<<studi.c_program<<"t"<<studi.media<<"t "<<studi.english<<" t"<< studi.math<<"t"<<studi.sport<<"t "<<studi.polity<<"t"<<studi.average<<"t"&
41、lt;<studi.order<<endl; Write(stud,n);void Output(Stu stud) /-顯示全部學生成績 system("cls"); /*運行前清屏*/int n=Read(stud);cout<<endl<<"=>> 顯示全部學生成績 <<="<<endl;if(!stud)cout<<"沒有記錄" elsecout<<"-"<<endl; /*格式頭*/ cout
42、<<"班級"<<"t"<<"學號"<<"t"<<"姓名"<<"t"<<"電子"<<"t"<<"c+"<<"t"<<"多媒體"<<"t"<<"英語"<<"t&quo
43、t;<<"數學"<<"t"<<"體育"<<"t"<<"政治"<<"t"<<"平均分"<<endl;cout<<"-"<<endl; for(int i=0;i<n;i+) /*循環輸入*/ cout<<studi.class_0<<"t "<<studi.n
44、um<<"t "<<<<"t "<<studi.elec<<" t"<<studi.c_program<<"t "<<studi.media<<"t "<<studi.english<<"t "<< studi.math<<" t"<<studi.sport<<
45、;"t"<<studi.polity<<"t"<<studi.average<<endl; cout<<"-"<<endl; int menu() /*菜單函數*/ char c; do system("cls"); /*運行前清屏*/ cout<<"*n"<<endl; cout<<" -<<歡迎您使用學生成績管理系統-n"<<endl; cout<<" *nn"<<endl;/*菜單選擇*/ cout<<" * 【1】輸入學生成績 * "<<en
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《美人魚》觀后感(合集15篇)
- 海洋科技創新實施的具體操作方案
- 供水管網優化升級計劃可行性研究報告(模板)
- 新疆烏魯木齊市六校聯考2022-2023學年高二下學期期末英語 含解析
- 河南省開封市五縣聯考2023-2024學年高二上學期期中考物理含解析
- 甲狀腺癌核醫學診療體系
- 福州大學《計算機網絡與通信課程設計》2023-2024學年第二學期期末試卷
- 幾何畫板制作函數課件
- 上海中華職業技術學院《非織造復合材料》2023-2024學年第二學期期末試卷
- 泉州海洋職業學院《知識產權法經典著作》2023-2024學年第二學期期末試卷
- 網絡安全宣傳周網絡安全知識手冊學習課件
- 2024年公文寫作基礎知識競賽試題庫及答案(共220題)
- 2024年江蘇省鎮江市中考化學試卷(含答案解析)
- 黃金卷06(解析版)-【贏在高考·黃金8卷】備戰2024年高考生物模擬卷(河北專用)
- 實驗:驗證動量守恒定律 說課課件-2024-2025學年高二上學期物理人教版(2019)選擇性必修第一冊
- 管道大開挖穿越公路施工方案
- 創新創業理論與實踐(西安工業大學)智慧樹知到期末考試答案章節答案2024年西安工業大學
- 2024-2030年中國桑蠶絲市場消費需求潛力與前景競爭優勢分析研究報告
- 骨傷科常見疾病中醫診療規范診療指南2023版
- 省級一網統管網格化社會治理指揮手冊(含事項清單)
- 四川省成都市青羊區2024年四年級數學第二學期期末調研試題含解析
評論
0/150
提交評論