小型學(xué)生信息管理系統(tǒng)1.1_第1頁
小型學(xué)生信息管理系統(tǒng)1.1_第2頁
小型學(xué)生信息管理系統(tǒng)1.1_第3頁
小型學(xué)生信息管理系統(tǒng)1.1_第4頁
小型學(xué)生信息管理系統(tǒng)1.1_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、/*/* Author:TigerDate:6/15/2013Function:小型信息管理系統(tǒng)Version:1.11、增加了學(xué)生成績輸入范圍的檢查。2、優(yōu)化部分代碼。 */*/#include<iostream.h>#include<fstream.h>#include<string.h>/學(xué)生基類class Studentprotected:char name20;/姓名float score1,score2,score3;/成績1、2、3、public:void getname(char a);/得到學(xué)生的姓名,用于查詢void set();/設(shè)置學(xué)

2、生信息void show();/顯示學(xué)生信息void average();/計算并輸出平均成績float check_score(int i,float sc);/輸入學(xué)生的第i門的成績,分?jǐn)?shù)在(0-100);float Student:check_score(int i,float sc)cout<<"成績"<<i<<":"<<endl;cin>>sc;if (sc<0|sc>100)cout<<"輸入成績有誤!"<<endl; chec

3、k_score(i,sc);return sc;void Student:getname(char a)strcpy(a,name);void Student:show()cout<<"學(xué)生姓名:"<<name<<'n'<<"成績1:"<<score1<<'n'<<"成績2:"<<score2<<'n'<<"成績3:"<<score3&l

4、t;<'n'void Student:set()cout<<"學(xué)生姓名:"cin>>name;/輸入并檢查成績的范圍float temp_sc=0;score1=check_score(1,temp_sc);score2=check_score(2,temp_sc);score3=check_score(3,temp_sc);void Student:average()cout<<"姓名:"<<name<<endl;cout<<"平均成績:"

