关于此题的相关知识点以及更多题目,请查看👇
【C++学习】【持续更新 】史上最全C++学习总结(知识点+OJ练习讲解)
题目描述
面向对象程序设计的中心就是把客观事物抽象为程序世界里一段段代码,校园里的主体是学生,泛泛的学生包含很多属性,比如姓名、学号、所在学院、专业、性别、住址、联系电话。。。。。。等等,有这些属性,需要操纵它们的动作,比如读取姓名、设置姓名、读取学号、设置学号。。。。。。等等,这就是我们课堂说的属性和方法,对于属性和方法,我们又有访问控制方式限制,标示为public、private、protected等,根据以上的信息,请给出一个完整的学生类定义:Student,并测试输出n个该类对象的各项属性值。
输入
第一行表示要输入n个对象
后续各行输入不同对象的各属性值,每个对象一行。
输出
输出不同对象的各自属性
每个对象占一行
输入样例1
2
WangHai 2014150112 CSSE ComputerScience male South215 13760222222
LiBin 2013151292 CSSE SoftwareEngineering female South318 13677777777
输出样例1
WangHai 2014150112 CSSE ComputerScience male South215 13760222222
LiBin 2013151292 CSSE SoftwareEngineering female South318 13677777777
#include <iostream>
#include <cstring>
using namespace std;
class Student //类的界面,第2种方式
{
//private: 默认私有(实现了数据封装,外部不可访问private数据)(这部分的定义跟结构体是一致的)
char name[20];
char no[20];
char col[20];
char maj[20];
char sex[10];
char adr[20];
char phone[20];
public:
void set(char* nameval, char* noval, char *colval, char *majval,char *sexval,char *adrval,char* phoneval) //设置属性(提供接口给外部进行修改)
{
strcpy(name, nameval);
strcpy(no, noval);
strcpy(col, colval);
strcpy(maj, majval);
strcpy(sex, sexval);
strcpy(adr, adrval);
strcpy(phone, phoneval);
}
char* getname() //访问属性(提供接口给外部访问) //对字符串的访问,需要使用指针
{
return name;
}
char* getno()
{
return no;
}
char* getcol()
{
return col;
}
char* getmaj()
{
return maj;
}
char* getsex()
{
return sex;
}
char* getadr()
{
return adr;
}
char* getphone()
{
return phone;
}
}; //注意这里的分号
int main()
{
int t;
cin >> t;
while(t--)
{
Student s; //对象(类类型实例化)
char name[20];
char no[20];
char col[20];
char maj[20];
char sex[10];
char adr[20];
char phone[20];
cin >> name >> no >> col >> maj >> sex >> adr >> phone; //输入前需要先定义,可以重复名称,因为此变量只对此函数有效
s.set(name,no,col,maj,sex,adr,phone);
cout << s.getname() << " " << s.getno() << " "<< s.getcol() <<" " << s.getmaj() <<" " << s.getsex() <<" " << s.getadr() << " " << s.getphone() << endl; //调用对象的设置属性
}
}