上机实验3.2

 202132124089

#include<iostream>

#include<string>

using namespace std;
class score {
public:
	score()
	{
		number = 2;
		cout << "默认学生为2" << endl;
	}
	score(int count)
	{
		number = count;
		cout << "自定学生人数" << endl;
	}
	~score()
	{
		cout << "~score" << endl;
	}

	void input_nameandscore()
	{
		for (int i = 0; i < number; i++)
		{
			cout << "输入学生姓名" << endl;
			cin >> name[i];
			cout << "输入科目A成绩" << endl;
			cin >> grade[i][0];
			cout << "输入科目B成绩" << endl;
			cin >> grade[i][1];
			cout << "输入科目C成绩" << endl;
			cin >> grade[i][2];
		}
	}
	void show_nameandscore()
	{
		for (int i = 0; i < number; i++)
		{
			cout << "学生姓名是" << name[i] << endl;
			cout << "科目A成绩是" << grade[i][0] << endl;
			cout << "科目B成绩是" << grade[i][1] << endl;
			cout << "科目C成绩是" << grade[i][2] << endl;

		}
	}
	void show_student_avgscore()
	{
		//float avg = 0;
		for (int i = 0; i < number; i++)
		{
			float avg = 0;
			for (int j = 0; j <= 2; j++)
			{
				avg = avg + grade[i][j];
			}
			avg = avg / 3;
			cout << name[i] << "同学的平均值是" << avg << endl;
		}
	}
	void show_course_AvgScore()
	{
		float avgA = 0;
		float avgB = 0;
		float avgC = 0;
		for (int i = 0; i < number; i++)
		{
			avgA = avgA + grade[i][0];
			avgB = avgB + grade[i][1];
			avgC = avgC + grade[i][2];
		}
		avgA = avgA / number;
		avgB = avgB / number;
		avgC = avgC / number;
		cout << "科目A的平均分是" << avgA << endl;
		cout << "科目B的平均分是" << avgB << endl;
		cout << "科目C的平均分是" << avgC << endl;

	}
	void ordercourse()
	{
		float temp;
		for (int i = 0; i <= 2; i++)
		{
			for (int j = 1; j < number; j++)
			{
				if (grade[j][i] > grade[j - 1][i])
				{
					temp = grade[j][i];
					grade[j][i] = grade[j - 1][i];
					grade[j - 1][i] = temp;
				}

			}
			for (int j = 0; j < number; j++)
			{
				cout << grade[j][i] << " ";
			}
			cout << endl;
		}

	}
private:
	float grade[100][100];
	int number;
	string name[100];
};
int main()
{
	score x;
	x.input_nameandscore();
	x.show_nameandscore();
	x.show_student_avgscore();
	x.show_course_AvgScore();
	x.ordercourse();
}

 创建一个Score类,完成以下功能:

      分别输入两个学生的姓名和成绩

      显示这两个同学的每科成绩和平均分

      显示每门科目的平均成绩

      用排序法对每门成绩由高到低排序

运行结果如图所示:

常用排序方法:插入排序  选择排序  冒泡排序

冒泡排序:

一种简单直接暴力的排序算法。重复走完数组的所有元素,通过打擂台的方式两个两个比较,直到没有数可以交换的时候结束这个数,再到下个数,直到整个数组排好顺序。因一个个浮出所以叫冒泡排序。经过第一轮后最大的元素已经排在最后,所以重复上述操作的话第二大的则会排在倒数第二的位置。n-1次即可完成排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值