学生考勤管理系统C.docx
- 文档编号:27159648
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:28
- 大小:19.50KB
学生考勤管理系统C.docx
《学生考勤管理系统C.docx》由会员分享,可在线阅读,更多相关《学生考勤管理系统C.docx(28页珍藏版)》请在冰豆网上搜索。
学生考勤管理系统C
.
附录代码:
椣据畬敤尠潩瑳敲浡#include
//构造函数Record();
//进入系统函数voidEntersystem();
//获取密码voidGetPwd();
//输入设置学生信息voidSetDate();
//修改登录密码voidSetPwd();
读取文本信息函数//voidReadDate();
//向文本保存信息函数voidSaveData();
//输入考勤函数voidPutRecord();
查找学生信息函数//voidFindRecord();
//输出所有学生信息voidShowRecord();
按学号排序//voidOrder();
voidModifyDate();修改学生信息//
精选范本
.
voidDelRecord();//删除学生信息
private:
intrenshu;//学生人数
intchidao;//迟到次数
intzaotui;//早退次数
intkuangke;//旷课次数
intqingjia;//请假次数
longID;//学生学号
charName[20];//学生姓名
charpassword[20];//登录密码
voidShowDate(inti);
};
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//类的实现
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
精选范本
.
//构造函数
Record:
:
Record()
{renshu=0;
chidao=0;
zaotui=0;
qingjia=0;
kuangke=0;
ID=0;
Name[20]=0;
password[20]=0;
}
RecordCRecord[Size];
charpwd[]={'1','2','3','4','5','6'};
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//输出函数
voidRecord:
:
ShowDate(inti)
{潣瑵?
屜瑜
< < < 精选范本 . < < < }/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //获取密码 voidRecord: : GetPwd() {inta=0; while (1) {charch; ch=getch(); if(ch=='\b') { if(a! =0) { cout< a--; } } elseif(ch=='\r') 精选范本 . {password[a]='\0'; cout< break; } else {cout<<*; password[a++]=ch; } } }/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //登陆进入系统 voidRecord: : Entersystem() {inta=3,b=1; charrepwd[20]; fstreamfile(\\mima.dat,ios: : in|ios: : binary); file.get(repwd,20,'\0'); file.close(); b=strlen(repwd); if(b) 精选范本 . {strcpy(pwd,repwd);} while(a) {system(cls); cout<<\ \n\n\n\t\t\t欢迎使用考勤管理系统! ; cout<<\ \n\n\t\t请输入登陆密码: ; GetPwd(); a--; if(strcmp(pwd,password)! =0) { if(a) {system(cls); cout<<\ \n\n\t\t密码输入错误! 还有? 愼? 次输入机会! \n; cout<<\\t; system(pause); } else {system(cls); cout<<\ \n\n\t\t连续3次密码输入错误! 系统自动退出! \n; cout<<\\t; system(pause); exit(0); } 精选范本 . } else break; } }/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////修改密码voidRecord: : SetPwd(){charrepwd[20]={0};inta=0; while(! a) {system(cls); : ;cout<<\ \n\n\n\t\t输入原密码GetPwd(); if(strcmp(password,pwd)! =0) {cout<<\ \n\t\t原密码错误尡湜屜屮 <<\\t重新输入请按0否则请按任意键\n\n; cin>>a; if(a) {system(cls); 精选范本 . cout<<\ \n\n\n\t\t\t密码修改失败! \n\n; } } else {cout<<\ \n\t\t请输入新密码: ; GetPwd(); strcpy(repwd,password); cout<<\ \n\t\t再次输入新密码: ; GetPwd(); if(strcmp(repwd,password)! =0) {cout<<\ \n\t\t两次输入密码不相同尡湜屜屮 <<\\t重新输入请按0否则请按任意键\n\n; cin>>a; if(a) {system(cls); cout<<\ \n\n\n\t\t\t密码修改失败! \n\n; } } else {strcpy(pwd,password); cout<<\ \n\t\t密码修改成功! 请牢记你的新密码! \n\n; fstreamfile(\\mima.dat,ios: : out|ios: : binary); 精选范本 . file.write(pwd,strlen(pwd)); file.close(); break; } } } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //输入增添学生人数 voidRecord: : SetDate() {inti=0; intm=0; cout<<\ 输入/增添学生人数: ; cin>>m; for(i=0;i {cout<<\ 输入/增添第? 椼? ? 个学生的信息: < cout<<\ \t学号: ; cin>>CRecord[renshu+i].ID; cout<<\ \t姓名: ; cin>>CRecord[renshu+i].Name; 精选范本 . } renshu+=m; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //按学号排序 voidRecord: : Order() {ints,z; longt; charr[20]; s=renshu; for(inti=0;i {for(intj=i+1;j if(CRecord[i].ID>=CRecord[j].ID) {strcpy(r,CRecord[i].Name); strcpy(CRecord[i].Name,CRecord[j].Name); strcpy(CRecord[j].Name,r); t=CRecord[i].ID;CRecord[i].ID=CRecord[j].ID;CRecord[j].ID=t; 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=z; z=CRecord[i].qingjia;CRecord[i].qingjia=CRecord[j].qingjia;CRecord[j].qingjia=z; 精选范本 . z=CRecord[i].kuangke;CRecord[i].kuangke=CRecord[j].kuangke; CRecord[j].kuangke=z; } } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //设置学生考勤信息 voidRecord: : PutRecord() {inti; doublelongid; if(renshu<=0) cout<<\ \n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作! \n\n; else {cout<<\ 请输入所查学生学号: ; cin>>id; for(i=0;i { if(CRecord[i].ID==id) break; 精选范本 . } if(i>=renshu) cout<<\ 没有你所查找的记录! \n; else { cout<<\ 该学生的原始信息记录是: \n; cout<<\ \t学号姓名迟到早退请假旷课< ShowDate(i); cout<<\ 信息记录: \n; intm=0; while(! m) {intn; cout<<\ \t请输入选择缺课类型: (1迟到2早退3请假4旷课): ; cin>>n; switch(n) { case1: cout<<\ 请输入迟到次数: ; cin>>n; CRecord[i].chidao+=n; break; 精选范本 . case2: cout<<\ 请输入早退次数: ; cin>>n; CRecord[i].zaotui+=n; break; case3: cout<<\ 请输入请假次数: ; cin>>n; CRecord[i].qingjia+=n; break; case4: cout<<\ 请输入旷课次数: ; cin>>n; CRecord[i].kuangke+=n; break; default: break; } cout<<\ \t继续输入该生考情请输0否则输任意值: ; cin>>m; } cout<<\ 该学生现在的信息记录是: \n; 精选范本 . cout<<\ \t学号姓名迟到早退请假旷课< ShowDate(i); }}}/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //修改学生信息 voidRecord: : ModifyDate() {inti,j=1; longid; if(renshu<=0) cout<<\ \n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作! \n\n; else while(j==1) {system(cls); cout<<\ 请输入要修改学生的学号: ; cin>>id; for(i=0;i { 精选范本 . if(CRecord[i].ID==id) break; } if(i>=renshu) {cout<<\ \t\t没有你所查找的记录! \n; cout<<\ 重新查询修改请输0否则输任意值: ; cin>>i; if(i==0) j=1; else {system(cls); cout<<\ \n\n\n\t\t\t信息修改失败! \n\n; break; } } else { cout<<\ 该学生的原始信息是: \n; cout<<\ \t学号姓名迟到早退请假旷< 课 ShowDate(i);: \n;信息修改cout<<\ charname[]={0};精选范本 . intn=0; while(n==0) {cout<<\ \t选择修改内容: (1学号2姓名3迟到4早退5请假6旷 课): ; cin>>n; switch(n) {case1: cout<<\ 新的学号: ; cin>>id; CRecord[i].ID=id; break; case2: cout<<\ 新的姓名: ; cin>>name; strcpy(CRecord[i].Name,name); break; case3: cout<<\ 输入迟到次数: ; cin>>n; CRecord[i].chidao=n; break; case4: 精选范本 . cout<<\ 输入早退次数: ; cin>>n; CRecord[i].zaotui=n; break; case5: cout<<\ 输入请假次数: ; cin>>n; CRecord[i].qingjia=n; break; case6: cout<<\ 输入旷课次数: ; cin>>n; CRecord[i].kuangke=n; break; default: break; }cout<<\ \t该学生修改后的信息是: \n; cout<<\ \t学号姓名迟到早退请假旷课< ShowDate(i); cout<<\ \n继续修改该生请输入0修改其他学生请输入1否则请输入其他任意值: ; 精选范本 . cin>>j; if(j==0) n=0; elseif(j==1) break; else {j=2; system(cls); cout<<\ \n\n\n\t\t\t该学信息修改成功! \n\n; break; } }} } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //删除学生信息 voidRecord: : DelRecord() {inti=0,j,z; longt,id; 精选范本 . charr[]={0},A,a='Y',b='N'; if(renshu<=0) cout<<\ \n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作! \n\n; else {cout<<\ 删除所有学生信息情输1,删除个别学生信息请输2: ; cin>>j; if(j==1) {cout<<\ 是否删除所有同学信息: 确认(Y)/取消(N): ; cin>>A; if(A==a||A==a+32) {renshu=0; cout<<\ \n\n\t\t\t所有信息删除成功! \n\n; } elseif(A==b||A==b+32) cout<<\ \n\t\t\t你取消了对所有信息的删除! \n\n; else cout<<\ \n\t\t\t输入错误! 删除失败! \n\n; } elseif(j==2) while(! i) {system(cls); 精选范本 . cout<<\ 请输入要删除学生的学号: ; cin>>id; for(i=0;i { if(CRecord[i].ID==id) break; } if(i>=renshu) cout<<\ 没有你所查找的记录! \n; else {cout<<\ 该学生的原始信息是: \n; cout<<\ \t学号姓名迟到早退请假< 旷课 ShowDate(i); cout<<\ 是否删除该学生的信息? (Y)/取消(N): ;? 确认cin>>A; if(A==a||A==a+32) {j=renshu-1; strcpy(r,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=t;精选范本 . 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=z; z=CRecord[i].qingjia;CRecord[i].qingjia=CRecord[j].qingjia;CRecord[j].qingjia=z; z=CRecord[i].kuangke;CRecord[i].kuangke=CRecord[j].kuangke; CRecord[j].kuangke=z;renshu--; cout<<\ \n\t\t该学生删除信息删除成功! \n\n; } elseif(A==b||A==b+32) cout<<\ \n\t\t你取消了对该生信息的删除! \n\n; else cout<<\ \n\t\t输入错误! 删除失败! \n\n; } cout<<\ 继续删除学生信息请输0否则请输任意值: ; cin>>i; if(i) cout<<\ \n\n\n\t\t\t你取消了对学生信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 考勤 管理 系统