编写一个程序,输入3个学生的英语与计算机成绩,并按总分从高到低排序。要求设计一个学生类student,其定义如下:
class Student
{
public:
void getscore();//获取一个学生的成绩
void dispaly();//显示一个学生的成绩
void sort(Student *);//将若干个学生按总分从高到低排序
private:
int English,Computer,total;
};
下面是我写的程序,运行不通过,发现多处错误!
想了一个上午和下午,实在不知道怎么改,希望热心人士帮忙研究一下,给点提示,谢绝直接给代码!
// 这是使用应用程序向导生成的 VC++
// 应用程序项目的主项目文件。
#include "stdafx.h"
#include "iostream.h"
#using <mscorlib.dll>
#include <tchar.h>
using namespace System;
class Student
{
public:
void getscore();//获取一个学生的成绩
void dispaly();//显示一个学生的成绩
void sort(Student *stu[]);//将若干个学生按总分从高到低排序
private:
int English,Computer,total;
};
//上面的语句除了void sort(Student *stu[]);以外绝对不能改,有限定。
void Student::getscore()
{
cout<<"请输入英语成绩:";
cin>>English;
cout<<"请输入计算机成绩:";
cin>>Computer;
total=English+Computer;
}
void Student::dispaly()
{
sort(Student *stu[]); //这里有问题。我究竟校改怎么写这个语句
for(int i=0;i<3;i++)
cout<<stu[i]->total<<endl;
}
void Student::sort(Student *stu[]) //用选择法对3个学生的总成绩从高到低排序
{
int max,*temp;
for(int m=0;m<2;m++)
{
max=m;
for(int n=m+1;n<3;n++)
if(stu[m]->total<stu[n]->total) max=n;
if(max!=m)
{
temp=stu[m];
stu[m]=stu[n];
stu[n]=temp;
}
}
}
// 这是此应用程序的入口点
int _tmain(void)
{
Student *stu[3]; //指向对象的指针数组
Student *pstu;
for(int i=0;i<3;i++)
{
pstu=new Student; //动态分配一个Student对象
pstu->getscore();
stu[i]=pstu;
}
stu->dispaly(); //这里不能这么望问吧?有三个对象,只写一个语句,那需要什么方法?
return 0;
}