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