C++上机实验3.2

本篇博客介绍了如何用C++编程实现一个学生成绩管理系统,包括输入多位学生的三科成绩,计算平均分,显示每科平均成绩,并对成绩进行排序。用户可自定义学生数量(默认2,上限100),程序能处理最多100位学生的成绩数据。

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

1)连续输入多位学生的float成绩(成绩=科目A成绩+科目B成绩+科目C成绩);

2)学生数目可以由用户自定义(默认为2个,最多为100个。提示:使用变量。);

3)显示每位同学的每科成绩和平均分;

4)显示每门科目的平均成绩;

5)对每门成绩进行排序并由高到低显示;

#include<iostream>
#include<string>
using namespace std;
class studentsscore {
public:
	studentsscore()
	{
		students_nr = 2;
	}
	studentsscore(int students_count)
	{
		students_nr = students_count;
	}
	~studentsscore()
	{
		cout << "Press any key to continue" << endl;
	}
	void input_students_name_and_score()
	{
		for (int students_id=0; students_id < students_nr; students_id++)
		{
			cout << "请输入学生姓名:";
			cin >> name[students_id];
			cout << "请输入科目a成绩:";
			cin >> score[students_id][0];
			cout << "请输入科目b成绩:";
			cin >> score[students_id][1];
			cout << "请输入科目c成绩:";
			cin >> score[students_id][2];
		}
	}
	void show_students_name_and_score()
	{
		for (int students_id=0; students_id < students_nr; students_id++)
		{
			cout << "姓名:" << name[students_id] << " 科目a成绩:" << score[students_id][0]
				<< " 科目b成绩:" << score[students_id][1] << " 科目c成绩:" << score[students_id]
				[2]<<"\n";
		}
	}
	void show_stdents_avgscore(int student_id)
	{
		float students_avgscore = 0;
		cout << "请输入学生姓名:" << name[student_id] << endl;
		students_avgscore = (score[student_id][0] + score[student_id][1] + score[student_id][2]);
		students_avgscore = students_avgscore / 3;
		cout << "平均成绩: " << students_avgscore<<"\n";
			
	}
	void show_course_avgscore(string course_name)
	{   
		cout << "请输入课程名称:" <<course_name << endl;
		
		float course_avgscore = 0;
		if (course_name == "a")
		{
			for(int i = 0; i < students_nr; i++)
			{
				course_avgscore = score[i][0]+course_avgscore;
			}
			course_avgscore = course_avgscore / students_nr;
			cout <<"课程的平均分为:"<< course_avgscore << "\n";
		}
		if (course_name == "b")
		{
			for (int i = 0; i < students_nr; i++)
			{
				course_avgscore = score[i][1] + course_avgscore;
			}
			course_avgscore = course_avgscore / students_nr;
			cout << "课程的平均分为:" << course_avgscore << "\n";
		}
		if (course_name == "c")
		{
			for (int i = 0; i < students_nr; i++)
			{
				course_avgscore = score[i][2] + course_avgscore;
			}
			course_avgscore = course_avgscore / students_nr;
			cout << "课程的平均分为:" << course_avgscore << "\n";
		}
	}
	void order_score_by_course(string course_name)
	{
    	cout << "请输入课程名称:"<<course_name<<"\n";
		
		if (course_name == "a")
		{
			for (int i = 0; i < students_nr; i++)
			{
				cout << "姓名: " << name[i] << "  成绩:" << score[i][0] << "    ";
			}
		}
		else if (course_name == "b")
		{
			for (int i = 0; i < students_nr; i++)
			{
				cout << "姓名:" << name[i] << "  成绩:" << score[i][1]<<"    ";
			}
		}
		else if (course_name == "c")
		{
			for (int i = 0; i < students_nr; i++)
			{
				cout << "姓名:" << name[i] << "  成绩:" << score[i][2] << "    ";
			}
		}
	}
private:
	float score[100][3];
	string name[100];
	int students_nr;
};
int main()
{
	studentsscore x;
	x.input_students_name_and_score();
	x.show_students_name_and_score();
	x.show_stdents_avgscore(1);
	x.show_course_avgscore("a");
	x.order_score_by_course("b");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值