c++结构体数组(以成绩类型为例(输入姓名和各主科成绩,求和输出))(含输入、输出、寻最高最低分函数)

本篇博客主要是利用结构体数组处理以组为单位的数据,可作为一个简单项目实现功能的模板(文末附有运行截图和源码)

首先确定结构体需要包含些什么数据,什么类型;
这里我们就以主科成绩,姓名为例;定义结构体
在这里插入图片描述
要处理数据,首先搞定输入函数,利用循环输入以组为单位的数据
在这里插入图片描述
将结构体中主科成绩分别求和并输出,为了保证知道是谁的成绩,故也输出对应的姓名
在这里插入图片描述
每个项目有不同的功能,具体有什么需求就要写相应的函数,这里我写了一个在这一堆数据中寻找总分最高和最低的函数,用来输出最高分和最低分

在这里插入图片描述
最后主函数调用函数就可以实现对应的功能了
在这里插入图片描述附上运行的截图和源码

在这里插入图片描述

#include<iostream.h>
struct cj
{
char xingming[20];
int yuwen;
int shuxue;
int yingyu;
};
void sr(cj s[],int n)
{
cout<<“请依次输入学生的语文成绩,数学成绩,英语成绩,姓名:”<<endl;
for(int i=0;i<n;i++)
{
cin>>s[i].yuwen>>s[i].shuxue>>s[i].yingyu;
gets(s[i].xingming);
}
}//结构体循环输入数据函数
void sc(cj s[],int n)
{
for(int i=0;i<n;i++)
{
int sum=s[i].yuwen+s[i].shuxue+s[i].yingyu;
cout<<s[i].xingming<<":"<<endl;
cout<<“成绩总分为:”<<sum<<endl;
cout<<endl;
}
}//结构体循环分布求和并输出学生姓名和总分
void bj(cj s[],int n)
{
int sum[20],max[10],min[10],j=0,k=0;
max[0]=s[0].yuwen+s[0].shuxue+s[0].yingyu;
min[0]=s[0].yuwen+s[0].shuxue+s[0].yingyu;
for(int i=0;i<n;i++)
{
sum[i]=s[i].yuwen+s[i].shuxue+s[i].yingyu;
if(sum[i]>max[j])
{
j=i;
max[j]=sum[i];

}
if(sum[i]<min[k])
{
k=i;
min[k]=sum[i];
}
}
cout<<s[j].xingming<<“为最高分–”<<sum[j]<<endl;
cout<<s[k].xingming<<“为最低分–”<<sum[k]<<endl;
} //结构体寻找最大分数和最低分数的学生并输出
int main()
{
int y,s,w,n;
cout<<“您打算输入几个学生的主科成绩来计算总分:”;
cin>>n;
struct cj p[n];
sr(p,n);
sc(p,n);
bj(p,n);
return 0;
}

发布了21 篇原创文章 · 获赞 30 · 访问量 1725

猜你喜欢

转载自blog.csdn.net/TIMEINAHURRY/article/details/105335519