实验项目编号 06实验项目名称顺序存储结构实验学时 2学时实验时间 2016.11.20实验地点 教一 503指导老师周宏生
二、实验内容及要求
1、编程实现利用数组元素作为函数参数,求学生的平均成绩。具体要求如下:
(1)定义课程结构体类型{课程号、课程名、成绩}
(2)定义学生结构体类型{学号、姓名、高数课程、大外课程、C语言课程、毛概课程、体育课程}。
(3)定义包含多个学生信息的学生数组。
(4)编写一个求平均值的函数,实现求某个学生五门课程平均成绩的功能。
(5)学生数组的初始化在main函数中实现。
(6)在main函数中,利用一个学生的学号作为函数实参,完成求该学生五门课程平均成绩的功能。
(知识点:构造数据类型,函数调用,数组存储方式,数组元素作为函数参数)
2、编程实现数组名作为函数参数,求学生的平均成绩。具体要求如下:
(1)定义课程结构体类型{课程号、课程名、成绩}
(2)定义学生结构体类型{学号、姓名、高数课程、大外课程、C语言课程、毛概课程、体育课程}。
(3)定义包含多个学生信息的学生数组。
(4)编写一个求平均值的函数,实现求某个学生平均成绩的功能。
(5)学生数组的初始化在main函数中实现。
(6)在main函数中,利用学生数组名作为函数参数,求所有学生的五门课程平均成绩。
(7)成绩的输出可以在main函数中实现,也可以在被调函数中实现。
(知识点:构造数据类型,函数调用,数组存储方式,数组名作为函数参数)
3、编程实现利用指向数组的指针作为函数参数,求学生的平均成绩。具体要求如下:
(1)定义课程结构体类型{课程号、课程名、成绩}
(2)定义学生结构体类型{学号、姓名、高数课程、大外课程、C语言课程、毛概课程、体育课程}。
(3)定义包含多个学生信息的学生数组。
(4)编写一个求平均值的函数,实现求某个学生平均成绩的功能。
(5)学生数组的初始化在main函数中实现。
(6)在main函数中,利用指向数组的指针作为函数参数,求所有学生的五门课程平均成绩。
(7)成绩的输出可以在main函数中实现,也可以在被调函数中实现。
(知识点:构造数据类型,函数调用,数组存储方式,指向数组的指针作为函数参数)
三、代码如下
#include
#include
int N;
struct course//课程结构体
{
int cNum[20];
char cName[20];
float score;
};
struct student//学生结构体
{
int num;
char name[20];
struct course maths,english,cLanguage,maogai,sports;
float average;
};
void menu(){
printf("------------------------------------\n");
printf("A创建学生信息\n");
printf("B输出学生信息\n");
printf("C某个学生的平均成绩(利用一个学生的学号作为函数实参)\n");
printf("D某个学生的平均成绩(利用学生数组名作为函数参数)\n");
printf("E某个学生的平均成绩(利用指向数组的指针作为函数参数)\n");
printf("------------------------------------\n");
}
/*student* InitStudent()//初始化
{
student* stu=(student*)malloc(10*sizeof(student));
if(stu==0)
{
printf("init failer!\n");
return 0;
}
return stu;
}*/
void Input(student *stu)//输入
{printf("请输入学生个数:");
scanf("%d",&N);
printf("请输入学号,姓名,高数,大外,C语言,毛概,体育:\n");
for(int i=0;i
{
scanf("%d %s %f %f %f %f %f",&stu[i].num,&stu[i].name,&stu[i].maths.score,
&stu[i].english.score,&stu[i].cLanguage.score,&stu[i].maogai.score,&stu[i].sports.score);
}
printf("创建学生成功!\n");
}
void Outp