一个工人工资管理系统
2010-09-12 23:35
281 查看
/*
有10个职工,每个职工的数据包括职工编号、姓名、职称、工龄及基准工资,从键盘输入每个职工的数据,
具体要求:
(1) 通过键盘接收数据;
(2) 计算并输出每个职工应发的工资(工资计算原则是:基准工资*职称系数+基准工资*10%*工龄系数;
职称系数:初级为1、中级为1.2、高级为1.5;工龄系数=工龄/2);
(3) 计算并输出平均工资;
(4) 按工资从低到高进行排序;
(5) 从排序结果中,查找满足某一工资的职工信息,并输出;
(6) 所有操作都要给出相应的提示,方便他人操作。
*/
#include<stdio.h>
#include<string.h>
struct
gongren
{ int
n;
char
name[30];
char
zc[18];
int
o;
int
m;
float
sum;
}w[10];
int
i;
void
win();
void
Input();
void
Output();
void
average();
void
count();
void
getincome();
void
Input()
{
printf("请依次输入:职工编号、姓名、职称、工龄及基准工资/n");
for
(i=0;i<10;i++)
scanf("%d%s%s%d%d",&w[i].n,w[i].name,w[i].zc,&w[i].o,&w[i].m);
printf("10个数据已经全部输入完成!/n");
win();
}
void
Output()
{
count();
for(i=0;i<10;i++)
printf("ID:%d/nName:%s/nLeval:%s/nWork age:%d/nIncome:%f/n",w[i].n,w[i].name,w[i].zc,w[i].o,w[i].sum);
win();
}
void
count()
{
float
x=1.0;
for
(i=0;i<10;i++)
{
if
(!strcmp(w[i].zc,"c"))
x=1.0;
if
(!strcmp(w[i].zc,"z"))
x=1.2;
if
(!strcmp(w[i].zc,"g"))
x=1.5;
w[i].sum=w[i].m*x+w[i].m*0.10*((w[i].o+0.0)/2.0);
}
}
void
average()
{
float
aver=0.0;
count();
for
(i=0;i<10;i++)
aver+=w[i].sum+0.0;
aver/=2;
printf("平均工资为: %f/n",aver);
win();
}
void
P()
{
int
j;
struct
gongren tmp;
count();
for
(i=0;i<10;i++)
for
(j=i+1;j<10;j++)
if
(w[i].sum>w[j].sum)
{
tmp.sum=w[i].sum;
w[i].sum=w[j].sum;
w[j].sum=tmp.sum;
strcpy(tmp.zc,w[i].zc);
strcpy(w[i].zc,w[j].zc);
strcpy(w[j].zc,tmp.zc);
tmp.n=w[i].n;
w[i].n=w[j].n;
w[j].n=tmp.n;
tmp.m=w[i].m;
w[i].m=w[j].m;
w[j].m=tmp.m;
tmp.o=w[i].o;
w[i].o=w[j].o;
w[j].o=tmp.o;
strcpy(tmp.name,w[i].name);
strcpy(w[i].name,w[j].name);
strcpy(w[j].name,tmp.name);
}
Output();
win();
}
void
Pr()
{
int
key,flag=0;
printf("输入:职工编号来查找/n");
scanf("%d",&key);
count();
for(i=0;i<10;i++)
if(key==w[i].n)
{
flag=1;
break;
}
if(flag)
{
printf("ID:%d/nName:%s/nLeval:%s/nWork age:%d/n Income:%f/n",w[i].n,w[i].name,w[i].zc,w[i].o,w[i].sum);
printf("You found him!/n");
}
else
printf("Not found!/n");
win();
}
void
win()
{
int
hi;
printf("+-------------------------------------------------+/n");
printf("| |/n");
printf("| 欢迎来到工资管理系统 |/n");
printf("| |/n");
printf("+-------------------------------------------------+/n");
printf("| 1.输入数据 2.计算工资 |/n");
printf("| 3.平均工资 4.高低排序 |/n");
printf("| 5.查找并显示 0.关闭程序 |/n");
printf("+-------------------------------------------------+/n");
printf("请输入你的选择:");
scanf("%d",&hi);
switch(hi)
{
case
0: exit(0);break;
case
1: Input();
break;
case
2: getincome();
break;
case
3: average();
break;
case
4: P();
break;
case
5: Pr();break;
}
}
void
getincome()
{
count();
for
(i=0;i<10;i++)
printf("%s的工资为:%f/n",w[i].name,w[i].sum);
win();
}
void
main()
{
win();
}
有10个职工,每个职工的数据包括职工编号、姓名、职称、工龄及基准工资,从键盘输入每个职工的数据,
具体要求:
(1) 通过键盘接收数据;
(2) 计算并输出每个职工应发的工资(工资计算原则是:基准工资*职称系数+基准工资*10%*工龄系数;
职称系数:初级为1、中级为1.2、高级为1.5;工龄系数=工龄/2);
(3) 计算并输出平均工资;
(4) 按工资从低到高进行排序;
(5) 从排序结果中,查找满足某一工资的职工信息,并输出;
(6) 所有操作都要给出相应的提示,方便他人操作。
*/
#include<stdio.h>
#include<string.h>
struct
gongren
{ int
n;
char
name[30];
char
zc[18];
int
o;
int
m;
float
sum;
}w[10];
int
i;
void
win();
void
Input();
void
Output();
void
average();
void
count();
void
getincome();
void
Input()
{
printf("请依次输入:职工编号、姓名、职称、工龄及基准工资/n");
for
(i=0;i<10;i++)
scanf("%d%s%s%d%d",&w[i].n,w[i].name,w[i].zc,&w[i].o,&w[i].m);
printf("10个数据已经全部输入完成!/n");
win();
}
void
Output()
{
count();
for(i=0;i<10;i++)
printf("ID:%d/nName:%s/nLeval:%s/nWork age:%d/nIncome:%f/n",w[i].n,w[i].name,w[i].zc,w[i].o,w[i].sum);
win();
}
void
count()
{
float
x=1.0;
for
(i=0;i<10;i++)
{
if
(!strcmp(w[i].zc,"c"))
x=1.0;
if
(!strcmp(w[i].zc,"z"))
x=1.2;
if
(!strcmp(w[i].zc,"g"))
x=1.5;
w[i].sum=w[i].m*x+w[i].m*0.10*((w[i].o+0.0)/2.0);
}
}
void
average()
{
float
aver=0.0;
count();
for
(i=0;i<10;i++)
aver+=w[i].sum+0.0;
aver/=2;
printf("平均工资为: %f/n",aver);
win();
}
void
P()
{
int
j;
struct
gongren tmp;
count();
for
(i=0;i<10;i++)
for
(j=i+1;j<10;j++)
if
(w[i].sum>w[j].sum)
{
tmp.sum=w[i].sum;
w[i].sum=w[j].sum;
w[j].sum=tmp.sum;
strcpy(tmp.zc,w[i].zc);
strcpy(w[i].zc,w[j].zc);
strcpy(w[j].zc,tmp.zc);
tmp.n=w[i].n;
w[i].n=w[j].n;
w[j].n=tmp.n;
tmp.m=w[i].m;
w[i].m=w[j].m;
w[j].m=tmp.m;
tmp.o=w[i].o;
w[i].o=w[j].o;
w[j].o=tmp.o;
strcpy(tmp.name,w[i].name);
strcpy(w[i].name,w[j].name);
strcpy(w[j].name,tmp.name);
}
Output();
win();
}
void
Pr()
{
int
key,flag=0;
printf("输入:职工编号来查找/n");
scanf("%d",&key);
count();
for(i=0;i<10;i++)
if(key==w[i].n)
{
flag=1;
break;
}
if(flag)
{
printf("ID:%d/nName:%s/nLeval:%s/nWork age:%d/n Income:%f/n",w[i].n,w[i].name,w[i].zc,w[i].o,w[i].sum);
printf("You found him!/n");
}
else
printf("Not found!/n");
win();
}
void
win()
{
int
hi;
printf("+-------------------------------------------------+/n");
printf("| |/n");
printf("| 欢迎来到工资管理系统 |/n");
printf("| |/n");
printf("+-------------------------------------------------+/n");
printf("| 1.输入数据 2.计算工资 |/n");
printf("| 3.平均工资 4.高低排序 |/n");
printf("| 5.查找并显示 0.关闭程序 |/n");
printf("+-------------------------------------------------+/n");
printf("请输入你的选择:");
scanf("%d",&hi);
switch(hi)
{
case
0: exit(0);break;
case
1: Input();
break;
case
2: getincome();
break;
case
3: average();
break;
case
4: P();
break;
case
5: Pr();break;
}
}
void
getincome()
{
count();
for
(i=0;i<10;i++)
printf("%s的工资为:%f/n",w[i].name,w[i].sum);
win();
}
void
main()
{
win();
}
相关文章推荐
- 亚宇工资管理系统---早年制作的一个很小的商业软件[源码和软件截图]
- 用C++编写一个简单的员工工资管理系统~
- 实现一个工资管理系统
- 一个练手的学生管理系统
- 使用Java模拟一个简单的Dos学生成绩管理系统:
- 计划开发一个团队项目管理系统
- C++/C课程设计(2)工资管理系统功能说明
- 发布一个客户关系管理软件及财务管理系统软件!
- 一个学生成绩管理系统的代码
- 计量测试所工资管理系统(通用)
- 使用python实现一个简单的学生信息管理系统
- 这几天做一个生产管理系统时,涉及到一个产品部件不良品统计图,用到了Chartlet,第一次用Chartlet这个,还给力。。。(续)
- C#桌面办公应用-工资管理系统系列七
- LuLuCMS基于Yii2.0开发的一个内容管理系统(CMS)
- 用c++模拟实现一个学生成绩管理系统
- LuLuCMS基于Yii2.0开发的一个内容管理系统(CMS)
- 工资管理系统
- Swing企业员工工资管理系统v1.4(java毕业设计)
- Angularjs,WebAPI 搭建一个简易权限管理系统 —— 基本功能演示(二)
- ArcGIS9为栅格数据管理提供了一个完整的系统