- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验8_结构体
《C语言程序设计》实验报告
实验序号: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.定义一个结构体变量(包括年、月、日)。计算某年某月某日是本年中第几天?注意闰年问题。
运行结果截图:
四、分析与讨论
对上机结果进行分析,上机的心得体会。#includestdio.h
void 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;i5;i++)
{
printf(请输入第%d学生的
文档评论(0)