《学生考勤管理系统(C++).pdf》由会员分享,可在线阅读,更多相关《学生考勤管理系统(C++).pdf(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、专业.专注 附录代码:#i nclude iostream#in elude vconi o.h#include string.h#in elude using n amespace std;#defi ne Size 1000 class Record public:Record();void En tersystem();void GetPwd();void SetDate();void SetPwd();void ReadDate();void SaveData();void PutRecord();void Fin dRecord();void ShowRecord();void Or
2、der();void ModifyDate();/构造函数/进入系统函数/获取密码/输入设置学生信息/修改登录密码/读取文本信息函数/向文本保存信息函数/输入考勤函数/查找学生信息函数/输出所有学生信息/按学号排序/修改学生信息专业.专注 /类的实现/构造函数 Record:Record()ren shu=O;chidao=0;zaotui=0;qin gjia=O;kua ngke=O;ID=O;private:int ren shu;/学生人数 int chidao;/迟到次数 int zaotui;/早退次数 int kua ngke;/旷课次数 int qi ngjia;/请假次数 l
3、ong ID;/学生学号 char Name20;/学生姓名 char password20;void ShowDate(int i);/登录密码 void DelRecord();;/删除学生信息 专业.专注 Name20=0;password20=0;Record CRecordSize;char pwd=1,2,3,4,5,6;/输出函数 void Record:ShowDate(i nt i)coutt vCRecordi.IDvv CRecordi.Name CRecordi.chidao AACRecordm.zaofuAAU=仝 CRecordm.qingjiaAA-=AACRe
4、cordm.kuangkeAAendr 三三三三三三三三三三三三三三三三三三三三三三三三三三三三三=語頂 void Recod:Gefpwd()宀 inf aHO八 wh=e3 宀 char ch八 chHgeoho 八 if(chH2b)宀 if(aHo)宀 couAAchaabYf 仝 chaab)aJ.e-se if(chHHW)-专业.专注 passworda=0;coute ndl;break;else cout*;passworda+=ch;/登陆进入系统 void Record:E ntersystem()int a=3,b=1;char repwd20;fstream file
5、(mima.dat,ios:i n|ios:bi nary);file.get(repwd,20,0);file.close();b=strle n(repwd);if(b)strcpy(pwd,repwd);专业.专注 while(a)system(cls);coutnnnnttt 欢迎使用考勤管理系统!;coutvnnntt 请输入登陆密码:;GetPwd();a_;if(strcmp(pwd,password)!=0)if(a)system(cls);coutnnntt 密码输入错误!还有a次输入机 会!n;couttt;system(pause);else system(cls);co
6、utnnntt 连续 3 次密码输入错误!系统自动退 出!n;couttt;system(pause);专业.专注 exit(O);else break;/修改密码 void Record:SetPwd()char repwd20=0;int a=0;while(!a)system(cls);coutvnnnntt 输入原密码:;GetPwd();if(strcmp(password,pwd)!=0)coutnntt 原密码错误!nn a;if(a)专业.专注 system(cls);coutnnnnttt 密码修改失败!nn;else coutnntt 请输入新密码:;GetPwd();st
7、rcpy(repwd,password);coutnntt 再次输入新密码:;GetPwd();if(strcmp(repwd,password)!=0)coutnntt 两次输入密码不相同!nn a;if(a)system(cls);coutnnnnttt 密码修改失败!nn;else strcpy(pwd,password);专业.专注 cout CRecordre nshu+i.Name;专业.专注 fstream file(mima.dat,ios:out|ios:binary);file.write(pwd,strle n(pwd);file.close();break;/输入增添学
8、生人数 void Record:SetDate()int i=0;int m=0;coutm;for(i=0;im;i+)coutn 输入/增添第i+1个学生的信息 cout CRecordre nshu+i.ID;coutnt 姓名:;ren shu+=m;:e ndl;CRecordj.zaotui=z;专业.专注 /按学号排序 void Record:Order()int s,z;long t;char r20;s=re nshu;for(i nt i=0;is;i+)for(i nt j=i+1;j=CRecordj.ID)strcpy(r,CRecordi.Name);strcpy(
9、CRecordi.Name,CRecordj.Name);strcpy(CRecordj.Name,r);t=CRecordi.ID;CRecordi.ID=CRecordj.ID;CRecordj.ID=t;z=CRecordi.chidao;CRecordi.chidao=CRecordj.chidao;CRecordj.chidao=z;z=CRecordi.zaotui;CRecordi.zaotui=CRecordj.zaotui;z=CRecordi.q in gjia;CRecordi.qi ngjia=CRecordj.qi ngjia;if(CRecordi.ID=id)专业
10、.专注 CRecordj.q in gjia=z;z=CRecordi.kua ngke;CRecordi.kua ngke=CRecordj.kua ngke;CRecordj.kua ngke=z;/设置学生考勤信息 void Record:PutRecord()int i;double long id;if(ren shu=0)coutvnnnnt 目前没有任何学生信息请先输入学生个人信息再进 行此操作!nn;else cout id;for(i=0;i=re nshu)coutn 没有你所查找的记录!n;else coutn 该学生的原始信息记录是:n;coutnt 学号姓名 迟到 早
11、退 请假 ShowDate(i);coutn 信息记录:n;int m=0;while(!m)int n;coutnt 请输入选择缺课类型:(1 迟到 旷课):;cinn;switch(n)case 1:coutn 请输入迟到次数:;旷课e ndl;2 早退 3 请假 4 专业.专注 cinn;专业.专注 CRecordi.chidao+=n;break;case 2:coutn 请输入早退次数:;cinn;CRecordi.zaotui+=n;break;case 3:coutn 请输入请假次数:;cinn;CRecordi.q in gjia+=n;break;case 4:coutn 请
12、输入旷课次数:;cinn;CRecordi.kua ngke+=n;break;default:break;coutm;专业.专注 coutvn 该学生现在的信息记录是:n;coutnt 学号姓名 迟到 早退 请假 旷课e ndl;ShowDate(i);/修改学生信息 void Record:ModifyDate()int i,j=1;long id;if(ren shu=0)coutnnnnt 目前没有任何学生信息请先输入学生个人信息再 进行此操作!nn;else while(j=1)system(cls);cout id;专业.专注 for(i=0;i=re nshu)coutntt 没
13、有你所查找的记录!n;cout i;if(i=0)j=1;else system(cls);coutnnnn ttt 信息修改失败!nn;break;else coutn 该学生的原始信息是:n;coutnt 学号姓名 迟到 早退 请假旷课endl;专业.专注 ShowDate(i);CRecordi.chidao=n;专业.专注 coutn 信息修改:n;char n ame=0;int n=0;while(n=0)coutnt 选择修改内容:(1 学号 2 姓名 3 迟到 4 早退 5 请假 6 旷课):;cinn;switch(n)case 1:cout id;CRecordi.ID=i
14、d;break;case 2:coutn 新的姓名:;cinn ame;strcpy(CRecordi.Name,name);break;case 3:coutn;coutnt 学号姓名 迟到 早退 请假 旷课e ndl;专业.专注 break;case 4:coutn;CRecordi.zaotu i=n;break;case 5:coutn;CRecordi.q in gjia=n;break;case 6:coutn;CRecordi.kua ngke=n;break;default:break;coutnt 该学生修改后的信息是:n;void Record:DelRecord()专业.
15、专注 ShowDate(i);coutvnn 继续修改该生请输入 0 修改其他学生请输入 1 否则请 输入其他任意值:;ci nj;if(j=0)n=0;else if(j=1)break;else j=2;system(cls);coutnnnn ttt 该学信息修改成功!nn;break;/删除学生信息 coutnnttt 输入错误!删除失败!nn;专业.专注 int i=O,j,z;long t,id;char r=0,A,a=Y,b=N;if(ren shu=0)coutvnnnnt 目前没有任何学生信息请先输入学生个人信息再进 行此操作!nn;else coutj;if(j=1)co
16、ut A;if(A=a|A=a+32)ren shu=0;coutnnnttt else if(A=b|A=b+32)coutnnttt else else if(j=2)所有信息删除成功!nn;你取消了对所有信息的删除!nn;strcpy(r,CRecordi.Name);专业.专注 while(!i)system(cls);cout id;for(i=0;i=re nshu)coutn 没有你所查找的记录!n;else coutn 该学生的原始信息是:n;coutnt 学号姓名 迟到 早退 请假 旷课e ndl;ShowDate(i);coutn 是否删除该学生的信息 A;if(A=a|A
17、=a+32)j=re nshu-1;coutnnnnttt 你取消了对学生信息的继续删除!n;专业.专注 strcpy(CRecordi.Name,CRecordj.Name);strcpy(CRecordre nshu-1.Name,r);t=CRecordi.ID;CRecordi.ID=CRecordj.ID;CRecordjD=t;z=CRecordi.chidao;CRecordi.chidao=CRecordj.chidao;CRecord j.chidao=z;z=CRecordi.zaotui;CRecordi.zaotui=CRecordj.zaotui;CRecordj.z
18、aotui=z;z=CRecordi.q in gjia;CRecordi.qi ngjia=CRecordj.qi ngjia;CRecordj.qi ngjia=z;z=CRecordi.kua ngke;CRecordi.kua ngke=CRecordj.kua ngke;CRecordj.kua ngke=z;ren shu-;coutnntt 该学生删除信息删除成功!nn;else if(A=b|A=b+32)coutnntt 你取消了对该生信息的删除!nn;else coutnntt 输入错误!删除失败!nn;cout i;if(i)coutnnttt 输入错误!操作失败!nn;
19、专业.专注 else /按学号输出某个学生的信息 void Record:F in dRecord()int i;long id;int a=0;if(ren shu=0)coutnnnnt 目前没有任何学生信息请先输入学生个人信息再进 行此操作!nn;else cout id;for(i=0;ire nshu;i+)if(CRecordi.ID=id)coutnt 学号姓名 迟到 早退 请假 旷课endl;专业.专注 a=1;ShowDate(i);if(a=0)coutn 没有你所查找的记录!;coute ndl;return;/输出全班学生的信息 void Record:ShowReco
20、rd()int i;Order();if(ren shu=0)coutnnnnt 目前没有任何学生信息请先输入学生个人信息再进行 此操作!nn;else coutn 输出全班一学期的考情情况endl;coutnt 学号t 姓名t 迟到t 早退t 请假t 旷课endl;专业.专注 for(i=0;ili ngshili ngshili ngshili ngshili ngshili ngshi;专业.专注 while(!file2.eof()file2CRecordi.ID;file2CRecordi.Name;file2CRecordi.chidao;file2CRecordi.zaotui;
21、file2CRecordi.qi ngjia;file2CRecordi.kua ngke;i+;if(i=0)ren shu=i;else i-;ren shu=i;file2.close();return;/向文本中保存信息 void Record:SaveData()inf 0八 ordep ofsfream 一 Record.xa八=h_eA choose;system(cls);switch(choose)coutnt*1:输入/增添学生 名*nn;coutt*2:修 改学生信 息*nn;coutt*3:单人考勤信息*nn;coutt*4:全班考情信息*nn;coutt*5:输入学生
22、考情*nn;coutt*6:删除学生信息*nn;coutt*7:修改登录密码*nn;coutt*8:退出*nn;*小、rH.coutnt*上课考勤管理系统/coutnt*08 级物理系光信班*n;专业.专注 case 1:Stu.SetDate();break;case 2:Stu.ModifyDate();break;case 3:Stu.Fi ndRecord();break;case 4:Stu.ShowRecord();break;case 5:Stu.PutRecord();break;case 6:Stu.DelRecord();break;case 7:Stu.SetPwd();break;case 8:Stu.SaveData();exit(O);default:Stu.SaveData();coutnnnntttt 输入错误!nn;break;专业.专注 coutnt*返回界面请输任意值*nn a;if(a=0)Stu.SaveData();return 0;