学生考勤管理系统(C++)_第1页
学生考勤管理系统(C++)_第2页
学生考勤管理系统(C++)_第3页
学生考勤管理系统(C++)_第4页
学生考勤管理系统(C++)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、附录代码:include "iostream"#include <conio.h>#include ”string。h"include <fstreamusing namespace std;#define Size 1000class Recordpublic: Record(); /构造函数 void Entersystem(); /进入系统函数 void GetPwd(); /获取密码 void SetDate(); /输入设置学生信息 void SetPwd(); /修改登录密码 void ReadDate(); /读取文本信息函数 vo

2、id SaveData(); /向文本保存信息函数 void PutRecord(); /输入考勤函数 void FindRecord(); /查找学生信息函数 void ShowRecord(); /输出所有学生信息 void Order(); /按学号排序 void ModifyDate(); /修改学生信息 void DelRecord(); /删除学生信息private: int renshu; /学生人数 int chidao; /迟到次数 int zaotui; /早退次数 int kuangke; /旷课次数 int qingjia; /请假次数long ID; /学生学号cha

3、r Name20; /学生姓名char password20; /登录密码void ShowDate(int i);/类的实现/构造函数Record::Record() renshu=0; chidao=0; zaotui=0; qingjia=0; kuangke=0; ID=0; Name20=0; password20=0;Record CRecordSize;char pwd=1',2,'3','4,5,6;/输出函数void Record:ShowDate(int i) cout<”t” <CRecordi.ID<" &qu

