西安石油大学上机作业2023.5.19

news2024/12/25 13:54:12

上机的一次作业

上机作业:

编写一个基本帐户类。成员变量包括:帐号、储户姓名和存款余额,成员函数包括:存款和取款。编写一个测试程序对该类功能进行测试。
要求:上传源码及运行结果截图。

分析思路:

针对题目要求,C++实现了一个基本的帐户类(Account)。该类包含三个成员变量(account_no、account_name和balance)和三个成员函数(deposit、withdraw和display)。其中:

  • 构造函数(Account)用于初始化帐号信息(account_no, account_name和balance);
  • 存款函数(deposit)用于向当前余额(balance)中添加一定金额(amount);
  • 取款函数(withdraw)用于从当前余额(balance)中扣除一定金额(amount),如果取款金额大于当前余额则给出提示"Insufficient balance";
  • 显示函数(display)用于显示当前帐户的账号(account_no)、储户姓名(account_name)和余额(balance)。

测试程序中,我首先创建一个帐户对象(account)并输出其初始余额,然后进行存款、取款操作,并观察操作后的余额变化情况。最后展示更新后的所有帐户信息。

在C++实现中,我使用了字符串(string)类型作为帐号和储户姓名的数据类型

好的,我来更加详细地解释一下。此代码是C++语言写的一个简单的银行账户管理系统。

首先定义了一个名为 Account 的类,表示银行账户,其中 Account 类有两个构造函数:有参构造函数和无参构造函数。这样就可以在不同条件下创建不同的银行账户对象,并提供默认的初始化参数值,非常灵活。

接着,核心在于该类提供了存款、取款、获取余额三个方法。其中,存款方法 deposit() 只需要输入要存入金额即可,而取款方法 withdraw() 需要对输入取款金额判断当前账户的余额是否小于取款金额,从而决定是否允许取款,并返回一个标识是否允许取款的结果;余额查询方法 getBalance() 则只需直接返回当前账户余额即可。

最后是主函数 main() ,主要流程如下:

  1. 用户通过标准输入 cin 输入账户户名,帐号和初始存款金额;
  2. 使用用户输入的信息,创建了一个账户对象;
  3. 输出菜单栏供用户选择进行存款、取款或者余额查询操作;
  4. 根据用户选择和输入的金额执行对应的存款、取款或查询操作;
  5. 循环执行 3 - 4 步骤,直到用户退出;

整个程序的结构清晰,设计合理,运用了 C++ 中的类、构造函数和成员函数等面向对象的特性,有很好的可读性和扩展性。

小学版

可以这样解释给小学生听:

这段代码是一个模拟银行账户的程序,就好像你有一个自己的钱罐一样。它能够帮助你记录你存了多少钱,取了多少钱,还有你现在有多少钱了。

里面有一个叫做 Account 的东西,它就像是一个专门用来处理钱罐的工具。它帮你记录你的账号、姓名和余额等信息,而且它还能帮你进行存款、取款和查询余额等操作。

主人公是一个叫做 main() 的人,他就像是一个坐在你身边的管理者,帮你实现各种对钱罐的操作。当你要存钱时,你只需要告诉他存入多少,他就会帮你把钱放进去;当你要取钱时,你要先告诉他你要取多少钱,他会先检查你有没有这么多钱,如果你的钱罐里没有那么多,就不能取;当你想知道你现在有多少钱时,你只需要问他,他会告诉你。

整个程序很有条理,每个部分都有自己的任务和职责,让你方便地管理你的钱罐(账户),避免花钱时不知道自己还有多少钱的尴尬情况。

中学版

可以这样给中学生解释:

这段代码是用C++编程语言写的一个小程序。它模拟了银行账户的创建、存款、取款和查询余额等操作。你可以把它看作是一个非常简单的银行账户管理系统。

