职工信息管理系统c语言源代码教程文件Word格式.docx

上传人:b****5 文档编号:17487167 上传时间:2022-12-06 格式:DOCX 页数:18 大小:19.52KB
下载 相关 举报
职工信息管理系统c语言源代码教程文件Word格式.docx_第1页
第1页 / 共18页
职工信息管理系统c语言源代码教程文件Word格式.docx_第2页
第2页 / 共18页
职工信息管理系统c语言源代码教程文件Word格式.docx_第3页
第3页 / 共18页
职工信息管理系统c语言源代码教程文件Word格式.docx_第4页
第4页 / 共18页
职工信息管理系统c语言源代码教程文件Word格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

职工信息管理系统c语言源代码教程文件Word格式.docx

《职工信息管理系统c语言源代码教程文件Word格式.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统c语言源代码教程文件Word格式.docx(18页珍藏版)》请在冰豆网上搜索。

职工信息管理系统c语言源代码教程文件Word格式.docx

//声明修改函数

voidorder();

//声明排序函数

voidadd();

//声明添加函数

voidorder_wages();

voidorder_name();

voidmenu()/*菜单函数*/

printf("

\n"

);

welcometo\n"

职工信息管理系统"

******************************************************************************\n"

1.录入职工信息\n"

2.浏览职工信息\n"

3.查询职工信息\n"

4.删除职工信息\n"

5.修改职工信息\n"

6.职工信息排序\n"

7.添加职工信息\n"

8.退出\n"

*******************************************************************************\n"

}

/********************************************************************************************/

voidmain()

{

intn,f;

while

(1)

do

{

menu();

/*调用菜单函数*/

请输入你需要操作的序号(1—8):

scanf("

%d"

&

n);

if(n>

=1&

&

n<

=8)

f=1;

break;

}

else

f=0;

您输入有误,请重新选择!

"

}while(f==0);

switch(n)

case1:

printf("

录入职工信息\n"

type_in();

break;

case2:

浏览职工信息\n"

system("

cls"

scan();

case3:

查询职工信息\n"

search();

case4:

删除职工信息\n"

del();

case5:

修改职工信息\n"

change();

case6:

职工信息排序\n"

order();

case7:

添加职工信息\n"

sls"

add();

case8:

gotoloop;

/*用goto语句跳至跳至指定的行*/

default:

loop:

//行标

system("

\n\n\n\n\n\n------谢谢使用!

---------\n\n\n\n\n\n"

/***********************************************************************************/

voidtype_in()/*录入函数*/

inti,m;

请输入需要创建信息的职工人数(1--500):

m);

for(i=0;

i<

m;

i++)

请输入职工号:

"

work[i].num);

请输入姓名:

%s"

work[i].name);

getchar();

请输入职称:

work[i].zhicheng);

请输入基本工资:

work[i].wages);

请输入奖金:

work[i].reward);

请输入生日(格式如19900101):

work[i].birth);

\n一个职工的信息档案创建完毕!

请输入下一个职工的信息\n"

work[i].salary=work[i].wages+work[i].reward;

baocun(m);

/***************************************************************************/

voidbaocun(intm)/*保存文件函数*/

inti;

FILE*fp;

if((fp=fopen("

E:

\\worker_list.txt"

"

wb"

))==NULL)/*创建文件并判断是否能打开*/

printf("

此文件不能打开\n"

exit(0);

i++)/*将内存中职工的信息输出到磁盘文件中去*/

if(fwrite(&

work[i],sizeof(structworker),1,fp)!

=1)

filewriteerror\n"

fclose(fp);

intload()/*导入函数*/

FILE*fp;

inti=0;

if((fp=fopen("

rb"

))==NULL)

cannotopenfile\n"

else

do

fread(&

work[i],sizeof(structworker),1,fp);

i++;

while(feof(fp)==0);

fclose(fp);

return(i-1);

/*******************************************************************************/

voidscan()/*浏览函数*/

inti;

intm=load();

\n职工号\t姓名\t职称\t基本工资\t奖金\t实际工资\t生日\n"

for(i=0;

i++)

