考勤管理系统.docx

上传人:b****8 文档编号:30673422 上传时间:2023-08-19 格式:DOCX 页数:25 大小:18.78KB
下载 相关 举报
考勤管理系统.docx_第1页
第1页 / 共25页
考勤管理系统.docx_第2页
第2页 / 共25页
考勤管理系统.docx_第3页
第3页 / 共25页
考勤管理系统.docx_第4页
第4页 / 共25页
考勤管理系统.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

考勤管理系统.docx

《考勤管理系统.docx》由会员分享,可在线阅读,更多相关《考勤管理系统.docx(25页珍藏版)》请在冰豆网上搜索。

考勤管理系统.docx

考勤管理系统

#include

#include

#include

#include

#defineNUM10

intbc=0;/**/

structstudent

{

charnum[13];/*工号*/

charname[20];

intchidao;

intzaotui;

//intlate;

};

typedefstructnode

{

structstudentdata;

structnode*next;

}Node,*Link;

voidmenu()//菜单//

{

printf("================================================================================");

printf("-----------------------考勤系统-----------------------");

printf("================================================================================");

printf("\t\t\t\t1删除职工资料\t\t\t\t\n");

printf("\t\t\t\t2职工资料录入\t\t\t\t\n");

printf("\t\t\t\t3查询职工资料\t\t\t\t\n");

printf("\t\t\t\t4修改职工资料\t\t\t\t\n");

printf("\t\t\t\t5保存职工资料\t\t\t\t\n");

printf("\t\t\t\t6整体浏览\t\t\t\t\n");

printf("\t\t\t\t7题目要求\t\t\t\t\n");

printf("\t\t\t\t0退出\t\t\t\t\n");

}

//查询职工板块//

Node*search(Linkl,charfindmess[],charnameorcal[])/*该函数用于定位链表中符合要求的接点,并返回该指针*/

{

Node*r;

if(strcmp(nameorcal,"num")==0)/*按工号查询*/

{

r=l->next;

while(r!

=NULL)

{

if(strcmp(r->data.num,findmess)==0)//比较//

returnr;

r=r->next;

}

}

elseif(strcmp(nameorcal,"name")==0)/*按姓名查询*/

{

r=l->next;

while(r!

=NULL)

{

if(strcmp(r->data.name,findmess)==0)

returnr;

r=r->next;

}

}

return0;

}

voidQur1(Linkl)/*职工上班录入功能*/

