【问题描述】编写一个基于结构体得学生成绩信息管理系统。
主要功能如下: 1. 用结构体存放所有数据。
2. 每个功能都用函数实现。
3. 输入10个学生的学号和三门课程的成绩。
4. 计算每个学生的总分。
5. 按总分从高到低排序。
6. 加上名次一列。
7. 输出最后的二维表格样式的成绩,含学号、三门课成绩、总分、名次。
请编写五个函数完成相应功能的实现。其中:
input_data(STU s[]):输入原始数据函数。
calculate(STU s[]):计算总分函数。
sort_total(STU s[]):根据总分降序排序函数。
add_rank(STU s[]):增加名次列函数。
print_data(STU s[]):输出二维表格样式成绩的函数。
【输入形式】用户依次输入10名学生的学号和三门课成绩。
【输出形式】输出最后的二维表格样式的成绩,含学号、三门课成绩、总分、名次(包含表头),要求每个学生信息占用一行,每个数据占用15个字符且左对齐。
【样例输入】
10001 67 71 69
10002 78 83.5 94.2
10003 61 67 87.5
10004 88 89 92
10005 66.7 78.6 93
10006 67 72 77
10007 74 63 89
10008 93 74 66
10009 74 76 81
10010 78 91 83
【样例输出】
Number: Chinese: Mathematics: English: Total score: Ranking
10004 88 89 92 269 1
10002 78 83.5 94.2 255.7 2
10010 78 91 83 252 3
10005 66.7 78.6 93 238.3 4
10008 93 74 66 233 5
10009 74 76 81 231 6
10007 74 63 89 226 7
10006 67 72 77 216 8
10003 61 67 87.5 215.5 9
10001 67 71 69 207 10
【样例说明】用户依次输入10名学生的学号和三门课成绩。输出为二维表格样式的成绩,含学号、三门课成绩、总分、名次(包含表头),每个学生信息占用一行,每个数据占用15个字符且左对齐。
【评分标准】 结果完全正确得20分,每个测试点10分。提交程序名为:scoremanage.c或scoremanage.cpp
#include<iostream>
#include<iomanip>
using namespace std;
const int N=10;
struct STU
{
public:
int num;
double score1;
double score2;
double score3;
double sum;
};
STU s[N];
void input_data(STU s[],int i)
{
cin>>s[i].num>>s[i].score1>>s[i].score2>>s[i].score3;
}
void calculate(STU s[],int i)
{
s[i].sum=s[i].score1+s[i].score2+s[i].score3;
}
void total(STU s[],int i)
{
STU temp;
for(int i=1;i<=10;i++)
{
for(int j=1;j<=10-i;j++)
{
if(s[j].sum<s[j+1].sum)
{
temp=s[j+1];
s[j+1]=s[j];
s[j]=temp;
}
}
}
}
void print_s(STU s[],int i)
{
cout<<std::left<<setw(15)<<s[i].num<<setw(15)<<s[i].score1<<setw(15)<<s[i].score2;
cout<<std::left<<setw(15)<<s[i].score3<<setw(15)<<s[i].sum<<setw(15)<<i;
cout<<endl;
}
int main()
{
for(int i=1;i<=10;i++)
{
input_data(s,i);
calculate(s,i);
total(s,i);
}
cout<<"Number: Chinese: Mathematics: English: Total score: Ranking";
cout<<endl;
for(int i=1;i<=10;i++)
{
print_s(s,i);
}
return 0;
}
标签:10,int,题解,C++,STU,总分,67,信息管理系统,成绩
From: https://blog.csdn.net/yf743909/article/details/137123770