c语言结构体实验报告6,C语言结构体实验报告

41528d3028836879cd698677c3999917.gifC语言结构体实验报告

《高级语言程序设计》实验报告 实验序号:8 实验项目名称:结构体 学 号 姓 名 专业、班级 实验地点 指导教师 实验时间 一、实验目的及要求 1、掌握结构体变量的定义和使用; 2、掌握结构体数组的定义和使用; 3、了解结构指针的定义和使用 二、实验设备(环境)及要求 使用turbo c 2.0+windows系列操作系统的环境。 三、实验内容与步骤 1.学生成绩管理:有5个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入5个学生数据,要求打印出每个学生三门课的平均成绩,以及每门课程平均分、最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)。 【实验要求】 (1) 定义学生结构体。 (2) 用一个函数实现5个学生数据的输入,用另一个函数负责求每个学生三门课程的平均成绩,再用一个函数求出平均分最高的学生并输出该学生的数据。要求平均分和平均分最高的学生数据都在主函数种输出。 【实验提示】 (1) 结构体定义 struct Student { int num; //学号 char name[20]; //班级注意字节长度 char classname[20]; //班级 float score[3]; //三门课程成绩 float aver_score; //平均分 } (2) 数据组织提示: 在主函数中定义一个结构体数组。 Student stu[20] //定义有20个变量的元素的结构体数组(根据需要确定数组的大小)。 (3) 结构体数组使用 ①循环输入学生信息: ②平均分计算函数 ,以数组名作参数 void averagescore(student stu[], int number) { int i; for(i = 0; i<= number; i++) { Stu[i] = (stu[i].score[0]+ stu[i].score[1]+stu[i].score[2])/3.0 } } ③求平均分最高的学生 int averagescore(student stu[], int number) { int k = 0; //查找最高平均分并记录在数组中的下标值 for( int i = 0; i<= number; i++) { ……… } return k; //返回最高平均分数组元素的下标 } 【测试数据】 自己设计一组测试数据。 运行结果截图: 【思考与扩展】 如果这样定义结构体 typedef struct Student { int num; //学号 char name[20]; //姓名 注意字节长度 char classname[20]; //班级 float score[3]; //三门课程成绩 float aver_score; //平均分 } STU,* pSTU; 说明如下三条语句的含义: student stu1; STU stu2; pSTU pstu; 2.采用结构体数组编写程序,定义一个含职工姓名、工作年限、工资总额的结构体类型,初始化5名职工的信息,最后再对工作年限超过30年的职工加100元工资,然后分别输出工资变化之前和之后的所有职工的信息。 运行结果截图 3.定义一个结构体变量(包括年、月、日)。计算某年某月某日是本年中第几天?注意闰年问题。 运行结果截图: 四、分析与讨论 对上机实践结果进行分析,上机的心得体会。 五、教师评语 签名: 日期: 成绩 附源程序清单: 1. #include struct student { int num; char name[20]; char classname[20]; float score[3]; float aver_score; }stu[5]; void () { int i; for(i=1;i<6;i++) {printf(“第%d个同学“,i); printf(“请输入学号 名字 班级 三门课程成绩:\n“); scanf(“%d %s %s %f %f %f“, } }; void averagescore() { int i; for(i=1;i<=5;i++) stu[i].aver_score=((stu[i].score[1]+stu[i].score[2]+stu[i].score[3])/3); printf(“平均成绩:“); for(i=1;i<6;i++) printf(“第%d个同学的平均成绩%f:\n“,i,stu[i].aver_score); printf(“\n“); }; void max() { int i,k=0; float temp=stu[1].aver_score; for(i=2;itemp) {temp=stu[i] .aver_score;k=i;}; printf(“成绩最好的同学:\n“); printf(“%d %s %s %4.2f %4.2f %4.2f %4.2f\n“, stu[k].num,stu[k].name,stu[k].classname,stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].aver_score); }; void main() { (); averagescore(); max(); } 2. #include struct worker { char name[20]; int workyear;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值