实验五 结构体
一、实验目的
1.掌握结构体类型变量的定义和使用。
2.掌握结构体类型数组的概念和使用。
二、实验内容
编写一个程序实现下面的功能:
建立一个数组用于存储学生的学号、姓名和三门课程的成绩和平均成绩
输入学号后输出该学生的学号、姓名和三门课程的成绩
输入学号后删除该学生的数据
插入学生的数据
输出平均成绩在80分及以上的记录
退出
要求用循环语句实现B--E的多次操作
三、实验具体实验程序代码(要有注释)、测试结果(最好截图)和实验总结
1、实验代码
//科目:C语言实验结构体
//题目:A.建立一个数组用于存储学生的学号、姓名和三门课程的成绩和平均成绩
// B.输入学号后输出该学生的学号、姓名和三门课程的成绩
//作者:武叶
//语言:C语言
//创作时间:2012年4月12日
#include"stdio.h"
#include"string.h"
struct student
{
int num;
char name[20];
float yingyu;
float shuxue;
float cc;
float avg;
};
struct student stud[100];
int main()
{
int i,j,n;
int k=1;
printf("输入有N个学生数:");
scanf("%d",&n);
printf("学号 姓名 英语 数学 c++\n");
for(i=0;i
{
scanf("%d%s%f%f%f",&stud[i].num,&stud[i].name,&stud[i].yingyu,&stud[i].shuxue,&stud[i].cc);
stud[i].avg=(stud[i].yingyu+stud[i].shuxue+stud[i].cc)/3;
}
for(i=0;i
{
printf("输入你要查询的学号:");
scanf("%d",&k);
if(k==stud[i].num)
{
printf("\n");
printf("你要查询的学生信息\n");
printf(" 学号 姓名 英语 数学 C++ \n");
printf("%d\t%s\t%f\t%f\t%f \n",stud[i].num,stud[i].name,stud[i].yingyu,stud[i].shuxue,stud[i].cc);
printf("\n");
printf("***输入你要删除的学号信息***");
scanf("%d",&k);
printf("***输入你要插入的数据:***\n");
scanf("%d\t%s\t%f\t%f\t%f",&stud[i].num,&stud[i].name,&stud[i].yingyu,&stud[i].shuxue,&stud[i].cc);
}
for(j=0;j
{
if(stud[j].avg>=80)
{
printf("####输出平均分在80分以上的同学:####\n");
printf(" 学号 姓名 英语 数学 C++ \n");
printf("%d\t%s\t%f\t%f\t%f \n",stud[j].num,stud[j].name,stud[j].yingyu,stud[j].shuxue,stud[j].cc);
printf("###################################\n");
}
}
}
return 0;
}
2、运行结果截图
总结:
对于数组的引用,分为数组元素和数组本身的引用。对于数组元素的引用,其实质为简单变量的引用。对于数组本身的引用实质是数组首地址的引用。1.先声明结构体类型再定义变量名如上面已经定义了一个结构体类型struct student,可以用它来定义变量。如:struct student student1,student2;2.在声明类型的同时定义变量一般形式:struct 结构体名称{成员列表}变量名列表;
/forum.php?mod=viewt