当前位置: 首页 > news >正文

头歌实验--面向对象程序设计

目录

实验五 类的继承与派生

第1关:简易商品系统

任务描述

答案代码

第2关:公司支出计算

任务描述

答案代码

第3关:棱柱体问题

任务描述

答案代码


实验五 类的继承与派生

第1关:简易商品系统

任务描述

答案代码

#include<iostream>
#include<string>
using namespace std;
/***********begin**********/
//此处完成各个类的书写,并实现题目输出
class Shirt {
private:string place;int price;int num;string mar;
public:Shirt(string, int, int, string);void InStorage(int i);void OutStorage(int j);void Calculate();
};
Shirt::Shirt(string a, int b, int c, string d)
{place = a;price = b;num = c;mar = d;
}
void Shirt::InStorage(int i)
{num = num + i;
}
void Shirt::OutStorage(int j)
{if (j > num){cout << "Insufficient  number!" << endl;num = 0;}else {num = num - j;}
}
void Shirt::Calculate()
{int m;m = num * price;cout << "total money=" << m << endl;
} 
class Cap:public Shirt
{
public:Cap(string, int, int, string, string);
private:string shape;
};
Cap::Cap(string a, int b, int c, string d, string e):Shirt(a,b,c,d),shape(e){}class Capboard:public Shirt
{
public:Capboard(string, int, int, string, string);
private:string color;
};
Capboard::Capboard(string a,int b,int c,string d,string f):Shirt(a,b,c,d),color(f){}/**********end***********/int main() {Shirt s1("江西南昌", 235, 150, "纯棉");Cap p1("四川成都", 88, 150, "尼龙", "平顶");Capboard cup1("云南昆明", 3500, 10, "云松木", "原色");int i, j, k, m;cin >> i >> j >> k >> m;s1.InStorage(i);s1.OutStorage(j);p1.OutStorage(k);cup1.OutStorage(m);s1.Calculate();p1.Calculate();cup1.Calculate();
}

第2关:公司支出计算

任务描述

答案代码

#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
//请在此处完成YearWork,MonthWorker,WeekWoker及Company类的编码
/***********begin***********/
class Employee{public:virtual int earning()=0;
};
class YearWorker:public Employee{int salary;public:YearWorker(int s){salary=s;}virtual int earning(){return salary;}
};
class MonthWorker:public Employee{int salary;public:MonthWorker(int s){salary=s;}virtual int earning(){return salary*12;}
};
class WeekWorker:public Employee{int salary;public:WeekWorker(int s){salary=s;}virtual int earning(){return salary*52;}
};
class Company{public:Employee *emp[30];Company(){for(int i=0;i<30;i++){emp[i]=NULL;}}int salarypay(){int total=0;for(int i=0;i<30;i++){if(emp[i]!=NULL){total+=emp[i]->earning();}}return total;}  
};
/************end**********/
int main() {Company co;for (int i = 0; i < 30; i++){int r = rand() % 3 + 1;switch (r) {case 1:co.emp[i] = new WeekWorker(580);break;case 2:co.emp[i] = new MonthWorker(2500);break;case 3:co.emp[i] = new YearWorker(22000);break;default:break;}}cout << "company total pay=" << co.salarypay();return 0;
}

第3关:棱柱体问题

任务描述

答案代码

