我是靠谱客的博主 合适水杯,最近开发中收集的这篇文章主要介绍第五章作业,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

5.18】编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师数据操作类teacher的基类。

#include<iostream>    

using namespace std;
class person {
//定义一个人物类
public:
void input()
//输入数据的成员函数
{ cout<<" 编号:";
cin>>number;
cout<<" 姓名:"; cin>>name;
}
void show()
//输出数据的成员函数
{ cout<<" 编号:"<<number<<endl;
cout<<" 姓名:"<<name<<endl;
}
private:
int number;
char name[10];
};
class student:public person{
//学生类,公有继承人物类
public:
void input()
{ person::input();
cout<<" 班号:";
cin>>depart;
cout<<" 成绩:";
cin>>degree;
}
void show()
{ person::show();
cout<<" 班号:"<<depart<<endl;
cout<<" 成绩:"<<degree<<endl;
}
private:
char depart[6];
int degree;
};
class teacher:public person{
//教师类,公有继承人物类
private:
char prof[10];
char depart[10];
public:
void input()
{ person::input();
cout<<" 职称:";
cin>>prof;
cout<<" 部门:";
cin>>depart;
}
void show()
{ person::show();
cout<<" 职称:"<<prof<<endl;
cout<<" 部门:"<<depart<<endl;
}
};
int
main()
//主函数
{ student s1;
teacher t1;
cout<<" 输入一个学生数据:n";
s1.input();
cout<<" 输入一个教师数据:n";
t1.input();
cout<<" 显示一个学生数据:n";
s1.show();
cout<<" 显示一个教师数据:n";
t1.show();
system("pause");
return 0;
}




【5.19】设计一个虚基类base,包含姓名和年龄私有数据成员以及相关的成员函数;由它派生出领导类leader,包含植物和部门私有数据成员以及相关的成员函数;再由base派生出工程师类engieer,包含职称和专业私有数据成员以及相关的成员函数;然后再由leaderengieer,派生出主任工程师类chairman。采用相关数据进行测试。

#include<iostream>
using namespace std;
class base{
//基类base
char *name;
//姓名
int age;
//年龄
public:
base()
//无参的构造函数
{}
base(char na[],int a)
//带参的构造函数
{ name=new char[strlen(na)+1];
strcpy(name,na);
age=a;
}
char*getname()
//成员函数
{ return name;}
int getage()
//成员函数
{ return age;}
~base()
//析构函数
{delete []name;}
};
class leader:virtual public base{
//领导类leader
//声明类base是leader的虚基类
char *job;
//职务
char *dep;
//部门
public:
leader()
//无参构造函数
{}
leader(char na[],int n,char jb[],char dp[]):base( na, n)
//带参构造函数
{ job=new char[strlen(jb)+1];
strcpy(job,jb);
dep=new char[strlen(dp)+1];
strcpy(dep,dp);
}
char*getjob()
{return job;}
char*getdep()
{return dep;}
~leader()
//析构函数
{ delete []job;
delete []dep;
}
};
class engineer:virtual public base{
//工程师类engineer
//声明类base是engineer的虚基类
char *major; //专业
char *prof;
//职称
public:
engineer()
//无参构造函数
{}
engineer(char na[],int n,char maj[],char pf[]):base( na, n)
//带参构造函数
{ major=new char[strlen(maj)+1];
strcpy(major,maj);
prof=new char[strlen(pf)+1];
strcpy(prof,pf);
}
char* getmajor()
{ return major;}
char* getprof()
{ return prof;}
~engineer()
//析构函数
{ delete []major;
delete []prof;
}
};
class chairman:public leader,public engineer{ //主任工程师类chairman
//chairman是leader和engineer的共同派生类,是base的间接派生类
public:
chairman()
//无参构造函数
{};
chairman(char na[],int n,char jb[],char dp[],char maj[],
char pf[]):base( na, n),leader(na,n,jb,dp),engineer( na, n, maj, pf)
{ }
//带参构造函数
void dispchairman()
{ cout<<getname()<<",年龄: "<<getage()<<"岁,部门: "<<getdep()
<<",职务: "<<getjob()<<endl;
cout<<" 职称: "<<getprof()<<",专业: "<<getmajor()<<endl;
}
};
int main()
{ chairman c1("陈",35,"处长","教务处","管理学","教授");
c1.dispchairman();
system("pause");
return 0;
}




 


最后

以上就是合适水杯为你收集整理的第五章作业的全部内容,希望文章能够帮你解决第五章作业所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部