C语言Word文档格式.docx
《C语言Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
voidmenu()
/*菜单函数*/
printf("
\n"
);
网计091第7小组\n"
******************职工信息管理****************\n"
1.录入职工信息"
2.浏览职工信息\n"
3.查询职工信息"
4.删除职工信息\n"
5.修改职工信息\n"
6.退出\n"
********************谢谢使用******************\n"
}
voidmain()
{
intn,flag;
chara;
while
(1)
{
do
menu();
/*调用菜单函数*/
请选择你需要操作的步骤(1--6):
scanf("
%d"
&
n);
if(n>
=1&
&
n<
=6)
{
flag=1;
break;
}
else
flag=0;
printf("
您输入有误,请重新选择!
"
}while(flag==0);
switch(n)
case1:
输入职工信息\n"
input();
break;
case2:
浏览职工信息\n"
system("
cls"
display();
case3:
按职工号查询职工信息\n"
search();
case4:
删除职工信息\n"
del();
case5:
修改职工信息\n"
modify();
case6:
gotola;
default:
la:
\n\n\n\n\n
谢谢使用!
voidinput()
/*录入函数*/
inti,m;
请输入需要创建信息的职工人数(1--100):
scanf("
m);
for(i=0;
i<
m;
i++)
请输入职工号:
"
em[i].num);
//这里的代码错,要用数组下标
请输入姓名:
%s"
em[i].name);
getchar();
请输入职称:
%c"
em[i].zhicheng);
请输入基本工资:
em[i].jiben);
请输入奖金:
em[i].jiangjin);
请输入保险:
em[i].baoxian);
请输入杂费:
em[i].zafei);
em[i].shiji=em[i].jiben+em[i].jiangjin-em[i].baoxian-em[i].zafei;
\n创建完毕!
save(m);
voidsave(intm)
/*保存文件函数*/
inti;
FILE*fp;
if((fp=fopen("
employee_list"
"
wb"
))==NULL)
/*创建文件并判断是否能打开*/
printf("
cannotopenfile\n"
exit(0);
i++)/*将内存中职工的信息输出到磁盘文件中去*/
if(fwrite(&
em,sizeof(structemployee),1,fp)!
=1)
filewriteerror\n"
fclose(fp);
intload()
/*导入函数*/
inti=0;
if((fp=fopen("
rb"
))==NULL)
else
do
fread(&
em,sizeof(structemployee),1,fp);
i++;
while(feof(fp)==0);
return(i-1);
voiddisplay()
/*浏览函数*/
intm=load();
\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资
for(i=0;
i++)/*m为输入部分的职工人数*/
\n
%d\t
%s\t
%c\t
%d\n"
em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji);
//这里的代码错,要用数组下标
按任意键继续\n"
voiddel()
/*删除函数*/
intm=load();
inti,j,n,t,flag;
charname1[10];
\n原来的职工信息:
display();
/*调用浏览函数*/
请输入要删除的职工的姓名:
name1);
for(flag=1,i=0;
flag&
if(strcmp(em[i].name,name1)==0)
\n已找到此人,原始记录为:
\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n"
\n确实要删除此人信息请按1,不删除请按0\n"
if(n==1)
/*如果删除,则其他的信息都往上移一行*/
for(j=i;
j<
m-1;
j++)
em[j]=em[j+1];
flag=0;
if(!
flag)
m=m-1;
else
\n对不起,查无此人!
\n浏览删除后的所有职工信息:
save(m);
/*调用保存函数*/
/*调用浏览函数*/
\n继续删除请按1,不再删除请按0\n"
t);
switch(t)
case0:
}system("
voidsearch()/*查询函数*/
intt,flag;
\n按姓名查询请按1;
按职称查询请按2;
进入主函数按3\n"
if(t>
t<
=3)
while(flag==1)
switch(t)
{
case1:
按姓名查询\n"
search_name();
case2:
按职称查询\n"
search_zhicheng();
case3:
main();
default:
system("
voidsearch_name()
inti,t;
请输入要查找的姓名:
if(strcmp(name1,em[i].name)==0)
\n已找到此人,其记录为:
if(i==m)
\n对不起,查无此人\n"
返回查询函数请按1,继续查询职工号请按2\n"
voidsearch_zhicheng()
inti,t=0;
请输入要查找的职称:
zhicheng);
//这里要用地址
if(em[i].zhicheng==zhicheng)
\n已找到,其记录为:
if(i==m)
返回查询函数请按1,继续查询学历请按2\n"
default:
voidmodify()/*修改函数*/
intb,c,i,n,t,flag;
/*导入文件内的信息*/
请输入要修改的职工的姓名:
name);
if(strcmp(em[i].name,name)==0)
\n职工号\t姓名\t职称\t基本\t奖金\t保险\t杂费\t实际工资
\n确实要修改此人信息请按1;
不修改请按0\n"
if(n==1)
\n需要进行修改的选项\n1.职工号2.姓名3.职称4.基本工资5.奖金6.保险7.杂费8.实际工资\n"
请输入你想修改的那一项序号:
c);
if(c>
8||c<
1)
\n选择错误,请重新选择!
if(flag==1)
do
switch(c)
/*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的
信息赋值给第i-1个人*/
职工号改为:
num);
em[i-1].num=num;
姓名改为:
strcpy(em[i-1].name,name);
职称改为:
em[i-1].zhicheng=zhicheng;
case4:
基本工资改为:
jiben);
em[i-1].jiben=jiben;
case5:
奖金改为:
jiangjin);
//这里要用地址
em[i-1].jiangjin=jiangjin;
case6:
保险改为:
baoxian);
case7:
杂费改为:
zafei);
em[i-1].zafei=zafei;
case8:
实际工资改为:
shiji);
em[i-1].shiji=shiji;
}
\n是否确定所修改的信息?
\n是请按1;
不,重新修改请按2:
b);
}
while(b==2);
\n浏览修改后的所有职工信息:
\n继续修改请按1,不再修改请按0\n"