这是图书管理系统的 一部分,有Course数据类和Teachercaozuo类,现在程序能正常运行,但是运行窗口输入数据后数据没了,程序也没反应,我检查了一下应该是操作类的问题。
图一是一开始的,图二输入数据回车后数据就没了,程序没反应变成图三这样
这是我的程序,和文件 图
#include<iostream> #include<vector> #include<string> #include<map> #include<fstream> using namespace std; class Course { private: string cno; string cname; string ccollege; string cdepartment; int cxuefen; string ccoursetype;//基础数据 string cteachername;//任课教师生成//动态生成 string cbanhao; string cclass; int czxs; string czhouci; string ctime[2]; int callcapacity; int csycapacity; string cpscj; string cqmcj; string czzcj; string csee;//动态生成 vector<string>csnov;//选课学生列表 //int csno;//选课学生学号 public: Course(string a,string b,string c,string d,int e,string f,string g,string h,string i,int j,int k,string l,string m,int n,int o,string p,string q,string r,string s,vector<string> csnov2); Course(); string getcno(){return cno;} void setcno(string a){cno=a;} string getcname(){return cname;} void setcname(string a){cname=a;} string getccollege(){return ccollege;} void setccollege(string a){ccollege=a;} string getcdepartment(){return cdepartment;} void setcdepartment(string a){cdepartment=a;} int getcxuefen(){return cxuefen;} void setcxuefen(int a){cxuefen=a;} string getccoursetype(){return ccoursetype;} void setccoursetype(string a){ccoursetype=a;}// string getcteacher(){return cteachername;} void setcteacher(string a){cteachername=a;} string getcbanhao(){return cbanhao;} void setcbanhao(string a){cbanhao=a;} string getcclass(){return cclass;} void setcclass(string a){cclass=a;} int getczxs(){return czxs;} void setczxs(int a){czxs=a;} string getczhouci(){return czhouci;} void setczhouci(string a){czhouci=a;} string getctime1(){return ctime[0];} void setctime1(string a){ctime[0]=a;} string getctime2(){return ctime[1];} void setctime2(string a){ctime[1]=a;} int getcallcapacity(){return callcapacity;} void setcallcapacity(int a){callcapacity=a;} int getcsycapacity(){return csycapacity;} void setcsycapacity(int a){csycapacity=a;} string getcpscj(){return cpscj;} void setcpscj(string a){cpscj=a;} string getcqmcj(){return cqmcj;} void setcqmcj(string a){cqmcj=a;} string getczzcj(){return czzcj;} void setczzcj(string a){czzcj=a;} string getcsee(){return csee;} void setcsee(string a){csee=a;} /*string getkehao(int a){return cxk[a].kehao;} string getbanhao(int a){return cxk[a].banhao;} string getteachername(int a){return cxk[a].teachername;} string gettime(int a){return cxk[a].time[2];} int getzhouci(int a){return cxk[a].zhouci;} int getqueren(int a){return cxk[a].queren;}*/ friend ostream&operator<<(ostream &os,Course &c); friend istream&operator>>(istream &is,Course &c); //set函数 老师一些信息的改动 void cadd(string a);//该函数 学生vector的学号信息元素的添加 void cdelete(int a);// 删除 //老师冲突的功能转到Teacher数据类了 string chouqianxuehao(int a);//返回抽签要删除vector中的学号,a 是序号 }; Course::Course(string a,string b,string c,string d,int e,string f,string g,string h,string i,int j,int k,string l,string m,int n,int o,string p,string q,string r,string s,vector<string>csnov2):cno(a),cname(b),ccollege(c),cdepartment(d),cxuefen(e),ccoursetype(f)/*,cteachername(g),cbanhao(h),cclass(i),czxs(j),czhouci(k),time[0](l),time[1](m),allcapacity(n),sycapacity(o),pcj(p),qmcj(q),zzcj(r),see(s)*/ { cteachername=g; cbanhao=h; cclass=i; czxs=j; czhouci=k; ctime[0]=l; ctime[1]=m; callcapacity=n; csycapacity=o; cpscj=p; cqmcj=q; czzcj=r; csee=s; csnov.assign(csnov2.begin(),csnov2.end()); } Course::Course(){cteachername="无";cbanhao="无";cclass="无";czxs=0;czhouci="无";ctime[0]="无";ctime[1]="无";callcapacity=50;csycapacity=50;cpscj="000";cqmcj="000";czzcj="000";csee="无";} istream&operator>>(istream &is,Course &c) { is>>c.cno>>c.cname>>c.ccollege>>c.cdepartment>>c.cxuefen>>c.ccoursetype; is>>c.cteachername>>c.cbanhao>>c.cclass>>c.czxs>>c.czhouci>>c.ctime[0]>>c.ctime[1]>>c.callcapacity>>c.csycapacity>>c.cpscj>>c.cqmcj>>c.czzcj>>c.csee; vector<string>::iterator it; for(it=c.csnov.begin();it!=c.csnov.end();it++) { is>>(*it); } return is; } ostream&operator<<(ostream &os,Course &c) { vector<string>::iterator it; os<<c.cno<<"\t"<<c.cname<<"\t"<<c.ccollege<<"\t"<<c.cdepartment<<"\t"<<c.cxuefen<<"\t"<<c.ccoursetype<<"\t"; os<<c.cteachername<<"\t"<<c.cbanhao<<"\t"<<c.cclass<<"\t"<<c.czxs<<"\t"<<c.czhouci<<"\t"<<c.ctime[0]<<c.ctime[1]<<"\t"<<c.callcapacity<<"\t"<<c.csycapacity<<"\t"<<c.cpscj<<"\t"<<c.cqmcj<<"\t"<<c.czzcj<<"\t"<<c.csee<<"\t"; for(it=c.csnov.begin();it!=c.csnov.end();it++) { os<<*it; } return os; } void Course::cadd(string a)//学号 { csnov.push_back(a); //m.insert(make_pair(a,csnov.size()-1)); } void Course::cdelete(int a)//序号 { vector<string>::iterator it; for(it=csnov.begin();it!=csnov.end();it++) { if((*it)==csnov[a]) { csnov.erase(it); } } } string Course::chouqianxuehao(int a) { vector<string>::iterator it; for(it=csnov.begin();it!=csnov.end();it++) { if((*it)==csnov[a]) { string b=(*it); return b; } } } class Teachercaozuo { private: //vector<Teacher>tteacher; //vector<Xuanke2>txuanke; vector<Course>tcourse; //vector<Course>iterator::tcit; map<string,int>tccollege; map<string,int>tcdepartment; map<string,int>tcname; public: Teachercaozuo(){load1();} ~Teachercaozuo(){save1();} void load1(); //void load2(); void save1(); //void save2(); void tsearch1(string a); void tsearch2(string a); void tsearch3(string a); //void treselect(string tno,string kehao,string banhao,string banji,string sj1,string sj2,string zc,string shi,int xs,string tname); }; void Teachercaozuo::load1() { Course c; ifstream infile("2018211179-course.txt"); if(!infile){cout<<0;}; while(!infile.eof()) { infile>>c; tcourse.push_back(c); tccollege.insert(make_pair(c.getccollege(),tcourse.size()-1)); tcdepartment.insert(make_pair(c.getcdepartment(),tcourse.size()-1)); tcname.insert(make_pair(c.getcname(),tcourse.size()-1)); } infile.close(); } /*void Teachercaozuo::load2() { Teacher t; ifstream infile("2018211179-teacher.txt"); if(!infile.eof()) { infile>>t; tteacher.push_back(t); } }*/ void Teachercaozuo::save1() { ofstream outfile; if(!outfile){cout<<"文件未打开";} outfile.open("2018211179-course2.txt"); vector<Course>::iterator it; for(it=tcourse.begin();it!=tcourse.end();it++) { outfile<<*it<<endl; cout<<*it; } outfile.close(); } /*void Teachercaozuo::save2() { ofstream outfile; if(!outfile){cout<<"文件未打开";} outfile.open("2018211179-teacher2.txt"); vector<Teacher>::iterator it; for(it=tteacher.begin();it!=tteacher.end();it++) { outfile<<*it<<endl; cout<<*it; } outfile.close(); }*/ void Teachercaozuo::tsearch1(string a)//学院 { map<string,int>::iterator it; it=tccollege.find(a); if(it==tccollege.end()) return; else { cout<<"存在"<<tcourse[it->second]<<endl; } } void Teachercaozuo::tsearch2(string a)//专业 { map<string,int>::iterator it; it=tcdepartment.find(a); if(it==tcdepartment.end()) return ; else { cout<<"存在"<<tcourse[it->second]<<endl; } } void Teachercaozuo::tsearch3(string a)//名字 { map<string,int>::iterator it; it=tcname.find(a); if(it==tcname.end()) return ; else { cout<<"存在"<<tcourse[it->second]<<endl; } } int main() { cout<<"请输入你要查询的开课学院"<<endl; Teachercaozuo tcz; string kkxy; cin>>kkxy; tcz.tsearch1(kkxy); return 0; }