C语言职工档案管理系统Word格式文档下载.docx
《C语言职工档案管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言职工档案管理系统Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。
1、预习报告:
题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。
2、实验总结报告:
流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、
小结等。
总评成绩:
指导教师:
附件:
主要源程序代码(职工档案管理系统)
charsex;
//性别f为女m为男#include<
stdio.h>
#include<
string.h>
stdlib.h>
conio.h>
#defineN100
typedefstructemployee//职工基本情况
{
charnum[6];
//编号
charname[8];
//姓名
charbirth[8];
//出生年月
charworkplace[10];
//工作部门
charsalarylevel[8];
//工资级别
charposition[8];
//职称
chartel[16];
//电话
}em[N];
/*主要函数*/
voidinput();
//输入职工信息
voiddisplay();
//显示职工信息
voidpassWord();
//设置密码
voidsave();
//保存职工信息
voidchange();
//修改职工信息
/*查找函数*/
voidsearch();
voidsearchByname();
//按姓名查找
voidsearchBynum();
//按编号查找
inttotal=0;
//定义total来记数记录数
inti=0;
voidmain()
{intchoice;
do
{
printf("
~~~~~~~~~~~~~~~~~~~~~~~\n"
);
//系统欢迎界面
欢迎进入职工管理系统\n"
printf("
~~~Coyote2009年6月~~~~\n"
printf("
请您选择操作类型:
\n"
========================\n"
1.输入职工信息\n"
//用户选择
2.显示职工信息\n"
3.查找职工信息\n"
4.修改职工信息\n"
0.退出系统\n"
scanf("
%d"
&
choice);
switch(choice)
{
case1:
input();
break;
case2:
display();
case3:
search();
case4:
change();
case0:
{
谢谢使用!
再见!
"
exit(0);
//退出系统
}
default:
{printf("
输入有错误请重新输入:
return;
}
}
}while
(1);
//当为真值时执行do循环
}
voidinput()
charj='
\0'
;
//初始化j值为空
total++;
i++;
第%d个职工:
\n"
i);
请您输入编号:
//输入编号
scanf("
%s"
em[i].num);
请您输入姓名:
//输入姓名
em[i].name);
请您输入性别以(m男f女):
//输入性别
getchar();
%c"
em[i].sex);
请您输入出生年月(格式如:
1990.03):
//输入出生年月
em[i].birth);
请您输入工作部门:
//输入工作部门
em[i].workplace);
请您输入职位:
//输入职位
em[i].position);
请您输入工资级别:
//输入工资级别
em[i].salarylevel);
请您输入联系电话:
//输入联系电话
em[i].tel);
是否继续输入?
(y/n):
"
j=getchar();
while(j!
='
y'
&
j!
n'
)
输入不合法!
\n是否继续输入?
getchar();
j=getchar();
}while(j=='
save();
//保存职工记录
输入完毕,请按任意键返回\n"
getch();
//conio库函数里的,结收键盘输入任意~~~
}
voidsave()
FILE*fp;
inti=0;
if((fp=fopen("
employee.txt"
"
ab"
))==NULL)
cannotopenfile\n"
return;
for(i=1;
i<
=total;
i++)
if(fwrite(&
em[i],sizeof(structemployee),1,fp)!
=1)
filewriteerror\n"
fclose(fp);
voiddisplay()//显示所有职工信息
inti;
rb"
文件打开失败或未创建文件!
所有职工信息如下:
//输出所有职工信息
\n===========================================================================\n"
编号姓名性别出生年月所在部门职称工资级别联系电话\n"
===========================================================================\n"
fread(&
=0;
i++)//读完所有数据
printf("
%-6s%8s%6c%12s%10s%8s%8s%18s\n"
em[i].num,em[i].name,em[i].sex,em[i].birth,em[i].workplace,em[i].position,em[i].salarylevel,em[i].tel);
完毕,请按任意键返回\n"
voidsearch()
{intchoice;
请您选择查找方式:
1.按编号查找\n2.按姓名查找\n"
switch(choice)
case1:
searchBynum();
case2:
searchByname();
default:
输入有误,请重输入:
voidsearchBynum()
charnumb[6];
r"
不能够打开这个文件,请按任意键返回"
}
请您输入要查找的人的编号:
numb);
for(i=0;
N;
i++)//在所有信息中查找符合要求的职工信息
if(strcmp(em[i].num,numb)==0)//找到并显示该职工记录
以下是您要查询的人的信息:
\n"
em[i].num,em[i].name,em[i].sex,em[i].birth,em[i].workplace,em[i].position,em[i].salarylevel,em[i].tel);
查找完毕,请按任意键返回\n"
getch();
fclose(fp);
没有这样的人,请按任意键返回\n"
voidsearchByname()
charnam[8];
不能够打开这个文件,请按任意键返回\n"
请您输入要查找的人的姓名:
nam);
if(strcmp(em[i].name,nam)==0)//找到并显示该职工记录
em[i].num,em[i].name,em[i].sex,em[i].birth,em[i].workplace,em[i].position,em[i].salarylevel,em[i].tel);
没有这样的人,请按任意键返回\n"
voidpassWord()
charpassWord[8]="
123456"
//起始密码
chars[8];
intflag=0;
intn=3;
//密码输入次数
s);
if(strcmp(passWord,s)==0)//若密码正确
密码正确,祝您操作愉快!
flag=1;
break;
else
密码错误,您还有%d次机会:
n-1);
n--;
//次数记数
}while(n>
0);
if(flag!
您的输入次数已到!
main();
//返回主函数(主菜单)
voidchange()
charnewnum[6];
//新编号
charnewname[8];
//新名字
charnewsex;
//新性别
charnewbirth[8];
//新出生年月
charnewworkplace[10];
//新工作部门
charnewposition[8];
//新职称
charnewsalarylevel[8];
//新工资水平
charnewtel[16];
//新电话号码
intchoice;
请您输入密码:
passWord();
//调用密码函数
请您输入要修改的人的姓名:
nam);
w+"
不能够打开这个文件"
=N;
if(strcmp(nam,em[i].name)==0)
这是您要修改的人的信息:
\n===========================================================================\n"
em[i].num,em[i].name,em[i].sex,em[i].birth,em[i].workplace,em[i].position,em[i].salarylevel,em[i].tel);
-----------------------\n"
请您选择要修改的部分:
=======================\n"
1.修改编号\n"
2.修改姓名\n"
3.修改性别\n"
4.修改出生年月\n"
5.修改所在部门\n"
6.修改职位\n"
7.修改工资级别\n"
8.修改联系电话\n"
0.返回主菜单\n"
========================\n"
请您输入新的编号:
newnum);
strcpy(em[i].num,newnum);
break;
请您输入新的姓名:
newname);
strcpy(em[i].name,newname);
case3:
请您输入新的性别:
scanf("
newsex);
em[i].sex=newsex;
case4:
请您输入新的出生年月:
newbirth);
strcpy(em[i].birth,newbirth);
case5:
请您输入新的工作部门:
newworkplace);
strcpy(em[i].workplace,newworkplace);
case6:
请您输入新的职位:
newposition);
strcpy(em[i].position,newposition);
break;
case7:
请您输入新的工资级别:
newsalarylevel);
strcpy(em[i].salarylevel,newsalarylevel);
case8:
请您输入新的联系电话:
newtel);
strcpy(em[i].tel,newtel);
case0:
返回主菜单"
//返回
default:
输入有错误!
请重新输入!
return;
//保存修改信息
elseif(i==N)
没有这个职工,为了安全,请再次输入密码!
change();
\n===================\n"
1.继续修改\n2.返回主菜单\n"
===================\n"
\n请您选择:
main();
返回\n"