项目一

article/2025/9/25 22:35:09
/*上机内容:
上机目的:
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 作    者:  徐本锡
* 完成日期:2013 年 6 月  3日
* 版 本 号:v1.0
*
* 输入描述:
* 问题描述:
【项目1】根据给出的基类Animal和main()函数。
1、根据给出的main()函数和运行结果的提示,设计出相关的各个类,注意观察运行结果,提取出每个类中需要的数据成员,
并匹配上需要的成员函数。
2、显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的。改造程序,使Animal设计为抽象类,
这时main()函数中p = new Animal();将出错,将此行删除。
3、每一个Animal的派生类都有一个“名字”数据成员,这一共有的成员完全可以由基类提供改造上面的程序,
将这一数据成员作为抽象类Animal数据成员被各派生类使用。
下面是给出的基类Animal和main()函数:
* 程序输出:
* 算法设计:
程序代码:*/
#include <iostream>
#include<string>
using namespace std;
class Animal
{
public:
virtual void AnimalName(){cout<<"Animal  ";} 
virtual void cry()
{
cout<<"不知哪种动物,让我如何学叫?"<<endl;
}
};
class Mouse :public Animal
{
public :
Mouse (string n, char s):name (n),sex(s){}
void AnimalName(){cout<<"Mouse   ";}
void cry(){cout<<"我是小老鼠我的名字叫"<<name<<"我的性别是" <<sex<<"我的叫声是“吱吱吱”";} 
protected:
string  name; char sex;
};
class Cat :public Animal
{
public :
Cat (string n):name (n){}
void AnimalName(){cout<<"Cat   ";}
void cry(){cout<<"我是小猫我的名字叫"<<name<<"我的叫声是“喵喵喵”";} 
protected:
string  name; 
};
class Dog:public Animal
{
public :
Dog (string n):name (n){}
void AnimalName(){cout<<"Dog   ";}
void cry(){cout<<"我是小狗我的名字叫"<<name<<"我的叫声是“汪汪汪”";} 
protected:
string  name;
};
class Giraffe :public Animal
{
public :
Giraffe(string n, char s):name (n),sex(s){}
void AnimalName(){cout<<"Mouse   ";}
void cry(){cout<<"我是长颈鹿我的名字叫"<<name<<"我的性别是" <<sex<<"我是小哑巴";} 
protected:
string  name; char sex;
};
int main( )
{
Animal *p;
p = new Animal();
p->cry();
cout<<endl;
Mouse m1("Jerry",'m');
p=&m1;
p->cry();
cout<<endl;
Mouse m2("Jemmy",'f');
p=&m2;
p->cry();
cout<<endl;
Cat c1("Tom");
p=&c1;
p->cry();
cout<<endl;
Dog d1("Droopy");
p=&d1;
p->cry();
cout<<endl;
Giraffe g1("Gill",'m');
p=&g1;
p->cry();
cout<<endl;
system("pause");
return 0;
}

问题一:

问题二:

 

#include <iostream>
#include<string>
using namespace std;
class Animal
{
public:
virtual void cry()const =0;
};
class Mouse :public Animal
{
public :
Mouse (string n, char s):name (n),sex(s){}
void cry()const{cout<<"我是小老鼠我的名字叫"<<name<<"我的性别是" <<sex<<"我的叫声是“吱吱吱”";} 
protected:
string  name; char sex;
};
class Cat :public Animal
{
public :
Cat (string n):name (n){}
void cry()const{cout<<"我是小猫我的名字叫"<<name<<"我的叫声是“喵喵喵”";} 
protected:
string  name; 
};
class Dog:public Animal
{
public :
Dog (string n):name (n){}
void cry()const{cout<<"我是小狗我的名字叫"<<name<<"我的叫声是“汪汪汪”";} //..................................................此处需加const
protected:
string  name;
};
class Giraffe :public Animal
{
public :
Giraffe(string n, char s):name (n),sex(s){}
void cry()const{cout<<"我是长颈鹿我的名字叫"<<name<<"我的性别是" <<sex<<"我是小哑巴";} 
protected:
string  name; char sex;
};
int main( )
{
Animal *p;
// p = new Animal();
// p->cry();
//cout<<endl;
Mouse m1("Jerry",'m');
p=&m1;
p->cry();
cout<<endl;
Mouse m2("Jemmy",'f');
p=&m2;
p->cry();
cout<<endl;
Cat c1("Tom");
p=&c1;
p->cry();
cout<<endl;
Dog d1("Droopy");
p=&d1;
p->cry();
cout<<endl;
Giraffe g1("Gill",'m');
p=&g1;
p->cry();
cout<<endl;
system("pause");
return 0;
}


 

 

