首页 > 其他分享 >打卡3

打卡3

时间:2023-04-24 20:23:14浏览次数:29  
标签:name show int age 打卡 void string

人与学生

设计一个类people,有保护数据成员:age(年龄,整型),name(姓名,string),行为成员:两个构造函数(一个默认,另一个有参数);默认析构函数;void setValue(int m, string str)给age和name赋值;void display()输出age和name。
设计一个学生类student,公有继承类people,有私有成员:ID(学号,整型),行为成员:两个构造函数(一个默认,另一个有参数);默认析构函数;void setID(int m)给ID赋值;void displayID()输出ID。
在main函数定义学生对象,给对象初始化赋值或调用setValue()和setID()赋值,并输出学生的信息。

#include <iostream>
using namespace std;
class Person
{
protected:
	string name;
	int age;
public:
	Person(){}
	Person(int a,string n):age(a),name(n){}
	~Person(){}
	void setValue(int m, string str) { age = m; name = str; }
};
class Student:public Person
{
private:
	int id;
public:
	Student() {}
	Student(int a, string n,int i) : Person(a,n),id(i){}
	~Student() {}
	void setid(int m) { id = m; }
	void display()
	{
		cout << "姓名:" << name << endl;
		cout << "年龄:" << age << endl;
		cout << "学号:" << id << endl;
	}
};
int main()
{
	Student s(19, "郭永刚", 10001);
	s.display();
}

多继承

学生具有姓名,班级,学号等属性,有上课等行为;教师具有工号,工资等属性,有教课等行为;助教既是学生,又是老师,具有学生和老师的双重属性。请用类的多继承机制实现上述问题

#include <iostream>
using namespace std;

class Student
{
protected:
	int id;
	string name;
	int grade;
public:
	Student() { cout << "上课" << endl; }
	Student(int i, string n,int g):id(i),name(n),grade(g){cout << "上课" << endl;}
	~Student() {}
	
	
};
class Teacher
{
protected:
	int Tid;
	int gongzi;
public:
	Teacher(){ cout << "教学" << endl; }
	Teacher(int t,int a):Tid(t),gongzi(a){ cout << "教学" << endl; }
};
class accont:public Student,public Teacher
{
public:
	accont(int i, string n, int g, int T, int a) :Student(i, n, g), Teacher(T, a) { cout << "助教即上课又教学" << endl; }

void display()
	{
	
		cout << "学号:" << id << endl;
		cout << "姓名:" << name << endl;
		cout << "年级:" << grade << endl;
		cout << "工号:" << Tid << endl;
		cout << "工资:" << gongzi << endl;
	}
};
int main()
{
	accont s(10001, "郭永刚", 16,20001,30000);
	s.display();
}

虚基类应用

编写动物类animal,受保护数据成员name(名称,string),age(年龄,int),公有函数成员void show(),输出“Animal, 名称, 年龄”;公有派生鱼类fish和兽类beast,鱼类增加受保护数据成员velocity(速度,int),公有函数成员void show(),输出“Fish, 名称, 年龄, 速度”;兽类增加受保护数据成员appetite(食量,int),公有函数成员void show(),输出“Beast, 名称, 年龄, 食量”;鱼类和兽类再公有派生两栖动物类amphibious,无添加数据成员,有公有函数成员void show(),输出 “Fish, 名称, 年龄, 速度”(第一行),“Beast, 名称, 年龄, 食量”(第二行)。每个类均有一个构造函数用于设置该类所有数据成员的属性值。
【输入形式】
第一个动物名称,第二个动物名称,第一个动物年龄,第二个动物年龄,速度信息,食量信息
【输出形式】
作为鱼类的信息输出
作为兽类的信息输出
【输入样例】
eyu wugui 10 100 120 300

【输出样例】
Fish, eyu, 10, 120
Beast, eyu, 10, 300
【样例说明】
输出时每项信息后的逗号为英文”,”,逗号后跟一个空格

eyu wugui 10 100 120 300
Fish, eyu, 10, 120
Beast, eyu, 10, 300
请按任意键继续. . .

wugui chanchu 120 3 2 3
Fish, wugui, 120, 2
Beast, wugui, 120, 3
请按任意键继续. . .

wkjf djkjf 12 14 200 400
Fish, wkjf, 12, 200
Beast, wkjf, 12, 400
请按任意键继续. . .

#include <iostream>
using namespace std;

