基于C++的学生考勤管理论文Word文件下载.docx
- 文档编号:7088099
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:30
- 大小:103.33KB
基于C++的学生考勤管理论文Word文件下载.docx
《基于C++的学生考勤管理论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于C++的学生考勤管理论文Word文件下载.docx(30页珍藏版)》请在冰点文库上搜索。
此项是在没有录入学生信息或者是想再次录入学生信息时所用,实现对学生信息的录入和追加增添。
(2)修改学生信息
此项是在有学生信息录入的前提下实现对学生的姓名、学号、考勤信息的修改,本系统只提供了按学号查询修改的功能。
(3)单人考勤信息
此项是在有学生信息的前提下实现按学号查询单人考勤信息的功能。
(4)全班考勤信息
通过此项操作可实现对全班学生考勤的输出查看功能。
(5)输入学生考勤
此项是通过对在录学生进行学号访问,然后按提示实现对该学生的迟到、早退、旷课、请假等相关考勤的记录。
(6)删除学生信息
该项提供了两种删除学生信息的功能,按学号删除学生信息和删除所有学生信息,使用者可根据不同的需要选择操作。
(7)修改登录密码
本管理系统可实现密码的修改功能,其初始密码为"
123456"
初次登录后建议使用者首先选择该项进行登录密码的修改,并牢记自己的密码。
(8)退出
该系统提供两种退出方式,一种便是主界面上选项8,一种则是在使用者进行到任意子项完成后既可按相关键退出。
注:
使用者在进行登录后的相关操作后必须选择一种方式进行退出,否则会造成数据的丢失。
因为该程序默认保存数据为退出键。
6、子项操作示例(Subentryexample):
下面以子项5为例简单介绍相关子项的操作:
如选择5则程序调用voidPutRecord();
函数,系统进入新的界面。
若使用者事先并没有进行学生信息的录入则返回提示框。
图5(见附录)若使用者以进行过子项1的输入或者在以前使用录入过学生信息则进入考勤记录子项。
图6(见附录)并按照提示进行学生考勤的录入。
录入完毕后系统弹出录入后新的信息记录。
图7(见附录)最后返回主界面或者退出系统。
4、程序扩展应用展望
基于在编写过程中对问题的实际深入了解和探讨研究,发现实际生活中有很多类似的问题可以用本程序稍作修改来解决,就目前所了解该程序可实际扩展应用于学生考试管理系统,图书馆管理系统,医院就医管理系统,停车场管理系统,银行账户管理等等相关管理系统。
5、程序代码
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//类的定义
usingnamespacestd;
#defineSize1000
classRecord
{
public:
Record();
//构造函数
voidEntersystem();
//进入系统函数
voidGetPwd();
//获取密码
voidSetDate();
//输入设置学生信息
voidSetPwd();
//修改登录密码
voidReadDate();
//读取文本信息函数
voidSaveData();
//向文本保存信息函数
voidPutRecord();
//输入考勤函数
voidFindRecord();
//查找学生信息函数
voidShowRecord();
//输出所有学生信息
voidOrder();
//按学号排序
voidModifyDate();
//修改学生信息
voidDelRecord();
//删除学生信息
private:
intrenshu;
//学生人数
intchidao;
//迟到次数
intzaotui;
//早退次数
intkuangke;
//旷课次数
intqingjia;
//请假次数
longID;
//学生学号
charName[20];
//学生姓名
charpassword[20];
//登录密码
ShowDate(int);
//输出工具函数
};
//类的实现
#include"
iostream"
#include<
conio.h>
string.h"
fstream>
zzz.h"
//构造函数
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('
)<
);
a--;
}
}
elseif(ch=='
\r'
)
{password[a]='
\0'
;
cout<
break;
else
{cout<
*"
password[a++]=ch;
}
}
//登陆进入系统
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欢迎使用考勤管理系统!
\n\n\n\t\t请输入登陆密码:
GetPwd();
a--;
if(strcmp(pwd,password)!
{
if(a)
{system("
\n\n\n\t\t密码输入错误!
还有"
a<
次输入机会!
\n"
\t\t"
system("
pause"
else
\n\n\n\t\t连续3次密码输入错误!
系统自动退出!
exit(0);
//修改密码
SetPwd()
{charrepwd[20]={0};
inta=0;
while(!
a)
{system("
\n\n\n\n\t\t输入原密码:
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\t\t请输入新密码:
strcpy(repwd,password);
\n\n\t\t再次输入新密码:
if(strcmp(repwd,password)!
\n\n\t\t两次输入密码不相同!
if(a)
{strcpy(pwd,password);
\n\n\t\t密码修改成功!
请牢记你的新密码!
out|ios:
file.write(pwd,strlen(pwd));
file.close();
//输入增添学生人数
SetDate()
{inti=0;
intm=0;
\n输入/增添学生人数:
m;
for(i=0;
i<
i++)
\n输入/增添第"
i+1<
个学生的信息:
\n\t学号:
CRecord[renshu+i].ID;
\n\t姓名:
CRecord[renshu+i].Name;
renshu+=m;
//按学号排序
Order()
{ints,z;
longt;
charr[20];
s=renshu;
for(inti=0;
s;
{for(intj=i+1;
j<
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].qinjia=CRecord[j].qinjia;
CRecord[j].qinjia=z;
z=CRecord[i].kuangke;
CRecord[i].kuangke=CRecord[j].kuangke;
CRecord[j].kuangke=z;
//设置学生考勤信息
PutRecord()
{inti;
doublelongid;
if(renshu<
\n\n\n\n\t目前没有任何学生信息请先输入学生个人信息再进行此操作!
else
\n请输入所查学生学号:
id;
renshu;
{
if(CRecord[i].ID==id)
break;
if(i>
=renshu)
\n没有你所查找的记录!
else
{
\n该学生的原始信息记录是:
\n\t学号姓名迟到早退请假旷课"
ShowDate(i);
\n信息记录:
m)
{intn;
\n\t请输入选择缺课类型:
(1迟到2早退3请假4旷课):
n;
switch(n)
case1:
cout<
\n请输入迟到次数:
CRecord[i].chidao+=n;
break;
case2:
\n请输入早退次数:
CRecord[i].zaotui+=n;
break;
case3:
\n请输入请假次数:
CRecord[i].qingjia+=n;
case4:
\n请输入旷课次数:
CRecord[i].kuangke+=n;
break;
default:
\n\t继续输入该生考情请输0否则输任意值:
\n该学生现在的信息记录是:
\n"
ShowDate(i);
//修改学生信息
ModifyDate()
{inti,j=1;
longid;
if(renshu<
while(j==1)
\n请输入要修改学生的学号:
\n\t\t没有你所查找的记录!
\n重新查询修改请输0否则输任意值:
i;
if(i==0)
j=1;
\n\n\n\n\t\t\t信息修改失败!
\n该学生的原始信息是:
\n\t学号姓名迟到早退请假旷课"
\n信息修改:
charname[]={0};
intn=0;
while(n==0)
\n\t选择修改内容:
(1学号2姓名3迟到4早退5请假6旷课):
{case1:
\n新的学号:
CRecord[i].ID=id;
case2:
cout<
\n新的姓名:
name;
strcpy(CRecord[i].Name,name);
case3:
\n输入迟到次数:
cin>
CRecord[i].chidao=n;
case4:
\n输入早退次数:
CRecord[i].zaotui=n;
case5:
\n输入请假次数:
CRecord[i].qingjia=n;
case6:
\n输入旷课次数:
CRecord[i].kuangke=n;
\n\t该学生修改后的信息是:
\n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 C+ 学生 考勤 管理 论文