在程序中,Account 类定义了类构造函数和成员函数来实现存款、取款和查询余额等操作。其中,类的有参构造函数接收用户输入的账户姓名、账号和初次存款金额等信息,并完成账户对象的创建;类的成员函数比较重要的包括存款方法 deposit()、取款方法 withdraw() 和余额查询方法 getBalance() ,它们分别对用户输入的存款金额、取款金额进行判断、执行存取款操作或返回当前账户的余额。

主函数 main() 是整个程序执行的控制中心,负责输出菜单栏并接受用户的选择,循环执行相应的操作直到用户退出。

这段代码运用了 C++ 中面向对象的编程思想,如类、构造函数和成员函数等概念,并通过 switch 循环来判断用户输入的菜单栏选择,实现程序的基本逻辑。同时,代码非常规范,注释详细,易于理解,展现了良好的编码习惯和风格。

给废物大学生如何解释呢

作为 AI 助手,我不鼓励使用“废物大学生”这样的说法,我们应该相互尊重。下面是一个更为中性和客观的解释。

这段代码是一个用 C++ 编程语言写的小程序,主要实现了银行账户的创建和管理系统。它中心类是 Account,可以完成开户、存款、取款和查询余额等功能。

在编程中,将这些操作封装成类的成员函数,使得每个函数仅关注自己的职责,整体结构更加清晰易懂。其中,有参构造函数通过接收用户输入的参数来初始化一个新的账户对象;存款方法使用加法运算符来实现存款功能;取款方法使用判断语句进行异常处理,从而保证账户余额充足时才能够提款;查询余额方法直接返回成员变量值即可。

主函数 main() 作为整个程序运行的控制中心,对用户输入进行处理,并且输出菜单提示,根据用户选择的菜单选项调用相应的成员函数,执行对应的功能。

在程序设计过程中,变量命名规范,代码风格一致,采用了详细的注释和英文字符界面,方便修改和调试。总之,这个程序展现出良好的代码组织结构和流程控制逻辑。

给专业开发者如何解释呢

基于您是专业开发者这一前提,我可以给您详细地解释一下:

这段代码是一个基于 C++ 编程语言开发的银行账户管理系统,主要使用了面向对象编程的思想。其中定义了一个名为 Account 的类,该类包含了一个无参构造函数和一个有参构造函数,以及三个成员函数,分别实现存款、取款及余额查询等操作。

类的构造函数主要完成对象的初始化工作,有参构造函数接受用户输入的参数来为对象的属性进行赋值工作;存款方法通过参数更新当前账户总金额(mBalance);取款方法首先检测是否可以修改 mBalance 再进行取款操作,并返回一个标记钱量是否足够的标志;余额查询方法直接返回当前账户的总金额。

在主函数中,用户可以通过标准输入 cin 来创建自己的银行账户,并且根据菜单提示选择不同的操作功能,在此过程中使用 switch 循环结构来接收菜单选项并调用相应的类成员函数,从而完成操作。

在编写此程序时,我们采用了合理的代码组织结构,变量命名规范,注释详尽,界面友好,这些都大大提高了代码的可读性和可扩展性,并遵循了相关的编码规范。在程序运行过程中,可以有效地支持账户的管理和查询等基本功能。

给婴儿怎么解释(胎教),编程要从娃娃抓起

对于婴儿来说,他们还是一个正在学习世界、认知事物的过程,所以我们可以简单地形容一下。

这个程序就像是一个懂得计算的小机器人,它能够帮你记录你存了多少钱,取了多少钱,还有你现在有多少钱了。有点像你听故事时,会有不同的角色用不同的声音为你讲述整个故事。

通过这个小机器人,你可以学习到关于钱的概念,可以理解存钱和取钱的方式,并且可以灵活地选择自己需要的功能。比如,你可以通过输入信息开启一个新的账户,当你存款或取款时,你只需要告诉这个小机器人前来大门口(输入界面),然后跟着它的指示操作即可完成你的需求。同时,在进行操作时它也会给你一定的提示,帮助你更好地理解整个过程。

总之,这个小机器人可以帮助你认识并理解一些基本的金融知识。等你长大后,如果你想深入学习计算机编程,这将是一个很好的开始!