class animal
{
protected:
	string name;
	int age;
public:
	animal(){}
	animal(string n,int a):name(n),age(a){}
	 virtual void show()
	{
		 cout << "Animal, " << name << ", " << age << " " << endl;
	}
};
class fish:public animal
{
protected:
	int veloc;
public:
	fish() {}
	fish(string n, int a, int v) :animal(n, a), veloc(v){}
	void show()
	{
		cout << "Fish, " << name << ", " << age << " , " << veloc << endl;;
	}
};
class Beast :public animal
{	
protected:
	int app;
public:
	Beast() {}
	Beast(string n, int a,int p):animal(n,a),app(p){}
	void show()
	{
		cout << "Beast, " << name << ", " << age << " , " << app << endl;
	}
	
};
int main()
{
	string name1, name2;
	int age1, age2, v, p;
	cin >> name1 >> name2 >> age1 >> age2 >> v >> p;
	fish f(name1, age1, v);
	Beast b(name2, age2, p);
	f.show();
	b.show();
}

标签:name,show,int,age,打卡,void,string
From: https://www.cnblogs.com/gyg1222/p/17350762.html

相关文章

  • 每日打卡
    #include<stdio.h>voidPrintN(intN);intmain(){intN;scanf_s("%d",&N);PrintN(N);return0;}voidPrintN(intN){for(inti=0;i<N;i++){printf("%d",i+1);if(i!=N-1)......
  • 第九天打卡
    问题: 算法设计:直接根据题意暴力写出源代码:#include<stdio.h>intmain(){ inta; doubleb=0.0; if(a<=3500) printf("不征收"); else { if(a>=3500&&a<=4500) { b=1500*0.03+(a-1500)*0.1; } if(a>=4500&&a<=9000) { b=1500*0.03+3......
  • 建民の每日打卡13
    一、问题描述 二、流程设计1.将数据存入数组2.当不满足“所有人一样多”的条件时,通过循环对数组中的每个元素进行判断并处理3.满足条件后输出结果三、流程图设计 四、代码实现#include<iostream>usingnamespacestd;intjudge(intc[]){ inti; for(i=0;i<10;i++) if......
  • 第八天打卡
    一、问题描述对N个整数(数据由键盘输入)进行升序排列。二、设计思路1.定义一个数组用来储存数据;2.对于数据进行每两个进行比较大小,小的往前走一位;3.两层循环嵌套,第一层控制循环次数,第二层进行比较。三、程序流程图四、代码实现 ......
  • 每天打卡一小时 第十五天 多态
    6-2【CPP0025】以点类Point及平面图形类Plane为基础设计圆类Circle分数 10全屏浏览题目切换布局作者 C++多态编程单位 石家庄铁道大学以点类Point及平面图形类Plane为基类公有派生圆类Circle,main(void)函数完成对其的测试。  设计思路 ......
  • 打卡1
    问题描述:编写用牛顿迭代法求方程根的函数。方程为ax^3+bx^2+cx+d=0,系数a,b,c,d由主函数输入。求x在1附近的一个实根。求出根后由主函数输出。牛顿迭代法的公式是:x=x0-f(x0)/f’(x0),设迭代到|x-x0|<=10^-5时结束。流程图: 伪代码:inputa,b,c,dx0<-1.1forvoidx<-x0-(a*x0......
  • 每日打卡一小时(第十五天)多态
    一.问题描述补充下列代码,使得程序的输出为:A:3A:15B:53155类和函数接口定义: 参见裁判测试程序样例中的类和函数接口。 裁判测试程序样例: #include<iostream>usingnamespacestd;classCMyClassA{intval;public:CMyClassA(int);voidvirtualprin......
  • 打卡9
    折半查找#include<stdio.h>#defineN10intmain(){ inta[N]={-3,4,7,9,13,45,67,89,100,180},low=0,high=N-1,mid,k=-1,m; printf("a数组中的数据如下:\n"); for(inti=0;i<N;i++) printf("%d",a[i]); printf("\n"); printf("Ente......
  • 周一打卡
    问题描述:有一百块钱,要买100只鸡。公鸡5元一只,母鸡3元一只,小鸡1元三只。问要买几只公鸡、母鸡和小鸡?设计思路:这是一道数学问题,可以用穷举法解决。首先,循环公鸡的数量,然后在循环母鸡的数量,最后计算小鸡的数量,判断是否符合题目要求(钱数和数量)。程序流程图:1.循环公鸡的数......
  • 编程打卡:来玩玩Ruby语言吧!
    编程打卡:来玩玩Ruby语言吧!打印字符串"Hello,World."puts('Hello,World')Hello,World=>nil在字符串"Hello,Ruby."中,找到"Ruby."的所在下标'Hello,Ruby.'.index('Ruby')=>7打印你的名字十遍foriin1..10puts('......