员工考勤信息管理的设计和实现文档格式.docx
- 文档编号:15399825
- 上传时间:2022-10-30
- 格式:DOCX
- 页数:38
- 大小:421.43KB
员工考勤信息管理的设计和实现文档格式.docx
《员工考勤信息管理的设计和实现文档格式.docx》由会员分享,可在线阅读,更多相关《员工考勤信息管理的设计和实现文档格式.docx(38页珍藏版)》请在冰豆网上搜索。
2.2数据文件设计
2.2.1.存储员工信息的文件:
文件名:
information1.txt
文件内容:
日期
ID姓名部门
….…..…..
例:
201031
ID姓名部门
11张三安保部
12李四安保部
2.2.2.存储员工考勤信息的文件:
由日期经过变换后得到。
变换方式:
(1)给整个系统设置一个基准日期
基准日期:
一段时期内的起始日期,通常规定为一个月的1号,考勤所记录的是基准日期之后的考勤信息.
(2)考勤记录的日期与基准日期相差的天数加1。
由以上变换可得:
基准日期的考勤的文件名为“1.txt”。
2.2.3.存储考勤一段时期的统计信息的文件:
管理员自己输入。
起始日期终止日期
ID姓名迟到次数早退次数
…….……
例如:
2010412010630
11张三12
12李四20
各文件之间的关系:
考勤文件是按照当天的员工信息文件的顺序依次记录。
在此把请假等排除在外不考虑。
2.3代码设计
设计代码主要包括:
voidinput_employee()//第一次输入员工信息
voidread_file()//专门用于读取存储员工信息的文件的函数
voidwrite_file()//专门用于向存储员工信息的文件中写函数
voidoutput_employee()//输出员工信息
voidinsert_employee(structemployeenew_person)//添加员工信息
voiddelete_employee(intid)//删除员工信息
voidmanagement_employee()//管理员工信息总函数
intcomputer(structdatasomeday)//计算日期对应的文件名
voidrecorder()//记录每天每个员工的考勤情况
voidstatistic()//统计所有员工某段时间的考勤情况,把统计结果输入文件中
voidsingle_quire()//查询某一天的考勤情况
voidmulti_quire()//查询一段连续时间的考勤情况
voidquire_attendance()//查询的总函数
voidmanagement_attendance()//考勤管理的总函数
2.4程序代码
#include"
stdafx.h"
#include<
stdio.h>
stdlib.h>
string.h>
process.h"
#include<
conio.h>
#defineMAX_COUNT30//最大员工数
structemployee//员工信息结构体
{
intid;
charname[20];
chardepartment[20];
};
structdate//日期结构体
intyear;
intmonth;
intday;
structattendance//考勤结构体
intlate;
intearly;
structdatedat;
structstatistic//统计表结构体
intlate_count;
intearly_count;
intCOUNT=0;
//记录员工的人数
intFLAG_pause=1;
//涉及插入,输出函数的联合操作时某些位置是否调用system(“pause”)
structemployeeperson[MAX_COUNT];
structdateBASE_DATA={2012,1,1};
//基准日期
voidinput_employee()//第一次输入员工信息,相当于初始化
system("
cls"
);
FILE*fp1,*fp2;
structemployeetemp;
fp1=fopen("
information1.txt"
"
w"
fp2=fopen("
information2.txt"
printf("
\t\t\t\t员工信息\n"
\n\t\t\t\tID\t姓名\t部门\n\t\t\t\t"
fprintf(fp1,"
\t\t\t\t输入员工信息\n"
\n\t\t\t\tID\t姓名\t部门\n"
scanf("
%d%s%s"
&
temp.id,temp.name,temp.department);
while(temp.id!
=0)
{
person[COUNT]=temp;
printf("
%d"
temp.id);
COUNT++;
\t\t\t\t%d\t%s\t%s\n"
temp.id,temp.name,temp.department);
fprintf(fp2,"
%d\t%s\t%s\n"
\t\t\t\t"
}
fclose(fp1);
fclose(fp2);
}
voidread_file()//专门用于读存储员工信息的文件的函数
FILE*fp;
COUNT=0;
if((fp=fopen("
r"
))==NULL)
cantnotopenfile\n"
exit
(1);
while(!
feof(fp))
fscanf(fp,"
person[COUNT].id,person[COUNT].name,
person[COUNT].department);
COUNT--;
fclose(fp);
//专门用于向存储员工信息的文件中写函数
voidwrite_file()
{
inti;
w+"
if(fp1==NULL||fp2==NULL)
for(i=0;
i<
COUNT;
i++)
person[i].id,person[i].name,person[i].department);
//输出员工信息
voidoutput_employee()
intchoice;
chartemp[20];
read_file();
//读员工信息文件
\n\t\t\t\t\t输出员工信息\n"
\n\t1.输出全体员工信息\t"
2.按姓名输出员工信息\t"
3.按ID输出员工信息\t"
4.按部门员工信息\t"
5.返回主菜单\n"
\n\t请选择(1~5):
\t"
start:
choice);
if(choice<
1||choice>
5)
\t输入错误,请重输:
gotostart;
switch(choice)
case
(1):
\t\t\tID\t姓名\t部门\n"
\t\t\t%d\t%s\t%s\n"
break;
case
(2):
\t\t\t输入姓名:
"
%s"
temp);
if(strcmp(person[i].name,temp)==0)
person[i].id,person[i].
name,person[i].department);
case(3):
\t\t\t输入ID:
id);
if(person[i].id==id)
person[i].id,person[i].name,
person[i].department
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 考勤 信息管理 设计 实现