抽象类是没有对象的,但是有抽象类这个类型,可以定义只想抽象类类型的指针

 

 


http://chatgpt.dhexx.cn/article/sx5RMrTO.shtml

相关文章

STM32项目设计:基于stm32f4的智能门锁(附项目视频全套教程、源码资料)

文章目录 智能门锁一、项目背景二、项目功能要求三、元件准备四、项目设计&#xff08;一&#xff09;原理图设计&#xff08;二&#xff09;硬件设计&#xff08;三&#xff09;程序设计 五、上机调试六、知识扫盲七、项目图片展示 智能门锁 资料链接 &#xff1a;智能门锁.r…

软件测试项目实战Web项目实战解析(附全套实战项目视频+源码+部署教程+服务器)

前言&#xff1a; Web项目是当今软件行业中最为常见的一种应用类型&#xff0c;而对于从事Web项目测试工作的测试人员来说&#xff0c;实战经验和技能水平尤为重要。本篇文章提供了一套完整的Web项目实战解析教程&#xff0c;包括全套实战项目教程、视频和源码。这些实战项目以…

JavaWeb新项目视频管理平台要这么做附源码

一 课程介绍 简介&#xff1a;本项目为JavaWeb项目(视频管理平台)&#xff0c;是在Web环境下实现的视频管理平台。技术上涉及Servlet、JSP、EL表达式、JSTL、Apache Dbutils、分页&#xff0c;以及其他之前Web阶段所学习的课程内容。本项目重点锻炼学员的Servlet、JSP、MySQL数…

Project免费视频教程来了

Microsoft Project是国际上享有盛誉的通用项目管理软件&#xff0c;凝集了许多成熟的项目管理现代理论和方法&#xff0c;可以帮助项目管理者实现时间、资源、成本的计划、控制。 MS Project的应用门槛极低&#xff0c;只要你懂什么是甘特图&#xff0c;基本上就会用它。 MS pr…

项目管理(视频学习)

第四章项目整合管理-7_哔哩哔哩_bilibili 第四章 项目整合管理 4.1 什么是整合管理 4.2 项目整合管理考虑因素 4.3 项目管理过程框架 4 过程组&#xff08;项目整合管理&#xff09; 4.1 制定项目章程 4.2 制定项目管理计划 4.3 指导与项目管理工作 4.3.1 变更类型 4.3.2 项…

视频教程-项目管理12个微案例-项目管理

项目管理12个微案例 清华大学项目管理硕士 清华大学MPM同学会创始人&#xff0c;PMI国际认证讲师。 一线实战经验&#xff1a;15年以上&#xff0c;授课经验&#xff1a;5年以上 T培训 T1--项目管理实战九步演练 T2—项目管理沙盘课程 T3--PMP与IPMP-C内训课 T4--项目经理领导力…

【项目】视频点播系统

目录 一、项目介绍1. 对视频点播系统的认识2. 服务端功能模块划分 二、环境搭建2.1 升级GCC2.2 安装JsonCpp库2.3 引入httplib库2.4 MySQL数据库及开发包安装 三、第三方库的认识3.1 认识JsonCpp3.2 JsonCpp实现序列化3.3 JsonCpp实现反序列化3.4 认识MySQL数据库的API3.5 使用…

IT老哥分享的27套Java实战项目视频教程

一、27套Java实战项目视频教程 最近在B站上看到了IT老哥分享的27套Java实战项目视频教程&#xff0c;今天全给你们了 下面是27套Java实战项目视频教程- 百度网盘链接 链接&#xff1a;https://pan.baidu.com/s/1O-UkPSH2A4XtWNhKREl7EQ 提取码&#xff1a;8ldi 链接&#xf…

二、全国计算机三级数据库考试——理论知识总结(填空题)

上一篇博客&#xff1a;一、全国计算机三级数据库考试——理论知识总结&#xff08;选择题&#xff09;_简时刻的博客-CSDN博客 说明&#xff1a;红色字为三级数据库考试中需要输入的答案&#xff0c;填空题在考试中一共15道题&#xff0c;一题2分&#xff0c;一共30分。 IDEFO…

计算机三级-数据库技术