5、<<(score1+score2+score3)/3<<endl;/中學(xué)生類class Middle_school_student:public Studentprotected:char householder20;/家長public:Middle_school_student();void set();void show();Middle_school_student:Middle_school_student()strcpy(name,"張三");score1=0;score2=0;score3=0;strcpy(householder,&qu

6、ot;李四");void Middle_school_student:set()Student:set();cout<<"家長:"cin>>householder;void Middle_school_student:show()Student:show();cout<<"家長:"<<householder<<endl;/大學(xué)生類class University_student:public Studentchar profession20;/專業(yè)public:University_s

7、tudent();void set();void show();University_student:University_student()strcpy(name,"張三");score1=0;score2=0;score3=0;strcpy(profession,"無");void University_student:set()Student:set();cout<<"專業(yè):"cin>>profession;void University_student:show()Student:show();cout

8、<<"專業(yè):"<<profession<<endl;/研究生類class Postgraduate:public Studentchar tutor20;public:Postgraduate();void set();void show();Postgraduate:Postgraduate()strcpy(name,"張三");score1=0;score2=0;score3=0;strcpy(tutor,"李四");void Postgraduate:set()Student:set();co

9、ut<<"導(dǎo)師:"cin>>tutor;void Postgraduate:show()Student:show();cout<<"導(dǎo)師:"<<tutor<<endl;/菜單界面int menu()int x;cout<<"*歡迎使用*"<<endl;cout<<"*小型學(xué)生信息管理系統(tǒng)*"<<endl;cout<<"1、輸入學(xué)生信息"<<'n'&l

10、t;<"2、查詢學(xué)生信息并顯示"<<'n'<<"3、計算平均成績并顯示"<<'n'<<"4、退出"<<'n'<<"請您選擇(1-4):"cin>>x;return x;/管理界面int manage()int x;cout<<"*按學(xué)生類別進(jìn)行管理*"<<endl;cout<<"*學(xué)生類別選擇*"<

11、<endl;cout<<"1 中學(xué)生類"<<'n'<<"2 大學(xué)生類"<<'n'<<"3 研究生類"<<'n'<<"4 退出"<<'n'<<"請您選擇學(xué)生類別:"cin>>x;return x;/創(chuàng)建一個Middle_school_studentMiddle_school_student newmiddle(

12、)Middle_school_student m;m.set();return m;/將Middle_school_student對象寫進(jìn)D:middle.txtvoid writeMiddle(Middle_school_student &m)fstream fo;fo.open("D:middle.txt",ios:out|ios:app);if (!fo)cout<<"不能打開文件!"<<endl;return ;fo.write(char*)&m,sizeof(Middle_school_student);

13、fo.close();/讀取一個Middle_school_student對象void readMiddle(int j)/*j=1進(jìn)入查詢學(xué)生信息、j=2查詢學(xué)生平均成績*/Middle_school_student s;fstream fr;char temp120,temp220;cout<<"請輸入要查詢的學(xué)生名:" cin>>temp1;fr.open("D:middle.txt",ios:in);if (!fr)cout<<"不能打開文件!"<<endl;return ;/計

14、算Middle_school_student記錄的個數(shù)Numfr.seekp(0,ios:end);long Num=fr.tellp()/sizeof(Middle_school_student);for (int i=0;i<Num;i+)fr.seekp(sizeof(Middle_school_student)*i);fr.read(char*)&s,sizeof(Middle_school_student);s.getname(temp2);int tbb=strcmp(temp1,temp2); if (!tbb) if(j=1)s.show();return;els

15、e if(j=2)s.average();return; else cout<<"錯誤!"<<endl;return; cout<<"沒有該學(xué)生!"<<endl;fr.close();/創(chuàng)建一個University_studentUniversity_student newuniversity()University_student u;u.set();return u;/將University_student對象寫進(jìn)D:university.txtvoid writeUniversity(Universi

16、ty_student &u)fstream fo;fo.open("D:university.txt",ios:out|ios:app);if (!fo)cout<<"不能打開文件!"<<endl;return ;fo.write(char*)&u,sizeof(University_student);fo.close();/讀取一個University_student對象void readUniversity(int j)/*j=1進(jìn)入查詢學(xué)生信息、j=2查詢學(xué)生平均成績*/University_student

17、s;fstream fr;char temp120,temp220;cout<<"請輸入要查詢的學(xué)生名:" cin>>temp1;fr.open("D:university.txt",ios:in);if (!fr)cout<<"不能打開文件!"<<endl;return ;/計算University_student記錄的個數(shù)fr.seekp(0,ios:end);long Num=fr.tellp()/sizeof(University_student);for (int i=0;i&

18、lt;Num;i+)fr.seekp(sizeof(University_student)*i);fr.read(char*)&s,sizeof(University_student);s.getname(temp2);int tbb=strcmp(temp1,temp2); if (!tbb) if(j=1)s.show();return;else if(j=2)s.average();return; else cout<<"錯誤!"<<endl;return; cout<<"沒有該學(xué)生!"<<e

19、ndl;fr.close();/創(chuàng)建一個PostgraduatePostgraduate newpostgraduate()Postgraduate p;p.set();return p;/將Postgraduate對象寫進(jìn)D:postgraduate.txtvoid writePostgraduate(Postgraduate &p)fstream fo;fo.open("D:postgraduate.txt",ios:out|ios:app);if (!fo)cout<<"不能打開文件!"<<endl;return ;

20、fo.write(char*)&p,sizeof(Postgraduate);fo.close();/讀取一個Postgraduate對象void readPostgraduate(int j)/*j=1進(jìn)入查詢學(xué)生信息、j=2查詢學(xué)生平均成績*/Postgraduate s;fstream fr;char temp120,temp220;cout<<"請輸入要查詢的學(xué)生名:" cin>>temp1;fr.open("D:postgraduate.txt",ios:in);if (!fr)cout<<"

21、;不能打開文件!"<<endl;return ;/計算Postgraduate記錄的個數(shù)fr.seekp(0,ios:end);long Num=fr.tellp()/sizeof(Postgraduate);for (int i=0;i<Num;i+)fr.seekp(sizeof(Postgraduate)*i);fr.read(char*)&s,sizeof(Postgraduate);s.getname(temp2);int tbb=strcmp(temp1,temp2); if (!tbb) if(j=1)s.show();return;else

22、if(j=2)s.average();return; else cout<<"錯誤!"<<endl;return; cout<<"沒有該學(xué)生!"<<endl;fr.close();void func1(int i,int t);/判斷函數(shù)、判斷是否繼續(xù)輸入void check_enter(int i)/*i的取值決定輸入的學(xué)生的類型*/char ce;cout<<"信息存儲成功!是否繼續(xù)輸入(y/n)?"cin>>ce;if (ce='y')swi

23、tch(i)case 1:writeMiddle(newmiddle();check_enter(i);break;case 2:writeUniversity(newuniversity();check_enter(i);break;case 3:writePostgraduate(newpostgraduate();check_enter(i);break;default:cout<<"錯誤!"<<endl;break;else if(ce='n')return;else cout<<"輸入錯誤!"

24、<<endl;/判斷函數(shù)、判斷是否繼續(xù)查詢void check_find(int i)/*i的值決定查詢的學(xué)生的類型*/char cf;cout<<"是否繼續(xù)查詢(y/n)?"<<endl;cin>>cf;if (cf='y')func1(i,1);else if(cf='n')return; else cout<<"輸入錯誤!"<<endl;/判斷函數(shù)、判斷是否繼續(xù)查詢void check_average(int i)/*i的值決定查詢的學(xué)生的類型*

25、/char ca;cout<<"是否繼續(xù)查詢(y/n)?"<<endl;cin>>ca;if (ca='y')func1(i,2);else if(ca='n')return; else cout<<"輸入錯誤!"<<endl;/函數(shù),t=1查詢學(xué)生信息t=2查詢平均成績,i代表學(xué)生類型void func1(int i,int t)if (t=1)switch(i)case 1:readMiddle(t);check_find(i);break;case 2:readUniversity(t);check_find(i);break;case 3:readPostgraduate(t);check_find(i);break;case 4:break;default:cout<<"錯誤!"&l

溫馨提示

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

評論

0/150

提交評論