学院教职工工资管理系统C语言程序设计Word文档下载推荐.docx

上传人:b****3 文档编号:17607343 上传时间:2022-12-07 格式:DOCX 页数:16 大小:17.54KB
下载 相关 举报
学院教职工工资管理系统C语言程序设计Word文档下载推荐.docx_第1页
第1页 / 共16页
学院教职工工资管理系统C语言程序设计Word文档下载推荐.docx_第2页
第2页 / 共16页
学院教职工工资管理系统C语言程序设计Word文档下载推荐.docx_第3页
第3页 / 共16页
学院教职工工资管理系统C语言程序设计Word文档下载推荐.docx_第4页
第4页 / 共16页
学院教职工工资管理系统C语言程序设计Word文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

学院教职工工资管理系统C语言程序设计Word文档下载推荐.docx

《学院教职工工资管理系统C语言程序设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学院教职工工资管理系统C语言程序设计Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

学院教职工工资管理系统C语言程序设计Word文档下载推荐.docx

voidall();

/*计算工资总额函数*/

voidave();

/*计算平均工资函数*/

voidsort1();

/*排序函数*/

voidsort2();

voidsame();

/*找工资级别相同职工名单函数*/

voidreviwe();

/*修改函数*/

voidfind();

/*查询函数*/

voidprint();

/*数据输出函数*/

voidmain()

charch;

printf("

※◆※◆※◆※◆※◆※◆※◆※◆※◆※◆※◆※◆※◆※◆※◆※◆※◆※\n"

);

╱********欢◇☆○进◇☆○院◇☆○工◇☆○资◇☆○理◇☆○统************╲\n"

╲********○☆◇迎○☆◇入○☆◇职○☆◇工○☆◇管○☆◇系○************╱\n"

\n☆请选择你所需要的服务,按回车确认☆\n"

\n\t\ts:

数据输入\t\n\t\ta:

总工资\t\n\t\tv:

平均工资\t\n\t\tg:

按工资排序\t\n\t\tx:

按姓名排序\t\n\t\tm:

工资级别相同职工名单\t\n\t\tr:

修改\t\n\t\tf:

查询\t\n\t\te:

退出\t\n"

scanf("

%c"

&

ch);

while(ch!

='

e'

{

switch(ch)

case'

s'

:

save();

break;

a'

all();

v'

ave();

g'

sort1();

x'

sort2();

m'

same();

r'

reviwe();

f'

find();

}

\n☆请再次选择你所需要的服务,按回车确认☆\n"

getchar();

}

/*函数功能:

输入职工信息*/

voidsave()

FILE*fp;

intj=0,i;

charch[2];

intn=0;

请选择输入方式:

\n"

1:

向管理系统重新输入数据,并删除原有数据\n2:

向系统增加数据\n"

%d"

i);

/*输入选项*/

if(i==1)

if((fp=fopen("

C:

\\file1.dat"

"

wb+"

))==NULL)/*判断文件能否打开*/

cannotopenthisfile\n"

exit(0);

你是否要输入职工信息?

(是:

y/否:

n)"

%s"

ch);

while(strcmp(ch,"

y"

)==0||strcmp(ch,"

Y"

)==0)/*判断是否要录入新信息*/

{

\n姓名\t"

teac[j].name);

\n性别(男:

b/女:

g)\t"

teac[j].sex);

\n生日:

年\t"

teac[j].year);

\n月\t"

teac[j].mounth);

while(teac[j].mounth<

1||teac[j].mounth>

12)

输入月份有误请重输"

\n年龄\t"

teac[j].age);

\n婚否(是y/否n)\t"

teac[j].marrige);

\n地址\t"

teac[j].addr);

\n职称\t"

teac[j].engineer);

\n工资\t"

%f"

teac[j].wage);

fwrite(&

teac[j],sizeof(structteacher),1,fp);

/*信息写入磁盘*/

j++;

n)\n"

fclose(fp);

/*关闭文件*/

if(i==2)

c:

rb"

}

for(n=0;

(fread(&

teac[n],sizeof(structteacher),1,fp)==1);

n++)continue;

/*将职工信息读入内存*/

你是否要增加职工信息?

teac[j+n].name);

teac[j+n].sex);

teac[j+n].year);

