帮忙做一个简单的c++题,谢谢!昨晚悬赏分50噢0!!

来源:百度知道 编辑:UC知道 时间:2024/06/05 11:07:51
定义一个学生类student,其中有3个数据成员(分别表示学生的学号sid、姓名sname、年龄sage),以及若干个成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。分别以下列两种方式来完成题设要求:
1。(1)void Set(char*id,char*name,int age);动态申请成员sid指向的内存空间,用id指向的字符串初始化sid指向的字符串;动态申请成员sname指向的内存空间,用name指向的字符串初始化sname指向的字符串;置成员sage初始值为age。id、name的缺省均为空指针(缺省值为0);sage缺省为0。
(2)void Output(char*id,char*name,int age):以“学号 姓名 年龄”的格式输出学生的信息,并释放相应的动态内存空间。
2。(1)student(char*id,char*name,int age);构造函数。动态申请成员sid指向的内存空间,用id指向的字符串初始化sid指向的字符串;动态申请成员sname指向的内存空间,用name指向的字符串初始化sname指向的字符串;置成员sage初始值为age。id、name的缺省值为空指针(缺省值为0);sage缺省值为0.
(2)~Student():析构函数。以“学号 姓名 年龄”的格式输出学生的信息,并释放出相应的动态内存空间。
实践结果:
请输入学生的学号、姓名、年龄,以空格间隔开:1000 张三 21
sid=1000
aname=张三
sage=21
press any key to continue

1.方法一

#include<iostream>
#include<string>
using namespace std;

class student //定义学生类
{
public:
//类成员函数,或称方法
void set(char *id,char *name,int age)
{
sid=id; sname=name; sage=age;
}
void output(char *id,char *name,int age)
{
cout<<"sid="<<sid<<endl<<"sname="<<sname<<endl<<"sage="<<sage<<endl;
}

private:
//类私有变量
char *sid; //学号
char *sname; //姓名
int sage; //年龄
};

void main()
{
student stu1; //构造对象,学生1
char *id=NULL, *name=NULL,stuid[15],stuname[15];
int age=0,stuage;

cout<<"请输入学生的学号 姓名 年龄,以空格隔开:"<<endl;
cin>>stuid>>stuname>>stuage;
id=stuid;
name=stuname;
age=stuage;

stu1.set(id,name,age);
stu1.output(id,name,ag