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 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
