当前位置:文档之家› 教师课程管理系统(c++课程设计源代码)

教师课程管理系统(c++课程设计源代码)

#include<iostream>#include<iomanip>#include<conio.h>#include<fstream>#include<string>#include<windows.h>using namespace std;using std::string;class ke;ostream&operator<<(ostream&dist,ke&k);istream&operator>>(istream&sour,ke&k);class teacher;ostream&operator<<(ostream&dist,teacher&t);istream&operator>>(istream&sour,teacher&t);class ke{protected:static int keID;string keName;char keJB;int keXS;int keJC;int keBH;public:ke(string name="未命名的课程",char jb='0',int xs=0,int jc=0,int bh=0);void show();friend ostream&operator<<(ostream&dist,ke&k);friend istream&operator>>(istream&sour,ke&k);int getkeJC(){return keJC;}string getkeName(){return keName;}};int ke::keID=0;ke::ke(string name,char jb,int xs,int jc,int bh){keID++;bh=keID;keName=name;keJB=jb;keXS=xs;keJC=jc;keBH=bh;}void ke::show(){cout<<"课程编号:"<<keBH<<endl;cout<<"课程名称:"<<keName<<endl;cout<<"课程级别:";switch (keJB){case '1':cout<<"公共基础课"<<endl;break;case '2':cout<<"专业基础课"<<endl;break;case '3':cout<<"专业课"<<endl;break;case '4':cout<<"公选课"<<endl;}cout<<"学时:"<<keXS<<endl;cout<<"基本课酬:"<<keJC<<endl;}ostream&operator<<(ostream&dist,ke&k){dist<<right<<setw(10)<<k.keBH;dist<<left<<setw(20)<<k.keName;dist<<right<<setw(10)<<k.keJB<<setw(10)<<k.keXS<<setw(10)<<k.keJC<<endl;return dist;}istream&operator>>(istream&sour,ke&k){sour>>k.keBH>>k.keName>>k.keJB>>k.keXS>>k.keJC;return sour;}class keDB:public ke{public:int judge();void add();void del();};void keDB::add(){cout<<"请输入课程名称:";cin>>keName;cout<<"1)公共基础课2)专业基础课3)专业课4)公选课"<<endl;cout<<"请输入课程级别(序号):";cin>>keJB;while(keJB!='1'&&keJB!='2'&&keJB!='3'&&keJB!='4'){cout<<"错了!让你输1、2、3、4你还输别的,专业点好不好=_=...."<<endl;cout<<"1)公共基础课2)专业基础课3)专业课4)公选课"<<endl;cout<<"请重新输入课程级别(序号):";cin>>keJB;}cout<<"请输入学时:";cin>>keXS;while(keXS<=0||keXS>=100){cout<<"要么学时太多超出范围,要么你就输入了什么奇怪的东西,重新输!"<<endl;cout<<"请重新输入学时:";cin>>keXS;}cout<<"请输入基本课酬:";cin>>keJC;while(keJC<=0||keJC>=100000){if(keJC>=10000) cout<<"这个价位也太高了吧,你确定不是在洗黑钱?"<<endl;else if(keJC<=0) cout<<"给人上课还倒贴钱,脑子进水了吧=_="<<endl;cout<<"请重新输入基本课酬:";cin>>keJC;}cout<<"课程编号(自动生成):"<<keBH<<endl;}void keDB::del(){keName="未命名的课程";keJB='0';keXS=0;keJC=0;}int keDB::judge(){return keJB;}class teacher{protected:static int teachID;string teName;int teNo;string teClass;int teNumber;double teMoney;string kName;keDB k[100];public:teacher(string kname="none",int no=0,string name="none",string tclass="none",int number=0,int money=0){teachID++;kName=kname;teNo=teachID;teName=name;teClass=tclass;teNumber=number;teMoney=money;}string getkeName(){return teName;}friend ostream&operator<<(ostream&dist,teacher&t);friend istream&operator>>(istream&sour,teacher&t);void show(){if(teName!="none"){pay();cout<<"教师编号:"<<teNo<<endl;cout<<"教师姓名:"<<teName<<endl;cout<<"课程名称:"<<kName<<endl;cout<<"教授班级编号:"<<teClass<<endl;cout<<"教授班级数量:"<<teNumber<<endl;cout<<"课酬:"<<teMoney<<endl;}else cout<<"该老师不存在!"<<endl;}void pay(){keDB k[100];int i=0,n=0,m=0;ifstream ifile("D:\\课程数据.data");for(i=0;i<100;i++) ifile>>k[i];ifile.close();for(i=0;i<100;i++){if(k[i].getkeName()==kName){m=i;break;}}switch(k[m].judge()){case '1':if(teNumber<=3) teMoney=k[m].getkeJC()*teNumber;else{if(teNumber<=6) teMoney=k[m].getkeJC()*teNumber*1.1;else teMoney=k[m].getkeJC()*teNumber*1.2;}break;case '2':teMoney=k[m].getkeJC()*1.2*teNumber;break;case '3':teMoney=k[m].getkeJC()*1.2*teNumber;break;case '4':teMoney=k[m].getkeJC()*teNumber;break;}}};int teacher::teachID=0;ostream&operator<<(ostream&dist,teacher&t){dist<<right<<setw(10)<<t.teNo;dist<<left<<setw(20)<<t.teName<<setw(20)<<t.kName<<setw(60)<<t.teClass;dist<<right<<setw(10)<<t.teNumber<<setw(10)<<t.teMoney<<endl;return dist;}istream&operator>>(istream&sour,teacher&t){sour>>t.teNo>>t.teName>>t.kName>>t.teClass>>t.teNumber>>t.teMoney;return sour;}class teacherDB:public teacher{public:int judge(){return teNumber;}void add(){int i=0;string temp,a="、";cout<<"请输入教师名称:";cin>>teName;cout<<"请输入老师所教授课程的名称";cin>>kName;cout<<"请输入教师所教授班级的数量";cin>>teNumber;teClass="";cout<<"请输入教师所教授班级的编号";for(i=0;i<teNumber;i++){cin>>temp;teClass+=temp;teClass+=a;}cout<<"教师编号(自动生成):"<<teNo<<endl;pay();cout<<"教师课酬(自动生成):"<<teMoney<<endl;}void del(){teName="none";kName="none";teClass="none";teNumber=0;teMoney=0;}};int main(){int i,c;char a,b='1',d,e;string str;keDB k[100];teacherDB t[100];cout<<" ╔@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@╗"<<endl;cout<<" @@ "<<endl;cout<<" @C++ 真难@ "<<endl;cout<<" @@ "<<endl;cout<<" @(→_→)(←_←)@ "<<endl;cout<<" @@ "<<endl;cout<<" @(——)@ "<<endl;cout<<" @@"<<endl;cout<<" @ ▂▃▄▅▅▅▅▄▃▂@ "<<endl;cout<<" ╚@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@╝"<<endl;cout<<" 按任意键继续。

相关主题