1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 厦门理工学院c语言实验报告5 厦门理工学院 C语言报告实验8 - 结构体

厦门理工学院c语言实验报告5 厦门理工学院 C语言报告实验8 - 结构体

时间:2020-10-25 19:50:05

相关推荐

厦门理工学院c语言实验报告5 厦门理工学院 C语言报告实验8 - 结构体

《C语言程序设计》实验报告

实验序号:8 实验项目名称:结构体 学 号 实验地点 315 姓 名 指导教师 林仙丽 专业、班级 实验时间 网络工程 12月26日 一、实验目的及要求 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.

#includevoid main() { struct student { long num; char name[20]; char classname[20]; float score[3]; float averagescore; }stu[5]; float average(float aver[3]); float h(float a[5]); int i,j; float high,hi[5]; for(i=0;i<5;i++) { printf(\请输入第%d学生的信息:\\n\ scanf(\ scanf(\ scanf(\ for(j=0;j<3;j++) scanf(\ } for(i=0;i<5;i++) { stu[i].averagescore=average(stu[i].score); hi[i]=stu[i].averagescore; } high=h(hi); printf(\e\ for(i=0;i<5;i++)

成绩

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。