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…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...