首页 > 其他分享 >第十七日

第十七日

时间:2023-05-18 19:11:45浏览次数:26  
标签:20 函数 第十七 char Person NULL 空串

以人类Person为基类公有派生学生类Student和教师类Teacher,main(void)函数完成对其的测试。

Person类结构说明:

 
Person类的数据成员包括:
①私有数据成员:身份证号no(char [20]型),姓名name(char [20]型)。
Person类成员函数包括:
①有参构造函数Person(char *, char *)和拷贝构造函数Person(const  Person  &),其中有参构造函数参数默认值为空串或0(当参数为NULL时视为空串处理),输出信息“Person Constructor run”,拷贝构造函数输出信息“Person CopyConstructor run”
②析构函数,析构函数输出信息“Person Destructor run”
③公有函数成员:void  setNo(char *)和char * getNo()分别返回和设置身份证号no(当参数为NULL时视为空串处理)
④公有函数成员:void  setName(char *)和char*  getName()分别返回和设置姓名name(当参数为NULL时视为空串处理)
⑤公有成员函数void show() const用于显示人的基本信息,显示格式为:
No=身份证号,Name=姓名

#include <cmath>
int i;
class Student : private Person
{
    private:
    char sNo[10];
    char className[20];
    double score = 0;
    public:
    Student(char *a = NULL,char *b = NULL, char *c = NULL, char *d = NULL, double x = 0)
    {
        for(i = 0; i < 20; i++)
            {
                no[i] = a[i];
                name[i] = b[i];
                className[i] = d[i];
            }
        for(i = 0; i < 10; i++)
            sNo[i] = c[i];
        score = x;
        cout << "Student Constructor run" << endl;
    }
    Student(const Student &r):Person(r)
    {
        for(i = 0; i < 20; i++)
            {
                no[i] = r.no[i];
                name[i] = r.name[i];
                className[i] = r.className[i];
            }
        for(i = 0; i < 10; i++)
            sNo[i] = r.sNo[i];
        score = r.score;
        cout << "Student CopyConstructor run" << endl;
    }
    ~Student()
    {
        cout << "Student Destructor run" << endl;
    }
    void setSNo(char *a = NULL)
    {
        for(i = 0; i < 10; i++)
           sNo[i] = a[i];
    }
    char *getSNo()
    {
        return sNo;
    }
    void setClassName(char *a = NULL)
    {
        for(i = 0; i < 20; i++)
           className[i] = a[i];
    }
    char *getClassName()
    {
        return className;
    }
    void setScore(double x = 0)
    {
        score = x;
    }
    double getSocre()
    {
        return score;
    }
    void show() const
    {
        cout << "No=" << no << ",Name=" << name << endl;
        cout << "SNo=" << sNo << ",ClassName=" << className << ",Score=" << round(score) << endl;
    }
};
class Teacher : private Person
{
    private:
    char tNo[10];
    char departmentName[20];
    double wages;
    public:
    Teacher(char *a = NULL,char *b = NULL, char *c = NULL, char *d = NULL, double x = 0)
    {
        for(i = 0; i < 20; i++)
            {
                no[i] = a[i];
                name[i] = b[i];
                departmentName[i] = d[i];
            }
        for(i = 0; i < 10; i++)
            tNo[i] = c[i];
        wages = x;
        cout << "Teacher Constructor run" << endl;
    }
    Teacher(Teacher &r):Person(r)
    {
        for(i = 0; i < 20; i++)
            {
                no[i] = r.no[i];
                name[i] = r.name[i];
                departmentName[i] = r.departmentName[i];
            }
        for(i = 0; i < 10; i++)
            tNo[i] = r.tNo[i];
        wages = r.wages;
        cout << "Teacher CopyConstructor run" << endl;
    }
    ~Teacher()
    {
        cout << "Teacher Destructor run" << endl;
    }
    void setTNo(char *a = NULL)
    {
        for(i = 0; i < 10; i++)
            tNo[i] = a[i];
    }
    char * getTNo()
    {
        return tNo;
    }
    void setDepartmentName(char *a = NULL)
    {
        for(i = 0; i < 20; i++)
            departmentName[i] = a[i];
    }
    char *getDepartmentName()
    {
        return departmentName;
    }
    void setWages(double a)
    {
        wages = a;
    }
    double getWages()
    {
        return wages;
    }
    void show() const
    {
        cout << "No=" << no << ",Name=" << name << endl;
        cout << "TNo=" << tNo << ",DepartmentName=" << departmentName << ",Wages=" << round(wages) << endl;
    }
};

 

