《员工管理系统》word版.docx
- 文档编号:23883283
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:11
- 大小:17.28KB
《员工管理系统》word版.docx
《《员工管理系统》word版.docx》由会员分享,可在线阅读,更多相关《《员工管理系统》word版.docx(11页珍藏版)》请在冰豆网上搜索。
《员工管理系统》word版
员工管理系统
想法产生:
现在的一些小型企业或工作单位为了统计员工信息发现用EXCEL和word表格进行存储和修改不是很方便,再其次用纸与笔记下更加不合适。
于是我们想到用C语言编写一个程序系统进行对数据的管理。
首先我们要有管理员对数据进行输入输出和存储等等,自然要用到我们所学习的结构体和函数等等C语言中的重点知识!
目的:
便于进行管理员工的信息。
设计来源:
和其他同学一起想流程控制和函数以及算法,并经过不断修改,尽可能地使程序更加的简练和便于让其他人理解,最终由我们的团队定稿!
员工管理系统详细解说
#include"stdio.h"
#include"string.h"
#include"conio.h"
#include
#defineM100
voidmenu();//主菜单界面
voidadd();//增加档案的函数
voidDel();//删除函数
voidsave();//存储函数
voidDisp();//显示函数,即输出语句执行的命令
voidpassword();//设置密码(函数声明)
intn=0,saveflag=0,choice;
intflag=0;
intdelnumber;(定义变量)
typedefstructstaff//员工信息结构表的数据结构(结构体便于将基本类型的数据组合在一起形成复合数据类型,便于调用,可以表示复杂的事物)
{
intnum;//员工工号
charname[20];//员工姓名
intage;//员工年龄
charsex[4];//员工性别
charbirthday[20];//员工出生日期
charTEL[30];//员工联系电话
intworktime;//员工的工龄(定义基本数据类型)
}STA;(声明了一个新类型名STA代表上面struct一个结构体类型,可以用STA去定义变量)
STAst[M];
voidmenu()//菜单界面
{
system("cls");(功能是清屏,清除所有显示的信息)
printf("员工信息管理系统欢迎您\n\n");
printf("*************************主菜单**************************\n**\n");
printf("*1插入档案2删除档案*\n**\n");
printf("*3输出档案0退出系统*\n**\n");
printf("*********************************************************\n");
printf("(以上操作需要管理员权限)\n\n\n");
}
voidadd(STA*p)//添加一个员工数据(定义函数)
{
intdata;
system("cls");
password();(设置管理员密码,便于管理员进行管理数据)
if(flag!
=1)
{
return;
}
while
(1)
{
printf("请输入第%d个员工档案",n+1);
p[n].num=n+1;
printf("请输入员工的姓名:
");
fflush(stdin);(清除文件缓冲区标准的输入和写入文件)
gets(p[n].name);
printf("请输入员工的年龄:
");
fflush(stdin);
scanf("%d",&p[n].age);
printf("请输入员工的性别:
");
fflush(stdin);
gets(p[n].sex);
printf("请输入员工出生日期,以小数点分隔,例:
1993.09.09:
");
fflush(stdin);
gets(p[n].birthday);
printf("请输入员工的联系电话:
");
fflush(stdin);
gets(p[n].TEL);
printf("请输入员工的工龄:
");
fflush(stdin);
scanf("%d",&p[n].worktime);(通过指针将输入的数据发送到定义变量名的地址)
n++;
saveflag=1;
printf("\n是否继续输入非0键:
继续0:
返回主菜单");
scanf("%d",&data);
if(data==0)(对是否继续存储数据进行判断)
break;
}
return;
}
voidDel(STA*p)//删除某个员工信息
{
intoperate;
system("cls");
password();
if(flag!
=1)
{
return;
}
if(n==0)
{
printf("\n没有员工信息程序即将返回\n");getch();
return;
}
getchar();
if(choice>=n||choice<0)
{return;}
else{
printf("员工编号:
");
scanf("%d",&delnumber);
printf("确实要删除该员工资料吗?
[1:
返回主菜单2:
删除该员工的资料");
scanf("%d",&operate);
if(operate==2)
{
for(inti=delnumber-1;i<=n-1;i++)
{
st[i]=st[i+1];
p[i].num=p[i+1].num-1;
}
n--;
printf("成功删除");(后面的数据覆盖前面的那个数据,并且在删除数据后面的数据将编号减1.)
}
if(operate==1)
{
return;
}
}
}}
voidDisp(STA*p)//展示所有员工信息
{
inti;
system("cls");
printf("厂部员工信息\n");
printf("\t\t\t\t\t\t\n");
if(n==0)
{
printf("\n没有员工信息\n");
}
for(i=0;i printf("工号: %d\n姓名: %s\n年龄: %d\n性别: %s\t\n出生日期: %s\n联系电话: %s\n工龄: %d\n\n",p[i].num,p[i].name,p[i].age,p[i].sex,p[i].birthday,p[i].TEL,p[i].worktime); getch(); } voidpassword()//设置密码 { intpassword; if(flag==0) {printf("请输入身份验证,即密码: "); scanf("%ld",&password); if(password==123) { printf("密码输入正确,您可以对当前员工信息表进行操作\n\n"); flag=1;(定义的flag主要是能让管理员进行操作,让其他不知道密码的人无法对此系统进行添加和删除及存储等等) } else { printf("密码输入有误,按任意键返回\n"); getch(); system("cls"); } } } voidsave(STA*p)//保存数据(定义结构体指针变量P,指向此结构体类型数据) { FILE*fp;(指向FILE类型数据的指针变量) inti; if((fp=fopen("stdata.txt","w"))==NULL)(fopen函数打开数据文件。 W是输出数据,打开一个文本文件,如果指定的文件不存在,则建立新文件) { printf("无法打开此文件,请检查数据文件\n"); exit(0); } for(i=0;i { fprintf(fp,"%d\t%s\t%d\t%s\t%s\t%s\t%d\n",p[i].num,p[i].name,p[i].age,p[i].sex,p[i].birthday,p[i].TEL,p[i].worktime); } fclose(fp);(此函数用来关闭文件) printf("数据已保存! "); } intreaddata(STA*p)//读取存储的员工信息 { FILE*fp; if((fp=fopen("stdata.txt","w+"))==NULL)(w+为了读和写,建立一个新的文本文件) { printf("数据文件无法打开,请检查数据文件。 \n"); return0; } while(! feof(fp))(此函数用来判断文本是否结束,如果结束返回非0,不结束返回0) { fscanf(fp,"%d\t%s\t%d\t%s\t%s\t%s\t%d\n",&p[n].num,&p[n].name,&p[n].age,&p[n].sex,&p[n].birthday,&p[n].TEL,&p[n].worktime);(从文本中读出文件) n++;(一直读到最后一个知道没有数据停止) } fclose(fp); return1; } voidmain() { intk; charselect; inta; readdata(st);(读取此结构体定义的变量) while (1) { menu(); scanf("%d",&a);//从键盘接受一个数字给a,选择功能 if(a==0) { if(saveflag==1) { fflush(stdin); printf("员工数据已经改动,是否保存[y: 保存其他任意键: 不保存退出]: "); k=getchar(); fflush(stdin); if(k=='y') save(st); } break; } switch(a)(用switch选择语句) { case1: add(st);break; case2: Del(st);break; case3: Disp(st);break; default: printf("输入数字有误"); } } system("cls"); printf("\n\n\n谢谢使用! \n"); } 成员组合: 数学院122-2班组长: 冯柏通 成员: 邱黄河马堂跃赵志玲 ..
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工管理系统 员工 管理 系统 word