c++大作業(yè)學(xué)生信息管理系統(tǒng)源代碼(共17頁)_第1頁
c++大作業(yè)學(xué)生信息管理系統(tǒng)源代碼(共17頁)_第2頁
c++大作業(yè)學(xué)生信息管理系統(tǒng)源代碼(共17頁)_第3頁
c++大作業(yè)學(xué)生信息管理系統(tǒng)源代碼(共17頁)_第4頁
c++大作業(yè)學(xué)生信息管理系統(tǒng)源代碼(共17頁)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論