关于对象数组的应用(创建一个学生信息采集系统)

来源:互联网 发布:类似snapseed的软件 编辑:程序博客网 时间:2024/06/06 07:33
对象数组要不就不用构造函数(系统默认自己创建一个),要么就建立一个带默认值的缺省的构造函数
#include<iostream>
#include<string>
#include<cstdlib>
const int N=100;
using namespace std;
class date{

public:
 int year;
 int month;
 int day;
};
class student:public date
{
 char*name;
 int sex;
 date x;
 long phone;
public:
 student();
 student(char*p,int s,int y,int m,int d,long h);
 ~student();
 student(const student&p);
 void input();
 void show();
};
student::student()
{
 char*name="no name";
 int sex=0;
 x.day=0;
 x.month=0;
 x.year=0;
 phone=0;
};
student::student(char*p,int s,int y,int m,int d,long h)
{
 name=new char[strlen(p)+1];
 strcpy(name,p);
 sex=s;
 day=d;
 year=m;
 month=y;
 phone=h;
}
student::~student()
{
 cout<<"it has been destoried";
 delete []name;
 name=NULL;
}
student::student(const student&p)
{
 name=new char[strlen(p.name)+1];
 strcpy(name,p.name);
 sex=p.sex;
 phone=p.phone;
 
}
void student::input()
{
 char*p;
 int s,h;
 int y,m,d;
 cout<<"请输入姓名:"<<endl;
 cin>>p;
    name=new char[strlen(p)+1];
 strcpy(name,p);
 cout<<"请输入性别(0代表女性,1代表女性)"<<endl;
 cin>>s;
 sex=s;
 cout<<"请输入出生日期:"<<endl;
 cin>>y>>m>>d;
 day=d;
 year=y;
 month=m;
 cout<<"请输入联系电话:"<<endl;
 cin>>h;
 phone=h;
}
void student::show()
{
 cout<<name<<endl;
 cout<<year<<"-"<<month<<"-"<<day<<endl;
 cout<<sex<<endl;
 cout<<phone<<endl;
}
int main()
{
 student stu[N];
 int i,j;
 cin>>j;
 if(j>100)
 {
   cout<<"it's over";
   abort();
 }
 for(i=0;i<j;i++)
 {
  stu[i].input();
  stu[i].show();

 }
 return 0;
}
1 0
原创粉丝点击