qq_45657119 2020-07-12 17:51 采纳率: 0%
浏览 72
已结题

C++运行窗口输入数据,运行没反应

这是图书管理系统的 一部分,有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;
}

  • 写回答

4条回答 默认 最新

  • qq_45657119 2020-07-12 17:53
    关注

    急需解决


    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器