4、ot; <<CRecordi。Name<” ” <CRecordi。chidao<” " <<CRecordi。zaotui<” ” <CRecordi。qingjia” ” <CRecordi.kuangke<<endl;/获取密码void Record:GetPwd() int a=0;while(1) char ch; ch=getch(); if(ch=b') if(a!=0) coutchar(b)<" ”<char('b); a-; else if(ch=r) p

5、assworda=0; cout<<endl; break; else cout<”"; passworda+=ch; / /登陆进入系统void Record:Entersystem() int a=3,b=1; char repwd20; fstream file(”mima.dat",ios::inios:binary);file。get(repwd,20,0');file。close(); b=strlen(repwd);if(b) strcpy(pwd,repwd); while(a) system(”cls”); cout<&qu

6、ot;nnnnttt欢迎使用考勤管理系统!" cout<”nnntt请输入登陆密码:”; GetPwd(); a; if(strcmp(pwd,password)!=0) if(a) system(”cls”); cout<"nnntt密码输入错误!还有”<a"次输入机会!n”; cout<”tt"; system("pause"); else system("cls”); cout<”nnntt连续3次密码输入错误!系统自动退出!n”; cout<”tt”; system("p

7、ause"); exit(0); else break;/修改密码void Record::SetPwd() char repwd20=0; int a=0; while(!a) system(”cls”);cout<"nnnntt输入原密码: ”; GetPwd(); if(strcmp(password,pwd)!=0) cout”nntt原密码错误!nn” ”tt重新输入请按0否则请按任意键nn”; cina; if(a) system(”cls”); cout<"nnnnttt密码修改失败!nn”; else cout<”nntt请输入新

8、密码:"; GetPwd(); strcpy(repwd,password); cout”nntt再次输入新密码:"; GetPwd(); if(strcmp(repwd,password)!=0) cout<”nntt两次输入密码不相同!nn” <”tt重新输入请按0否则请按任意键nn”; cina;if(a) system(”cls”); cout"nnnnttt密码修改失败!nn”; else strcpy(pwd,password); cout”nntt密码修改成功!请牢记你的新密码!nn”; fstream file(”mima。dat”,i

9、os::outios:binary); file.write(pwd,strlen(pwd)); file。close(); break; /输入增添学生人数void Record:SetDate() int i=0; int m=0; cout"n输入/增添学生人数 : ”; cin>m; for(i=0;im;i+) cout<<"n输入/增添第”i+1"个学生的信息 :”<endl; cout”nt学号: "; cinCRecordrenshu+i.ID;cout<"nt姓名: ";cin>C

10、Recordrenshu+i.Name; renshu+=m;/按学号排序void Record::Order() int s,z; long t; char r20; s=renshu; for(int i=0;is;i+) for(int j=i+1;js;j+) if(CRecordi。ID=CRecordj.ID) strcpy(r,CRecordi。Name); strcpy(CRecordi。Name,CRecordj.Name); strcpy(CRecordj。Name,r); t=CRecordi。ID;CRecordi.ID=CRecordj.ID;CRecordj.ID=

11、t; z=CRecordi.chidao;CRecordi.chidao=CRecordj。chidao; CRecordj.chidao=z; z=CRecordi。zaotui; CRecordi。zaotui=CRecordj。zaotui; CRecordj。zaotui=z; z=CRecordi。qingjia; CRecordi.qingjia=CRecordj。qingjia; CRecordj.qingjia=z; z=CRecordi.kuangke;CRecordi。kuangke=CRecordj。kuangke; CRecordj.kuangke=z; /设置学生考勤

12、信息void Record:PutRecord() int i; double long id;if(renshu<=0) cout<”nnnnt目前没有任何学生信息请先输入学生个人信息再进行此操作!nn";else cout<”n请输入所查学生学号: "; cin>id;for(i=0;i<renshu;i+) if(CRecordi.ID=id) break; if(i>=renshu) cout”n没有你所查找的记录!n”; else cout<”n该学生的原始信息记录是:n”; cout”nt学号姓名迟到早退请假旷课&quo

13、t;<<endl; ShowDate(i); cout<”n信息记录:n"; int m=0; while(!m) int n; cout<”nt请输入选择缺课类型: ( 1迟到 2早退 3请假 4旷课 ) : ”; cinn; switch(n) case 1: cout”n请输入迟到次数: " cinn; CRecordi.chidao+=n; break;case 2: cout"n请输入早退次数: ”; cin>n; CRecordi.zaotui+=n; break;case 3: cout<”n请输入请假次数: ”;

14、 cinn; CRecordi。qingjia+=n; break;case 4: cout"n请输入旷课次数: ”; cinn; CRecordi。kuangke+=n; break; default: break; cout"nt继续输入该生考情请输0否则输任意值: ”; cin>m; cout”n该学生现在的信息记录是: n”; cout<”nt学号姓名迟到早退请假旷课”<endl; ShowDate(i);/修改学生信息void Record::ModifyDate() int i,j=1; long id;if(renshu=0) cout”nn

15、nnt目前没有任何学生信息请先输入学生个人信息再进行此操作!nn";else while(j=1) system(”cls”); cout<<”n请输入要修改学生的学号: ”; cin>>id;for(i=0;i<renshu;i+) if(CRecordi.ID=id) break; if(i=renshu) cout<”ntt没有你所查找的记录!n"; cout<”n重新查询修改请输0否则输任意值:”; cin>i; if(i=0) j=1; else system(”cls”); cout”nnnn ttt 信息修改失败

16、!nn"; break; else cout"n该学生的原始信息是:n" cout<”nt学号姓名迟到早退请假旷课”endl; ShowDate(i); cout”n信息修改: n”; char name=0; int n=0; while(n=0) cout"nt选择修改内容: ( 1学号 2姓名 3迟到 4早退 5请假 6旷课) : ”; cinn; switch(n) case 1:cout"n新的学号:”; cinid; CRecordi。ID=id;break; case 2: cout<<”n新的姓名:”; cin

17、>>name; strcpy(CRecordi。Name,name); break; case 3: cout<”n输入迟到次数:”; cin>n; CRecordi。chidao=n; break; case 4: cout"n输入早退次数:"; cin>>n; CRecordi。zaotui=n; break; case 5: cout<”n输入请假次数:" cinn; CRecordi。qingjia=n; break; case 6: cout<”n输入旷课次数:" cin>n; CRecor

18、di。kuangke=n; break; default: break; cout"nt该学生修改后的信息是:n”; cout"nt学号姓名迟到早退请假旷课”<endl; ShowDate(i); cout"nn 继续修改该生请输入0 修改其他学生请输入1 否则请输入其他任意值: ”; cinj; if(j=0) n=0; else if(j=1) break; else j=2; system(”cls”); cout<"nnnn ttt 该学信息修改成功!nn"; break; /删除学生信息void Record::DelRe

19、cord() int i=0,j,z; long t,id; char r=0,A,a=Y',b='N;if(renshu<=0) cout<"nnnnt目前没有任何学生信息请先输入学生个人信息再进行此操作!nn”;else cout<<”n删除所有学生信息情输1,删除个别学生信息请输2: ”; cin>j; if(j=1) cout<”n是否删除所有同学信息:确认(Y)/取消(N): ”; cin>A; if(A=aA=a+32) renshu=0; cout<”nnnttt所有信息删除成功!nn”; else if(

20、A=b|A=b+32) cout”nnttt你取消了对所有信息的删除!nn"; else cout"nnttt输入错误!删除失败!nn”; else if(j=2) while(!i) system("cls”); cout”n请输入要删除学生的学号: "; cinid;for(i=0;irenshu;i+) if(CRecordi.ID=id) break; if(i>=renshu) cout<<”n没有你所查找的记录!n”; else cout<"n该学生的原始信息是:n" cout”nt学号姓名迟到早退

21、请假旷课"<endl; ShowDate(i); cout"n是否删除该学生的信息: ” <”确认(Y)/取消(N): "; cinA; if(A=a|A=a+32) j=renshu1; strcpy(r,CRecordi.Name); strcpy(CRecordi。Name,CRecordj。Name); strcpy(CRecordrenshu1。Name,r);t=CRecordi。ID;CRecordi。ID=CRecordj。ID;CRecordj.ID=t;z=CRecordi。chidao;CRecordi。chidao=CRecor

22、dj。chidao;CRecordj.chidao=z; z=CRecordi。zaotui;CRecordi。zaotui=CRecordj。zaotui;CRecordj。zaotui=z; z=CRecordi。qingjia; CRecordi.qingjia=CRecordj。qingjia;CRecordj.qingjia=z;z=CRecordi。kuangke;CRecordi.kuangke=CRecordj。kuangke;CRecordj。kuangke=z; renshu; cout”nntt该学生删除信息删除成功!nn"; else if(A=b|A=b+3

23、2) cout”nntt你取消了对该生信息的删除!nn”; else cout”nntt输入错误!删除失败!nn"; cout<”n继续删除学生信息请输0 否则请输任意值: "; cin>i; if(i) cout"nnnnttt你取消了对学生信息的继续删除!n"; else cout”nnttt输入错误!操作失败!nn";/按学号输出某个学生的信息void Record::FindRecord() int i; long id; int a=0; if(renshu=0) cout<”nnnnt目前没有任何学生信息请先输入学

