用c++编写一个程序,要求创建一个类,输入若干个学生的数据,包括学号,姓名和三门课程的成绩;

要求按学生成绩排序,并输出名次。因为下午就要用,所以急死了,大神帮忙看下,谢谢!... 要求按学生成绩排序,并输出名次。 因为下午就要用,所以急死了,大神帮忙看下,谢谢! 展开
 我来答
萢萢i3
推荐于2017-11-27 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.7万
采纳率:71%
帮助的人:4635万
展开全部

参考代码:

#include <iostream>
#include <string>

using namespace std;

#define MAX 100

class Student
{
private:
string num;
string name;
double subject[3];
double total;

public:
void input(Student s[], int);
void sort(Student s[], int);
void print(Student s[], int);

}stu[MAX];

void Student::input(Student s[], int n)
{
for (int i = 0; i < n; i++)
{
cout << "输入第" << i + 1 << "个学生的学号:";
cin >> s[i].num;
cout << "输入第" << i + 1 << "个学生的姓名:";
cin >> s[i].name;
s[i].total = 0;
for (int j = 0; j < 3; j++)
{
cout << "输入第" << j + 1 << "门课的成绩:";
cin >> s[i].subject[j];
s[i].total += s[i].subject[j];
}
cout << endl;
}
}

void Student::sort(Student s[], int n)
{
for (int i = 0; i < n-1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (s[i].total < s[j].total)
{
Student tmp = s[i];
s[i] = s[j];
s[j] = tmp;
}
}
}
}

void Student::print(Student s[], int n)
{
for (int i = 0; i < n; i++)
{
cout << "第" << i + 1 << "名" << endl;
cout << "学号:" << s[i].num << endl;
cout << "姓名:" << s[i].name << endl;
for (int j = 0; j < 3; j++)
{
cout << "第" << j + 1 << "门课的成绩:" << s[i].subject[j] << endl;
}
cout << endl;
}
}

int main()
{
int num;
cout << "输入学生个数:";
cin >> num;
cout << endl;
Student s;
s.input(stu, num);
s.sort(stu, num);
s.print(stu, num);
return 0;
}
妞儿妈妈time
2018-03-31 · TA获得超过5119个赞
知道小有建树答主
回答量:44
采纳率:0%
帮助的人:6063
展开全部

1、#include <iostream>#include <string>using namespace std;#define 

2、MAX 100class Student{private:string num;string name;double subject[3];

3、double total;public:void input(Student s[], int);void sort(Student s[], int);
void print(Student s[], int);}stu[MAX];void Student::input(Student s[], int n)
{for (int i = 0; i < n; i++){cout << "输入第" << i + 1 << "个学生的学号:";

4、cin >> s[i].num;cout << "输入第" << i + 1 << "个学生的姓名:";cin >> s[i].name;
s[i].total = 0;for (int j = 0; j < 3; j++){cout << "输入第" << j + 1 << "门课的成绩:";
cin >> s[i].subject[j];s[i].total += s[i].subject[j];}cout << endl;}
void Student::sort(Student s[], int n){for (int i = 0; i < n-1; i++){for (int j = i + 1; j < n; j++){if (s[i].total < s[j].total){Student tmp = s[i];

5、s[i] = s[j];s[j] = tmp;}void Student::print(Student s[], int n)
{for (int i = 0; i < n; i++){cout << "第" << i + 1 << "名" << endl;cout << "学号:" << s[i].num << endl;cout << "姓名:" << s[i].name << endl;for (int j = 0; j < 3; j++){cout << "第" << j + 1 << "门课的成绩:" << s[i].subject[j] << endl;}cout << endl;}
int main(){int num;cout << "输入学生个数:";cin >> num;cout << endl;
Student s;s.input(stu, num);s.sort(stu, num);s.print(stu, num);return 0;}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夜猫嘟嘟
2015-03-20
知道答主
回答量:1
采纳率:0%
帮助的人:1266
展开全部
非常感谢,你的代码很好。以后有这样的问题可以问你吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式