C++面向对象类的实例题目八

题目描述:

编写一个程序输入3个学生的英语和计算机成绩,并按照总分从高到低排序。要求设计一个学生类Student,其定义如下:

程序代码:

#include<iostream>
using namespace std;
class Student
{
	public:
		void getscore();	//获取一个学生成绩
		void display();		//显示一个学生成绩
		void sort( Student *);	//将若干个学生按总分从高到低排序
	private:
		int english;
		int computer;
		int total; 
};
void Student::getscore()
{
	cout<<"请输入该学生的英语成绩:";
	cin>>english;
	cout<<"请输入该学生的计算机成绩:";
	cin>>computer;
	total = english + computer; 
}
void Student::display()
{
	cout<<"该学生的英语成绩为:"<<english<<",计算机成绩为:"<<computer<<",总分为:"<<total<<endl; 
}
void Student::sort(Student *p)
{
	if(p->total > total)	//p指向的对象比该对象大的时候,则交换对象的值 
	{
		int t1,t2,t3;
		t1 = p->english;
		p->english = english;
		english = t1;
		t2 = p->computer;
		p->computer = computer;	
		computer = t2;
		t3 = p->total;
		p->total = total;
		total = t3;	
	}
}
int main()
{
	Student st[3];	
	for(int i = 0; i < 3; i++)
	{
		st[i].getscore();
		st[i].display();
	}
	st[0].sort(&st[1]);
	st[0].sort(&st[2]);
	st[1].sort(&st[2]);
	cout<<"======================"<<endl; 
	cout<<"排序结果如下:"<<endl;
	for(int i = 0; i < 3; i++)
	{
		st[i].display();
	} 
}


输出结果:

请输入该学生的英语成绩:80
请输入该学生的计算机成绩:90
该学生的英语成绩为:80,计算机成绩为:90,总分为:170
请输入该学生的英语成绩:70
请输入该学生的计算机成绩:60
该学生的英语成绩为:70,计算机成绩为:60,总分为:130
请输入该学生的英语成绩:99
请输入该学生的计算机成绩:87
该学生的英语成绩为:99,计算机成绩为:87,总分为:186
======================
排序结果如下:
该学生的英语成绩为:99,计算机成绩为:87,总分为:186
该学生的英语成绩为:80,计算机成绩为:90,总分为:170
该学生的英语成绩为:70,计算机成绩为:60,总分为:130


posted @ 2014-01-01 13:19  千手宇智波  阅读(597)  评论(0编辑  收藏  举报