类的定义classRecord{public:Record();//构造函数voidSetDate();//输入设置学生信息voidReadDate();//读取文本信息函数voidSaveData();//向文本保存信息函数voidFindRecord();//查找学生信息函数voidtongji();//统计某时间段内学生旷课数与某课程的缺课数voidModifyDate();//修改学生信息voidDelRecord();//删除学生信息intleixing;//缺课类型longID;//学生学号charName[20];//学生姓名charclassname[20];//旷课名称intriqi;//旷课日期voidShowDate(inti);//输出函数};classstudent{public:intchidao;charname[20];};//类的实现#includekaoqin.hpp#includeiostream#includeconio.h#includestring.h#includefstreamusingnamespacestd;#defineSize1000usingnamespacestd;//构造函数Record::Record(){leixing=0;ID=0;classname[20]=0;riqi=0;Name[20]=0;}RecordCRecord[Size];RecordCRecord1[Size];studentA[Size];staticintrenshu=0;/////////////////////////////////////////////////////输出函数voidRecord::ShowDate(inti){cout\tCRecord[i].IDCRecord[i].NameCRecord[i].riqiCRecord[i].classnameCRecord[i].leixingendl;}//////////////////////////////////////////////输入增添学生人数voidRecord::SetDate(){inti=0;intm=0;cout\n输入/增添学生人数:;cinm;for(i=0;im;i++){cout\n输入/增添第i+1个学生的信息:endl;cout\n\t学号:;cinCRecord[renshu+i].ID;cout\n\t姓名:;cinCRecord[renshu+i].Name;cout\n\t日期:;cinCRecord[renshu+i].riqi;cout\n\t课程名称:;cinCRecord[renshu+i].classname;cout\n\t缺课类型请选择:1迟到2早退3旷课4请假;cinCRecord[renshu+i].leixing;system(cls);}renshu=m+renshu;}/////////////////////////////////////////////////////////////////修改学生信息voidRecord::ModifyDate(){inti,j=1;charA,a='Y',b='N';intc,n;longid;charname[]={0};if(renshu=0)cout\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!\n\n;elsewhile(j==1){system(cls);cout\n请输入要修改学生的学号:;cinid;for(i=0;irenshu;i++){if(CRecord[i].ID==id){cout\n该学生的原始信息是:\n;cout\n\t学号姓名日期课程名称缺课类型:1代表迟到2代表早退3代表旷课4代表请假endl;ShowDate(i);cout\n是否修改学生信息:确认(Y)/取消(N):;cinA;if(A==a||A==a+32){cout\n\t选择修改内容:(1学号2姓名3日期4课程名称5缺课类型:1迟到2早退3旷课4请假):;cinn;switch(n){case1:cout\n新的学号:;cinid;CRecord[i].ID=id;break;case2:cout\n新的姓名:;cinname;strcpy(CRecord[i].Name,name);break;case3:cout\n输入旷课日期:;cinn;CRecord[i].riqi=n;break;case4:cout\n输入课程名称:;cinname;strcpy(CRecord[i].classname,name);break;case5:cout\n输入缺课类型:;cinc;CRecord[i].leixing=c;break;default:cout\n输入错误修改失败;break;}cout\n\n\n\t\t\t学生信息修改成功!\n\n;}elseif(A==b||A==b+32)cout\n\n\t\t\t你取消了对该条信息信息的修改!\n\n;elsecout\n\n\t\t\t输入错误!修改失败!\n\n;}//cout继续修改请endl;//if()}if(i=renshu){cout\n\t\t没有你所查找的记录!\n;cout\n重新查询修改请输0否则输任意值:;cini;if(i==0)j=1;else{system(cls);cout\n\n\n\n\t\t\t信息修改失败!\n\n;j=0;break;}}}}////////////////////////////删除学生信息voidRecord::DelRecord(){inti=0,j;longid=0;charr[]={0},A,a='Y',b='N';if(renshu=0)cout\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!\n\n;else{cout\n删除所有学生信息请输1,删除个别学生信息请输2:;cinj;if(j==1){cout\n是否删除所有同学信息:确认(Y)/取消(N):;cinA;if(A==a||A==a+32){renshu=0;cout\n\n\n\t\t\t所有信息删除成功!\n\n;}elseif(A==b||A==b+32)cout\n\n\t\t\t你取消了对所有信息的删除!\n\n;elsecout\n\n\t\t\t输入错误!删除失败!\n\n;}elseif(j==2){system(cls);cout\n请输入要删除学生的学号:;cinid;for(i=0;irenshu;i++){if(CRecord[i].ID==id){cout\n该学生的原始信息是:\n;cout\n\t学号姓名日期课程名称缺课类型:1迟到2早退3旷课4请假endl;ShowDate(i);cout\n是否删除该学生的信息:确认(Y)/取消(N):;cinA;if(A==a||A==a+32){for(j=i;jrenshu-1;j++){strcpy(CRecord[j].Name,CRecord[j+1].Name);CRecord[j].ID=CRecord[j+1].ID;CRecord[j].leixing=CRecord[j+1].leixing;strcpy(CRecord[j].classname,CRecord[j+1].classname);}renshu--;cout\n\n\t\t该学生删除信息删除成功!\n\n;}elseif(A==b||A==b+32)cout\n\n\t\t你取消了对该生信息的删除!\n\n;}}if(i=renshu)cout\n没有你所查找的记录!\n;}}}/////////////////////////////////////从文本中读取信息voidRecord::ReadDate(){inti=0;ifstreamfile2(Record.txt,ios::binary);if(!file2){abort();}while(!file2.eof()){file2.read((char*)&CRecord[i],sizeof(CRecord[i]));i++;}if(i==0)renshu=i;else{i--;renshu=i;}file2.close();return;}///////////////////////////////////向文本中保存信息voidRecord::SaveData(){inti=0;ofstreamfile(Record.txt,ios::binary);if(!file){cerropenRecord.daterrorendl;abort();}for(i=0;irenshu;i++){file.write((char*)&CRecord[i],sizeof(CRecord[i]));}file.close();}//////////////////////////////////查找单人考勤信息voidRecord::FindRecord(){inti,b;intchidao=0,zaotui=0,kuangke=0,qingjia=0;longid;if(renshu=0)cout\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!\n\n;else{cout\n请输入你要查找的学生学号:;cinid;for(i=0;irenshu;i++){if(CRecord[i].ID==id){if(CRecord[i].leixing==1)chidao++;elseif(CRecord[i].leixing==2)zaotui++;elseif(CRecord[i].leixing==3)kuangke++;elseif(CRecord[i].leixing==4)qingjia++;break;}}if(i=renshu)cout\n没有你所查找的记录!;else{for(b=i+1;brenshu;b++){if(CRecord[i].ID==CRecord[b].ID){if(CRecord[i].leixing==1)chidao++;elseif(CRecord[i].leixing==2)zaotui++;elseif(CRecord[i].leixing==3)kuangke++;elseif(CRecord[i].leixing==4)qingjia++;}}cout\n\t学号姓名迟到次数早退次数旷课次数请假次数endl;coutCRecord[i].IDCRecord[i].Namechidao''zaotui''kuangke''qingjiaendl;}}return;}voidRecord::tongji(){//统计某时间段内学生旷课数与某课程的缺课数inti=0,b;ints,t;intj;intc;intn=0;inttim1=0,tim2=0;chard[20]={0};for(i=0;irenshu;i++)CRecord1[i]=CRecord[i];//拷贝一份数据s=renshu;if(renshu=0)cout\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!\n\n;else{cout\n统计某段时间内,学生姓名及旷课次数;cout