#include <iostream>
using namespace std;
#include<string>
#include"time.h"
#include"math.h"
#define PI 3.14/*********begin**********/
class Plane
{
public:virtual double area() = 0;//求面积函数
};
class Rectangle :public virtual Plane
{
public:double length, width;//长和宽Rectangle(double l, double w) :length(l), width(w) {};virtual double area(){return length * width;//覆盖求面积函数}
};
class Square :public Rectangle{
public:Square(double l) :Rectangle(l,l) {};//析造函数
};
class Circle :public virtual Plane
{
public:double radius;//半径Circle(double r) :radius(r) {};virtual double area(){return 3.14 * radius * radius;}
};
class Triangle :public virtual Plane
{public:double a, b, c;Triangle(double a, double b, double c) :a(a), b(b), c(c) {};virtual double area(){double p;p = (a + b + c) / 2;return sqrt(p * (p - a) * (p - b) * (p - c));}
};
class Body
{
public:virtual double volume() = 0;//体积virtual double superficialarea() = 0;//表面积
};
class Triangularprism :public Triangle,public Body
{
private:double height;
public:Triangularprism( int n,double h, double a, double b, double c) :Triangle(a, b, c), height(h) {};virtual double volume(){return Triangle::area() * height;}virtual double superficialarea() {return (Triangle::area() * 2 + Triangle::a * height + Triangle::b * height + Triangle::c * height);}
};
class Circularcolumn :public Circle,public Body
{
private:double height;
public:Circularcolumn(int n, double h, double r) :Circle(r), height(h) {};virtual double volume(){return Circle::area() * height;}virtual double superficialarea(){return (Circle::radius* 2*3.14*height + Circle::area() * 2 );}
};
class Quadrangular :public Rectangle,public Body
{
private:double height;
public:Quadrangular(int n, double h, double l) :Rectangle(l,l), height(h) {};virtual double volume(){return Rectangle::area() * height;}virtual double superficialarea(){return (Rectangle::area() * 2 + Rectangle::width * height * 2 + Rectangle::length * height*2);}
};/**********end********/
int main() {int n;double height,r,t1,t2,t3,l;cin>>n>>height>>r;//输入n=0,表示圆柱体Circularcolumn c1(n,height,r);cin>>n>>height>>t1>>t2>>t3;//输入n=3,表示三棱柱Triangularprism t(n,height,t1,t2,t3);cin>>n>>height>>l;//输入n=4表示正四棱柱Quadrangular qu(n,height,l);Body *body[3];body[0]=&c1;body[1]=&t;body[2]=&qu;double superficalsum=0;double volumesum=0;for(int i=0;i<3;i++){volumesum+=body[i]->volume();//volume()获取该体的体积superficalsum+=body[i]->superficialarea();//获取该体的表面积}cout<<"all volume="<<volumesum<<endl;cout<<"all superfilarea="<<superficalsum<<endl;
}

相关文章:

头歌实验--面向对象程序设计

目录 实验五 类的继承与派生 第1关&#xff1a;简易商品系统 任务描述 答案代码 第2关&#xff1a;公司支出计算 任务描述 答案代码 第3关&#xff1a;棱柱体问题 任务描述 答案代码 实验五 类的继承与派生 第1关&#xff1a;简易商品系统 任务描述 答案代码 #incl…...

DeepSeek-R1 蒸馏 Qwen 和 Llama 架构 企业级RAG知识库

“DeepSeek-R1的输出&#xff0c;蒸馏了6个小模型”意思是利用DeepSeek-R1这个大模型的输出结果&#xff0c;通过知识蒸馏技术训练出6个参数规模较小的模型&#xff0c;以下是具体解释&#xff1a; - **知识蒸馏技术原理**&#xff1a;知识蒸馏是一种模型压缩技术&#xff0c;核…...

App UI自动化--Appium学习--第二篇

如果第一篇在运行代码的时候出现问题&#xff0c;建议参考我的上一篇文章解决。 1、APP界面信息获取 adb logcat|grep -i displayed代码含义是获取当前应用的包名和界面名。 根据日志信息修改代码当中的包名和界面名&#xff0c;就可以跳转对应的界面。 2、界面元素获取 所…...

【SpringBoot实现全局API限频】 最佳实践

在 Spring Boot 中实现全局 API 限频&#xff08;Rate Limiting&#xff09;可以通过多种方式实现&#xff0c;这里推荐一个结合 拦截器 Redis 的分布式解决方案&#xff0c;适用于生产环境且具备良好的扩展性。 方案设计思路 核心目标&#xff1a;基于客户端标识&#xff08…...

Day1 25/2/14 FRI

【一周刷爆LeetCode&#xff0c;算法大神左神&#xff08;左程云&#xff09;耗时100天打造算法与数据结构基础到高级全家桶教程&#xff0c;直击BTAJ等一线大厂必问算法面试题真题详解&#xff08;马士兵&#xff09;】https://www.bilibili.com/video/BV13g41157hK?p3&v…...

开发板适配之I2C-RTC

rx8010时钟芯片挂载在I2C1总线上&#xff0c;并且集成在主控板上。 硬件原理 IOMUX配置 rx8010时钟芯片挂载在I2C1总线上&#xff0c;I2C1数据IIC1_SDA和时钟IIC1_SCL&#xff0c;分别对应的PAD NAME为&#xff0c;UART4_TX_DATA、UART4_RX_DATA。 在arch/arm/boot/dts/imx6u…...

vuedraggable固定某一item的记录

文章目录 基础用法第一种第二种 限制itemdiaggable重新排序交换移动的两个元素的次序每次都重置item的index 基础用法 第一种 <draggable v-model"list" :options"dragOptions"><div class"item" v-for"item in list" :key…...

我的新书《青少年Python趣学编程(微课视频版)》出版了!

&#x1f389; 激动人心的时刻来临啦&#xff01; &#x1f389; 小伙伴们久等了&#xff0c;我的第一本新书 《青少年Python趣学编程&#xff08;微课视频版&#xff09;》 正式出版啦&#xff01; &#x1f4da;✨ 在这个AI时代&#xff0c;市面上的Python书籍常常过于枯燥&…...

