C++上机 student score 学生成绩

1.定义一个score类,学生数目默认为2,也可以自定义,最多为100个;

2.要想显示每位同学的平均分,需要输入成绩和显示函数,用for循环实现连续输入和输出显示;

3.函数实现显示每位同学的每科成绩和平均分,void showstuavg(int m)设置一个参数m,通过m可以实现显示某个指定学生的平均成绩,把该同学的所有成绩相加后除科目总数3即可;

4.显示每门科目的平均分,与求每位同学的平均分不同,学生的人数是可以自定义的不是个固定值,所以必须要设置一个参数i,提供学生的个数做除数;

5.对科目进行排序,并由高到低显示,首先要明确是哪科,然后用冒泡法进行排序。

程序要求多,涉及到的函数也比较多,编译能检测出许多语法上的错误,但是编译成功后,逻辑上的错误比较难改,可以编写完几个后,在主函数里引用,编译一下看看,比一次性写完改要轻松很多。

#include<iostream>
using namespace std;

class Score
{
public:
	Score(int stnumber = 2)
	{
		if (stnumber > 100)
			number = 100;
		else number = stnumber;
	}

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

	void showallstu()
	{
		for (int i = 0; i < number; i++)
		{
			cout << "姓名:" << name[i] << " 科目A成绩:" << grade[i][1] << " 科目B成绩:" << grade[i][2] << " 科目C成绩:" << grade[i][3] << endl;
		}
	}

	void showstuavg(int m)
	{
		cout << "姓名:" << name[m] << " 平均成绩:" << (grade[m][1] + grade[m][2] + grade[m][3]) / 3 << endl;
	}

	void showavg(int i)
	{
		double all = 0;
		switch (i)
		{
		case 1:
			for (int m = 0; m < number; m++)
			{
				all += grade[m][1];
			};
			cout << "课程名称:A平均成绩:" << all / number << endl;
			break;
		case 2:
			for (int m = 0; m < number; m++)
			{
				all += grade[m][2];
			};
			cout << "课程名称:B平均成绩:" << all / number << endl;
			break;
		case 3:
			for (int m = 0; m < number; m++)
			{
				all += grade[m][3];
			};
			cout << "课程名称:C平均成绩:" << all / number << endl;
			break;
		}
	}	

void rank(int m)
	{
		int temp;
		char tempname[100];
		switch (m)
		{
		case 1:cout << "课程名:A" << endl;
			break;
		case 2:cout << "课程名:B" << endl;
			break;
		case 3:cout << "课程名:C" << endl;
			break;
		}
		for (int i = 0; i < number - 1; i++)
		{
			if (grade[i][m] > grade[i + 1][m])
			{
				temp = grade[i + 1][m];
				grade[i + 1][m] = grade[i][m];
				grade[i][m] = grade[i + 1][m];
				tempname[100] = name[i + 1][100];
				name[i + 1][100] = name[i][100];
				name[i][100] = tempname[100];
			}
		}
		for (int i = number - 1; i > -1; i--)
		{
			cout << "姓名:" << name[i] << " 成绩:" << grade[i][m] << endl;
		}
	}

private:
	int number;
	char name[100][100];
	double grade[100][3];
};

int main()
{
	Score stu;
	stu.input();
	stu.showallstu();
	stu.showstuavg(1);
	stu.showavg(2);
	stu.rank(2);
	return 0;
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C 期末项目设计学生成绩信息管理可以采用数据库管理系统来实现。 首先,需要设计一张学生信息的表,包含学生的学号、姓名、性别、年龄等相关信息。每当有新的学生加入或者学生信息更新时,都可以在此表中进行相应的操作。 其次,需要设计一张课程信息的表,包含课程的编号、名称、学分等相关信息。每当有新的课程加入或者课程信息更新时,都可以在此表中进行相应的操作。 接着,需要设计一张成绩信息的表,包含学生学号、课程编号、成绩等相关信息。每当有学生成绩录入或者成绩更新时,都可以在此表中进行相应的操作。 在管理学生成绩信息方面,可以提供以下功能: 1. 学生信息的查询:可以通过学号或者姓名来查询指定学生的个人信息。 2. 课程信息的查询:可以通过课程编号或者名称来查询指定课程的详细信息。 3. 成绩录入和更新:可以针对不同的学生和课程来录入或者更新学生成绩。 4. 成绩统计和分析:可以根据不同的查询条件,对学生成绩进行统计和分析操作,例如计算平均分、最高分、最低分等。 5. 成绩报表生成:可以根据需要生成各种形式的成绩报表,方便学生和教师查看和分析学生成绩。 除了上述功能,还可以考虑添加密码保护的功能,以保护学生和教师信息的安全性。 总之,通过设计一个数据库管理系统来实现学生成绩信息管理,可以提高成绩信息的存储效率和查询速度,方便学生和教师对成绩进行管理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值