{

intc;

charfindmess[20];

Node*p;

inth,s,y,d,mi;

charstr[20]="",m[4],w[4];

time_ttimep;

time(&timep);

strcpy(str,ctime(&timep));

printf("%s\n",str);

sscanf(str,"%s%s%d%d:

%d:

%d%d",w,m,&d,&h,&s,&mi,&y);

printf("%d:

%d:

%d\n",h,s,mi);

if(!

l->next)

{

printf("\n提示:

没有资料可以查询!

\n");

return;

}

printf("\n1按工号录入:

\n");

printf("\n2按姓名录入:

\n");

printf("\n请选择序号:

\n");

scanf("%d",&c);

if(c==1)/*工号*/

{

printf("请你输入要查找的工号:

");

scanf("%s",findmess);

p=search(l,findmess,"num");

if(p)

{

printf("\t\t\t\t录入结果\n");

printf("------------------------------------------------------------\n");

if(h>8&&h<12&&s>0&&s<30)

{

printf("他迟到了\n");

p->data.chidao++;

}

elseif(h>14&&h<18&&s>0&&s<30)

{

printf("他迟到了\n");

p->data.chidao++;

}

else

{

printf("休息时间\n");

}

}

else

{

printf("\n没有找到该职工!

");

}

}

elseif(c==2)/*姓名*/

{

printf("请你输入要查找的姓名:

");

scanf("%s",findmess);

p=search(l,findmess,"name");

if(p)

{

printf("\t\t\t\t查找结果\n");

printf("------------------------------------------------------------\n");

printf("%s---%s\n",p->data.num,p->data.name);

if(h>8&&h<12&&s>0&&s<30)

{

printf("他迟到了\n");

p->data.zaotui++;

}

elseif(h>14&&h<18&&s>0&&s<30)

{

printf("他迟到了\n");

p->data.zaotui++;

}

else

{

printf("休息时间\n");

}

}

else

{

printf("\n没有找到该职工!

");

}

}

else

printf("\n输入错误!

\n");

}

voidQur2(Linkl)/*职工下班录入功能*/

{

intc;

charfindmess[20];

Node*p;

inth,s,y,d,mi;

charstr[20]="",m[4],w[4];

time_ttimep;

time(&timep);

strcpy(str,ctime(&timep));

printf("%s\n",str);

sscanf(str,"%s%s%d%d:

%d:

%d%d",w,m,&d,&h,&s,&mi,&y);

printf("%d:

%d:

%d\n",h,s,mi);

if(!

l->next)

{

printf("\n提示:

没有资料可以查询!

\n");

return;

}

printf("\n1按工号录入:

\n");

printf("\n2按姓名录入:

\n");

printf("\n请选择序号:

\n");

scanf("%d",&c);

if(c==1)/*工号*/

{

printf("请你输入要查找的工号:

");

scanf("%s",findmess);

p=search(l,findmess,"num");

if(p)

{

printf("\t\t\t\t录入结果\n");

printf("------------------------------------------------------------\n");

if(h>8&&h<12&&s>0&&s<30)

{

printf("他早退了\n");

p->data.zaotui++;

}

elseif(h>14&&h<18&&s>0&&s<30)

{

printf("他早退了\n");

p->data.zaotui++;

}

else

{

printf("休息时间\n");

}

}

else

{

printf("\n没有找到该职工!

");

}

}

elseif(c==2)/*姓名*/

{

printf("请你输入要查找的姓名:

");

scanf("%s",findmess);

p=search(l,findmess,"name");

if(p)

{

printf("\t\t\t\t查找结果\n");

printf("------------------------------------------------------------\n");

printf("%s---%s\n",p->data.num,p->data.name);

if(h>8&&h<12&&s>0&&s<30)

{

printf("他早退了\n");

p->data.zaotui++;

}

elseif(h>14&&h<18&&s>0&&s<30)

{

printf("他早退了\n");

p->data.zaotui++;

}

else

{

printf("休息时间\n");

}

}

else

{

printf("\n没有找到该职工!

");

}

}

else

printf("\n输入错误!

\n");

}

voidfind(Linkl)

{

intc;

charfindmess[20];

Node*p;

if(!

l->next)

{

printf("\n提示:

没有资料可以查询!

\n");

return;

}

printf("\n1按工号查询:

\n");

printf("\n2按姓名查询:

\n");

printf("\n请选择序号:

\n");

scanf("%d",&c);

if(c==1)/*工号*/

{

printf("请你输入要查找的工号:

");

scanf("%s",findmess);

p=search(l,findmess,"num");

printf("%s---%s---%d---%d\n",p->data.name,p->data.num,p->data.chidao,p->data.zaotui);

}

elseif(c==2)/*姓名*/

{

printf("请你输入要查找的姓名:

");

scanf("%s",findmess);

p=search(l,findmess,"name");

printf("%s---%s---%d---%d\n",p->data.name,p->data.num,p->data.chidao,p->data.zaotui);

}

}

//删除职工板块//

voidDel(Linkl)

{

intc;

chara;

Node*p,*r,*p1;

charfindmess[20];

if(!

l->next)

{

printf("\n没有资料可以删除!

\n");

return;

}

printf("\n1按工号删除");

printf("\n2按姓名删除");

printf("\n请选择序号:

\n");

scanf("%d",&c);

if(c==1)

{

printf("请你输入要删除的工号:

");

scanf("%s",findmess);

getchar();

printf("是否将全部此工号的都删除?

(y/n)");

scanf("%c",&a);

if(a=='y'){

p=search(l,findmess,"num");

if(p)

{

while(p1!

=NULL){

p=search(l,findmess,"num");

r=l;

while(r->next!

=p)

r=r->next;//删除节点r//

r->next=p->next;

p1=search(l,findmess,"num");

}

free(p);

printf("\n提示:

该职工已经成功删除!

\n");

}

else

{

printf("没有该职工的信息\n");

}

}

}

if(a=='n'){

p=search(l,findmess,"num");

if(p)

{

r=l;

while(r->next!

=p)

r=r->next;//删除节点r//

r->next=p->next;

free(p);

printf("\n提示:

该职工已经成功删除!

\n");

}

else

{

printf("没有该职工的信息\n");

}

}

elseif(c==2)

{

printf("请你输入要删除的姓名:

");

scanf("%s",findmess);

p=search(l,findmess,"name");

if(p)

{

r=l;

while(r->next!

=p)

r=r->next;

r->next=p->next;

free(p);

printf("\n提示:

该职工已经成功删除!

\n");

bc=1;

}

else

{

printf("没有该职工的信息\n");

}

}

}

//修改职工板块//

voidModify(Linkl)

{

Node*p;

charfindmess[20];

if(!

l->next)

{

printf("\n=====>提示:

没有资料可以修改!

\n");

return;

}

printf("请你输入要修改的职工工号:

");

scanf("%s",findmess);

p=search(l,findmess,"num");

if(p)

{

printf("请你输入新职工工号:

",p->data.num);

scanf("%s",p->data.num);

printf("请你输入姓名:

");

scanf("%s",p->data.name);

printf("\n=====>提示:

资料修改成功!

\n");

bc=1;

}

else

printf("\n没有找到该职工!

");

}

voidDisp(Linkl)

{

Node*p;

p=l->next;

if(!

p)

{

printf("\n没有资料可以显示!

\n");

return;

}

printf("\t\t\t\t显示结果\n");

printf("------------------------------------------------------------\n");

printf("工号---姓名---迟到---早退");

printf("\n");

while(p)

{

printf("%s---%s---%d---%d\n",p->data.num,p->data.name,p->data.chidao,p->data.zaotui);

p=p->next;

}

printf("\n");

}

//保存//

voidSave(Linkl)

{

FILE*fp;

Node*p;

intflag=1,count=0;

fp=fopen("in.txt","w");

if(fp==NULL)

{

printf("\n重新打开文件时发生错误!

\n");

exit

(1);

}

p=l->next;

while(p)

{

fprintf(fp,"%s%s%d%d\n",p->data.num,p->data.name,p->data.chidao,p->data.zaotui);

p=p->next;

count++;

}

if(flag=1)

{

printf("\n文件保存成功.(有%d条记录已经保存.)\n",count);

bc=0;

}

fclose(fp);

}

//主函数//

intmain()

{

Linkl;/*链表*/

FILE*fp;/*文件指针*/

intc,j;

intn=0;//计数导入内存的数目//

charpassword[20],mima[20]={"123456\0"},mima2[20]={"123456\0"},x;

Node*p,*r,*p1;

l=(Node*)malloc(sizeof(Node));//创建一个空链表//

l->next=NULL;

r=l;

fp=fopen("123.txt","r");

if(fp==NULL)

{

printf("\n文件不存在");

}

while(!

feof(fp))

{

p=(Node*)malloc(sizeof(Node));

fscanf(fp,"%s%s%d%d",p->data.num,p->data.name,&p->data.chidao,&p->data.zaotui);

p->next=l->next;

l->next=p;/*将该接点挂入连中*/

n++;

}

fclose(fp);/*关闭文件*/

printf("记录导入完毕,共导入%d条记录.\n",n);

printf("职工信息如下\n");

while(p!

=NULL)

{

printf("%s--%s\n",p->data.name,p->data.num);

p=p->next;

}

while

(1)

{

menu();//菜单//

printf("请你选择操作:

");

scanf("%d",&c);

if(c==0)

{

if(bc==1)

{

getchar();

printf("\n资料已经改动,将改动保存到文件中\n");

Save(l);

}

printf("\n你已经退出系统!

\n");

break;

}

switch(c)

{

case1:

system("cls");

while

(1){

printf("请输入密码(正确为123456)");

scanf("%s",password);

getchar();

if(strcmp(password,mima)==0){

printf("是否修改密码?

(y/n)\n");

scanf("%c",&x);

if(x=='y'){

printf("输入新密码\n");

scanf("%s",mima);

getchar();

}

while

(1){

printf("要删除请再输入密码:

\n");

scanf("%s",password);

getchar();

if(strcmp(password,mima)==0)

Del(l);

break;

}

break;

}

else{

printf("密码错误\n");

}

}

break;/*删除职工*/

case2:

system("cls");

while

(1){

printf("输入录入方式的数字(1上班录入。

2下班录入):

");

scanf("%d",&j);

if(j<1||j>2)

printf("输入错误,请重新输入\n");

else

break;

}

if(j==1)

Qur1(l);

if(j==2)

Qur2(l);

break;/*职工资料录入*/

case3:

system("cls");

find(l);

break;

case4:

system("cls");

while

(1){

printf("请输入密码(正确为123456)");

scanf(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1