前端开发入门一

前端开发入门一 已经有若干年没有web相关的代码了&#xff0c;以前主要是用C/C编写传统的GUI程序&#xff0c;涉及界面、多线程、网络等知识点。最近准备开发一个浏览器插件&#xff0c;才发现业界已经换了天地&#xff0c;只得重新开始学习了&#xff0c;好在基本的学习能力还…...

Linux(Centos 7.6)命令详解:head

1.命令作用 将每个文件的前10行打印到标准输出(Print the first 10 lines of each FILE to standard output) 2.命令语法 Usage: head [OPTION]... [FILE]... 3.参数详解 OPTION: -c, --bytes[-]K&#xff0c;打印每个文件的前K字节-n, --lines[-]&#xff0c;打印前K行而…...

HTTP请求X-Forwarded-For注入

场景描述 当你对用户网站进行的爆破或者sql注入的时候,为了防止你影响服务器的正常工作,会限制你访问,当你再次访问时,会提示你的由于你的访问频过快或者您的请求有攻击行为,限制访问几个小时内不能登陆,并且重定向到一个错误友好提示页面。 由此可以发起联想?http是无状…...

《生息之地》入围柏林主竞赛,总制片人蒋浩助力青年导演走向国际

当地时间2月13日&#xff0c;第75届柏林国际电影节正式开幕。凤凰传奇影业出品的电影《生息之地》已入围主竞赛单元&#xff0c;是本届电影节最受瞩目的华语作品之一&#xff0c;电影总制片人蒋浩、导演霍猛、监制姚晨等主创一同亮相开幕红毯。《生息之地》是导演霍猛继《过昭关…...

实践记录--电脑故障的问题定位和处理回顾--磁盘故障已解决

快速回顾 01-关于系统异常启动的展示信息&#xff0c;目前已经可以通过拍照翻译的方式辅助理解&#xff1b; 02-关于固态磁盘的故障定位&#xff0c;可以尝试通过SSD-Z工具查看分区引导记录信息&#xff0c;通过diskgenius工具进行坏道检测和修复&#xff1b; 03-体验了diskge…...

uni-app 学习(一)

一、环境搭建和运行 &#xff08;一&#xff09;创建项目 直接进行创建 &#xff08;二&#xff09;项目结构理解 pages 是页面 静态资源 打包文件&#xff0c;看我们想输出成什么格式 app.vue 页面的入口文件 main.js 是项目的入口文件 存放对打包文件的配置 pages 存放整…...

Ubuntu 22.04 Desktop企业级基础配置操作指南

一、网络配置 cd /etc/netplan vi 00-installer-config.yaml 设置如下所示: network:version: 2ethernets:eth0: # 替换为你的实际网络接口名称,如 ens33, enp0s3 等dhcp4: noaddresses:- 192.168.1.100/24 # 静态IP地址和子网掩码gateway4: 192.168.1.254 # 网关地址n…...

QILSTE H4-105LB/5M高亮蓝光LED灯珠 发光二极管LED

H4-105LB/5M&#xff1a;高亮蓝光LED的复杂特性与突发性挑战 在现代电子设备的复杂世界中&#xff0c;H4-105LB/5M型号的高亮蓝光LED以其独特的参数和复杂的特性脱颖而出。这款LED不仅在尺寸上做到了极致精巧&#xff0c;还在光电参数、可靠性测试和实际应用中展现出令人困惑的…...

【Elasticsearch】Elasticsearch检索方式全解析:从基础到实战(一)

文章目录 引言Elasticsearch检索方式概述两种检索方式介绍方式一&#xff1a;通过REST request uri发送搜索参数方式二&#xff1a;通过REST request body发送搜索参数&#xff08;1&#xff09;基本语法格式&#xff08;2&#xff09;返回部分字段&#xff08;3&#xff09;ma…...

封装neo4j的持久层和服务层

目录 持久层 mp 模仿&#xff1a; 1.抽取出通用的接口类 2.创建自定义的repository接口 服务层 mp 模仿&#xff1a; 1.抽取出一个IService通用服务类 2.创建ServiceImpl类实现IService接口 3.自定义的服务接口 4.创建自定义的服务类 工厂模式 为什么可以使用工厂…...

基于Spring Boot的宠物爱心组织管理系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

error: conflicting types for ‘SSL_SESSION_get_master_key’

$ make make all-am make[1]: Entering directory ‘/home/linuxuser/tor’ CC src/lib/tls/libtor_tls_a-tortls_openssl.o In file included from src/lib/tls/tortls_openssl.c:61: ./src/lib/tls/tortls_internal.h:55:8: error: conflicting types for ‘SSL_SESSION_get_…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...