三级数据库技术知识点总结 1 数据字典是对系统种各类数据描述的集合&#xff0c;包括数据项&#xff0c;数据结构&#xff0c;数据流&#xff0c;数据存储和处理过程五个部分 2 数据模型的三要素&#xff1a;数据结构、数据操作和完整性约束 3 数据库系统&#xff1a;一般由数…

一个月的时间准备计算机三级数据库技术,够吗?

去年九月考了计算机三级数据库技术,花了不到一个月的时间学了下,有些经验心得,打算把它记录下来,回顾一下学习历程,同时也希望能给其他小伙伴一些小经验吧~ 学习之前一定要有的装备 (1)关注“计算机等级考试”公众号,除了了解平时的考试动态以外,还有就是要买他们的…

计算机三级数据库好考吗,2019计算机三级数据库难吗 如何备考

很多同学想知道计算机三级数据库难不难&#xff0c;下面是小编整理的相关内容&#xff0c;希望对大家有所帮助&#xff01; 计算机三级数据库难吗 计算机三级数据库考试不是很容易&#xff0c;数据库技术计算机中专毕业生以及计算机相关专业大学低年级的学生、希望系统学习计算…

数据库技术-计算机三级考试介绍

前言 随着互联网的快速普及&#xff0c;我们身处在信息大爆炸的环境之中&#xff0c;每一天都在产生海量的数据信息&#xff0c;有人就会疑问&#xff0c;这些信息到底存储在哪里&#xff1f;解答这个问题之前&#xff0c;我首先问一个很简单的问题&#xff0c;如果你有很多的…

三、全国计算机三级数据库考试——操作题(1—5套)

上一篇博客&#xff1a;https://blog.csdn.net/weixin_44940488/article/details/119417955 说明&#xff1a; 目录 第一套操作题 第46题 第47题 第48题 第二套操作题 第46题 第47题 第48题 第三套操作题 第46题 第47题 第48题 第四套操作题 第46题 第47题 第48题 第…

计算机三级数据库要学哪些知识,计算机三级数据库怎么备考 考试内容是什么...

很多同学想知道计算机三级数据库如何备考&#xff0c;下面是小编整理的相关内容&#xff0c;希望对大家有所帮助&#xff01; 计算机三级数据库如何备考 1、章节复习&#xff0c;不管是那门学科都分为大的章节和小的课时&#xff0c;一般当讲完一个章节的所有课时就会把整个章节…

计算机三级数据库填空题汇总

第一套&#xff1a; 1.数据库管理系统提供了数据定义语言&#xff08;DDL&#xff09;&#xff0c;用于定义各种数据库对象。数据定义语句经DDL编译器编译后&#xff0c;各种对象的描述信息存放在数据库的数据字典中。 2.关系数据库中要求关系的主码不能为空&#xff0c;这属于…

小白菜飘过计算机三级数据库

害&#xff0c;是真的没学啥没东西写了 买书呜呜47大题归纳填空题46大题 好久没更新了&#xff0c;害&#xff0c;把之前的三级数据库笔记录下来吧&#xff08;强行刷存在感&#xff09; 计算机三级数据库也及格佛佛的过了&#xff0c;虽然没学过但是机械刷题找规律还是勉强混过…

计算机三级——数据库技术

计算机三级——数据库技术 一、考试内容及要求 掌握数据库技术 的基本概念、原理、方法和技术。能够使用SQL语言实现数据库的基本操作&#xff08;增删改查&#xff09;基本数据库系统安装配置以及数据库管理及维护的基本技能。掌握数据库管理和维护的方法。掌握数据库性能优…

全国计算机等级考试三级数据库技术(十)

第10章_数据库运行维护与优化 考点分析 ◆在考试中一般情况下会出现在选择题、填空题部分。 ◆常考知识点有: 1.熟悉数据库运行维护基本工作 2.理解运行状态监控与分析 3.熟悉数据库存储空间管理 4.掌握数据库的模式调整与优化、存储优化、查询优化 10.1 数据库运行维护基本…

全国计算机等级考试三级数据库技术(七)

考点分析 ◆在考试中一般情况下会出现在选择题、填空题、大题。 ◆常考知识点有: 1.掌握SQL Server数据库的类别、甩途及组成 2.掌握修改数据库、分离和附加数据库的语法 3.理解架构含义与语法格式 4.掌握分区表的概念、创建分区方案 5.掌握创建索引及索引视图 7.1 创建及维护…