0903作业+思维导图

2024-09-04 07:36
文章标签 思维 作业 导图 0903

本文主要是介绍0903作业+思维导图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、作业

1》多态的实现

1、代码

#include <iostream>using namespace std;
//父类
class Person
{
public:string name;int age;
public:Person(){}Person(string n,int a):name(n),age(a){}~Person(){}//纯虚函数virtual void show() = 0;
};
//子类1
class Stu:public Person
{
private:int score;    //成绩int ranking;  //排名
public:Stu(){}Stu(int s,int r,string n,int a):Person(n,a),score(s),ranking(r){}~Stu(){}void show(){cout<<name<<":年龄:"<<age<<",成绩"<<score<<",总排名"<<ranking<<endl;}
};
//子类2
class Teacher:public Person
{
private:int num;    //所带班级人数int wages;  //薪资
public:Teacher(){}Teacher(int num,int w,string n,int a):Person(n,a),num(num),wages(w){}~Teacher(){}void show(){cout<<name<<":年龄:"<<age<<",薪资"<<wages<<",所带班级总人数"<<num<<endl;}
};
//全局函数
void fun(Person &s)
{s.show();
}
int main()
{Stu s1(90,7,"zhangsan",16);Teacher t1(41,5600,"xiaoming",35);fun(s1);fun(t1);return 0;
}

2、运行截图

2》自己封装栈和队列

1、栈的实现代码