标签:20,函数,第十七,char,Person,NULL,空串
From: https://www.cnblogs.com/gjsgjs/p/17413057.html

相关文章

  • 第十七天打卡
    一、问题描述求爱因斯坦数学题.有一条长阶,若每步跨2阶,则最后剩1阶;若每步跨阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨7阶,则最后正好一阶不剩。请问在1~N内,有多少个数满足?二、设计思路1、输入阶梯数,然后定义i从7开始判断是否满足条件依次用if语句判断。三、程序......
  • 第十七天第一个问题
    问题描述:6-3【CPP0005】定义日期类Date定义一个日期类Date,main()函数完成对其的测试。Date类结构说明: Date类的数据成员包括:①私有数据成员:年year(int型),月month(int型),日day(int型)。Date类成员函数包括:①定义有参构造函数Date(int,int,int)和拷贝构造函数Date(D......
  • 打卡第十七天
    内联函数求圆的面积一、1.定义一个函数作为求圆面积的内联函数二、三、#include<iostream>usingnamespacestd;constdoublepai=3.1415926;inlinedoublemianji(doubler){ returnpai*r*r;}intmain(){ intR; cin>>R; doublearea=mianji(R); cout<<""<<area&......
  • kettle从入门到精通 第十七课 kettle Transformation executor
    Transformationexecutor步骤是一个流程控件,和映射控件类似却又不一样。1、子转换需要配合使用从结果获取记录和复制记录到结果两个步骤,而子映射需要配合映射输入规范和映射输出规范使用。如下子转换实现的功能是计算x+y的值 2、从结果获取记录1)步骤名称:自定义2)字段:设置从......
  • Python之路【第十七篇】:Django【进阶篇】
    原博客笔记链接:https://www.cnblogs.com/wupeiqi/articles/5246483.html 1.Model到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞:创建数据库,设计表结构和字段使用MySQLdb来连接数据库,并编写数据访问层代码业务逻辑层去调用数据访问层执行数......
  • c++打卡第十七天
    一、问题描述二、设计思路①、对于每个小孩得所得到的糖果数我们可以定义一个数组存储它们。②、需要进行循环结构,同时循环停止的条件为10个小孩得糖果数相同。③、小孩所得得糖果为奇数时需要向老师要一块后才再次分一半给后一个小朋友,这时候我们需要选择结构来实现。④、我们......
  • 每天打卡一小时 第十七天 编译四部曲
    第一部曲自然语言路线图分块,能走通的节点合并为一块,记块的总数为num1。然后去掉一个节点后,再次分块,记块的总数为num2。如果num2-1(去掉了单独的一个节点)与num1相等或num2(去掉该节点之后,该节点所在的块仍互通)等于num1,则不影响连通性。第二部曲流程图第三部曲代码#include<io......
  • 每日打卡一小时(第十七天)
    一.问题描述pta多态实验:1.定义一个整数加法器类Adder,对其重载运算符“+”、“++”,main(void)函数完成对其的测试。#include<iostream>usingnamespacestd;/*请在这里填写答案*///主函数intmain(void){intx;Addera1,a2(a1);cin>>x;(a1++).show......
  • 肯天Chem-Trend第十七届中国国际聚氨酯展览会
    中国国际聚氨酯展览会自1995年创办以来,已经成功在北京、上海、深圳、南京、广州等地举办。展览会的壮大也见证了中国聚氨酯行业的蓬勃发展,聚氨酯行业供应商都选择本展览会作为平台展示其产品及行业成果。肯天Chem-Trend在聚氨酯行业有近60年的历史,当时我们的创始人对汽车行业聚氨......
  • 广州大学第十七届ACM大学生程序设计竞赛 L. 因子模仿 - hard version 线段树维护矩阵
    传送门大致思路:  观察发现,茉美香胜利会叠加对手所有状态,茉美香失败会被对手叠加所有状态。我们可以用矩阵[a1,a2,b1,b2]表示两个人的状态(其中a1,a2表示茉美香,b1,b2表示对手)茉美香赢了之后的状态是[a1+b1,a2+b2,b1,b2],茉美香输了之后的状态是[a1,b1,a1+b1,......