C實現簡單的學生信息標準管理系統控制臺程序_第1頁
C實現簡單的學生信息標準管理系統控制臺程序_第2頁
C實現簡單的學生信息標準管理系統控制臺程序_第3頁
C實現簡單的學生信息標準管理系統控制臺程序_第4頁
C實現簡單的學生信息標準管理系統控制臺程序_第5頁
已閱讀5頁,還剩35頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C實現簡單的學生信息標準管理系統控制臺程序//:Definestheentrypointfortheconsoleapplication.//#include""#include<cstring>#include<iostream>#include<>#include<vector>#include<algorithm>classStudent{private:charidNumber[13];//學號 charname[30];//姓名 charaddress[50];//地址 chartelephone[14];//電話號碼 intgradeMath;//數學成績 intgradePhysics;//物理成績 intgradeEnglish;//英語成績 doublegradeMaPhEgAverage;//物數外平均 intrankGrade;//成績排名 intgradeClassmate;//同學評分 intgradeTeacher;//老師評分 intgradeEthic;//道德評分 doublegradeAll;//綜合成績 intrankAll;//綜合排名public: Student();//默認構造函數 voidStudent_WritePersonalInformation(char*iD,char*nam,char*add,char*tel);//更改學生信息 voidStudent_WriteMaPhEgGrade(intgraMa,intgraPh,intgraEg);//更改學生考試成績 voidStudent_WriteOtherGrade(intgraCl,intgraTe,intgraEth);//更改學生其他成績 voidStudent_DisplayInformation();//顯示學生信息 char*Student_ReadID(); doubleStudent_ReadGrade(); doubleStudent_ReadTotalGrade(); intStudent_ReadGradeRank(); intStudent_ReadTotalGradeRank(); voidStudent_WriteGradeRank(intranGr);//更改學生成績排名 voidStudent_WriteTotalGradeRank(intranAl);//更改學生綜合排名 char*Student_ReadName();};Student::Student()//默認構造函數{ strncpy_s(idNumber,"000000000000",12); strncpy_s(name,"空",30); strncpy_s(address,"空",50); strncpy_s(telephone,"空",14);//電話號碼 gradeMath=0;//數學成績 gradePhysics=0;//物理成績 gradeEnglish=0;//英語成績 gradeMaPhEgAverage=0;//物數外平均 rankGrade=0;//成績排名 gradeClassmate=0;//同學評分 gradeTeacher=0;//老師評分 gradeEthic=0;//道德評分gradeAll=0;//綜合成績 rankAll=0;//綜合排名}voidStudent::Student_WritePersonalInformation(char*iD,char*nam,char*add,char*tel){ strncpy_s(idNumber,iD,12); strncpy_s(name,nam,30); strncpy_s(address,add,50); strncpy_s(telephone,tel,14);}voidStudent::Student_WriteMaPhEgGrade(intgraMa,intgraPh,intgraEg){ gradeMath=graMa; gradePhysics=graPh; gradeEnglish=graEg; gradeMaPhEgAverage=(gradeMath+gradePhysics+gradeEnglish)/3;}voidStudent::Student_WriteOtherGrade(intgraCl,intgraTe,intgraEth){ gradeClassmate=graCl; gradeTeacher=graTe; gradeEthic=graEth; gradeAll=gradeMaPhEgAverage*+gradeClassmate*+gradeEthic*+gradeTeacher*;}voidStudent::Student_WriteGradeRank(intranGr){ rankGrade=ranGr;}voidStudent::Student_WriteTotalGradeRank(intranAl){ rankAll=ranAl;}voidStudent::Student_DisplayInformation(){ usingnamespacestd; cout<<"-------------------------------------"<<endl; cout<<"學生信息"<<endl; cout<<"姓名:"<<name<<endl <<"學號:"<<idNumber<<endl <<"地址:"<<address<<endl <<"電話:"<<telephone<<endl <<"數學成績:"<<gradeMath<<endl <<"物理成績:"<<gradePhysics<<endl <<"英語成績:"<<gradeEnglish<<endl <<"三科平均成績:"<<gradeMaPhEgAverage<<endl <<"學習成績排名:"<<rankGrade<<endl <<"同學評價得分:"<<gradeClassmate<<endl <<"教師評價得分:"<<gradeTeacher<<endl <<"道德修養評分:"<<gradeEthic<<endl <<"綜合成績:"<<gradeAll<<endl <<"綜合成績排名:"<<rankAll<<endl; cout<<"--------------------------------------"<<endl;}char*Student::Student_ReadID(){ returnidNumber;}doubleStudent::Student_ReadGrade(){ returngradeMaPhEgAverage;}doubleStudent::Student_ReadTotalGrade(){ returngradeAll;}intStudent::Student_ReadGradeRank(){ returnrankGrade;}intStudent::Student_ReadTotalGradeRank(){ returnrankAll;}namespacestudentInformation{ std::vector<Student>studentVector; intflagStudentChoose=0; intflagStudentFound=1;}char*Student::Student_ReadName(){ returnname;}//-----------------------以上是基本數據結構的定義,同時定義了對數據的基本操作。定義完畢了,接下來是功能函數--------------------voidMainMenu();voidEditMenu();voidAddStudentPersonalInformation(intmode);voidModifyStudentInformation();voidSearchStudent();voidDeleteStudentInformation();voidDisplayStudentInformation();voidRankByGrade();voidRankByTotalGrade();voidRankByID();boolCmpGrade(Studentstudent1,Studentstudent2);//這個函數的參數是兩個Student類的對象boolCmpTotalGrade(Studentstudent1,Studentstudent2);boolCmpID(Studentstudent1,Studentstudent2);voidDisplayAllStudentInformation();//-----------------------以下是主菜單界面函數-------------------------------------------------------------------------------voidMainMenu(){ intflagOperateInformation=1; while(flagOperateInformation) { usingnamespacestd; cout<<"-----------------------------------------------------"<<endl; cout<<"."<<endl<<endl; cout<<"按下1:進入學生信息管理系統."<<endl; cout<<"按下0:退出."<<endl; cout<<"-----------------------------------------------------"<<endl<<endl<<endl; cin>>flagOperateInformation; (); cout<<endl; if(flagOperateInformation) EditMenu(); }}//------------------------主菜單界面函數定義完畢--------------------------------------------------------------------------//------------------------以下是編輯界面函數------------------------------------------------------------------------------voidEditMenu(){ intflagContinueOperation=1; while(flagContinueOperation) { flagContinueOperation=0; usingnamespacestd; cout<<"--------------------------------------------"<<endl; cout<<"主菜單"<<endl; cout<<"按下1:添加學生信息."<<endl; cout<<"按下2:修改學生信息."<<endl; cout<<"按下3:刪除學生信息."<<endl; cout<<"按下4:顯示學生信息."<<endl; cout<<"按下5:按學號升序排序"<<endl; cout<<"按下6:讀入已有信息(暫時沒實現)"<<endl; cout<<"按下7:將信息輸出(暫時沒實現)"<<endl; cout<<"按下8:顯示系統內所有學生的信息"<<endl; cout<<"按下0:返回上一級."<<endl; cout<<"--------------------------------------------"<<endl<<endl; cin>>flagContinueOperation; (); cout<<endl; switch(flagContinueOperation) { case1:AddStudentPersonalInformation(1);break; case2:ModifyStudentInformation();break; case3:DeleteStudentInformation();break; case4:DisplayStudentInformation();break; case5:RankByID();break; case6:cout<<"功能暫未實現"<<endl;break; case7:cout<<"功能暫未實現"<<endl;break; case8:DisplayAllStudentInformation();break; case0:break; } }}//-----------------------------------------------------------------------------------------------------------------------//-----------------------以下是添加信息的界面----------------------------------------------------------------------voidAddStudentPersonalInformation(intmode){ usingnamespacestd; intflagAddPersonalInformation; intflagAddGrade; intfalgAddOtherGrade; Studentstudent1; studentInformation::(student1); intcurrentObjectPosition; if(mode==1) currentObjectPosition=studentInformation::()-1; else currentObjectPosition=studentInformation::flagStudentChoose; //-------------------------------------------------------------------------- cout<<"請依次添加基本信息、學習成績和其他成績,且不要使用空格"<<endl; cout<<"-------------------------------------"<<endl; cout<<"基本信息"<<endl; cout<<"按下1:錄入學生基本信息;"<<endl <<"按下0:跳過基本信息。"<<endl <<"--------------------------------------"<<endl; cin>>flagAddPersonalInformation; (); if(flagAddPersonalInformation) { charname[30]; chariD[13]; charaddress[50]; charphone[14]; cout<<"請輸入學生姓名:"; cin>>name; (); cout<<"請輸入學生學號:"; cin>>iD; (); cout<<"請輸入學生地址:"; cin>>address; (); cout<<"請輸入學生電話:"; cin>>phone; (); studentInformation::studentVector[currentObjectPosition].Student_WritePersonalInformation(iD,name,address,phone); cout<<"基本信息輸入成功!"<<endl <<"------------------------------"<<endl; } //------------------------------------------------------------------------------------ cout<<"-------------------------------------"<<endl; cout<<"學習成績"<<endl; cout<<"按下1:錄入學生學習成績;"<<endl <<"按下0:跳過學習成績信息。"<<endl <<"--------------------------------------"<<endl; cin>>flagAddGrade; (); if(flagAddGrade) { intmathGrade; intphysicsGrade; intenglishGrade; cout<<"請輸入數學成績:"; cin>>mathGrade; (); cout<<"請輸入物理成績:"; cin>>physicsGrade; (); cout<<"請輸入英語成績:"; cin>>englishGrade; (); studentInformation::studentVector[currentObjectPosition].Student_WriteMaPhEgGrade(mathGrade,physicsGrade,englishGrade); cout<<"學習成績輸入成功!"<<endl <<"------------------------------"<<endl; } //--------------------------------------------------------------- cout<<"-------------------------------------"<<endl; cout<<"其他成績"<<endl; cout<<"按下1:錄入學生其他成績;"<<endl <<"按下0:跳過其他成績信息。"<<endl <<"--------------------------------------"<<endl; cin>>flagAddGrade; (); if(flagAddGrade) { intpeerGrade; intteacherGrade; intethicGrade; cout<<"請輸入同學評議成績:"; cin>>peerGrade; (); cout<<"請輸入教師評議成績:"; cin>>teacherGrade; (); cout<<"請輸入道德測評成績成績:"; cin>>ethicGrade; (); studentInformation::studentVector[currentObjectPosition].Student_WriteOtherGrade(peerGrade,teacherGrade,ethicGrade); cout<<"其他成績輸入成功!"<<endl <<"------------------------------"<<endl; } RankByGrade(); RankByTotalGrade(); cout<<"學生成績錄入成功!"<<endl; cout<<"-------------------------------------"<<endl<<endl;}voidSearchStudent(){ usingnamespacestd; usingnamespacestudentInformation; charID[13]; cout<<"請輸入學生的學號:"<<endl; cin>>ID; (); cout<<"------------------------------"<<endl; intvectorSize=(); inti=0; while((i<vectorSize)&(flagStudentFound!=0)) { flagStudentFound=strcmp(ID,studentVector[i].Student_ReadID()); i=i+1; } if(flagStudentFound==0) { flagStudentChoose=i-1; flagStudentFound=1; cout<<"您所查找的學生信息如下:"<<endl; studentVector[flagStudentChoose].Student_DisplayInformation(); } else { cout<<"未找到該學生"<<endl; }}voidModifyStudentInformation(){ usingnamespacestd; usingnamespacestudentInformation; intsearchVectorSize=(); if(searchVectorSize==0) { cout<<"---------------------------------------"<<endl; cout<<"當前系統中沒有學生信息,請先添加學生信息!"<<endl; cout<<"---------------------------------------"<<endl; } else { SearchStudent(); cout<<"您想對該學生的信息進行修改嗎?"<<endl; cout<<"按下1:是的。"<<endl; cout<<"按下0:放棄修改。"<<endl; cout<<"---------------------------------------"<<endl; intflagModify; cin>>flagModify; (); if((flagModify==1)&(flagStudentFound==0)) { AddStudentPersonalInformation(2); } }}voidDeleteStudentInformation(){ usingnamespacestd; usingnamespacestudentInformation; intdeleteVectorSize=(); if(deleteVectorSize==0) { cout<<"---------------------------------------"<<endl; cout<<"當前系統中沒有學生信息,請先添加學生信息!"<<endl; cout<<"---------------------------------------"<<endl; } else { SearchStudent(); cout<<"您想刪除該學生的信息嗎?"<<endl; cout<<"按下1:刪除。"<<endl; cout<<"按下0:取消。"<<endl; cout<<"---------------------------------------"<<endl; intflagModify; cin>>flagModify; (); if((flagModify==1)&(flagStudentFound==0)) { std::vector<Student>::iteratoriter=()+flagStudentChoose;//這樣就選中了一個查到的元素 (iter); } cout<<"學生信息刪除成功!"<<endl <<"----------------------------------"<<endl; }}voidDisplayStudentInformation(){ usingnamespacestd; usingnamespacestudentInformation; intdisplayVectorSize=(); if(displayVectorSize==0) { cout<<"---------------------------------------"<<endl; cout<<"當前系統中沒有學生信息,請先添加學生信息!"<<endl; cout<<"---------------------------------------"<<endl; } else { SearchStudent(); if(flagStudentFound==0) studentVector[flagStudentChoose].Student_DisplayInformation(); }}boolCmpGrade(Studentstudent1,Studentstudent2){ return()>();//如果student1成績大于student2,}voidRankByGrade(){ usingnamespacestudentInformation; usingnamespacestd; intrankVectorSize=(); if(rankVectorSize==1) { studentVector[0].Student_WriteGradeRank(1); } else { sort((),(),CmpGrade);//使用sort必須加上#includealgorithm和std。sort的前兩個參數是指針 inti=0; for(i=0;i<=rankVectorSize-1;i++) { if((i>=1)&&(studentVector[i].Student_ReadGrade()==studentVector[i-1].Student_ReadGrade())) studentVector[i].Student_WriteGradeRank(studentVector[i-1].Student_ReadGradeRank()); else studentVector[i].Student_WriteGradeRank(i+1); } }}boolCmpTotalGrade(Studentstudent1,Studentstudent2){ return()>();//如果student1成績大于student2,}voidRankByTotalGrade(){ usingnamespacestudentInformation; usingnamespacestd; intrankVectorSize=(); if(rankVectorSize==1) { studentVector[0].Student_WriteTotalGradeRank(1); } else { sort((),(),CmpGrade);//使用sort必須加上#includealgorithm和std。sort的前兩個參數是指針 inti=0; for(i=0;i<=rankVectorSize-1;i++) { if((i>=1)&&(studentVector[i].Student_ReadTotalGrade()==studentVector[i-1].Student_ReadTotalGrade())) studentVector[i].Student_WriteTotalGradeRank(studentVector[i-1].Student_ReadTotalGradeRank()); else studentVector[i].Student_WriteTotalGradeRank(i+1); } }}boolCmpID(Studentstudent1,Studentstudent2){ intresult; result=strcmp((),()); if(result<0) returntrue; else returnfalse;}voidRankByID(){ usingnamespacestudentInformation; usingnamespacestd; intrankVectorSize=(); sort((),(),CmpID); cout<<"-----------------------------------"<<endl; cout<<"排序成功!"<<endl; cout<<"-----------------------------------"<<endl;}voidDisplayAllStudentInformation(){ usingnamespacestd; usingnamespacestudentInformation; intdisplayVectorSize=(); inti; if(displayVectorSize==0) { cout<<"------------------------"<<endl; cout<<"當前系統中沒有學生信息!"<<endl; cout<<"------------------------"<<endl; } else { cout<<"--------------------------------------------------------"<<endl; cout<<"姓名學號綜合成績綜合排名"<<endl; for(i=0;i<displayVectorSize;i++) { cout<<studentVector[i].Student_ReadName()<<"" <<studentVector[i].Student_ReadID()<<"" <<studentVector[i].Student_ReadTotalGrade()<<"" <<studentVector[i].Student_ReadTotalGradeRank()<<endl; } cout<<"--------------------------------------------------------"<<endl; }}//-----------------------以下是主函數-------------------------------------------------------------------------------------voidmain(){ MainMenu();}/*----------------------------------------------------------------------------------------下面的這是一個排序函數,用到了冒泡排序法,但是程序沒用到。上面的排序用了sort()函數來實現,功能是一樣的。*//*voidRankByGrade(){usingnamespacestudentInformation;usingnamespacestd;intflagCompareOut=0;intflagCompareIn=0;intrankVectorSize;rankVectorSize=();if(rankVectorSize==0){cout<<"---------------------------------"<<endl<<"系統當前沒有學生信息!"<<endl<<"---------------------------------"<<endl;}elseif(rankVectorSize==1){studentVector[flagCompareOut].Student_WriteGradeRank(flagCompareOut+1);}else{intflagCompareOut=0;intflagCompareIn=0;for(flagCompareOut=0;flagCompareOut<rankVectorSize-1;flagCompareOut++){for(flagCompareIn=0;flagCompareIn<rankVectorSize-flagCompareOut-1;flagCompareIn++){if(studentVector[flagCompareIn].Student_ReadGrade()<studentVector[flagCompareIn+1].Student_ReadGrade()){StudentstudentTemp;studentTemp=studentVector[flagCompareIn];studen

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論