当前位置:文档之家› 数据结构 _实验1

数据结构 _实验1

《数据结构》实验报告
班级:网络1311 学号:10 姓名:曾梦成绩:
实验1:指针和结构体程序设计
1.实验目的
(1)复习C(或C++)语言的基本描述方法。

(2)熟练掌握数组的用法。

(3)提高运用C(或C++)语言解决实际问题的能力。

2.实验内容
设一个班有10个学生,每个学生有学号,以及数学、物理、英语、语文、体育5门课的成绩信息。

分别写3个函数以实现以下3个要求:
(1)求数学的平均成绩。

(2)对于有两门以上课程不及格的学生,输出他们的学号、各门课成绩及平均成绩。

(3)输出成绩优良的学生(平均成绩在85分以上或全部成绩在80分以上)的学号、各门课成绩和平均成绩。

3.实验要求
(1)利用C(或C++)语言完成程序设计。

(2)上机调试通过实验程序。

(3)输出10个学生的学号和数学、物理、英语、语文、体育5门课的成绩,检验程序运行的正确性。

(4)总结整个程序的组成和设计思想。

(5)撰写实验报告(把输入数据及运行结果用抓图的形式粘贴到实验报告上)。

4.实验程序
#include<stdio.h>
struct STUDENT
{
char id[10];
int score[5];
double ave;
}stu[10];
void main()
{
int i,j,math=0,m=0,n=0,k,Tave,num=10;
double mave;
printf("成绩输入按照数学物理英语语文体育的顺序");
for(i=0;i<num;i++)
{
Tave=0;
printf("\n\t输入第%d个学生的数据:\n",i+1);
printf("\t学号:\t");
scanf("%s",stu[i].id);
printf("\t输入第%d学生的五门成绩\n",i+1);
for(j=0;j<5;j++)
{
printf("\t第%d门课的成绩:",j+1);
scanf("%d",&stu[i].score[j]);
Tave+=stu[i].score[j];
}
stu[i].ave=(double)Tave/5.0;
printf("\t数学\t物理\t英语\t语文\t体育\tAverage\n");
for(k=0;k<5;k++)
printf("\t%d",stu[i].score[k]);
printf("\t%5.2f",stu[i].ave);
}
for(i=0;i<num;i++)
math+=stu[i].score[0];
mave=(double)math/5.0;
printf("\n\tThe average score of Math is %5.2f\n",mave); printf("\n\t两门以上成绩不及格的学生信息:");
for(i=0;i<num;i++)
{
m=0;
for(j=0;j<5;j++)
{
if(stu[i].score[j]<60)
m++;
}
if(m>=2)
{
printf("\n\t学号%s\n",stu[i].id);
printf("\t数学\t物理\t英语\t语文\t体育\tAverage\n");
for(k=0;k<5;k++)
printf("\t%d",stu[i].score[k]);
printf("\t%5.2f",stu[i].ave);
}
}
printf("\n\t成绩优良的学生信息:");
for(i=0;i<num;i++)
if(stu[i].ave>85)
{
printf("\n\t学号%s\n",stu[i].id);
printf("\t数学\t物理\t英语\t语文\t体育\tAverage\n");
for(k=0;k<5;k++)
printf("\t%d",stu[i].score[k]);
printf("\t%5.2f",stu[i].ave);
}
for(i=0;i<num;i++)
for(j=0;j<5;j++)
{
if(stu[i].score[j]>=80)
n++;
}
if(n==5)
{ printf("\n\t学号%s\n",stu[i].id);
printf("\t数学\t物理\t英语\t语文\t体育\tAverage\n");
for(k=0;k<5;k++)
printf("\t%d",stu[i].score[k]);
printf("\t%5.2f\n",stu[i].ave);
}
}
5.程序运行
6.小结
当一个c程序中变量过多,各个数据之间难以联系,没有整体概念的时候,结构体的概念大大凸显,定义一个结构体类型,可以再结构体中申明不同的结构类型,相同结构的结构体是可以互相赋值的,使用结构体不仅节省了内存空间,而且使得编程效率大大提高。

相关主题