\n%d\t%s\t%s\t%d\t%d\t%d\t%ld\n"

work[i].num,work[i].name,

work[i].zhicheng,work[i].wages,work[i].reward,work[i].salary,work[i].birth);

按任意键继续\n"

getchar();

/********************************************************************************/

voiddel()/*删除函数*/

intm=load();

inti,j,n,t,f;

charname1[10];

\n原来的职工信息:

scan();

/*调用浏览函数*/

请输入要删除的职工的姓名:

scanf("

name1);

for(f=1,i=0;

f&

if(strcmp(work[i].name,name1)==0)

\n已找到此人,原始记录为:

\n确实要删除此人信息请按1,不删除请按0\n"

if(n==1)/*如果删除,则其他的信息都向前移一行*/

for(j=i;

j<

m-1;

j++)

work[j]=work[j+1];

if(!

f)

m=m-1;

else

\n对不起,查无此人!

\n浏览删除后的所有职工信息:

/*调用保存函数*/

/*调用浏览函数*/

\n继续删除请按1,不再删除请按0\n"

t);

switch(t)

case0:

}system("

/**********************************************************************************/

voidsearch()/*查询函数*/

intt,f;

\n按姓名查询请按1;

按职称查询请按2;

进入主函数按3\n"

if(t>

t<

=3)

while(f==1)

switch(t)

{

按姓名查询\n"

search_name();

按职称查询\n"

search_zhicheng();

main();

default:

voidsearch_name()/*按姓名查找函数*/

charname1[10];

inti,t;

请输入要查找的姓名:

for(i=0;

if(strcmp(name1,work[i].name)==0)

\n已找到此人,其记录为:

if(i==m)

\n对不起,查无此人\n"

返回查询函数请按1,继续查询职工号请按2\n"

/*************************************************************************************/

voidsearch_zhicheng()/*按职称查找函数*/

charzhicheng1[10];

请输入要查找的职称:

zhicheng1);

if(strcmp(zhicheng1,work[i].zhicheng)==0)

/***************************************************************************************/

voidchange()/*修改函数*/

intbirth;

intb,c,i,n,t,f;

/*导入文件内的信息*/

请输入要修改的职工的姓名:

name);

if(strcmp(work[i].name,name)==0)

\n确实要修改此人信息请按1;

不修改请按0\n"

if(n==1)

\n需要进行修改的选项\n1.职工号2.姓名3.职称4.基本工资5.奖金6.生日7.实际工资\n"

请输入你想修改的那一项序号:

c);

if(c>

7||c<

1)

\n选择错误,请重新选择!

if(f==1)

switch(c)/*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的

信息赋值给第i-1个人*/

职工号改为:

num);

work[i-1].num=num;

姓名改为:

strcpy(work[i-1].name,name);

case3:

职称改为"

zhicheng);

strcpy(work[i-1].zhicheng,zhicheng);

基本工资改为:

wages);

work[i-1].wages=wages;

奖金改为:

reward);

work[i-1].reward=reward;

生日改为:

%ld"

birth);

work[i-1].birth=birth;

实际工资改为:

salary);

work[i-1].salary=salary;

}

\n是否确定所修改的信息?

\n是请按1;

\n不,重新修改请按2:

\n"

b);

}

while(b==2);

\n浏览修改后的所有职工信息:

\n继续修改请按1,不再修改请按0\n"

voidorder()/*排序函数*/

intk,f;

\n按姓名排序请按1;

按基本工资排序请按2;

k);

if(k>

k<

switch(k)

\n按姓名排序为(字母由小到大排列):

order_name();

\n按基本工资排序为(由高到低排列):

order_wages();

voidorder_name()/*按姓名排序函数*/

inti,j,k;

for(j=0;

m-1-i;

j++)/*起泡法排序*/

if(strcmp(work[j].name,work[j+1].name)>

0)

{work1=work[j];

work[j]=work[j+1];

work[j+1]=work1;

for(j=0;

j++)

work[j].num,work[j].name,

work[j].zhicheng,work[j].wages,work[j].reward,work[j].salary,work[j].birth

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

当前位置:首页 > 高中教育 > 语文

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

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