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

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

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

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

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

职工信息管理系统c语言源代码教程文件

#include

#include

#include

structworker

{

intnum;

charname[20];

charzhicheng[10];

intwages;

intreward;

longbirth;

intsalary;

}work[500],work1;/*定义结构体*/

voidmenu();//声明菜单函数

voidtype_in();//声明录入函数

voidbaocun(int);//声明保存函数

voidscan();//声明浏览函数

voiddel();//声明删除函数

voidsearch();//声明查询函数

voidsearch_zhicheng();//声明按职称查询函数

voidsearch_name();//声明按姓名查找函数

voidchange();//声明修改函数

voidorder();//声明排序函数

voidadd();//声明添加函数

voidorder_wages();

voidorder_name();

voidmenu()/*菜单函数*/

{

printf("\n");

printf("welcometo\n");

printf("职工信息管理系统");

printf("******************************************************************************\n");

printf("1.录入职工信息\n");

printf("2.浏览职工信息\n");

printf("3.查询职工信息\n");

printf("4.删除职工信息\n");

printf("5.修改职工信息\n");

printf("6.职工信息排序\n");

printf("7.添加职工信息\n");

printf("8.退出\n");

printf("*******************************************************************************\n");

printf("\n");

}

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

voidmain()

{

intn,f;

while

(1)

{

do

{

menu();/*调用菜单函数*/

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

\n");

scanf("%d",&n);

if(n>=1&&n<=8)

{

f=1;

break;

}

else

{

f=0;

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

");

}

}while(f==0);

switch(n)

{

case1:

printf("录入职工信息\n");printf("\n");type_in();break;

case2:

printf("浏览职工信息\n");printf("\n");system("cls");scan();break;

case3:

printf("查询职工信息\n");printf("\n");system("cls");search();break;

case4:

printf("删除职工信息\n");printf("\n");system("cls");del();break;

case5:

printf("修改职工信息\n");printf("\n");system("cls");change();break;

case6:

printf("职工信息排序\n");printf("\n");system("cls");order();break;

case7:

printf("添加职工信息\n");printf("\n");system("sls");add();break;

case8:

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

default:

break;

}

}

loop:

//行标

system("cls");

printf("\n\n\n\n\n\n------谢谢使用!

---------\n\n\n\n\n\n");

}

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

voidtype_in()/*录入函数*/

{

inti,m;

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

\n");

scanf("%d",&m);

for(i=0;i

{

printf("请输入职工号:

");

scanf("%d",&work[i].num);

printf("\n");

printf("请输入姓名:

");

scanf("%s",work[i].name);

getchar();

printf("请输入职称:

");

scanf("%s",&work[i].zhicheng);

printf("请输入基本工资:

");

scanf("%d",&work[i].wages);

printf("请输入奖金:

");

scanf("%d",&work[i].reward);

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

");

scanf("%d",&work[i].birth);

getchar();system("cls");

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

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

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

printf("\n");

}

baocun(m);

}

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

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

{

inti;

FILE*fp;

if((fp=fopen("E:

\\worker_list.txt","wb"))==NULL)/*创建文件并判断是否能打开*/

{

printf("此文件不能打开\n");

exit(0);

}

for(i=0;i

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

=1)

printf("filewriteerror\n");

fclose(fp);

}

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

intload()/*导入函数*/

{

FILE*fp;

inti=0;

if((fp=fopen("E:

\\worker_list.txt","rb"))==NULL)

{

printf("cannotopenfile\n");

exit(0);

}

else

{

do

{

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

i++;

}

while(feof(fp)==0);

}

fclose(fp);

return(i-1);

}

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

voidscan()/*浏览函数*/

{

inti;

intm=load();

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

for(i=0;i

printf("\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);

printf("按任意键继续\n");

getchar();

getchar();system("cls");

}

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

voiddel()/*删除函数*/

{

intm=load();

inti,j,n,t,f;

charname1[10];

printf("\n原来的职工信息:

\n");

scan();/*调用浏览函数*/

printf("\n");

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

\n");

scanf("%s",name1);

for(f=1,i=0;f&&i

{

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

{

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

\n");

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

printf("\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);

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

scanf("%d",&n);

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

{

for(j=i;j

{

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

}

f=0;

}

}

}

if(!

f)

m=m-1;

else

printf("\n对不起,查无此人!

\n");

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

\n");

baocun(m);/*调用保存函数*/

scan();/*调用浏览函数*/

printf("\n继续删除请按1,不再删除请按0\n");

scanf("%d",&t);

switch(t)

{

case1:

del();break;

case0:

break;

default:

break;

}system("cls");

}

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

voidsearch()/*查询函数*/

{

intt,f;

do

{

printf("\n按姓名查询请按1;按职称查询请按2;进入主函数按3\n");

scanf("%d",&t);

if(t>=1&&t<=3)

{

f=1;

break;

}

else

{

f=0;

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

");

}

}while(f==0);system("cls");

while(f==1)

{

switch(t)

{

case1:

printf("按姓名查询\n");search_name();break;

case2:

printf("按职称查询\n");search_zhicheng();break;

case3:

main();break;

default:

break;

}

system("cls");

}

}

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

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

{

charname1[10];

inti,t;

intm=load();

printf("请输入要查找的姓名:

\n");

scanf("%s",name1);

for(i=0;i

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

{

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

\n");

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

printf("\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);

break;

}

if(i==m)

printf("\n对不起,查无此人\n");

printf("\n");

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

scanf("%d",&t);

switch(t)

{

case1:

search();break;

case2:

break;

default:

break;

}

}

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

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

{

charzhicheng1[10];

inti,t;

intm=load();

printf("请输入要查找的职称:

\n");

scanf("%s",zhicheng1);

for(i=0;i

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

{

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

\n");

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

printf("\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);

break;

}

if(i==m)

printf("\n对不起,查无此人\n");

printf("\n");

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

scanf("%d",&t);

switch(t)

{

case1:

search();break;

case2:

break;

default:

break;

}

}

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

voidchange()/*修改函数*/

{

intnum;

charname[20];

charzhicheng[10];

intwages;

intreward;

intbirth;

intsalary;

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

intm=load();/*导入文件内的信息*/

printf("\n原来的职工信息:

\n");

scan();/*调用浏览函数*/

printf("\n");

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

\n");

scanf("%s",name);

for(f=1,i=0;f&&i

{

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

{

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

\n");

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

printf("\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);

printf("\n确实要修改此人信息请按1;不修改请按0\n");

scanf("%d",&n);

if(n==1)

{

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

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

\n");

scanf("%d",&c);

if(c>7||c<1)

printf("\n选择错误,请重新选择!

\n");

}

f=0;

}

}

if(f==1)

printf("\n对不起,查无此人!

\n");

do

{

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

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

{

case1:

printf("职工号改为:

");

scanf("%d",&num);

work[i-1].num=num;

break;

case2:

printf("姓名改为:

");

scanf("%s",name);

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

break;

case3:

printf("职称改为");

scanf("%s",zhicheng);

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

break;

case4:

printf("基本工资改为:

");

scanf("%d",&wages);

work[i-1].wages=wages;

break;

case5:

printf("奖金改为:

");

scanf("%d",&reward);

work[i-1].reward=reward;

break;

case6:

printf("生日改为:

");

scanf("%ld",&birth);

work[i-1].birth=birth;

break;

case7:

printf("实际工资改为:

");

scanf("%d",&salary);

work[i-1].salary=salary;

break;

}

printf("\n");

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

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

\n");

scanf("%d",&b);

}

while(b==2);

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

\n");

printf("\n");

baocun(m);

scan();

printf("\n继续修改请按1,不再修改请按0\n");

scanf("%d",&t);

switch(t)

{

case1:

change();break;

case0:

break;

default:

break;

}system("cls");

}

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

voidorder()/*排序函数*/

{

intk,f;

do

{

printf("\n按姓名排序请按1;按基本工资排序请按2;进入主函数按3\n");

scanf("%d",&k);

if(k>=1&&k<=3)

{

f=1;

break;

}

else

{

f=0;

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

");

}

}while(f==0);system("cls");

while(f==1)

{

switch(k)

{

case1:

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

\n");order_name();break;

case2:

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

\n");order_wages();break;

case3:

system("cls");main();break;

default:

break;

}

system("cls");

}

}

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

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

{

inti,j,k;

intm=load();

for(i=0;i

for(j=0;j

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

{work1=work[j];work[j]=work[j+1];work[j+1]=work1;}

baocun(m);

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

for(j=0;j

printf("\n%d\t%s\t%s\t%d\t%d\t%d\t%ld\n",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