永发信息网

C++编程,帮忙改改代码

答案:1  悬赏:10  手机版
解决时间 2021-05-11 20:15
  • 提问者网友:萌卜娃娃
  • 2021-05-11 12:59

#include "iostream.h"
#include "string.h"
#define N 5
class Student
{
private :
int Num;
char Name[20];
char Profession[40];
int Sorce;

public :
Student(int num,char *name,char *profession,int sorce);
Student();
void Register();
void ShowMe();
};

Student::Student(int num,char *name,char *profession,int sorce)
{
Num=num;
strcpy(Name,name);
strcpy(Profession,profession);
Sorce=sorce;


}
void Student::Register()
{
cout<<"请输入学生信息:"<<endl;
}
void Student::ShowMe()
{
cout<<Num<<" "<<Name<<" "<<Profession<<" "<<Sorce<<endl;
}


void main()
{
Student student1(1,"张三","软件",98);
Student st[N];
int num,i;
char name[20];
char profession[40];
int sorce;

cout<<"请输入学号,姓名,专业,分数"<<endl;

for(i=0;i<N;i++)
{
cin>>num>>name>>profession>>sorce;
st[i].Student(num,name,profession,sorce);
}
cout<<"学号\t姓名\t专业\t成绩\n";
for(i=0;i<N;i++)
{
st[i].ShowMe();
}
student1.ShowMe();

}

怎么改才能将构造函数的值输出,又能将st[N]的信息输出。

最佳答案
  • 五星知识达人网友:纵马山川剑自提
  • 2021-05-11 13:21

对象类数组不能这样做,你只能在类里在建一个成员函数,实现赋值,还有,你得无参构造函数缺少函数体。


修改后的程序如下:


#include<iostream>
#include<cstring>
#define N 5
using namespace std;
class Student
{
private :
int Num;
char Name[20];
char Profession[40];
int Sorce;
public :
Student(int num,char *name,char *profession,int sorce); //带参构造函数
void SetStudent(int num,char *name,char *profession,int sorce);
Student(){};//无参构造函数
void Register();
void ShowMe();
};
Student::Student(int num,char *name,char *profession,int sorce)
{
Num=num;
strcpy(Name,name);
strcpy(Profession,profession);
Sorce=sorce;
}
void Student::Register()
{
cout<<"请输入学生信息:"<<endl;
}
void Student::ShowMe()
{
cout<<Num<<" "<<Name<<" "<<Profession<<" "<<Sorce<<endl;
}
void Student::SetStudent(int num,char *name,char *profession,int sorce)
{
Num=num;
strcpy(Name,name);
strcpy(Profession,profession);
Sorce=sorce;
}



void main()
{
Student student1(1,"张三","软件",98);
Student st[N];
int num,i;
char name[20];
char profession[40];
int sorce;
cout<<"请输入学号,姓名,专业,分数"<<endl;
for(i=0;i<N;i++)
{
cin>>num>>name>>profession>>sorce;
st[i].SetStudent(num,name,profession,sorce);
}
cout<<"学号\t姓名\t专业\t成绩\n";
for(i=0;i<N;i++)
{
st[i].ShowMe();
}
student1.ShowMe();
}
结果如下:


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