C++實現(xiàn)評教管理系統(tǒng)
更新時間:2022年03月15日 09:53:00 作者:唐納特
這篇文章主要為大家詳細介紹了C++實現(xiàn)評教管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C++實現(xiàn)評教管理系統(tǒng)的具體代碼,供大家參考,具體內容如下
#include<iostream> #include<fstream> #include<cstring> #include <stdlib.h> #include <conio.h> #include<vector> using namespace std; int n; ? class Student {public: ?? ?char sname[20]; ?? ?char snum[20]; ?? ?char sclass[20]; ?? ?void input(); }; /*--------------------------學生登陸-----------------------------*/ void Student::input() { ?? ?cout<<"請輸入您的姓名:";?? ?cin>>sname; ?? ?cout<<"請輸入您的學號:";?? ?cin>>snum; ?? ?cout<<"請輸入您的班級:";?? ?cin>>sclass; ?? ?cout<<"登陸成功!輸入任意字符繼續(xù)";?? ?getch(); } /*--------------------------評教信息 類模板-----------------------------*/ template<typename T1,typename T2,typename T3> class Lesson {public: ?? ?Lesson(){}; ?? ?~Lesson(){}; ?? ?T1 tname[20]; ?? ?T2 tlesson[20]; ?? ?T3 grade; ?? ?void display(); ?? ?void input(); ?? ?void show(); }; ? /*--------------------------輸出函數(shù)-----------------------------*/ template<typename T1,typename T2,typename T3> void Lesson<T1,T2,T3>::show() { ?? ?cout<<"教師姓名:"<<tname<<endl; ?? ?cout<<"課程名稱:"<<tlesson<<endl; ?? ?cout<<"評教分數(shù):"<<grade<<endl; } /*--------------------------新建類-----------------------------*/ class System {public: ?? ?System(){}; ?? ?~System(){}; ?? ?void add(); ?? ?int lname(char *x); ?? ?void find(); ?? ?void change(); ?? ?void dele(); ?? ?void menu(); ?? ?void display(); ?? ?void save(); ?? ?void read(); }; ?? ?vector<Lesson<char,char,double> >v; /*--------------------------輸入函數(shù)-----------------------------*/ template<typename T1,typename T2,typename T3> void Lesson<T1,T2,T3>::input() { ?? ?cout<<"請輸入教師姓名:";?? ?cin>>tname; ?? ?cout<<"請輸入課程名稱:";?? ?cin>>tlesson; ?? ?cout<<"請輸入打分(0-100):";?? ?cin>>grade; ?? ?try{?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?//異常處理? ?? ??? ?if(grade<0||grade>100)?? ?throw 0; ?? ??? ?else ?? ??? ?cout<<endl;} ?? ?catch(int) ?? ?{cout<<"輸入數(shù)據(jù)錯誤,請重新輸入";} ?? ?cout<<endl; } /*--------------------------讀取函數(shù)-----------------------------*/ void System::read() { ? ? Lesson<char,char,double> ch; ? ? ifstream infile("sys.txt",ios::binary); ? ? if(!infile){ ? ? ? ? cout<<"文件打不開"<<endl; ? ? } ? ? infile.read((char*)&ch,sizeof(ch)); ? ? while(!infile.eof()) ? ? { ? ? v.push_back(ch); ? ? infile.read((char*)&ch,sizeof(ch)); ? ? ? ? ??? ?cout<<"教師姓名:"<<ch.tname<<endl; ? ? ? ? cout<<"課程名稱:"<<ch.tlesson<<endl; ? ? ? ? cout<<"評教分數(shù):"<<ch.grade<<endl; ? ? ? ? cout<<endl; ? ? ? } ? ? infile.close(); ? ? cout<<"讀取成功"<<endl; ?? ?getch(); } /*--------------------------保存函數(shù)-----------------------------*/ void System::save() ?? ?{ ? ? ? ofstream outfile("sys.txt",ios::binary); ?? ? ?Lesson<char,char,double>t; ?? ? ?vector<Lesson<char,char,double> >::iterator ap; ?? ? ?if(!outfile) ?? ??? ? ?cout<<"文件不能被打開"<<endl; ? ? else ? ? { ? ? ? ? ? ? for(ap=v.begin();ap!=v.end();ap++) ? ? ? ? { ? ? ? ? ? ? ? ? t=*ap; ? ? ? ? ? ? ?outfile.write((char*)&t,sizeof(t)); ? ? ? ? ? ? ?cout<<"保存成功"<<endl; ? ? ? ? } ? ? ? ? outfile.close(); ? ? ? ? getch(); ? ? } ? } void System::display()? { ?? ?for(int i=0;i<n;i++) ?? ?{v[i].show();}? ? ? cout<<"輸入任意字符繼續(xù)";?? ?getch(); } /*--------------------------主菜單-----------------------------*/ void System::menu()? { ?? ?cout<<"--------------*評 教 管 理 系 統(tǒng)*-------------"<<endl; ? ? cout<<"--------------*$1. 學生登陸界面*--------------"<<endl; ? ? cout<<"--------------*$2. 增加評教信息*--------------"<<endl; ? ? cout<<"--------------*$3. 更改評教信息*--------------"<<endl; ? ? cout<<"--------------*$4. 查找評教信息*--------------"<<endl; ? ? cout<<"--------------*$5. 顯示評教信息*--------------"<<endl; ? ? cout<<"--------------*$6. 刪除評教信息*--------------"<<endl; ? ? cout<<"--------------*$7. 保存相關數(shù)據(jù)*--------------"<<endl; ? ? cout<<"--------------*$8. 讀取相關數(shù)據(jù)*--------------"<<endl; ? ? cout<<"--------------*$9. 退出評教系統(tǒng)*--------------"<<endl; } /*--------------------------添加數(shù)據(jù)-----------------------------*/ void System::add() { ?? ?string h="y"; ?? ?do{ ?? ?Lesson<char,char,double>l; ?? ?l.input(); ?? ?n++; ?? ?v.push_back(l);? ?? ?cout<<"是否繼續(xù)添加(y/n)?"; ?? ?cin>>h; ?? ?}while(h=="y"); ?? ?cout<<"添加成功!輸入任意字符繼續(xù)"; ?? ?getch(); } /*--------------------------查找課程-----------------------------*/ int System::lname(char *x)? { ?? ?int i; ? ? for(i=0;i<n;i++) ? ? { ? ? ? ? if(strcmp(v[i].tlesson,x)==0) ? ? ? ? { ?return i;}? ? ? } ? ? return -1; } ? void System::find() { ?? ?char x[20]; ?? ?int a; ?? ?cout<<"請輸入要查找的課程名稱:";?? ?cin>>x; ?? ?a=lname(x); ?? ?if(a!=-1) ?? ?v[a].show(); ?? ?else ?? ?cout<<"沒有找到相關課程信息"<<endl; ?? ?cout<<"輸入任意字符繼續(xù)"; ?? ?getch(); } /*--------------------------更改數(shù)據(jù)-----------------------------*/ void System::change()? { ?? ?char b[20]; ?? ?int k; ?? ?cout<<"請輸入需要修改的課程名稱:";?? ?cin>>b; ?? ?k=lname(b); ?? ?if(k!=-1){ ?? ?cout<<"已找到,請輸入新的信息:"<<endl; ?? ?v[k].input();} ?? ?cout<<"輸入任意字符繼續(xù):"; ? ? getch(); } /*--------------------------刪除數(shù)據(jù)-----------------------------*/ void System::dele() { ?? ?char c[20]; ?? ?int d; ?? ?cout<<"請輸入要刪除的課程名稱:";?? ?cin>>c; ?? ?d=lname(c); ?? ?if(d!=-1) ?? ?{for(;d<n-1;d++) ?? ?{strcpy(v[d].tname,v[d+1].tname); ? ? strcpy(v[d].tlesson,v[d+1].tlesson); ? ? v[d].grade==v[d+1].grade; ?? ?} ?? ?n--; ?? ?} ?? ?else ? ? cout<<"輸入錯誤,找不到該課程信息"<<endl; ? ? cout<<"輸入任意字符繼續(xù)"; ? ? getch(); }? /*--------------------------主函數(shù)-----------------------------*/ int main() {?? ? ?? ?Student x; ?? ?System y;? ?? ?int a; ?? ?string ss="y"; ?? ?do{ ?? ??? ?system("cls"); ?? ??? ?cout<<"====================歡迎進入評教管理系統(tǒng)!===================="<<endl; ? ? ?? ?y.menu() ; ?? ??? ?cout<<"請輸入相應阿拉伯數(shù)字:"; ? ? ?? ?cin>>a; ? ? ?? ?switch(a) ? ? ?? ?{ ? ? ?? ??? ?case 1:x.input();break; ? ? ?? ??? ?case 2:y.add();break; ? ? ?? ??? ?case 3:y.change();break; ? ? ?? ??? ?case 4:y.find();break; ? ? ?? ??? ?case 5:y.display();break; ? ? ?? ??? ?case 6:y.dele();break; ? ? ?? ??? ?case 7:y.save();break; ?? ??? ??? ?case 8:y.read();break;? ? ? ?? ??? ?case 9:ss="n";break; ?? ??? ?} ?? ??? ?}while(ss=="y"); ?? ?return 0; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
ubuntu系統(tǒng)下C++調用matlab程序的方法詳解
學習c++與matlab混合編程一般是通過c++調用matlab函數(shù),因為matlab具有強大的數(shù)學函數(shù)庫,然而vc++具有界面設計靈活的優(yōu)點,下面這篇文章主要給大家介紹了關于在ubuntu系統(tǒng)下C++調用matlab程序的方法,需要的朋友可以參考下。2017-08-08Qt(C++)調用工業(yè)相機Basler的SDK使用示例
這篇文章主要介紹了Qt(C++)調用工業(yè)相機Basler的SDK使用示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03