C语言专业课程设计职工信息标准管理系统结构体数组实现程序源代码_第1页
C语言专业课程设计职工信息标准管理系统结构体数组实现程序源代码_第2页
C语言专业课程设计职工信息标准管理系统结构体数组实现程序源代码_第3页
C语言专业课程设计职工信息标准管理系统结构体数组实现程序源代码_第4页
C语言专业课程设计职工信息标准管理系统结构体数组实现程序源代码_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

〃c语言课程设计职员信息管理系统一结构体数组实现

tfincludc<stdio.h>

ftinclude<stcllib.h>

#include<string.h>

structemployee

(

charnum[10];

charname[15];

charsex[5];

charbin[20];

charzc[20];

intgz;

};

intread_file(structemployeeem[]);

voidmenu();

voidwrite_file(structemployeeem[]);

voidadd();

voidselect();//查看职员全部信息

voidzc_query();〃按职称查询

voidnum_del();//按工号删除

voidtongji();//统计

voidsort();〃排序

voidnum_modify();〃按工号修改职员信息

voidsave0;〃保留信息

voiddispO;〃显示职员信息

voidfh();〃返回主菜单

structcmployoocm[300];〃这个数组用来保留全部职员信息和文件里面一

intNumbcr-O;〃统计总职员人数也就是数组,文件里面职员人数

voidmenu()

ppintf('\t*****5101c*********************^01c*********************^01c**

\\.

不不不不不不不•不不不不*不不不]

*7T*)9

printfC\t*

*\n〃);

printf(z,\t*职员信息管理系统一结构体数组实现

*\n〃);

printf(〃\l*

*\n〃);

