职工信息管理系统源代码Word格式文档下载.docx
《职工信息管理系统源代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统源代码Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
voiddisplay();
voidadd();
voidsearch();
voidsearch_education();
voidsearch_num();
voiddel();
voidmodify();
voidmain()
{
chars;
system("
color3f"
);
printf("
\n\n"
\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"
\t┃**********************************************************┃\n"
\t┃***┏━━━━━━━━━━━━━━━━━━━━━━━━┓***┃\n"
\t┃***┃************************************************┃***┃\n"
\t┃***┃*******┃***┃\n"
\t┃***┃***欢迎使用职工信息管理系统****┃***┃\n"
\t┃***┃***制作人吴青伶****┃***┃\n"
\t┃***┃***2013.12.28****┃***┃\n"
\t┃***┗━━━━━━━━━━━━━━━━━━━━━━━━┛***┃\n"
printf("
\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"
do
{
menu();
Doyouwanttocontinue?
(y/n)"
s=getchar();
}while(s=='
Y'
||s=='
y'
}
voidmenu()/*菜单函数*/
intb;
printf("
\t\n"
\t请选择\n"
\t------------------------------\n"
\t||||\n"
\t||1.职工信息录入||\n"
\t||2.职工信息浏览||\n"
\t||3.职工信息添加||\n"
\t||4.职工信息查询||\n"
\t||5.职工信息删除||\n"
\t||6.职工信息修改||\n"
\t||0.退出||\n"
\t-------------------------------\n"
\n输入你的选择项(0~6):
\n"
scanf("
%d"
&
b);
switch(b)
{
case1:
//职工信息录入、保存
input();
save();
getchar();
break;
case2:
//读入职工信息并显示
read();
display();
break;
case3:
//添加职工信息
add();
getchar();
case4:
//查询职工信息
search();
case5:
//读入职工信息并实现职工信息删除功能
read();
del();
getchar();
break;
case6:
//读入职工信息并修改职工信息
modify();
case0:
exit(0);
//退出
default:
break;
}
voidinput()//录入职工信息
inti,flag,j;
输入职工个数(默认个数为2):
"
N);
fflush(stdin);
//清除缓存
for(i=0;
i<
N;
i++)
loop:
职工号:
worker[i].num);
flag=1;
if(worker[N].num<
0)
请输入正整数:
else
for(j=0;
j<
i;
j++)
if(worker[i].num==worker[j].num)
{
flag=0;
printf("
工号重复,请重新输入!
gotoloop;
}
姓名:
scanf("
%s"
worker[i].name);
性别:
%s"
worker[i].sex);
出生年月:
worker[i].birth);
工作年月:
%lf"
worker[i].deta);
请输入学历(中专=zz,大专=dz,本科=bk,研究生=yjs):
worker[i].education);
fflush(stdin);
工资:
worker[i].salary);
职务:
worker[i].work);
住址:
worker[i].addr);
:
worker[i].tel);
\n创建完毕!
voidsave()//保存函数
FILE*fp;
inti;
if((fp=fopen("
worker.txt"
"
wb"
))==NULL)//以只写方式打开一个二进制文件
\ncannotopenfile\n"
exit(0);
fwrite(&
worker[i],sizeof(structworker),1,fp);
//将存中的职工信息数据输出到磁盘文件中去(二进制)
fclose(fp);
voidread()//读入函数
inti=0;
rb"
))==NULL)//以只读方式为输出打开磁盘文件中的一个二进制文件
do{
fread(&
//从worker.txt文件向存读入数据(二进制)
i++;
}while(!
feof(fp));
N=i-1;
voiddisplay()//信息浏览函数
%d\n"
worker[i].num);
%s\n"
worker[i].birth);
worker[i].deta);
学历:
%lf\n"
}
voidadd()//添加函数
structworkerp;
doublet;
\n请输入新增加职工的信息:
请输入职工号:
scanf("
p.num);
for(i=0;
while(worker[i].num==p.num)
{
scanf("
请输入姓名:
p.name);
请输入性别:
p.sex);
请输入出生年月:
p.birth);
请输入工作年月:
p.deta);
请输入学历(中专=zz,大专=dz,本科=bk,研究生=yjs:
):
p.education);
请输入工资:
t);
p.salary=t;
请输入职务:
p.work);
请输入住址:
p.addr);
请输入:
p.tel);
\n添加完毕!
ab"
))==NULL)//以追加方式打开一个二进制文件尾部
p,sizeof(structworker),1,fp);
voidsearch()//查询函数
intc;
puts("
\nsearchby=>
\n1.学历2.职工号3.取消并返回"
Whichyouneeded?
c);
if(c>
3||c<
1)
\nchoiceerror!
pleaseagain!
getchar();
//此语句用于接受在执行上一句时最后输出的回车符
while(c>
1);
switch(c)
case1:
search_education();
case2:
search_num();
case3:
menu();
voidsearch_education()//按学历查询函数
inti,flag=0;
chars[10];
\n请输入你要查询的学历:
s);
if(strcmp(s,worker[i].education)==0)
{
printf("
学历(中专=zz,大专=dz,本科=bk,研究生=yjs):
flag++;
}
if(flag==0)
\n对不起没有找到!
voidsearch_num()//按工号查询函数
inti,s,flag=0;
\n输入要查询的职工号!
s);
if(s==worker[i].num)
flag++;
if(flag==0)
please"
getchar();
voiddel()//删除函数
inti,j;
charname[20];
charc;
))==NULL)//以只写方式打开一个二进制文件
请输入要删除的职工的姓名:
name);
if(strcmp(name,worker[i].name)==0)//判断输入的姓名和原来的姓名是否相同
找到该职工,是否删除?
(y/n)"
);
fflush(stdin);
%c"
if(c=='
||c=='
)
for(j=i;
worker[j]=worker[j+1];
删除成功!
\n"
//break;
if(i>
=N)
没有找到该职工!
\n"
return;
N=N-1;
if(fwrite(&
worker[i],sizeof(structworker),1,fp)!
=1)
\ncannotsavefile\n"
fclose(fp);
voidmodify()//修改函数
inti,n;
\n输入要修改的职工号:
n);
if(n==worker[i].num)
找到该职工的信息(任意键继续)!
\n请输入职工的信息!
请输入出身年月:
p.salary=t;
p.num=n;
if((fp=fopen("
r+"
))==NULL)//以读写的方式将修改的信息写入磁盘文件
exit(0);
fseek(fp,i*sizeof(structworker),0);
//将位置指针移到i*sizeof(structworker)个字节处
fwrite(&
fclose(fp);
修改成功!
\n未找到该职工!