题目
1. 统计工资
(1) 设计目的:本设计要求设计一个公司职员的数据结构,并使用结构指针数组存储职员信息,统计公司员工工资总和和平均工资,目的是深入了解函数参数类型和结构之间的关系。
(2) 功能设计要求:
1) 使用结构体数组设计一个公司职员的数据结构,使用下述的结构定义:
struct employee{
int age;
char name[20];
double salary;
}
2) 在主函数里构造一个结构体数组company,用来存放职工信息。
3) 设计一个readin函数,用来输入company的值。
4) 编写total函数对工资求和。
这个函数能对全体职工和某一年龄段职工的工资求和。
5) 编写mean函数求平均工资。
这个函数应该能对全体职工和大于某一年龄段的职工的工资求和并计算相应的平均值。
6) total函数应该允许输入年龄范围,如果范围不合理,应该允许重新输入。年龄应该在0~100之间。
7) mean函数能够使用缺省参数计算全体职工的工资总额和平均工资。如果输入年龄,则计算从这个年龄段算起的职工总工资和平均工资。
程序~~环境是在TC
#include <Stdio.h>
#include<conio.h>
static struct employee
{
int age;
char name[20];
double salary;
}company[100];
void main()
{int i,j,number;
double num[2];
void readin(int);
double total(int);
double mean(int);
readin(number);
num[0]=total(number);
printf("\n");
printf("Zong gong zi:%d\n",num[0]);
num[1]=mean(number);
printf("The average salary:%d",num[1]);
printf("\n");
}
void readin(int n)
{int age;
double salary;
int i;
for(i=0;i<2;i++)
{
printf("Name:");
scanf("%s",&company[i].name);
printf("Age:");
scanf("%d",&company[i].age);
printf("Salary:");
scanf("%ld",&company[i].salary);
}
}
double total(int n)
{int age1,age2,i;
double sum=0;
do
{
printf("Input the begin age:");
scanf("%d",&age1);
}while(age1<0||age1>100);
do
{
printf("Input the end age:");
scanf("%d",&age2);
}while(age2<0||age2>100);
for(i=0;i<2;i++)
{
if(company[i].age>age1&&company[i].age<age2)
{sum+=company[i].salary;
}
}
return sum;
}
double mean(int n)
{double num;
int age1,age2;
int i;
if(kbhit()==NULL)
{for(i=0;i<2;i++)
{
num+=company[i].salary;
}
return num;
}
printf("input the begin age ");
scanf("%d",&age1);
printf("input the end age ");
scanf("%d",&age2);
for(i=0;i<2;i++)
{
if(company[i].age>age1&&company[i].age<age2)
{num+=company[i].salary;
}
}
return num;
}
谢了各位大虾!!
----------------解决方案--------------------------------------------------------