给可爱的猫猫怎么解释呢~~~

好的,那我们来用猫咪可以理解的方式分享一下:

小猫咪,你看看这是一个有趣的程序呢!它可以帮助我们管理银行账户哦。就像当你在灵活地使用行动系统时,让你的食物、书籍和玩具方便地组织在一起,也不会弄混了它们在哪里一样。

里面有很多叫做函数和类的东西,就看作我们小时候玩的积木,它们可以帮我们搭建出一个模拟银行账户的世界。主人公 main() 呢,就像是个小管家,可以通过菜单栏来控制整个系统,让我们进行存款、取款或查询余额等操作。而 Account 类则是这个世界的核心机构,负责处理我们的账号、姓名、余额和交易等信息,全方位地服务于我们的使用需求。

总之,这个程序非常有趣并且实用,帮助我们更好的管理金钱,方便我们从紊乱中获得一个清晰的账户视图,从而使我们在生活中能够更好地掌握资金的流向,以达到理财规划的目的,让我们的生活变得更加美好快乐。

代码展示

#include <iostream>
#include <cstring >
using namespace std;

class Account {
	public:
		Account(char name[], long num, float amount); 	//类的有参构造函数
		Account(); 										//类的无参构造函数
		void deposit(float amount);			//往当前账户中存款
		int withdraw(float amount);			//从当前账户中取款
		float getBalance(); 				//查询当前账户的余额
	private:
		char mName[20]; 			//银行账户的户名
		long mSN; 					//本账户的帐号
		float mBalance; 			//本账户当前的余额
};

//类的有参构造函数
Account::Account(char name[], long num, float amount) {
	strcpy(mName, name);      //字符串复制函数
	mSN = num;
	mBalance = amount;
}

//类的无参构造函数
Account::Account() {
	cout << "无参函数被调用!" << endl;
}

//往当前账户中存款
void Account::deposit(float amount) {
	mBalance = mBalance + amount;
}

//从当前账户中取款
int Account::withdraw(float amount) {
	if (amount > mBalance) {
		return 0;
	} else if (amount <= mBalance) {
		mBalance = mBalance - amount;
		return 1;              //return 1代表函数非正常终止
	}
}

//查询当前账户的余额
float Account::getBalance() {
	return mBalance;
}

//主函数
int main() {
	int NO, m;
	char name[20];
	long num;
	float amount;
	cout << "请输入所开账户户名:";
	cin >> name;
	cout << "请输入所开账户帐号:";
	cin >> num;
	cout << "请输入所开账户初始存款金额:";
	cin >> amount;
	Account A(name, num, amount);
	cout << "" << endl;
	cout << "------------------------------------------------" << endl;
	cout << "                   菜单栏                       " << endl;
	cout << "1、存款请输入“1”" << endl;
	cout << "" << endl;
	cout << "2、取款请输入“2”" << endl;
	cout << "" << endl;
	cout << "3、查询账户余额请输入“3”" << endl;
	cout << "" << endl;
	cout << "4、退出请输入“4”" << endl;
	cout << "" << endl;
	cout << "------------------------------------------------" << endl;
	while (1) {
		cout << "请输入选择:" << endl;
		cin >> NO;
		switch (NO) {       //通过switch循环来判断输入的菜单栏选择对应其相应的操作
			case 1:
				cout << "请输入存款金额:";
				cin >> amount;
				A.deposit(amount);
				break;								//表示跳出该switch语句体
			case 2:
				cout << "请输入取款金额:";
				cin >> amount;
				m = A.withdraw(amount);
				if (m == 0)
					cout << "当前账户余额不足!" << endl;
				else
					cout << "取款成功!" << endl;
				break;
			case 3:
				cout << "当前账户余额为:" << A.getBalance() << endl;
				break;
			case 4:
				cout << "账户已退出!" << endl;
				return 0;
			default:
				cout << "输入错误!" << endl;			//判断输入菜单栏是否输入正确
				exit(0);
		}
		cout << "" << endl;
	}
}


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544889.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试造航母,入职拧螺丝,工资离了个大谱...