teac[j+n].mounth);

while(teac[j+n].mounth<

1||teac[j+n].mounth>

teac[j+n].age);

teac[j+n].marrige);

teac[j+n].addr);

teac[j+n].engineer);

teac[j+n].wage);

//fwrite(&

teac[j+n],sizeof(structteacher),1,fp);

n++;

wb"

for(j=0;

j<

n;

j++)

计算总工资*/

voidall()

FILE*fp;

n=0;

sum=0;

ab+"

))==NULL)

姓名\t性别\t生日:

年月\t年龄\t婚否\t地址\t职称\t工资\n"

n++)/*将职工信息读入内存*/

{printf("

%s\t%s\t%d%d\t%d\t%s\t%st\t%s\t%f\n"

teac[n].name,teac[n].sex,teac[n].year,teac[n].mounth,teac[n].age,teac[n].marrige,teac[n].addr,teac[n].engineer,teac[n].wage);

/*将职工信息输出到屏幕上*/

sum=sum+teac[n].wage;

continue;

总工资为%f\n"

sum);

/*函数功能:

计算平均工资*/

voidave()

floataver;

all();

/*调用计算总工资函数得到总工资*/

(float)(aver=sum/n);

/*计算平均工资*/

平均工资为%f\n"

aver);

按工资由低到高排序*/

voidsort1()

FILE*fp;

inti,j;

structteachertemp;

/*定义一个结构体变量一边在交换顺序是暂时存放数据*/

))==NULL)/*以只读方式打开一个二进制文件判断能否打开*/

//while(!

feof(fp))/*检查文件是否结束*/

n++)

/*排序*/

for(i=0;

i<

i++)

n-(i+1);

if(teac[j].wage>

teac[j+1].wage)

temp=teac[j];

teac[j]=teac[j+1];

teac[j+1]=temp;

print();

/*调用数据输出函数,输出结果*/

voidsort2()

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

0)

找工资级别相同的职工名单*/

voidsame()

staticintt=0;

/*定义一个静态变量*/

inti,j,k,m,a,l;

structteachertemp[N];

/*定义一个结构体数组存放工资级别相同的职工名单*/

))==NULL)/*以读写方式打开一个文本文件并判断能否打开*/

%s\t%s\t%d%d\t%d\t%s\t%s\t%s\t%f\n"

/*找相同*/

m=t;

a=0;

if(i>

for(l=0;

l<

t;

l++)

if(teac[i].wage==temp[l].wage)

a++;

if(a>

/*说明该数已在上一级比较中存入temp数组中了不需再比结束本次循环*/

else

for(j=i;

if(teac[i].wage==teac[j].wage)

temp[t++]=teac[j];

\n工资级别为%f的名单为:

\t"

temp[t-1].wage);

for(k=m;

k<

k++)

%s\t"

temp[k].name);

删除不需要的职工信息*/

voidreviwe()/*删除函数*/

inti,j,k=0;

inta;

if(n==0)

没有记录\n"

请输入姓名\n"

name);

if(strcmp(name,teac[i].name)==0)/*找与要修改的信息相同的姓名*/

该职工信息为:

%s\t%s\t%d\t%d%d\t%s\t%s\t%s\t%f\n"

teac[i].name,teac[i].sex,teac[i].year,teac[i].mounth,teac[i].age,teac[i].marrige,teac[i].addr,teac[i].engineer,teac[i].wage);

break;

是否删除?

(y/n)"

if(strcmp(ch,"

)==0)/*判断是否删除*/

已成功删除信息\n\n"

strcpy(teac[j].addr,teac[j+1].addr);

strcpy(teac[j].engineer,teac[j+1].engineer);

strcpy(teac[j].marrige,teac[j+1].marrige);

strcpy(teac[j].name,teac[j+1].name);

strcpy(teac[j].sex,teac[j+1].sex);

teac[j].age=teac[j+1].age;

teac[j].year=teac[j+1].year;

teac[j].mounth=teac[j+1].mounth;

n-1;

查询*/

voidfind()

inti;

是否查询?

)==0)

你要查询的职工信息如下:

if(i==n)

没有你需要查询的信息\n"

是否继续查询?

输出数据*/

voidprint()

\n姓名\t性别\t生日:

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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