【C++_OJ_类和对象】学生类定义(类和对象)

关于此题的相关知识点以及更多题目,请查看👇


【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;    //调用对象的设置属性
    }
    
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ferry_xie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值