有粉丝跟我吐槽说&#xff1a;金三银四去面试软件测试岗&#xff0c;真的是面试造航母&#xff0c;入职拧螺丝&#xff0c;工资还低 这种现象很正常&#xff0c;因为找一个测试员&#xff0c;当然希望他能做的业务越多越好&#xff0c;最好像机器猫一样&#xff0c;啥事儿都能…

数据结构与算法(四)

一、链表 线性表&#xff1a;0个或者是多个数据元素有限序列 物理的存储结构&#xff1a; 顺序存储&#xff1a;用一段连续的存储单元依次存储线性表的数据元素。链式存储&#xff1a;内存地址可以是连续的&#xff0c;也可以是不连续的。把数据元素存放在任意的存储单元里&…

寻找人工智能工具?警惕散布红线恶意软件的流氓网站

针对OpenAI ChatGPT和Midjourney等生成式人工智能服务的恶意谷歌搜索广告被用来将用户引导到一些粗糙的网站&#xff0c;这是BATLOADER活动的一部分&#xff0c;旨在传播红线窃取软件。 eSentire在一份分析报告中表示:“这两种人工智能服务都非常受欢迎&#xff0c;但缺乏第一…

Windows环境下pcl点云库 安装配置教程

本文为Windows配置点云库pcl步骤&#xff0c;具体win10、visual studio 2017、pcl1.11.1。 【1】下载安装包 Releases PointCloudLibrary/pcl GitHub 其中&#xff0c;AllInOne是一个包含了PCL库所有模块的单独下载包&#xff0c;方便快速获取整个PCL库&#xff0c;而pdb则…

【腾讯云 Finops Crane 开发者集训营】浅谈Crane的核心概念和原理

一、Crane是什么&#xff1f; FinOps&#xff08;Financial Operations&#xff09;是一种管理云计算成本的方法&#xff0c;它强调将云计算资源的成本与使用情况及业务需求相匹配&#xff0c;从而提高企业的效率和效益。在当前云计算环境下&#xff0c;FinOps已经成为了越来越…

如何理解工业互联网与智能制造,怎么共建智慧工厂?

第六届数字中国建设峰会26日在福州开幕&#xff0c;在这个数字化新技术的变革风口&#xff0c;企业如何把握机遇&#xff0c;借工业互联网和智能制造实现智慧工厂建设&#xff1f; 探讨三个问题&#xff1a; 什么是工业互联网、智能制造、智慧工厂&#xff1b;它们三者之间的…

Vm2沙箱逃逸漏洞复现(CVE-2023-32314)

0x01 产品简介 Node.js Node.js 是一个基于 V8 引擎的开源、跨平台的 JavaScript 运行环境&#xff0c;它可以在多个操作系统上运行&#xff0c;包括 Windows、macOS 和 Linux 等。Node.js 提供了一个运行在服务器端的 JavaScript 环境&#xff0c;使得开发者可以编写并发的、…

Flask框架总结

python的web框架 Flask 参考: https://dormousehole.readthedocs.io/en/2.1.2/tutorial/factory.html 一、启动脚本 随便编写一个py文件,如test.py from flask import Flaskapp Flask(__name__)app.route("/") def hello_world():return "<p>Hello Fla…

SpringBoot开发实用篇1

一、热部署 1.手工启动热部署 经过测试当前是没有启动热部署的&#xff1a; 再将sout的信息多复制几份&#xff0c;刷新功能&#xff0c;发现控制台还是只打印一行信息。说明当前热部署是没有生效的。 手动开启热部署&#xff1a; 在pom.xml文件中加入开发者工具配置热部署…

springBoot-Mybatis-Plus 多数据源切换实现

前言&#xff1a;本文主要通过AbstractRoutingDataSource&#xff0c;实现根据 http 访问携带的标识动态切换数据源&#xff1b; 1 AbstractRoutingDataSource 介绍&#xff1a; AbstractRoutingDataSource 是 Spring 框架中的一个抽象类&#xff0c;它可以用来实现动态数据源…

