这个程序比起上一个又变好了一点,我创建了两个类,birth类 和其他student类,birth类负责输入生日的年月日,student类负责其它部分,以下代码附上
//2、设计一个Student类
//(1)基本信息:学号、姓名、性别、出生日期、院系、专业; 数据成员中:“日期”要声明为一个内嵌子对象
//(2)Student类要包含:构造函数、内联成员函数、带默认参数的构造函数、复制构造函数
//(3)成员函数基本功能有: ? A)可以从键盘输入学生的基本信息;
//? B)定义一个函数setInfo(形参表),可以修改学生的一些基本信息函数,例如:姓名,学号可以作修改;
//? C)包括成员函数void show()显示学生信息;
//【提示】 注意带默认参数值的构造函数的声明与定义;
//从键盘输入基本信息,调用带参数的构造函数生成学生对象;
//不同类型的信息须使用合理的变量类型,姓名、院系等可定义为字符串,使用string来定义。
#include <iostream>
#include <string>
using namespace std;
class birth{
public:
void sety(int y) {
year=y;
}
int gety() {
return year;
}
void setm(int m) {
month=m;
}
int getm() {
return month;
}
void setd1(int d1) {
day=d1;
}
int getd1() {
return day;
}
void show1() {
cout<<"你的出生日期分别为"<<gety()<<"年 "<<getm()<<"月 "<<getd1()<<"日 "<<endl; }
private:
int year;
int month;
int day;
};
class student{
public:
student() {}
student(const student &p) {}
~student() {}
void setID (int a) {
m_ID=a;
}
int getID() {
return m_ID;
}
void setname(string f) {
m_name=f;
}
string getname() {
return m_name;
}
void setsex(string b) {
m_sex=b;
}
string getsex() {
return m_sex;
}
void setbirthday(int e) {
m_birthday=e;
}
string getbirthday() {
return m_birthday;
}
void setschool(string c){
m_school=c;
}
string getschool(){
return m_school;
}
void setsubject(string d) {
m_subject=d;
}
string getsubject() {
return m_subject;
}
void show2() {
cout<<"学生的学号为:"<<getID()<<endl;
cout<<"学生的姓名为:"<<getname()<<endl;
cout<<"学生的性别为:"<<getsex()<<endl;
//cout<<"学生的出生日期为:"<<"年"<<class::birth.gety()<<"月"<<birth.getm()<<"日"<<birth.getd()<<endl;
cout<<"学生的学院为:"<<getschool()<<endl;
cout<<"学生的专业为:"<<getsubject()<<endl;
}
private:
int m_ID;
string m_name;
string m_sex;
string m_birthday;
string m_school;
string m_subject;
};
int main() {
int a,y,m,d1;
string b,c,d,f;
cout<<"请分别输入学生的学号,姓名,性别,出生日期,学院,专业"<<endl;
cin>>a>>f>>b>>y>>m>>d1>>c>>d;
student s1;
s1.setID(a);
s1.setname(f);
s1.setsex(b);
birth c1;
c1.sety(y);
c1.setm(m);
c1.setd1(d1);
//s1.setbirthday();
s1.setschool(c);
s1.setsubject(d);
c1.show1();
s1.show2();
return 0;
}