版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上學(xué)生信息管理系統(tǒng)源代碼:#include<iostream.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<iomanip.h>#include<fstream.h>struct studentchar num30; int maths; char name30; int chinese;char clas30; int english; int total; float average; student *next;
2、/1(1)void createlist(student * & head) /學(xué)生成績文件導(dǎo)入功能(用鏈表儲存)char t80,num030,name030,clas030;int chinese0,maths0,english0;student *s,*p;ifstream instuf("student-score.txt",ios:in);if (!instuf) cerr<<"file could not be open."<<endl; abort();instuf.getline(t,80);while (
3、instuf>>num0>>name0>>clas0>>chinese0>>maths0>>english0) s=new student; strcpy(s->num,num0);strcpy(s->name,name0);strcpy(s->clas,clas0); s->chinese=chinese0;s->maths=maths0;s->english=english0; s->total=s->chinese+s->maths+s->english;
4、s->average=float(s->total)/3; if (head=NULL) head=s; else p->next=s; p=s;p->next=NULL;instuf.close();/1(2)void showlist(student *head) /學(xué)生成績信息顯示功能(遍歷鏈表) int n=1; cout<<"學(xué)號 姓名 班級 語文 數(shù)學(xué) 英語 總分 均分 序號 " while (head) cout<<head->num<<" "<<head->
5、;name<<'t'<<head->clas<<'t'<<" "<<head->chinese<<'t' <<head->maths<<'t'<<head->english<<'t'<<head->total<<'t'<<setprecision(3)<<head->averag
6、e<<'t'<<" "<<n<<endl; n=n+1; head=head->next; /2void charu(student *head) /學(xué)生成績信息插入功能(鏈表尾部插入學(xué)生成績信息) student *s,*p,*q; int n,i; cout<<"請輸入需要【插入】的學(xué)生成績信息的數(shù)量: " cin>>n; cout<<"請輸入需插入的學(xué)生成績信息(每人一行):"<<endl; cout<&l
7、t;"學(xué)號 姓名 班級 語文 數(shù)學(xué) 英語"<<endl; p=head; while (p) q=p; p=p->next; for (i=1;i<=n;i+) s=new student; cin>>s->num>>s->name>>s->clas>>s->chinese>>s->maths>>s->english; s->total=s->chinese+s->maths+s->english; s->aver
8、age=float(s->total)/3; q->next =s; q=s; q->next=NULL;/3void shanchu(student * & head) /學(xué)生成績信息刪除功能 student *p,*q; char a30; int n,i,b=1; cout<<"請輸入需【刪除】的學(xué)生成績信息的數(shù)量: " cin>>n; cout<<"請輸入需要刪除的學(xué)生的學(xué)號或姓名:"<<endl; for (i=1;i<=n;i+) cin>>a; if
9、 (strcmp(head->num,a)=0)|(strcmp(head->name,a)=0) b=0; p=head; head=head->next; delete p; p=NULL; else p=head; while (p->next!=NULL)&&(strcmp(p->next->num,a)!=0)&&(strcmp(p->next->name,a)!=0) p=p->next; if (p->next!=NULL) b=0; q=p->next; p->next=q-
10、>next; delete q; q=NULL; if (b=1) cout<<"無此學(xué)號或姓名的成績記錄!"<<endl;/4void change(student *head) /學(xué)生成績信息的修改功能(修改指定學(xué)生信息) char a30; int b=1; cout<<"請輸入您要【修改】的學(xué)生的學(xué)號或姓名: " cin>>a; while (head) if (strcmp(head->num,a)=0)|(strcmp(head->name,a)=0) cout<<
11、""<<endl; b=0; cout<<"此學(xué)生原來的學(xué)生成績信息是:"<<endl; cout<<"學(xué)號 姓名 班級 語文 數(shù)學(xué) 英語"<<endl; cout<<head->num<<" "<<head->name<<'t'<<head->clas<<'t'<<" " <<head-&g
12、t;chinese<<'t'<<head->maths<<'t'<<head->english<<endl; cout<<"請輸入修改后的學(xué)生成績信息:"<<endl; cout<<"學(xué)號 姓名 班級 語文 數(shù)學(xué) 英語"<<endl; cin>>head->num>>head->name>>head->clas>>head->chin
13、ese>>head->maths>>head->english; head->total=head->chinese+head->maths+head->english; head->average=float(head->total)/3; head=head->next; if (b=1) cout<<"無此學(xué)號或姓名的成績記錄!"<<endl;/5(1)void geren(student *head) /查詢個人成績功能 char a30; int b=1; cou
14、t<<"請輸入您要【查詢】的學(xué)生的學(xué)號或姓名: " cin>>a; cout<<"此學(xué)生的學(xué)生成績信息是:"<<endl; cout<<"學(xué)號 姓名 班級 語文 數(shù)學(xué) 英語 總分 均分"<<endl; while (head) if (strcmp(head->num,a)=0)|(strcmp(head->name,a)=0) b=0; cout<<head->num<<" "<<head
15、->name<<'t'<<head->clas<<'t'<<" "<<head->chinese<<'t' <<head->maths<<'t'<<head->english<<'t'<<head->total<<'t'<<setprecision(3)<<head->av
16、erage<<endl; head=head->next; if (b=1) cout<<"無此學(xué)號或姓名的成績記錄!"<<endl;/5(2)void chabanji(student *head) /查詢班級成績功能 char a30; int b=1; cout<<"請輸入您要查詢成績的【班級】的名稱: " cin>>a; cout<<"此班級的學(xué)生成績信息是:"<<endl; cout<<"學(xué)號 姓名 班級 語文 數(shù)
17、學(xué) 英語 總分 均分"<<endl; while (head) if (strcmp(head->clas,a)=0) b=0; cout<<head->num<<" "<<head->name<<'t'<<head->clas<<'t'<<" "<<head->chinese<<'t' <<head->maths<<&
18、#39;t'<<head->english<<'t'<<head->total<<'t'<<setprecision(3)<<head->average<<endl; head=head->next; if (b=1) cout<<"無此班級的成績記錄!"<<endl;/5(3)void chayuwen(student *head) /查詢語文成績功能 int h,l,b=1; cout<<
19、"請輸入您要查詢的【語文】成績的分?jǐn)?shù)段: "<<endl; cout<<"起始分 終止分"<<endl; cin>>l; cin>>h; cout<<"此分?jǐn)?shù)段的學(xué)生語文成績信息是:"<<endl; cout<<"學(xué)號 姓名 班級 語文 數(shù)學(xué) 英語 總分 均分"<<endl; while (head) if (head->chinese>=l)&&(head->chinese
20、<=h) b=0; cout<<head->num<<" "<<head->name<<'t'<<head->clas<<'t'<<" "<<head->chinese<<'t' <<head->maths<<'t'<<head->english<<'t'<<head-
21、>total<<'t'<<setprecision(3)<<head->average<<endl; head=head->next; if (b=1) cout<<"無此分?jǐn)?shù)段的語文成績記錄!"<<endl;/5(4)void chashuxue(student *head) /查詢數(shù)學(xué)成績功能 int h,l,b=1; cout<<"請輸入您要查詢的【數(shù)學(xué)】成績的分?jǐn)?shù)段: "<<endl; cout<<&quo
22、t;起始分 終止分"<<endl; cin>>l; cin>>h; cout<<"此分?jǐn)?shù)段的學(xué)生數(shù)學(xué)成績信息是:"<<endl; cout<<"學(xué)號 姓名 班級 語文 數(shù)學(xué) 英語 總分 均分"<<endl; while (head) if (head->maths>=l)&&(head->maths<=h) b=0; cout<<head->num<<" "<<
23、head->name<<'t'<<head->clas<<'t'<<" "<<head->chinese<<'t' <<head->maths<<'t'<<head->english<<'t'<<head->total<<'t'<<setprecision(3)<<head-&g
24、t;average<<endl; head=head->next; if (b=1) cout<<"無此分?jǐn)?shù)段的數(shù)學(xué)成績記錄!"<<endl;/5(5)void chayingyu(student *head) /查詢英語成績功能 int h,l,b=1; cout<<"請輸入您要查詢的【英語】成績的分?jǐn)?shù)段: "<<endl; cout<<"起始分 終止分"<<endl; cin>>l; cin>>h; cout<&
25、lt;"此分?jǐn)?shù)段的學(xué)生英語成績信息是:"<<endl; cout<<"學(xué)號 姓名 班級 語文 數(shù)學(xué) 英語 總分 均分"<<endl; while (head) if (head->english>=l)&&(head->english<=h) b=0; cout<<head->num<<" "<<head->name<<'t'<<head->clas<<&
26、#39;t'<<" "<<head->chinese<<'t' <<head->maths<<'t'<<head->english<<'t'<<head->total<<'t'<<setprecision(3)<<head->average<<endl; head=head->next; if (b=1) cout<&l
27、t;"無此分?jǐn)?shù)段的英語成績記錄!"<<endl;/5(6)void chazongfen(student *head) /查詢總分成績功能 int h,l,b=1; cout<<"請輸入您要查詢的【總分】成績的分?jǐn)?shù)段: "<<endl; cout<<"起始分 終止分"<<endl; cin>>l; cin>>h; cout<<"此分?jǐn)?shù)段的學(xué)生總分成績信息是:"<<endl; cout<<"
28、;學(xué)號 姓名 班級 語文 數(shù)學(xué) 英語 總分 均分"<<endl; while (head) if (head->total>=l)&&(head->total<=h) b=0; cout<<head->num<<" "<<head->name<<'t'<<head->clas<<'t'<<" "<<head->chinese<<
29、39;t' <<head->maths<<'t'<<head->english<<'t'<<head->total<<'t'<<setprecision(3)<<head->average<<endl; head=head->next; if (b=1) cout<<"無此分?jǐn)?shù)段的總分成績記錄!"<<endl;/6(1)void yuwen(student *
30、head) /按語文成績從高到低排序功能 student *p,*q; char a30; int b; float c; p=head; while (p) q=p->next; while (q) if (p->chinese<q->chinese) strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->cla
31、s);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p
32、->average=q->average;q->average=c; q=q->next; p=p->next; /6(2)void shuxue(student *head) /按數(shù)學(xué)成績從高到低排序功能 student *p,*q; char a30; int b; float c; p=head; while (p) q=p->next; while (q) if (p->maths<q->maths) strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a
33、); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->e
34、nglish;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->average;q->average=c; q=q->next; p=p->next; /6(3)void yingyu(student *head) /按英語成績從高到低排序功能 student *p,*q; char a30; int b; float c; p=head; while (p) q=p->next; while (q) if (
35、p->english<q->english) strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chi
36、nese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->average;q->average=c; q=q->next; p=p->next; /6(4)void zongfen(student *head) /按總
37、分成績從高到低排序功能 student *p,*q; char a30; int b; float c; p=head; while (p) q=p->next; while (q) if (p->total<q->total) strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p-&
38、gt;clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=
39、q->average;q->average=c; q=q->next; p=p->next; /7void xuehao(student *head) /按學(xué)號從小到大排序功能 student *p,*q; char a30; int b; float c; p=head; while (p) q=p->next; while (q) if (strcmp(p->num,q->num)>0) strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,
40、p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->
41、;english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->average;q->average=c; q=q->next; p=p->next; /8void xingming(student *head) /按姓名首字母排序功能 student *p,*q; char a30; int b; float c; p=head; while (p) q=p->next; while (q) if (strcmp(p->nam
42、e,q->name)>0) strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p-
43、>maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->average;q->average=c; q=q->next; p=p->next; /9void banji(student *head) /按班級的類別排序功能 student
44、*p,*q; char a30; int b; float c; p=head; while (p) q=p->next; while (q) if (strcmp(p->clas,q->clas)>0) strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q-&g
45、t;clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->averag
46、e;q->average=c; q=q->next; p=p->next; /10void show(student *head,char *s) /學(xué)生成績信息文件導(dǎo)出功能 int n=1; ofstream outstuf; outstuf.open(s,ios:out); if (!outstuf) cerr<<"file could not be open."<<endl; abort(); outstuf<<"學(xué)號 姓名 班級 語文 數(shù)學(xué) 英語 總分 均分 序號"<<endl;
47、while (head) outstuf<<head->num<<" "<<head->name<<'t'<<head->clas<<'t'<<" "<<head->chinese<<'t' <<head->maths<<'t'<<head->english<<'t'<<he
48、ad->total<<'t' <<setprecision(3)<<head->average<<'t'<<" "<<n<<endl; n=n+1; head=head->next; outstuf.close();void main() student *head=NULL; int n; char s30; cout<<"*" cout<<"* 歡迎使用學(xué)生成績管理系統(tǒng) *"
49、 cout<<"* 管理員: *" cout<<"* 請選擇您想使用的功能: *" cout<<"* 功能名 請輸入 功能名 請輸入 *" cout<<"* 導(dǎo)入學(xué)生成績文件 1 按學(xué)號小到大排序 7 *" cout<<"* 插入學(xué)生成績信息 2 按姓名首字母排序 8 *" cout<<"* 刪除學(xué)生成績信息 3 按班級的類別排序 9 *" cout<<"* 修改學(xué)生成績信息 4 導(dǎo)
50、出學(xué)生成績文件 10 *" cout<<"* 查詢學(xué)生成績信息 5 其它功能. *" cout<<"* 按成績高到低排序 6 退出管理系統(tǒng) 0 *" cout<<"*" cout<<"您的輸入是: " cin>>n; createlist(head); while (n>0) switch (n) case 1:cout<<"導(dǎo)入的需管理的學(xué)生成績信息表:"<<endl; showlist(hea
51、d); break; case 2:charu(head); cout<<"插入后的學(xué)生成績信息表:"<<endl; showlist(head); break; case 3:shanchu(head); cout<<"刪除后的學(xué)生成績信息表:"<<endl; showlist(head); break; case 4:change(head); cout<<"修改后的學(xué)生成績信息表:"<<endl; showlist(head); break; case 5:
52、cout<<"請選擇查詢學(xué)生成績的方式:"<<endl; cout<<" 方式 請輸入 方式 請輸入 "<<endl; cout<<" 查詢個人成績 1 查詢數(shù)學(xué)成績 4 "<<endl; cout<<" 查詢班級成績 2 查詢英語成績 5 "<<endl; cout<<" 查詢語文成績 3 查詢總分成績 6 "<<endl; cout<<"您的輸入是:
53、" cin>>n; switch (n) case 1:geren(head); break; case 2:zongfen(head); chabanji(head); break; case 3:yuwen(head); chayuwen(head); break; case 4:shuxue(head); chashuxue(head); break; case 5:yingyu(head); chayingyu(head); break; case 6:zongfen(head); chazongfen(head); break; break; case 6:co
54、ut<<"請選擇需排序的成績的類型:"<<endl; cout<<" 類型 請輸入 類型 請輸入 "<<endl; cout<<" 按語文成績排序 1 按英語成績排序 3 "<<endl; cout<<" 按數(shù)學(xué)成績排序 2 按總分成績排序 4 "<<endl; cout<<"您的輸入是: " cin>>n; switch (n) case 1:yuwen(head); cou
55、t<<"按【語文】成績排序后的學(xué)生成績信息表:"<<endl; showlist(head); break; case 2:shuxue(head); cout<<"按【數(shù)學(xué)】成績排序后的學(xué)生成績信息表:"<<endl; showlist(head); break; case 3:yingyu(head); cout<<"按【英語】成績排序后的學(xué)生成績信息表:"<<endl; showlist(head); break; case 4:zongfen(head);
56、 cout<<"按【總分】成績排序后的學(xué)生成績信息表:"<<endl; showlist(head); break; break; case 7:xuehao(head); cout<<"按【學(xué)號】從小到大排序后的學(xué)生成績信息表:"<<endl; showlist(head); break; case 8:xingming(head); cout<<"按【姓名】首字母排序后的學(xué)生成績信息表:"<<endl; showlist(head); break; case 9:banji(head); cout<<"按【班級】的類別排序后的學(xué)生成績信息表:"<<endl; showlist(head); break; case 10:cout<<"請選擇需導(dǎo)出的學(xué)生成績數(shù)據(jù)文件的內(nèi)容:"<<endl; cout<<" 內(nèi)容 請輸入 內(nèi)容 請輸入 " cout<<" 按總分成績排序的成績表 1 按姓
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山東青島宏達(dá)塑膠總公司招聘筆試參考題庫含答案解析
- 天津市血液中心招考聘用高頻重點提升(共500題)附帶答案詳解
- 天津醫(yī)科大學(xué)基礎(chǔ)醫(yī)學(xué)研究中心招考聘用方案高頻重點提升(共500題)附帶答案詳解
- 2024食用油生產(chǎn)線節(jié)能減排改造與監(jiān)測服務(wù)合同3篇
- 國網(wǎng)河北省電力限公司2025年高校應(yīng)屆畢業(yè)生招聘【285人】(第一批)事業(yè)單位高頻重點提升(共500題)附帶答案詳解
- 國家鐵路局工程質(zhì)量監(jiān)督中心招考聘用高頻重點提升(共500題)附帶答案詳解
- 國家糧食和物資儲備局機關(guān)服務(wù)中心招考聘用文秘人員高頻重點提升(共500題)附帶答案詳解
- 2024物流行業(yè)碳達(dá)峰碳中和協(xié)議
- 國家信息中心面向海外留學(xué)生公開招聘3人高頻重點提升(共500題)附帶答案詳解
- 四川省阿壩州2025年全州事業(yè)單位公開招聘1212名工作人員歷年高頻重點提升(共500題)附帶答案詳解
- 2018年海南公務(wù)員考試申論真題
- GB/T 14296-2008空氣冷卻器與空氣加熱器
- 2023年新澤西駕照筆試題中英對照139題我中文02
- 項目法人(建設(shè)單位)質(zhì)量管理違規(guī)行為分類標(biāo)準(zhǔn)
- 危重癥患者的血糖管理
- 全面設(shè)備管理(TPM)培訓(xùn)資料-課件
- 高中地理《外力作用與地表形態(tài)》優(yōu)質(zhì)課教案、教學(xué)設(shè)計
- 河北省邢臺市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 電纜采購技術(shù)要求
- 風(fēng)電場防地震災(zāi)害專項應(yīng)急預(yù)案
- 績效結(jié)果運用辦法
評論
0/150
提交評論