qq_39342354 2017-06-28 11:59 采纳率: 0%
浏览 1785

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条回答 默认 最新

  • think_self 2017-06-28 13:56
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换