24、生个人信息再进行此操作!nn"; else cout”n请输入你要查找的学生学号: ”;cin>id;for(i=0;irenshu;i+)if(CRecordi。ID=id) a=1; cout<"nt学号姓名迟到早退请假旷课"<endl;ShowDate(i);if(a=0) cout”n没有你所查找的记录!";cout<endl;return;/输出全班学生的信息void Record::ShowRecord() int i; Order();if(renshu=0) cout<”nnnnt目前没有任何学生信息请先输入

25、学生个人信息再进行此操作!nn”;else cout<”n输出全班一学期的考情情况"<endl; cout”nt学号t姓名t迟到t早退t请假t旷课"<endl; for(i=0;i<renshu;i+) ShowDate(i); return;/从文本中读取信息void Record::ReadDate() int i=0; char lingshi=0; fstream file(”Record。txt”);if(!file) ofstream file1(”Record。txt”); file1。close(); else file.close(

26、); ifstream file2("Record。txt”); file2lingshi>lingshilingshi>lingshi>lingshi>>lingshi; while(!file2。eof() file2>CRecordi.ID;file2CRecordi。Name;file2CRecordi。chidao;file2CRecordi。zaotui;file2CRecordi。qingjia;file2CRecordi.kuangke;i+; if(i=0)renshu=i;else i-; renshu=i; file2。clo

27、se();return;/向文本中保存信息void Record:SaveData()int i=0; Order();ofstream file(”Record。txt”); file<”学号t”姓名t"”迟到t”<”早退t”<”请假t"<"旷课”<endl;for(i=0;i<renshu;i+) fileCRecordi。ID”t”; file<CRecordi.Name<”t”;file<CRecordi.chidao<"t”;fileCRecordi。zaotui<”t”;fileCRecordi。qingjia<”t”;file<CRecordi.kuangkeend

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论