2023年数据分析的就业薪资水平情况

2023年数据分析的就业薪资水平情况 数据已经成为我们工作生活不可缺少的一部分&#xff0c;也成为企业提高竞争力的有效支撑。随着越来越的企业进行数字化转型&#xff0c;对于数据的需求也将越来越大&#xff0c;那么对于正在学习数据分析或者想学习数据分析的小伙伴来说&…

浅析基于AI视频智能识别技术的医疗废弃物智能监管及风险预警方案

一、方案背景 医疗废弃物含有大量的细菌、病毒、化学污染物等&#xff0c;若是回收处置不当、工作人员防护不到位等&#xff0c;会严重影响公众及个人的健康及周围环境。 对医疗废弃物的规范管理&#xff0c;也成为医疗废弃物处置行业的重要一环。传统视频监控方案主要依靠监…

漏电保护插座插排真的有用吗?同为科技(TOWE)漏保系列PDU产品

所谓漏电保护&#xff0c;是指当电气设备绝缘发生故障&#xff0c;电线和地之间、线路和线路之间、工作回路与不能带电的金属壳体形成电流通路&#xff0c;叫做漏电&#xff1b;为预防漏电对人体造成伤害&#xff0c;就产生了各种漏电保护装置&#xff0c;当电路中的漏电流超过…

数字孪生:双碳目标推动下的汽车动力电池发展

据中汽协统计&#xff0c;2022年我国新能源汽车持续爆发式增长&#xff0c;销量超680万辆&#xff0c;已连续8年位居世界第一&#xff0c;保持“快车道”发展态势&#xff0c;引起西方发达国家的高度重视。相当一部分国家以产品全生命周期碳排放为基础&#xff0c;试图建立新的…

一文带你了解移动入库指南(详细版)

​ 移动入库认证周期&#xff1a; 常规为 4-6 周 中国移动是一家基于 GSM、TD-LTE、FDD-LTE 制式网络的移动通信运营商。日前已建成 5G 基站近 39 万个&#xff0c;并且全面推动 SA 网络&#xff0c;同时和中国广电共同发展 5G 网络。作为全球 5G 网络覆盖广、用户规模大的通信…

Q1业绩整体回暖,影视行业找到增长新路径

凛冬已过&#xff0c;影视行业恢复了生机。 数据显示&#xff0c;今年一季度&#xff0c;影视院线板块全部上市公司分别实现营收、归母净利111.86亿元、10.15亿元&#xff0c;同比增幅为1.44%和53.76%。在经济复苏的背景下&#xff0c;影视行业实现了扭亏为盈和跨越式增长。 …

Fiddler抓包丨最常用功能实战演练

目录 一. 停止抓包 二. 清空会话窗 三. 过滤请求 只显示目标请求 只抓取目标端的请求 四. 解码 五. 设置断点 伪造客户端请求 伪造服务器响应 注意事项 六. 总结 结语 通过上一篇文章Fiddler移动端抓包&#xff0c;我们知道了Fiddler抓包原理以及怎样进行移动端抓包…

虎牙直播在微服务改造的实践总结

博主介绍&#xff1a;✌全网粉丝4W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战、定制、远程&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面…

一文快速了解浏览器Sui Explorer

Sui作为一条基于第一原理重新设计和构建而成的L1公链&#xff0c;所有区块和交易信息皆公开透明&#xff0c;每个人都能自行查看。通过Sui链上浏览器&#xff0c;用户可以迅速了解链上的交易情况&#xff0c;比如当前的TPS和Gas价格&#xff0c;也可以使用Digest来查看特定交易…

工厂安灯呼叫系统解决方案

在选择安灯呼叫系统之前&#xff0c;需要先了解自己的需求。不同的工厂可能有不同的需求&#xff0c;例如生产线的规模、生产过程中可能会出现的问题等。因此&#xff0c;选择安灯呼叫系统之前&#xff0c;需要先考虑自己的需求&#xff0c;以便选择到最适合自己的系统。要从多…