1、 实验6 结构体的应用实验目的1 掌握结构体类型及结构体变量的定义和使用。2 掌握结构体类型数据在函数中的应用。3 掌握结构体数组的使用。实验内容1 下列程序完成对一名职工的姓名、出生年月、基本工资的初始化。从键盘输入奖金金额,输出对应职工的姓名、年龄、基本工资和应领金额等信息。阅读、写出并分析运行结果。#includeusing namespace std; struct Date int year,month; ;struct Person char name20;Date birth;float money,salary; / money 为基本工资;salary为应领金额 ;int m
2、ain() Person p=张三,1982,3,1250,0; float num; cout请输入 p.namenum; p.salary=p.money+num; coutp.name年龄:(2011-p.birth.year) t基本工资:p.moneyt; cout应领金额:p. salaryendl;思考: 1)职工的数据由键盘输入,该如何修改程序?2)如何使用结构体数组,完成五个职工数据的键盘输入工作?3)如何求出五个职工的平均工资和平均奖金。2编程题(1)定义职工工资结构体类型salary,描述职工工资的信息有:工号(num)、姓名(name)、基本工资(base_salary
3、)、岗位工资(post_salary)、医疗住房基金(fund)、税金(tax)与实发工资(fact_salary)。用工资结构体类型定义工资结构体变量。用初始化方式输入某职工工资各数据成员内容,然后输出职工工资内容。测试数据自定。(2)用实验(1)中的salary类型定义某车间职工工资结构体数组。编写四个函数分别用于:1)输入全车间职工的工号、姓名、基本工资、岗位工资、医疗住房基金与税金。2)计算每一个职工实发工资,计算公式:实发工资=基本工资+岗位工资-医疗住房基金-税金。3)输出全车间职工的工号、姓名、基本工资、岗位工资、医疗住房基金、税金与实发工资。4)在主函数中定义职工工资数组,调用
4、四个函数完成输入、计算实发工资、排序、输出。提示:为方便测试,可将职工人数定为N人,N为常量3。问题讨论比较结构体与数组,分析在什么情况下使用数组?什么情况下使用结构体?什么情况下使用结构体数组?#include #define N 3#define M 3using namespace std;int select(int aNM,int *p) /用指针p作为函数参数,传回最大值所在的行下标 int i,j,row=0,colum=0; for(i=0;iN;i+)for(j=0;jarowcolum) row=i; colum=j; *p= ; return ; int main() i
5、nt aNM=9,11,23,6,1,15,9,17,20; int max,n; max=select(a,&n); coutmax=maxline=nend1; return 0; 思考:如果在select函数中想通过引用作为函数参数,传回最大值所在的行下标,应该如何修改程序?3编程题设计一个程序,完成删除一个整数数组中所有的负数。要求:1)整数数组中的元素个数n由运行程序时指定(提示:使用动态存储分配)。2)用函数input(int a,int n)完成a数组的n个元素的输入;用函数find_elem(int a,int n)返回n个元素的数组a中的第一个负数;用函数delete_elem(int a,int &n,int x)完成对有n个元素的数组a中下标为x的元素进行删除工作。 3)在主函数中输入数据,并输出处理结果,测试所写的函数。