c语言课程设计:统计工资

2.1 设计题目
本课程设计要求设计一个公司职员的数据结构,并使用结构指针数组存储职员信息,统计公司员工工资总额和平均工资。
2.2 设计要求
设计要求实现如下功能:
(1)使用结构指针数组设计一个公司职员的数据结构,使用下述的结构定义:
typedef struct employee{
int age;
char *name;
double salary;
}*PEMP;
(2)在主函数里构造一个指针数组company,用来存放职工信息。
(3)设计一个update函数,用来给company赋值。
函数update(company, id, age, name, salary)的四个参数为:
company: 结构指针数组
id: company的下标
age: 年龄,整数类型
salary: 薪水,实数
(4)设计一个readin函数,直接采用调用update函数的方式进行赋值。例如:update(company, 2, 30, “LI MING”, 3000.0);
(5)编写total函数对工资求和。
这个函数应该能对全体职工和某一年龄段的职工的工资求和。
(6)编写mean函数求平均工资。
这个函数应该能对全体职工和大于某一年龄段的职工的工资求和并计算相应的平均值。

2.3 算法分析
为了简单起见,假设在主函数main中定义结构数组指针如下:
PEMP company[num];
下面说明几个函数的设计问题:
(1)readin函数
数组company属于main函数,它是不可见的,所以必须作为readin函数的参数。因为参数传递是传地址的方式,所以不需要返回值。以数据为例,这个函数的定义和使用方法如下:
void reading(company)
PEMP company[];
{
update(company, 2, 23, “张文”,3000.0);
update(company, 1, 33, “王微”,2400.0);
update(company, 2, 23, “李小”,3055.0);
}
(2)total函数
它也必须以数组company作为参数,而且要返回工资总额。可将它的原型设计为:
double total (PEMP *);
total函数应该允许输入年龄范围,如果年龄不合理,应该允许重新输入。对输入数据进行判别,确保无误再进行计算。
for( ; ; )
{
printf(“输入年龄范围”);
scanf(“%d%d”,&age1, &age2)
if(age1>age2)
{
i=age1;
age1=age2;
age2=i;
}
if((age1>=0)&&(age2<=100)&&(age2>=0)&&(age2<=100)&&(age2>age1))
break;
}
(3)mean函数
mean函数也必须以数组company作为参数,而且要返回平均工资。将它的函数原型设计为:
double mean (PEMP *);
mean函数应该允许输入年龄范围。对输入字符进行判别,确保无误再进行计算,注意允许大小写。
printf(“求某一年龄段以上的职工的平均工资\n”);
printf(“默认是全体职工的平均工资,要改变计算方式请输入Y/y\n”);
getchar();
ch=getchar();
if(ch==’Y’||ch=’y’)
{
printf(“age:”);
scanf(“%d”,&age);
}
(4)申请内存
在update函数中,需要申请内存空间。
PEMP emp
If((emp=(PEMP) malloc (sizeof(struct employee)))==NULL)return;
注意emp是指针,所以要使用sizeof(struct employee)。

1个回答

条件都给你了,自己写呗!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!