C++實(shí)現(xiàn)評(píng)教管理系統(tǒng)
本文實(shí)例為大家分享了C++實(shí)現(xiàn)評(píng)教管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
#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(); }; /*--------------------------學(xué)生登陸-----------------------------*/ void Student::input() { ?? ?cout<<"請(qǐng)輸入您的姓名:";?? ?cin>>sname; ?? ?cout<<"請(qǐng)輸入您的學(xué)號(hào):";?? ?cin>>snum; ?? ?cout<<"請(qǐng)輸入您的班級(jí):";?? ?cin>>sclass; ?? ?cout<<"登陸成功!輸入任意字符繼續(xù)";?? ?getch(); } /*--------------------------評(píng)教信息 類模板-----------------------------*/ 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<<"評(píng)教分?jǐn)?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<<"請(qǐng)輸入教師姓名:";?? ?cin>>tname; ?? ?cout<<"請(qǐng)輸入課程名稱:";?? ?cin>>tlesson; ?? ?cout<<"請(qǐng)輸入打分(0-100):";?? ?cin>>grade; ?? ?try{?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?//異常處理? ?? ??? ?if(grade<0||grade>100)?? ?throw 0; ?? ??? ?else ?? ??? ?cout<<endl;} ?? ?catch(int) ?? ?{cout<<"輸入數(shù)據(jù)錯(cuò)誤,請(qǐng)重新輸入";} ?? ?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<<"評(píng)教分?jǐn)?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<<"--------------*評(píng) 教 管 理 系 統(tǒng)*-------------"<<endl; ? ? cout<<"--------------*$1. 學(xué)生登陸界面*--------------"<<endl; ? ? cout<<"--------------*$2. 增加評(píng)教信息*--------------"<<endl; ? ? cout<<"--------------*$3. 更改評(píng)教信息*--------------"<<endl; ? ? cout<<"--------------*$4. 查找評(píng)教信息*--------------"<<endl; ? ? cout<<"--------------*$5. 顯示評(píng)教信息*--------------"<<endl; ? ? cout<<"--------------*$6. 刪除評(píng)教信息*--------------"<<endl; ? ? cout<<"--------------*$7. 保存相關(guān)數(shù)據(jù)*--------------"<<endl; ? ? cout<<"--------------*$8. 讀取相關(guān)數(shù)據(jù)*--------------"<<endl; ? ? cout<<"--------------*$9. 退出評(píng)教系統(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<<"請(qǐng)輸入要查找的課程名稱:";?? ?cin>>x; ?? ?a=lname(x); ?? ?if(a!=-1) ?? ?v[a].show(); ?? ?else ?? ?cout<<"沒有找到相關(guān)課程信息"<<endl; ?? ?cout<<"輸入任意字符繼續(xù)"; ?? ?getch(); } /*--------------------------更改數(shù)據(jù)-----------------------------*/ void System::change()? { ?? ?char b[20]; ?? ?int k; ?? ?cout<<"請(qǐng)輸入需要修改的課程名稱:";?? ?cin>>b; ?? ?k=lname(b); ?? ?if(k!=-1){ ?? ?cout<<"已找到,請(qǐng)輸入新的信息:"<<endl; ?? ?v[k].input();} ?? ?cout<<"輸入任意字符繼續(xù):"; ? ? getch(); } /*--------------------------刪除數(shù)據(jù)-----------------------------*/ void System::dele() { ?? ?char c[20]; ?? ?int d; ?? ?cout<<"請(qǐng)輸入要?jiǎng)h除的課程名稱:";?? ?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<<"輸入錯(cuò)誤,找不到該課程信息"<<endl; ? ? cout<<"輸入任意字符繼續(xù)"; ? ? getch(); }? /*--------------------------主函數(shù)-----------------------------*/ int main() {?? ? ?? ?Student x; ?? ?System y;? ?? ?int a; ?? ?string ss="y"; ?? ?do{ ?? ??? ?system("cls"); ?? ??? ?cout<<"====================歡迎進(jìn)入評(píng)教管理系統(tǒng)!===================="<<endl; ? ? ?? ?y.menu() ; ?? ??? ?cout<<"請(qǐng)輸入相應(yīng)阿拉伯?dāng)?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; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C++實(shí)現(xiàn)教工考勤信息管理系統(tǒng)
- C++實(shí)現(xiàn)教職工信息管理系統(tǒng)課程設(shè)計(jì)
- C++實(shí)現(xiàn)教職工信息管理系統(tǒng)
- C++實(shí)現(xiàn)教職工管理系統(tǒng)課程設(shè)計(jì)
- C++實(shí)現(xiàn)高校教室管理系統(tǒng)
- C++實(shí)現(xiàn)教師管理系統(tǒng)
- C++實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng)
- C++學(xué)生信息管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)C++實(shí)現(xiàn)代碼
- C++實(shí)現(xiàn)教務(wù)管理系統(tǒng)
相關(guān)文章
C++實(shí)現(xiàn)線程池的簡(jiǎn)單方法示例
這篇文章主要給大家介紹了關(guān)于C++實(shí)現(xiàn)線程池的簡(jiǎn)單方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05C語言實(shí)現(xiàn)簡(jiǎn)單的貪吃蛇游戲的示例代碼
這篇文章主要為大家詳細(xì)介紹了C語言如何實(shí)現(xiàn)經(jīng)典貪吃蛇游戲,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C語言有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下2023-01-01ubuntu系統(tǒng)下C++調(diào)用matlab程序的方法詳解
學(xué)習(xí)c++與matlab混合編程一般是通過c++調(diào)用matlab函數(shù),因?yàn)閙atlab具有強(qiáng)大的數(shù)學(xué)函數(shù)庫,然而vc++具有界面設(shè)計(jì)靈活的優(yōu)點(diǎn),下面這篇文章主要給大家介紹了關(guān)于在ubuntu系統(tǒng)下C++調(diào)用matlab程序的方法,需要的朋友可以參考下。2017-08-08C++產(chǎn)生隨機(jī)數(shù)的幾種方法小結(jié)
本文主要介紹了C++產(chǎn)生隨機(jī)數(shù)的幾種方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03vc控制臺(tái)程序關(guān)閉事件時(shí)的處理方式及注意點(diǎn)詳解
在本篇文章里小編給大家整理的是一篇關(guān)于vc控制臺(tái)程序關(guān)閉事件時(shí)的正確處理方式的相關(guān)知識(shí)點(diǎn)內(nèi)容,對(duì)此有需求的朋友們可以參閱下。2021-12-12Qt(C++)調(diào)用工業(yè)相機(jī)Basler的SDK使用示例
這篇文章主要介紹了Qt(C++)調(diào)用工業(yè)相機(jī)Basler的SDK使用示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03C語言實(shí)現(xiàn)自動(dòng)發(fā)牌程序
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)自動(dòng)發(fā)牌程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04C語言代碼實(shí)現(xiàn)簡(jiǎn)單掃雷游戲
這篇文章主要為大家詳細(xì)介紹了C語言代碼實(shí)現(xiàn)簡(jiǎn)單掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02