C++类的设计编程示例
一、银行账户类
【问题描述】
定义银行账户BankAccount类。
私有数据成员:余额balance(整型)。
公有成员方法:
无参构造方法BankAccount():将账户余额初始化为0;
带参构造方法BankAccount(int m):将账户余额初始化为指定的参数。
int getbalance() 方法:返回账户余额。
void withdraw(int m) 取款方法:从账户余额中提取m指定的款额,如果余额不足,给出” 余额不足”。
void deposit(int m) 存款方法:将m指定的款项存到账户。
在main方法中构造银行账户,对其进行存取款操作。
其中操作类型类型为d表示存款,w表示取款,每次操作后打印账户余额。
【输入形式】
账户余额
存取款操作数
操作类型 金额
【输出形式】操作后的账户余额
#include <iostream>
using namespace std;// 定义一个名为BankAccount的类
class BankAccount {
private:int balance; // 私有成员变量,用于存储余额public:// 默认构造函数,将余额初始化为0BankAccount() {balance = 0;}// 带参数的构造函数,将余额初始化为给定的金额BankAccount(int m) {balance = m;}// 公有成员函数,用于获取当前余额int getbalance() {return balance;}// 公有成员函数,用于从账户中取款void withdraw(int m) {if (balance < m) { // 检查余额是否足够进行取款cout << "余额不足。"; // 如果余额不足,则显示错误消息} else {balance -= m; // 如果余额足够,则从余额中减去取款金额}cout << "余额:" << balance << endl; // 显示更新后的余额}// 公有成员函数,用于向账户中存款void deposit(int m) {balance += m; // 将存款金额加到余额中cout << "余额:" << balance << endl; // 显示更新后的余额}
};// 主函数
int main() {int initialBalance, numOps;cin >> initialBalance >> numOps; // 输入初始余额和操作次数BankAccount account(initialBalance); // 创建一个具有初始余额的BankAccount对象char opType;int amount;// 循环执行操作for (int i = 0; i < numOps; i++) {cin >> opType >> amount; // 输入操作类型和金额// 根据操作类型执行相应的操作if (opType == 'w') { // 如果操作类型是取款account.withdraw(amount); // 调用withdraw方法进行取款} else if (opType == 'd') { // 如果操作类型是存款account.deposit(amount); // 调用deposit方法进行存款}}return 0;
}
二、日期时间类
【问题描述】
设计并实现一个日期类,可以:
日期是由日期和时间组成的一个对象。
日期设定(包括年月日)、时间设定(包括时分秒);
日期时间设定(包括年月日时分秒);
利用重载实现键盘输入的数据设定日期时间;
输出日期(格式:yyyy-mm-dd hh:nn:ss)
写main函数应用这个类。【输入形式】
2021 3 23 9 14 2
【输出形式】2021-03-23 09:14:02
#include <iostream>
#include <iomanip> // 引入iomanip头文件,用于格式化输出using namespace std;// 定义一个DateTime类
class DateTime {
private:int year; // 年int month; // 月int day; // 日int hour; // 时int minute; // 分int second; // 秒public:// 设置日期void setDate(int y, int m, int d) {year = y;month = m;day = d;}// 设置时间void setTime(int h, int min, int sec) {hour = h;minute = min;second = sec;}// 设置日期和时间void setDateTime(int y, int m, int d, int h, int min, int sec) {year = y;month = m;day = d;hour = h;minute = min;second = sec;}// 从输入中设置日期和时间void setDateTimeFromInput() {cin >> year >> month >> day >> hour >> minute >> second; // 输入年、月、日、时、分、秒}// 输出日期和时间void printDateTime() {cout << setfill('0') << setw(4) << year << "-" // 格式化输出年份<< setw(2) << setfill('0') << month << "-" // 格式化输出月份<< setw(2) << setfill('0') << day << " " // 格式化输出日期<< setw(2) << setfill('0') << hour << ":" // 格式化输出小时<< setw(2) << setfill('0') << minute << ":" // 格式化输出分钟<< setw(2) << setfill('0') << second << endl; // 格式化输出秒数}
};// 主函数
int main() {DateTime dt; // 创建DateTime对象dt.setDateTimeFromInput(); // 从输入设置日期和时间dt.printDateTime(); // 输出日期和时间return 0;
}
在C++中,setw和setfill是iomanip库中的函数,用于格式化输出。这些函数可以用于设置字段宽度和填充字符,以便在输出时对齐和美化输出结果。
-
setw(n)函数设置字段宽度为n。它影响后续输出操作的字段宽度,使得输出的结果占据指定的字符数。如果输出的内容不够宽度n,将会用空格填充到指定的宽度。
-
setfill(c)函数设置填充字符为c。它指定了在宽度设置后,输出结果不足指定宽度时所使用的填充字符。默认情况下,填充字符是空格。
三、矩形类
【问题描述】
编写程序求长方形的周长和面积
#include<iostream>
using namespace std;// 定义矩形类 Rectangle
class Rectangle
{
public:Rectangle(float length, float width); // 带参数的构造函数声明~Rectangle(void); // 析构函数声明float getArea(); // 计算面积的成员函数声明float getGirth(); // 计算周长的成员函数声明
private:float mLength; // 长度私有成员变量float mWidth; // 宽度私有成员变量
};
// 带参数的构造函数定义
Rectangle::Rectangle(float length, float width)
{mLength = length; // 初始化长度为给定值mWidth = width; // 初始化宽度为给定值
}// 析构函数定义
Rectangle::~Rectangle(void)
{
}// 计算面积的成员函数定义
float Rectangle::getArea()
{return mLength * mWidth; // 返回长度乘以宽度的结果
}// 计算周长的成员函数定义
float Rectangle::getGirth()
{return 2 * (mLength + mWidth); // 返回周长的计算结果
}// 主函数
int main()
{float m, n; // 定义两个浮点数变量 m 和 n,用于存储输入的长度和宽度 cout << "Input the Length and Width: "; // 提示用户输入长度和宽度cin >> m >> n; // 从标准输入流读取用户输入的长度和宽度 Rectangle r1(m, n); // 创建一个具有给定长度和宽度的矩形对象cout<<"The Area is: "<<r1.getArea()<<endl; // 输出矩形的面积Rectangle r2(m, n); // 创建另一个具有给定长度和宽度的矩形对象cout<<"The Perimeter: "<<r2.getGirth()<<endl; // 输出矩形的周长return 0; // 返回0,表示程序正常结束
}
四、圆类
【问题描述】
编写程序求圆的周长与面积
#include<iostream>
using namespace std;const float PI = 3.14; class Circle {
private:float radius;public:Circle(float r): radius(r) {}float getArea() {return PI * radius * radius;}float getGirth() {return 2 * PI * radius;}
};int main()
{float r;cout << "请输入半径长度";cin >> r; Circle c1(r); cout<<"圆的面积为:"<<c1.getArea()<<endl;Circle c2(r);cout<<"圆的周长为:"<<c2.getGirth()<<endl;
}
相关文章:
C++类的设计编程示例
一、银行账户类 【问题描述】 定义银行账户BankAccount类。 私有数据成员:余额balance(整型)。 公有成员方法: 无参构造方法BankAccount():将账户余额初始化为0; 带参构造方法BankAccount(int m)࿱…...
YOLOv5 V7.0 - rknn模型的验证 输出精度(P)、召回率(R)、mAP50、mAP50-95
1.简介 RKNN官方没有提供YOLOv5模型的验证工具,而YOLOv5自带的验证工具只能验证pytorch、ONNX等常见格式的模型性能,无法运行rknn格式。考虑到YOLOv5模型转换为rknn会有一定的精度损失,但是需要具体数值才能进行评估,所以需要一个…...
CUDA、CUDNN、Pytorch三者之间的关系
这个东西嘛,我一开始真的是一头雾水,安装起来真是麻烦死了。但是随着要复现的项目越来越多,我也不得不去学会他们是什么,以及他们之间的关系。 首先,一台电脑里面允许有多种版本的cuda存在,然后cuda分为run…...
vue-cli2,vue-cli3,vite 生产环境去掉console.log
console.log一般都是在开发环境下使用的,在生产环境下需要去除 ,如果手动删除未免也太累了,我们可以用插件对于具体环境全局处理。 vue-cli2 项目build 下面webpack.prod.config.js 文件中: plugins: [new webpack.DefinePlugin({process.en…...
Docker-Compose编排LNMP并部署WordPress
前言 随着云计算和容器化技术的快速发展,使用 Docker Compose 编排 LNMP 环境已经成为快速部署 Web 应用程序的一种流行方式。LNMP 环境由 Linux、Nginx、MySQL 和 PHP 组成,为运行 Web 应用提供了稳定的基础。本文将介绍如何通过 Docker Compose 编排 …...
附录C:招聘流程
< 回到目录 附录C:招聘流程 _xxx_公司的招聘 使命 只雇佣顶级人才。 他们是能够胜任工作,并与 _(你的公司名称)_ 的企业文化相匹配的超级明星。 方法 记分卡。招聘经理创建一份文件,详细描述此职位的工作内容…...
1688快速获取整店铺列表 采集接口php Python
在电子商务的浪潮中,1688平台作为中国领先的批发交易平台,为广大商家提供了一个展示和销售商品的广阔舞台;然而,要在众多店铺中脱颖而出,快速获取商品列表并进行有效营销是关键。 竞争对手分析 价格比较:…...
CTF-WEB(MISC)
安全攻防知识——CTF之MISC - 知乎 CTF之MISC杂项从入门到放弃_ctf杂项 你的名字-CSDN博客 CTF MICS笔记总结_archpr 掩码攻击-CSDN博客 一、图片隐写 CTF杂项---文件类型识别、分离、合并、隐写_ctf图片分离-CSDN博客 EXIF(Exchangeable Image File)是…...
Ubuntu如何更换 PyTorch 版本
环境: Ubuntu22.04 WLS2 问题描述: Ubuntu如何更换 PyTorch 版本考虑安装一个为 CUDA 11.5 编译的 PyTorch 版本。如何安装旧版本 解决方案: 决定不升级CUDA版本,而是使用一个与CUDA 11.5兼容的PyTorch版本,您可…...
python flask css样式无效
解释: Flask是一个Python的轻量级Web框架,它没有为CSS提供任何内置的支持。如果你在Flask项目中引入了CSS文件,但是这个CSS没有生效,可能的原因有: 路径不正确:你的CSS文件没有放在正确的目录下࿰…...
大数据学习笔记14-Hive基础2
一、数据字段类型 数据类型 :LanguageManual Types - Apache Hive - Apache Software Foundation 基本数据类型 数值相关类型 整数 tinyint smallint int bigint 小数 float double decimal 精度最高 日期类型 date 日期 timestamps 日期时间 字符串类型 s…...
vue3 下载图片(包括多图片下载)
单图片下载 //使用 download(https://img1.baidu.com/it/u1493209339,2544178769&fm253&app138&sizew931&n0&fJPEG&fmtauto?sec1715101200&t854f3434686cfd2cba9d6a528597d15c)//下载逻辑 const download async (modelUrl) > {const respons…...
LabVIEW如何通过子VI更改主VI控件属性?
在LabVIEW中,可以通过使用Local Variable或Property Node来实现主VI控件属性的更改。这些方法可以在主VI和子VI之间传递数据和控件属性。 Local Variable: 使用Local Variable可以在子VI中直接访问并修改主VI中的控件属性。在子VI中创建Local Variable,并…...
关于MS-DOS时代的回忆
目录 一、MS-DOS是什么? 二、MS-DOS的主要功能有哪些? 三、MS-DOS的怎么运行的? 四、微软开源MS-DOS源代码 五、高手与漂亮女同学 一、MS-DOS是什么? MS-DOS(Microsoft Disk Operating System)是微软公…...
数据库索引(Mysql)
简述:数据库索引是加速数据检索,提高查询效率的一种数据结构 语法规则 创建索引 --通用语法规则 --[内容] 可选参数 --UNIQUE: 可选关键字,用于创建唯一索引,确保索引列的值是唯一的 CREATE [UNIQUE] INDEX 索引名 ON 表名(字段名,...) [ASC | DESC];…...
异常-Exception
异常介绍 基本概念 Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)执行过程中所发生的异常事件可分为两大类 1,Error(错误):Java虚拟机无法…...
ctfshow——SQL注入
文章目录 SQL注入基本流程普通SQL注入布尔盲注时间盲注报错注入——extractvalue()报错注入——updataxml()Sqlmap的用法 web 171——正常联合查询web 172——查看源代码、联合查询web 173——查看源代码、联合查询web 174——布尔盲注web 176web 177——过滤空格web 178——过…...
第十三章 计算机网络
这里写目录标题 1.网络设备2.协议簇2.1电子邮件(传输层)2.2地址解析(网际层)2.3DHCP(动态主动配置协议)2.4URL(统一资源定位器)2.5IP地址和子网掩码 1.网络设备 物理层:中继器,集线器(多路中继器) 数据链路层:网桥,交换机(多端口…...
商品详情 API 返回值说明
商品详情API接口在多个领域和场景中都有广泛的应用,以下是一些常见的应用场景: 竞品分析:企业可以利用商品详情API接口获取竞品的所有详细信息,如价格、发货地、上架时间、销售量等。通过分析这些竞品信息,企业可以更…...
层级实例化静态网格体组件:开启大量模型处理之门
前言 在数字孪生的世界里,我们常常需要构建大量的模型来呈现真实而丰富的场景。然而,当使用静态网格体 (StaticMesh )构建大量模型时,可能会遇到卡顿的问题,这给我们带来了不小的困扰😣。那么&…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...
