还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
#include iostream#include conioh〉o#includestring.h includefstreamusing namespace;std#define Size1000classRecordpublic:Record;void Entersystem;void GetPwd;void〃构造函数SetDate;void SetPwd;void〃进入系统函数ReadDate;void SaveData〃获取密码;void PutRecord;void〃输入设置学生信息FindRecord;void〃修改登录密码ShowRecord;void〃读取文本信息函数;;Order voidModifyDate〃向文本保存信息函数void DelRecord;private:〃输入考勤函数int renshu;〃查找学生信息函数;jnt chidaoint zaotui;int〃输出所有学生信息;kuangke intqingjia;〃按学号排序long ID;〃修改学生信息char Name
[20];〃删除学生信息char password
[20];void〃学生人数ShowDateint i;〃迟到次数〃早退次数〃旷课次数〃请假次数〃学生学号〃学生姓名〃登录密码附录代码:;〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃〃/〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃〃〃类的实现〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃构造函数Record Record{renshu=0;;chidao=0;{renshu=Ocout<〈\n\n\n\t\t\t所有信息删除成功!\n\n;else if A==b||A==b+32cout〈<”\n\n\t\及你取销了对所有信息的删除!\n\n;elsecout〈〈“\n\n\t\t\t输入错误!删除失败!\n\n;}else ifj==2while!i{systemcls;cou〈t<”\n请输入要删除学生的学号”;cin»id;;;fori=0i renshui++;ifCRecord[i]ID==id break>if i=renshucout<<\n没有你所查找的记录!\n;else{cout<〈”\n该学生的原始信息是:\n;;cout〈<”\n\t学号姓名迟到早退请假旷课“〈〈endlShowDatei;cout〈”\n是否删除该学生的信息”〈〈“确认Y/取销N;cin〉〉A;ifA==a A==a+32;{j=renshu—1strcpyr,CRecord[i]Name;strcpy CRecord[i].Name,CRecord[j]Name;strcpy CRecord[renshu—1]Name,r;;;t=CRecord[i].ID;CRecord[i]ID=CRecord[j]ID CRecord[j]ID=to o;z=CRecord[i].chidao;CRecord[i].chidao二CRecord[j]chidao CRecord[j].chidao=z;;;z=CRecord[i]zaotui;CRecord[i].zaotui=CRecord[j]zaotui CRecord[j].zaotui=zo;;z=CRecord[i]qingjia;CRecord[i]0qingjia=CRecord[j]o qingjia CRecord[j]qingjia=zo o;;z=CRecord[i]kuangke CRecord[i]kuangke=CRecord[j]kuangkeo;CRecord[j]0kuangke=z renshu;cout〈“\n\n\t\t该学生删除信息删除成功!\n\n;else ifA==b|A==b+32cout<〈”\n\n\t\t你取销了对该生信息的删除!\n\n;elsecout(〈”\n\n\t\t输入错误!删除失败!\n\n;);cout\n继续删除学生信息请输0否则请输任意值”;cin»i⑴if;cout〈\n\n\n\n\t\t\t你取销了对学生信息的继续删除!\n)else;cout〈”\n\n\t\t\t输入错误!操作失败!\n\n〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃按学号输出某个学生的信息void RecordFindRecord;{int i;long id;int a=0if renshu=0cout\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!\n\n;else{cout〈”\n请输入你要查找的学生学号”;;cin id;;for i=0irenshu i++ifCRecord[i].ID==ida=l;cout〈”\n\t学号姓名迟到早退请假旷课〈endl;ShowDate i;}if a==0cout〈”\n没有你所查找的记录!.cout〈endl;return;}〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃输出全班学生的信息void Record::ShowRecord;{int iOrder;if renshu=0cout\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!\n\n;else;{cout〈“\n输出全班一学期的考情情况“〈endl;cout〈”\n\t学号\t姓名\t迟到\t早退\t请假\t旷课”endl;;for i=0irenshu i++;{ShowDatei return;}}〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃从文本中读取信息void RecordReadDate;{int i=0char lingshi[]={0};fstream file\\Recordtxt〃;if!file;{ofstream filel\\Recordtxt filelclose;oelsefile close;oifstream file2\\Record□txt;;file2»lingshi lingshi»lingshi lingshilingshi»lingshiwhile!file2eof{file2»CRecord[i].ID;file2〉CRecord[i].Name;file2CRecord[i]chidao;o;file2CRecord[i]zaotuifile2CRecord[i]qingjia;o;file2〉CRecord[i].kuangke i++;if i==0renshu=i;else{i--;;renshu=ifile2close;oreturn;〃〃/〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃向文本中保存信息void Record:SaveDataint i=0;Order;ofstream file\\Record.txt,;file〈〈学号\t<<姓名\t“〈<“迟到\t<〈早退\t〈<请假\t”<〈”旷课<<endl;;;for i=0i renshui++{file〈CRecord[i].ID<〈“\t〃;;file〈CRecord[i]Name〈〈\to<fileCRecord[i]chidaoo〃file〈CRecord[i]o zaotui«\t〃;file〈CRecord[i].qingjia<〈〃\t〃;file«CRecord[i]kuangke<endl;}ofile o close;〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃测试主函数main,;{Record StuEnterint a=l;Enter.Entersystem;Stu oReadDate;while a{systemCcls;//cout〈〈”\n\t****************08级物理系光信班**;**************\ncout〈〈”\n\t****************上课考勤管理系统****************\n\nN;cout〈<\n\t***************1输入/增添学生名**************\n\n;cout〈<”\t***************2修改学生信息*****\n\rT;cout<〈”\t***************3单人考勤信息***************\n\n;cout<\t***************4:全班考情信息***************\n\n;cout〈〈“\t***************5输入学生考情******;*********\n\n cout〈”\t***************6删除学生信息********;*******\n\ncout**************7修改登录密码****;***********\n\n”cout〈〈”\t***************8退出***************\n\n;cout〈”请选择int choose=0;cin〉choose;;system cisswitchchoose{case1;Stu.SetDate;breakcase2:Stu ModifyDateo;;break case3;Stu FindRecordobreak;case4:;Stu ShowRecordobreak;case5Stu PutRecord;o;breakcase6:;Stu DelRecordo;break case7;Stu SetPwdobreak;case8;Stu SaveDatao exit0;defaultStu SaveData;o;;cout\n\n\n\n\t\t\t\t输入错误!\n\n breakcout〈”\n\t****************返回界面请输任意值****************\n\n”〈\t****************退出系统请按0****************\n«endl;;cin aif a==0;Stu.SaveData return0;;zaotui=0;qingjia=O kuangke=O;;ID=O;Name
[20]=0password
[20]=0;Record CRecord[Size];charpwd[]={T,2,3,4,5,6};〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃输出函数void Record:ShowDateint i{cout«CRecord[i]□ID〈〈””〃〈CRecord[i].Name«,zCRecord[i].chidao〈”CRecord[i]zaotui o«CRecord[i]qingjia«CRecord[i].kuangke〈endl;〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃//〃//〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃获取密码void RecordGetPwd;{int a=0while1;;{char chch=getch ifch==,\b,ifa!=O;cout〈char\b〈〈〃〈char\b;a—}else ifch==,\r,;;{password[a]二\0cout«endl;break else{cout〈〃*〃;;password[a++]=ch〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIH〃登陆进入系统void Record:Entersystem;{int a=3,b=lchar repwd
[20];;fstream file\\mima.dat,ios in|ios:binaryfile oget repwd,20,\0;file oclose;b=strlen repwd;if b〃〃;{strcpypwd,repwd;}while a{systemcls cout〈”\n\n\n\n\t\t\t欢迎使用考勤管理系统!;cout〈\n\n\n\t\t请输入登陆密码”;GetPwd;a—if strcmppwd,password!=0if a〃{system cls;cout〈”\n\n\n\t\t密码输入错误!还有a〈〈”次输入机会!\n”;cout〈〈Wsystem pause”;else{system ds;cout〈\n\n\n\t\t连续3次密码输入错误!系统自动退出!\n”;cout;;〈〈〃\t\t systempause;exit0else;breakIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIUllllllllllllllllllllllllllllllllllllllllllllllllll〃修改密码void RecordSetPwd{char repwd
[20]={0};;int a=0while!a{system ds;cout<〈\n\n\n\n\t\t输入原密码”;GetPwd;if strcmppassword,pwd!=0{cout<〈”\n\n\t\t原密码错误!\n\n〈〈”\t\t重新输入请按否则请按任意键\n\n;cin»a;ifa{system ds;cout<〈”\n\n\n\n\t\t\t密码修改失败!\n\rT;else{cout<〈”\n\n\t\t请输入新密码M;GetPwd;;strcpy repwd,passwordcout<〈”\n\n\t\t再次输入新密码”;GetPwd;if strcmprepwd,password!=0{cout〈<”\n\n\t\t两次输入密码不相同!\n\n”重新输入请按否则请按任意键\n\n;;cin〉aif a{system cis;cout<〈n\n\n\n\n\t\t\t密码修改失败!\n\n;else{strcpy pwd,password;cout<<\n\n\t\t密码修改成功!请牢记你的新密码!\n\n;fstreamfile〃〃,\\mimadat iosout|ios::binary;;file owrite pwd,strlen pwdfileoclose;;break〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃输入增添学生人数void Record:SetDate;{int i=0int m=0;cout〈”\n输入/增添学生人数”;;cin mfori=0;im;i++{cout«“\n输入/增添第〈”个学生的信息〈〈endl;;cout〈\n\t学号:cin CRecord[renshu+i]o ID;cout〈”\n\t姓名”;cin»CRecord[renshu+i]Name;renshu+=m;〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃按学号排序void Record::Order;{int s,z;longtchar r
[20];;s=renshu;for int i=0i〈s;i++;;{for intj=i+l js j++if CRecord[i]ID=CRecord[j]o IDo;{strcpy r,CRecord[i]Name;strcpy CRecord[i].Name,CRecord[j]0Namestrcpy CRecord[j].Name,r;;;;t=CRecord[i]ID CRecord[i]ID=CRecord[j].ID CRecord]ID=t z=CRecordo o;;[i].chidao CRecord[i]chidao=CRecord[j]chidao CRecord[j].chidao=z;;z=CRecord[i]zaotui;CRecord[i].zaotui=CRecord[j]zaotui;CRecord[j].zaotui=zo o;;;z=CRecord[i].qingjia CRecord[i].qingjia=CRecord[j]qingjiaCRecord[j]qingjia=zo;;z=CRecord[i]kuangke CRecord[i]kuangke二CRecord[j]kuangke CRecord[j]ookuangke=z;〃〃/〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃//////////////////////////////////////////////////〃设置学生考勤信息void Record:PutRecord;{int idoublelong id;ifrenshu=0cout n\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!\n\n”;else{cout〈”\n请输入所查学生学号”;;cin»id;;for i=0i renshui++;ifCRecord[i]ID==id breakoifi=renshu;cout〈\n没有你所查找的记录!\n”else;cout〈\ri该学生的原始信息记录是:\n,;cout\n\t学号姓名迟到早退请假旷课“〈endl;ShowDate icout\n信息记录\n”;int m=0;while!m;{int ncout\n\t请输入选择缺课类型1迟到2早退3请假4旷课“;;cin〉nswitch n{case1cout〈”\n请输入迟到次数”;;cin〉nCRecord[i]chidao+=n;break;case2cout«\n请输入早退次数”;cin〉n;;CRecord[i].zaotui+=n break;case3:cout〈“\n请输入请假次数”;;cin〉nCRecord[i].qingjia+=n;,e\e〃{system”cls;;cout\n\n\n\n\t\t\t信息修改失败!\n\n;break}elsecout〈\n该学生的原始信息是\n;cout\n\t学号姓名迟到早退请假旷课endl;;ShowDateicout〈”\n信息修改:\n;;char name[]={0};int n=0while n==0{cout〈”\n\t选择修改内容1学号2姓名3迟到4早退5请假6旷课:;;cin〉nswitch n{case1cout〈”\n新的学号:;;cin idCRecord[i]ID=id;break;case2coukvn新的姓名cin〉name;strcpy CRecord[i]Name,name;break;case3cout〈”\n输入迟到次数:“;cin n;;CRecord[i]chidao=n;break case4cout〈”\n输入早退次数”;cin n;;CRecord[i]0zaotui=n;breakcase5:cout〈”\n输入请假次数:;cin〉n;CRecord[i].qingjia二n;break case6cout〈”\n输入旷课次数:”;>;cin nCRecord[i]kuangke=n;o;break defaultbreak;;cout〈<”\n\t该学生修改后的信息是\nMcout〈<”\n\t学号姓名迟到早退请假旷课“<<endl;ShowDatei;cout〈<”\n\n继续修改该生请输入0修改其他学生请输入1否则请输入其他任意值”;;cin〉jif j==0;n=0else ifj==l;breakelse;{j=2〃systemcls〃;cout<〈\n\n\n\n\t\t\t该学信息修改成功!\n\n;;break〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃/〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃删除学生信息void RecordDelRecord;{inti=0,j,zlongt,id;;char r口={0},A,a,b二Wifrenshu=0cout\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!;\n\n else{cout〈〈”\n删除所有学生信息情输1,删除个别学生信息请输2;cin〉jif j==l{cout〈〈”\n是否删除所有同学信息确认Y/取销N”;;cin〉A ifA==a||A==a+32。