printf(〃\t*[1]增加职员信息[2]查

看职员信息*\n");

printf(〃\t*[3]查找职员信息[4]删

除职员信息*\n");

printf(〃\t*[5]统计[6]职

职员资排列*\n");

printf(〃\t*[7]修改职员信息[8]保

留职员信息*\n");

printfC\t*[9]显示职员信息[0]退

出系统*\n");

printf(z,\t*

*\n〃);

1V-*|\

\I#1^#1%*1^

}

voidmain()

intchoose=0;

FILE*fp=NULL;

charyesorno;

if((fp=fopen(z/employeel.txt〃,〃rb+"))==NULL)

{

printf(〃\n=====>提醒:文件不存在,是否要创建一个?(y/n)\n〃);

scanf&yesorno);

if(yesorno==,y'||yesorno==,Y')

(

〃这里仅为了建立文件

fp=fopen(^employeel.txt",〃wb+〃);

fclose(fp);〃关闭fp所指文件,释放文件缓冲区

)

else

exit(0);

)

else

(

Number=read_file(em);//要是文件已经有数据将数据初始化到数组

system(〃cls〃);

whi1e(1)

menu();

printf("\t\t===>请选择:〃);

scanf&choose);

system(〃cls〃);

switch(choose)

{

case0:

exit(0);〃退出

break;

case1:

add();

fh();〃增加职员信息

break;

case2:

select();

fh();〃查看职员信息

break;

case3:

zc_query();

fh();//查找

break;

case4:

numdel();

fh();〃删除

break;

case5:

tongJi();

fh();〃统计

break;

case6:

sort();

fh();〃排序

break;

case7:

nummodify();

fh();〃修改后返回

break;

case8:

save();

fh();〃保留

break;

case9:

disp();

fh();

break;〃显示

default:

break;

}

fflush(stdin):

getchar();

system("cls");

i

)

voidsave()

printf("\t====程序在运行时已自动保留....\iT);

}

voidfh()

(

printf(〃\t==>按Enter键返回主菜单\n〃);

)

voidnum_modify()//修改职员信息

(

FILE*fp=NULL;

chargh[60];

inti=0;

intchangelndex=O;//changeindex改变标识

intindex=0;

printf(〃请输入要修改职职员号:〃);

scanfgh);

for(i=0;i〈Number;i++)

(

if(strcmp(gh,num)==0)〃比较输入工号和数组中已经有工号

{

changclndex=i;〃保留要修改人下标

break;

}

)

printff\t工号\t姓名\t性别\t部门\t职称\t工资\n〃);

printf(,,\t%s\t%s\t%s\t%s\t%s\t%d\n\n,z,em[changelndex].num,em[chan

gelndex].name,em[changeindex].sex,em[changeindex].bm,em[changeindex].

zc,em[changeindex],gz);

printf(〃请重新输入该职员信息〃);

printf("工号:〃);

scanf(〃%s〃,em[changeindex],num);

printf(〃姓名:〃);

scanf(〃%s〃,em[changeindex],name);

priuUX”性别;

scanf(〃%s",em[changeindex],sex);

printf(〃部门:〃);

scanf(〃%d〃,em[changeindex],bm);

printf(〃职称:〃);

scanf(〃%s“,em[changeIndex],zc);

printf(〃工资:”);

,/,,

scanf(%d)&em[changeindex],gz);

〃信息修改后重新更新文件里面数据以保持数据一致性

fp=fopen(^employee!.txt〃,〃wb+〃);

for(i=0;i〈Number;i++)

(

fwritc(&cm[i],sizeof(structemployee),1,fp);〃把ptr所指向

n*size个字节输入到fp所指向文件中

}

fclose(fp);

printf("\t======>修改成功\n〃);

}

voiddisp()〃输出全部职员信息

inti=0;

for(i=0;i<Number;i++)

{

priull?(〃\t%s\l%s\l%s\L%s\l%s\l%d\u\ii〃,cin[i].num,cm[i].iiamc,cni[i].

sex,em[i].bm,em[i].zc,em[i].gz);

}

)

voidsort()〃排序

(

structemployeet;

intwantNUmber=O;

inti=0;

intj=0;

intk=0;

for(i=0;i<Numbcr-l;i++)

{k=i;

for(j=i+l;j<Number;j++)

{

if(em[j].gz>em[k].gz)

k=j;

)

if(k!=i)

t=em[i];

em[i]=em[k];

em[k]=t;

printf(〃你想输出前几名职员信息:〃);

scanf&wantNUmber);

if(wantNlmber>Number)

{

wantNUmber=Number;

)

printfC\t工号\t姓名\t性别\t部门\t职称\t工资\n〃);

for(i=0;i<wantNUmber;i++)

(

,,,,

printf(\t%s\t%s\t%s\t%s\t%s\t%d\n\n,em[i].num,em[i].name,em[i].sex,

em[i].bm,em[i].zc,en[i].gz);

}

)

voidtongji()〃统计

inti,m,k,max,min;

doublesum=0.0;

for(i=0;i<Number;i++)

5Ulll=i>UlIl+cill[l].gz,;

)

printf("全体职员总工资为:%f\nzz,sum);

printf(〃平均工资为:sum/Number);

i=0;m=0;max=0;

max=em[m].gz;

for(i=l;i<Number;i++)

(

if(em[i].gz>max)

m=i;

max=em[m].gz:

)

printf(〃最高工资为:%d\n〃,max);

printf(,,\t%s\t%s\t%s\t%s\t%s\t%d\n\n,/,em[m].num,em[m].name,em[m].

sex,em[m].bm,em[m].zc,em[m].gz);

i=0;k=0;min=0;

min=em[0].gz;

for(i=l;i<Number;i++)

(

if(em[i].gz<min)

k=i:

min=em[k].gz:

printf(〃最低工资:%d\nz,,min);

printf(,,\t%s\t%s\t%s\t%s\t%s\t%d\n\n,,>em[k].num,em[k].name,cm[k].

sex,em[k].bm,em[k].zc,em[k].gz);

)

voidnumdel。//按工号删除

(

FILE*fp=NULL;

chargh[60];

inti=0;

intj=0;

printf(〃请输入要删除职职员号:〃);

scanfgh);

for(i=0;i<Number;i++)

(

if(strcmp(gh,em[i].num)==0)〃假如查找到就删除

(

for(j=i;j<Number-l;j++)

(

)

Number——;

}

〃将剩下数据写入文件重新一写方法打开文件把以前数据擦除了

fp=fopen(,zemployeel.dat〃,“wb〃);

for(i=0;i〈Number;i++)

(

fwrite(&em[i],sizeof(structemployee),1,fp);

}

fclose(fp);

printf(〃删除成功;\n〃);

)

voidzc_query()〃按职称查找

(

charzc[20];

inti=0;

printf(〃请输入要查找职员职称:〃);

scanf(〃%s〃,zc);

system("cls〃);

printfC\t工号\t姓名\t性别\t部门\t职称\t工资\n〃);

for(i=0;i〈Number;i++)

(

if(strcmp(zc,zc)==0)

printfpm[i].num,pm[i].name,pm[i].

sex,bm,em[i].zc,em[i].gz);

)

}

}

voidselect()〃查看职员

(

inti=0;

printf(〃以下是全部职员信息\n〃);

printfC\t工号\t姓名\t性别\t部门\t职称\t工资\n〃);

for(i=0;i<Number;i++)

(

printf(,,\t%s\t%s\t%s\t%s\t%s\t%d\n\n,/,em[i].num,em[i].name,

sex,em[i].bm,em[i].zc,gz);

)

)

voidadd()〃增加职员

(

intnumberTemp=O;

inti=0;

structemployeetemp;〃临时保留信息

printf(〃请输入要增加职员信息个数:〃);

scanf(〃%d〃,&numberTenip);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论