急!请高手分析C++错误

来源:百度知道 编辑:UC知道 时间:2024/07/02 16:49:43
/*.编一个程序,构造一个学生类,数据有:姓名,学号,三科成绩(语数外)和平均成绩。
要求:(1)数据均作成私有类型,即只能用函数操作
(2)对三个对象平均成绩排名
(3)单科平均成绩查询
*/
#include <iostream>
using namespace std;
class student
{
public:
/* void set(char* name1,int num1,int *a)
{
strcpy(name,name1);
num=num1;
b[0]=*a;
b[1]=*(a+1);
b[2]=*(a+2);

}*/
student()
{
cout<<"name:"<<endl;
cin>>name;
cout<<"num"<<endl;
cin>>num;
cout<<"yuwen"<<endl;
cin>>b[0];
cout<<"shuxue"<<endl;
cin>>b[1];
cout<<"yingyu"<<endl;
cin>>b[2];
}
int getmark(){return (b[0]+b[1]+b[2])/3;}
friend int avera(student &x,student &y,student &z);
private:
char name[20];
int num;
int b[3];
};
friend void avera(

写得不怎么完善,比如输入学生信息时,没有作信息检查..

#include <iostream>
using namespace std;

#define MAX 3//有多少个学生

class student
{
friend int Select(student *stu, int iCount,int iNum);
public:
//初始化
void Init(const char *pName,int iNum,int *pb)
{
strcpy(name,pName);
iNum = num;
for(int i = 0; i < MAX; i++)
b[i] = pb[i];
}
//求平均成绩
int Arg()
{
float sum = 0;
for(int i = 0; i < 3; i++)
sum = sum +b[i];
return sum/3;
}
private:
char name[20];
int num;
int b[3];
};
//求对象的名次
void Sort(student *stu, int iCount)
{
int sort[MAX];
memset(sort,0,iCount*sizeof(int));

for(int i = 1; i < iCount; i++)
{
for(int j = 0; j < i; j++)
{
if(stu[j].Arg() < stu[i].Arg())
sort[j]++;
else
sort[i]++;
}
}