C++ 急!求高手构造一个学生类。。

2024-12-29 03:12:10
推荐回答(2个)
回答1:

强,才给5分!
以下是代码:
c++ vc6.0或7.0下代码是

#include
#include
using namespace std;
//构造学生类 属性有:学号,姓名,年龄,性别,班级号
class CStudent
{
public: //公有类型声明

char strName[12]; //姓名
char strStuNO[9]; //学号
unsigned int age; //年龄
bool isman; //性别

void SetScore(float s1,float s2,float s3)
//成员函数,设置三门课成绩
{
fScore[0]=s1;
fScore[1]=s2;
fScore[2]=s3;
}
float GetAverage(); //均分

CStudent(char str[9]) //第一个构造函数
{
strcpy(strStuNO,str);
}
CStudent(char str[9],char Name[12]) //第二个构造函数
{
strcpy(strStuNO,str);
strcpy(strName,Name);
}
//利用下面构造函数初始化年龄为18
CStudent(unsigned int IN_age) //第三个构造函数,
{
age=IN_age;
}
friend unsigned long int CIn(CStudent &CStu );

private:
float fScore[3];
enum{ClassNum = 20080715 };
//static const unsigned long int ClassNum=20080715;
//班级号:你可以自己修改2008级07系15班,嘎嘎
//将上面数字改一下
};

float CStudent::GetAverage()
{
return (float)((fScore[0]+fScore[1]+fScore[2])/3.0);
}
unsigned long int CIn(CStudent &CStu )
{unsigned long int n;
n=CStu.ClassNum;

return n;
}
void main()
{
const unsigned long int ClassNum=20080715;

unsigned long int n;
int AgeIn;
char str1[9];
char str2[9],strN[12];
cout<<"*****************************************************"<cout<<"** C++学生类的构造 **"<cout<<"*****************************************************"<//以下是调用,为简化问题,只输入三个同学

cout<<"调用一个参数的构造函数,请输入学号:"<cin>>str1;
CStudent Onestu(str1);
cout<<"你输入的学号为:"<cout<<"第一位同学信息建立啦!"<system("pause");
//第二个同学信息
cout<<"调用两个参数的构造函数,请输入学号:"<cin>>str2;
cout<<"请输入姓名:"<cin>>strN;
CStudent Twostu(str2,strN);
cout<<"你输入的学号为:"<cout<<"你输入的姓名为:"<cout<<"第二位同学信息建立啦!"<system("pause");
//初始化年龄为18
cout<<"你可以输入年龄,建立以年龄为参数的对象:"<cout<<"请输入年龄(比如18岁):";
cin>>AgeIn;
CStudent Thrstu(AgeIn);
cout<<"第三位同学信息建立啦!"<cout<<"他(她)的年龄为:"<n=CIn(Onestu);
cout<<"友元函数声明他们的班级为:"<cout<<"*****************************************************"<cout<<"** 谢谢使用 **"<cout<<"*****************************************************"<
system("pause");
}

vc2005版本稍微有些不同:

#include
#include
using namespace std;
//构造学生类 属性有:学号,姓名,年龄,性别,班级号
class CStudent
{
public: //公有类型声明

char strName[12]; //姓名
char strStuNO[9]; //学号
unsigned int age; //年龄
bool isman; //性别

void SetScore(float s1,float s2,float s3)
//成员函数,设置三门课成绩
{
fScore[0]=s1;
fScore[1]=s2;
fScore[2]=s3;
}
float GetAverage(); //均分

CStudent(char str[9]) //第一个构造函数
{
strcpy_s(strStuNO,str);
}
CStudent(char str[9],char Name[12]) //第二个构造函数
{
strcpy_s(strStuNO,str);
strcpy_s(strName,Name);
}
//利用下面构造函数初始化年龄为18
CStudent(unsigned int IN_age) //第三个构造函数,
{
age=IN_age;
}
friend unsigned long int CIn(CStudent &CStu );

private:
float fScore[3];
static const unsigned long int ClassNum=20080715;
//班级号:你可以自己修改2008级07系15班,嘎嘎
//将上面数字改一下
};

float CStudent::GetAverage()
{
return (float)((fScore[0]+fScore[1]+fScore[2])/3.0);
}
unsigned long int CIn(CStudent &CStu )
{unsigned long int n;
n=CStu.ClassNum;

return n;
}
void main()
{
unsigned long int n;
int AgeIn;
char str1[9];
char str2[9],strN[12];
cout<<"*****************************************************"<cout<<"** C++学生类的构造 **"<cout<<"*****************************************************"<//以下是调用,为简化问题,只输入三个同学

cout<<"调用一个参数的构造函数,请输入学号:"<cin>>str1;
CStudent Onestu(str1);
cout<<"你输入的学号为:"<cout<<"第一位同学信息建立啦!"<system("pause");
//第二个同学信息
cout<<"调用两个参数的构造函数,请输入学号:"<cin>>str2;
cout<<"请输入姓名:"<cin>>strN;
CStudent Twostu(str2,strN);
cout<<"你输入的学号为:"<cout<<"你输入的姓名为:"<cout<<"第二位同学信息建立啦!"<system("pause");
//初始化年龄为18
cout<<"你可以输入年龄,建立以年龄为参数的对象:"<cout<<"请输入年龄(比如18岁):";
cin>>AgeIn;
CStudent Thrstu(AgeIn);
cout<<"第三位同学信息建立啦!"<cout<<"他(她)的年龄为:"<n=CIn(Onestu);
cout<<"友元函数声明他们的班级为:"<cout<<"*****************************************************"<cout<<"** 谢谢使用 **"<cout<<"*****************************************************"<
system("pause");
}

以下是运行结果:
*****************************************************
** C++学生类的构造 **
*****************************************************
调用一个参数的构造函数,请输入学号:
0803
你输入的学号为:0803
第一位同学信息建立啦!
请按任意键继续. . .
调用两个参数的构造函数,请输入学号:
0802
请输入姓名:
liming
你输入的学号为:0802
你输入的姓名为:liming
第二位同学信息建立啦!
请按任意键继续. . .
你可以输入年龄,建立以年龄为参数的对象:
请输入年龄(比如18岁):18
第三位同学信息建立啦!
他(她)的年龄为:18岁
友元函数声明他们的班级为:20080715
*****************************************************
** 谢谢使用 **
*****************************************************
请按任意键继续. . .

呵呵 qq:362047107 有问题可以常来问我啊~~

回答2:

谢谢你。。