#include <iostream>using namespace std;
//栈类
class Stack
{
private:int *ptr; //数据指针int top;  //栈顶元素数int max;
public:Stack():top(-1),max(20){ptr = new int[max];   //申请空间cout<<"无参构造"<<endl;}~Stack(){delete ptr;           //释放空间cout<<"析构函数"<<endl;}Stack(Stack &s):ptr(new int(*s.ptr)),top(s.top),max(s.max){cout<<"拷贝构造函数"<<endl;}//写入初始栈内容void operator=(int a){//判满if(a>max){cout<<"error"<<endl;return;}//写入内容for(int i=0;i<a;i++){cout<<"请输入第"<<i+1<<"位数为:";cin>>ptr[i];top++;}}//栈顶元素访问int stack_top(){return ptr[top];}//判空bool empty(){return top==-1;}//元素数int size(){return top+1;}//向栈顶插入元素void push(int n){//判满if(top==max-1){cout<<"无法继续插入"<<endl;return;}++this->top;this->ptr[top] = n;}//删除栈顶元素void pop(){//判空if(empty()){return;}this->top--;}void show(){for(int i=0;i<top+1;i++){cout<<ptr[i]<<"    ";}cout<<endl;}
};int main()
{Stack s1;   //实例化一个自定义的栈类s1.operator=(5);//初始化cout<<s1.stack_top()<<endl;cout<<s1.size()<<endl;s1.push(7);    //入栈s1.show();s1.pop();      //出栈s1.show();cout<<"***************"<<endl;Stack s2=s1;s2.show();return 0;
}

2、栈的运行结果

3、队列的实现代码

#include <iostream>using namespace std;
//队列类
class Queue
{
private:int size;      //队列最大容量int num;      //队列内元素数int *ptr;     //容器
public:Queue():size(20),num(0){ptr = new int[this->size];cout<<"无参构造"<<endl;}~Queue(){delete ptr;           //释放空间cout<<"析构函数"<<endl;}Queue(Queue &q):size(q.size),num(q.num),ptr(new int(*q.ptr))    //深拷贝{cout<<"拷贝构造函数"<<endl;}int front(){if(empty()){cout<<"队列为空无法返回"<<endl;return -1;}return ptr[0];}int back(){if(empty()){cout<<"队列为空无法返回"<<endl;return -1;}return ptr[num-1];}bool empty(){return num==0;}int queue_size(){return num;}void push(int n){//判满if(num>=size){cout<<"容器已满无法继续加入"<<endl;return;}this->num++;this->ptr[num-1] = n;cout<<"添加完毕"<<endl;}void pop(){//判空if(empty()){cout<<"容器为空无法删除"<<endl;return;}for(int i=0;i<this->num;i++){this->ptr[i]=this->ptr[i+1];}this->num--;cout<<"删除完毕"<<endl;}void show(){for(int i=0;i<num;i++){cout<<ptr[i]<<"  ";}cout<<endl;}
};int main()
{Queue q1;q1.push(1);q1.push(2);q1.push(3);q1.show();q1.pop();q1.show();cout<<q1.front()<<"  "<<q1.back()<<endl;Queue q2=q1;q2.show();return 0;
}

4、队列的实现结果

二、思维导图(继承,多态)

这篇关于0903作业+思维导图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1135397

相关文章

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

颠覆你的开发模式:敏捷思维带来的无限可能

敏捷软件开发作为现代软件工程的重要方法论,强调快速响应变化和持续交付价值。通过灵活的开发模式和高效的团队协作,敏捷方法在应对动态变化和不确定性方面表现出色。本文将结合学习和分析,探讨系统变化对敏捷开发的影响、业务与技术的对齐以及敏捷方法如何在产品开发过程中处理持续变化和迭代。 系统变化对敏捷软件开发的影响 在敏捷软件开发中,系统变化的管理至关重要。系统变化可以是需求的改变、技术的升级、

Java高级Day38-网络编程作业

112.网络编程作业 //1.使用字符流的方式,编写一个客户端程序和服务器端程序//2.客户端发送"name",服务器端接收到后,返回"我是nova"//3.客户端发送"hobby",服务器端接收到后,返回"编写java程序"//4.不是这两个问题,回复"你说啥呢"​​===============//客户端//===============public class SocketT

0906作业+思维导图梳理

一、作业: 1、创捷一个类似于qq登录的界面 1)源代码 #include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget){ui->setupUi(this);//QPushbutton:登录、退出this->join = new QP

[机缘参悟-222] - 系统的重构源于被动的痛苦、源于主动的精进、源于进化与演进(软件系统、思维方式、亲密关系、企业系统、商业价值链、中国社会、全球)

目录 前言:系统的重构源于被动的痛苦、源于主动的精进、源于进化与演进 一、软件系统的重构 1、重构的定义与目的 2、重构的时机与方法 3、重构的注意事项 4、重构的案例分析 二、大脑思维的重构 1、大脑思维重构的定义 2、大脑思维重构的方法 3、大脑思维重构的挑战与前景 三、认知的重构 1、定义 2、目的 3、方法 四、实例 五、总结 四、婚姻家庭的重构 1、婚

每日一题~cf 970 div3 (A思维,B小模拟,C二分,D排列数建图成环,E 26个字母暴力+前缀和,F 逆元,G 数论gcd )

A 题意: 有 a 个1 ,b 个2.问是否能将这些数划分为两个数值相等的集合。 输出 YES 或者 NO —————— 问题等价于 将数组 分成两个数值相同的数组。所以sum 应该是偶数。也就是说 1 的个数是偶数。在i1的个数是偶数的情况下,将 2 分成两份,如果2 的个数是偶数,OK。如果是奇数那么需要1来补齐,如果1 的个数大于等于2那么可以补齐。(1 的个数是偶数,需要2个1来补齐,剩下

散户炒股票为什么进步慢,学习程序化交易思维

炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取股票实时数据和历史数据 Python炒股自动化(3):分析取回的实时数据和历史数据 Python炒股自动化(4):通过接口向交易所发送订单 Python炒股自动化(5):通过接口查询订单,查询账户资产 散户炒股的常见难题

数业智能心大陆告诉你如何培养孩子的批判性思维?

现今的教育体系自小学起便强调培养孩子的批判性思维,这种能力被视为在复杂世界中生存和发展的关键。在当今信息爆炸的时代,它能让我们在海量信息中辨别真伪、深入思考并做出明智决策。如今,如数业智能心大陆产出的AI 心理咨询平台的出现为培养孩子批判性思维提供了新可能,其通过互动引导孩子思考,助力孩子提升批判性思维能力。 什么是批判性思维呢? 批判性思维是一种思考方式,它能够使我们在接收信

2024.9.6 作业

1> 手写unique_ptr指针指针 #include <iostream>using namespace std;template <typename T>class my_unique_ptr{public:explicit my_unique_ptr(T *p = nullptr) noexcept // 构造函数{ptr = p;}~my_unique_ptr() noexcep

9月6号作业

1:.h文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QWidget> #include<QIcon> //图标类 #include<QLabel> //标签类 #include<QMovie> //动图类 #include<QLineEdit> //行编辑器类