学生考勤管理系统C++Word文档下载推荐.docx
《学生考勤管理系统C++Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生考勤管理系统C++Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
![学生考勤管理系统C++Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/1/1a15fd50-c665-4480-9ba5-d4e180dd1ae8/1a15fd50-c665-4480-9ba5-d4e180dd1ae81.gif)
//请假次数
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)
{cout〈<
"
\t”
<
〈CRecord[i].ID〈〈"
”
〈CRecord[i].Name<
<
”"
〈〈CRecord[i]。
chidao<
CRecord[i]。
zaotui〈<
"
CRecord[i].qingjia<
〈〈CRecord[i].kuangke〈<
endl;
//获取密码
GetPwd()
{inta=0;
while
(1)
{charch;
ch=getch();
if(ch==’\b'
)
{
if(a!
=0)
{
cout<
〈char(’\b’)<
〈””<
char(’\b'
);
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,'
);
file.close();
b=strlen(repwd);
if(b)
{strcpy(pwd,repwd);
}
while(a)
{system(”cls"
cout〈〈"
\n\n\n\n\t\t\t欢迎使用考勤管理系统!
”;
cout〈〈”\n\n\n\t\t请输入登陆密码:
GetPwd();
a—-;
if(strcmp(pwd,password)!
{
if(a)
{system("
cls"
cout〈<
”\n\n\n\t\t密码输入错误!
还有”〈<
a〈〈”次输入机会!
\n"
cout〈〈”\t\t”;
system(”pause"
}
else
\n\n\n\t\t连续3次密码输入错误!
系统自动退出!
\n”;
〈”\t\t"
exit(0);
break;
}
//修改密码
SetPwd()
{charrepwd[20]={0};
inta=0;
while(!
a)
{system(”cls"
”\n\n\n\n\t\t输入原密码:
GetPwd();
if(strcmp(password,pwd)!
{cout〈〈"
\n\n\t\t原密码错误!
\n\n"
<
〈"
\t\t重新输入请按0否则请按任意键\n\n”;
cin〉>
a;
”\n\n\n\n\t\t\t密码修改失败!
\n\n”;
}
{cout<
\n\n\t\t请输入新密码:
”;
strcpy(repwd,password);
〈”\n\n\t\t再次输入新密码:
if(strcmp(repwd,password)!
{cout〈<
”\n\n\t\t两次输入密码不相同!
〈〈"
\t\t重新输入请按0否则请按任意键\n\n"
a;
if(a)
{system("
cls”);
cout<
\n\n\n\n\t\t\t密码修改失败!
\n\n”;
{strcpy(pwd,password);
\n\n\t\t密码修改成功!
请牢记你的新密码!
fstreamfile(”\\mima。
dat”,ios:
out|ios:
file.write(pwd,strlen(pwd));
file。
close();
//输入增添学生人数
SetDate()
{inti=0;
intm=0;
”\n输入/增添学生人数:
cin〉〉m;
for(i=0;
i<
m;
i++)
\n输入/增添第"
〈〈i+1〈〈”个学生的信息:
”〈<
cout〈<
\n\t学号:
”;
cin>
>
CRecord[renshu+i].ID;
”\n\t姓名:
〉CRecord[renshu+i]。
Name;
renshu+=m;
//按学号排序
Order()
{ints,z;
longt;
charr[20];
s=renshu;
for(inti=0;
i〈s;
{for(intj=i+1;
j〈s;
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;
zaotui;
CRecord[i].zaotui=CRecord[j]。
zaotui;
CRecord[j].zaotui=z;
z=CRecord[i]。
qingjia;
CRecord[i]。
qingjia=CRecord[j]。
CRecord[j].qingjia=z;
z=CRecord[i].kuangke;
CRecord[i]。
kuangke=CRecord[j].kuangke;
CRecord[j]。
kuangke=z;
}
//设置学生考勤信息
PutRecord()
{inti;
doublelongid;
if(renshu<
cout〈〈”\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!
else
{cout<
\n请输入所查学生学号:
cin〉〉id;
i〈renshu;
{
if(CRecord[i].ID==id)
break;
if(i〉=renshu)
”\n没有你所查找的记录!
else
{
cout〈〈"
\n该学生的原始信息记录是:
;
\n\t学号姓名迟到早退请假旷课"
〈〈endl;
ShowDate(i);
”\n信息记录:
m)
{intn;
cout〈〈”\n\t请输入选择缺课类型:
(1迟到2早退3请假4旷课):
cin〉〉n;
switch(n)
case1:
cout〈<
\n请输入迟到次数:
〉n;
CRecord[i].chidao+=n;
break;
case2:
cout<
”\n请输入早退次数:
n;
CRecord[i]。
zaotui+=n;
break;
case3:
cout〈〈”\n请输入请假次数:
〉n;
CRecord[i].qingjia+=n;
case4:
\n请输入旷课次数:
CRecord[i].kuangke+=n;
break;
default:
”\n\t继续输入该生考情请输0否则输任意值:
m;
\n该学生现在的信息记录是:
\n”;
\n\t学号姓名迟到早退请假旷课”〈<
ShowDate(i);
//修改学生信息
ModifyDate()
{inti,j=1;
longid;
if(renshu〈=0)
”\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!
while(j==1)
cls”);
\n请输入要修改学生的学号:
id;
renshu;
{
if(CRecord[i]。
ID==id)
if(i>
=renshu)
{cout〈〈"
\n\t\t没有你所查找的记录!
”\n重新查询修改请输0否则输任意值:
〉i;
if(i==0)
j=1;
cout〈〈”\n\n\n\n\t\t\t信息修改失败!
{
”\n该学生的原始信息是:
\n\t学号姓名迟到早退请假旷课”〈〈endl;
ShowDate(i);
〈”\n信息修改:
\n"
charname[]={0};
intn=0;
while(n==0)
{cout〈<
”\n\t选择修改内容:
(1学号2姓名3迟到4早退5请假6旷课):
n;
{case1:
cout〈<
”\n新的学号:
id;
CRecord[i].ID=id;
case2:
cout〈〈”\n新的姓名:
〉name;
strcpy(CRecord[i].Name,name);
case3:
cout〈〈”\n输入迟到次数:
cin>
CRecord[i].chidao=n;
case4:
cout〈<
\n输入早退次数:
cin〉〉n;
CRecord[i].zaotui=n;
case5:
cout<
”\n输入请假次数:
CRecord[i].qingjia=n;
break;
case6:
\n输入旷课次数:
CRecord[i]。
kuangke=n;
default:
cout〈〈”\n\t该学生修改后的信息是:
”\n\t学号姓名迟到早退请假旷课"
〈<
〈”\n\n继续修改该生请输入0修改其他学生请输入1否则请输入其他任意值:
cin〉〉j;
if(j==0)
n=0;
elseif(j==1)
break;
{j=2;
system(”cls"
”\n\n\n\n\t\t\t该学信息修改成功!
}
//删除学生信息
DelRecord()
{inti=0,j,z;
longt,id;
charr[]={0},A,a=’Y’,b='
N’;
\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!
{cout<
〈”\n删除所有学生信息情输1,删除个别学生信息请输2:
j;
if(j==1)
\n是否删除所有同学信息:
确认(Y)/取消(N):
A;
if(A==a||A==a+32)
{renshu=0;
\n\n\n\t\t\t所有信息删除成功!
elseif(A==b||A==b+32)
”\n\n\t\t\t你取消了对所有信息的删除!
\n\n\t\t\t输入错误!
删除失败!
elseif(j==2)
while(!
i)
{system("
”\n请输入要删除学生的学号:
”;
i〈renshu;
if(CRecord[i]。
cout〈〈”\n没有你所查找的记录!
\n该学生的原始信息是:
\n”;
endl;
cout〈〈”\n是否删除该学生的信息:
”确认(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]。
CRecord[j]。
ID=t;
z=CRecord[i]。
chidao=CRecord[j]。
chidao;
CRecord[j].chidao=z;
zaotui=CRecord[j]。
CRecord[j].zaotui=z;
qingjia;
CRecord[i]。
CRecord[j]。
qingjia=z;
kuangke;
CRecord[i].kuangke=CRecord[j].kuangke;
CRecord[j].kuangke=z;
renshu--;
”\n\n\t\t该学生删除信息删除成功!
elseif(A==b||A==b+32)
\n\n\t\t你取消了对该生信息的删除!
\n\n\t\t输入错误!
〈”\n继续删除学生信息请输0否则请输任意值:
cin〉〉i;
if(i)
”\n\n\n\n\t\t\t你取消了对学生信息的继续删除!
”\n\n\t\t\t输入错误!
操作失败!
//按学号输出某个学生的信息
FindRecord()
{inti;
inta=0;
{cout<
\n请输入你要查