c++编程的问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 17:57:44
源代码
#include<iostream.h>
class CStuScore
{
public: //共有类型声明
char strName[12]; //姓名
char strStuNO[9]; //学号
void SetScore(float s0,float s1,float s2) //成员函数:设置3门课程成绩
{
fScore[0]=s0; fScore[1]=s1; fScore[2]=s2;
}
float GetAverage();
private: //私有类型声明
float fScore[3]; //三门课程成绩
}; //注意分号不能省略
float CStuScore::GetAverage()
{
return(float)((fScore[0]+fScore[1]+fScore[2])/3.0);
}
void main()
{
CStuScore={"strName","strStuNO",{s0,s1,s2}};
cout<<()StrName<<"strName的平均成绩为: "<<GetAverage()<<"\n";
}

--------------------Configuration: asdvvv - Win32 Debug--------------------
Compiling...
asdvvv.cpp
F:\Program Files\Microsoft Visual Studio\MyProjects\asdvvv\asdvvv.cpp(21) : error

你的问题很多啊:1、没有定义类对象。2、对象初始化错误(没有定义构造函数).3、字符串数组问题;
下面是我的两种改进方法:
一、(使用构造函数)
#include<iostream.h>
class CStuScore
{
public:
CStuScore(float a1,float a2,float a3,char *p)//定义构造函数,以初始化类对象;
{
strName=p;//姓名;
fScore[0]=a1;
fScore[1]=a2;
fScore[2]=a3;
}
char *strName; //用字符串指针比字符串数组要方便些;
char strStuNO[9];
void SetScore(float s0,float s1,float s2) //有了构造函数,这个函数有点多余;
{
fScore[0]=s0; fScore[1]=s1; fScore[2]=s2;
}
float GetAverage();
private:
float fScore[3];
};
float CStuScore::GetAverage()
{
return(float)((fScore[0]+fScore[1]+fScore[2])/3.0);
}
void main()
{
CStuScore ak=CStuScore(50,60,70,"小强");//定义类对象,并初始化;
cout<<ak.strName<<"strName的平均成绩为: "<<ak.GetAverage()<<"\n"; //输出结果;
}

二、(使用你自己定义的函数)
#in