设计的银行账户管理系统,增加一个VIP账户的管理

2024-03-29 22:48

本文主要是介绍设计的银行账户管理系统,增加一个VIP账户的管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

程序功能如下:
1.当单击“创建VIP账户”按钮时,显示如图5-11所示的信息,其中卡号为随机生成的一个在500000到999999之间的一个值,余额初始化为10000元。
2.在“取款”文本框中输入取款金额后,单击“取款”按钮,显示如图5-12所示的信息。如果余额不足,VIP用户可以透支1000元,如取款800,而余额是400,则显示如图5-13所示的信息。如透支超过1000元,如取款1600,而余额是400,则显示如图5-14所示的信息。
3.要求:在上机实验4-3的基础上,通过继承和多态实现上述操作。
C#界面如下:
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WindowsFormsApp8
{public partial class Form1 : Form{public Form1(){InitializeComponent();}Account account;    //定义一个账户类对象private void btnCrtSavingAc_Click(object sender, EventArgs e){account = new Account();//实例化储蓄卡用户账户string message = string.Format("创建账户成功,用户卡号为:{0}", account.CreditNo);lblShow.Text = "\n" + message +"\n";}private void btnWithDraw_Click(object sender, EventArgs e)//取款{string message;if (account == null)message = "请先创建账户!";       //帐户不存在else if (txtWithDraw.Text == "")message = "请输入取款金额";    //未输入取款金额else{decimal money = decimal.Parse(txtWithDraw.Text);account.WithDraw(money, out message);       //message存放取款的金额信息}lblShow.Text = "\n" + message + "\n";}private void btnDeposit_Click(object sender, EventArgs e){string message;if (account == null)message = "请先创建账户!";    //帐户是否存在else if (txtDeposit.Text == "")message = "请输入存款金额";     //输入存款金额else{decimal money = decimal.Parse(txtDeposit.Text);account.Deposit(money, out message);}lblShow.Text = "\n" + message + "\n";//输出存款金额}private void button2_Click(object sender, EventArgs e)//查询余额操作{string message;if (account == null)message = "请先创建账户!";else{account.show( out message);}lblShow.Text = "\n" + message + "\n";    //输出余额}private void btnCrtVipAc_Click(object sender, EventArgs e){account = new VipAccount();        //实例化VIP用户账户int accountNo = account.CreditNo;string message = string.Format("创建VIP账户成功,用户卡号为:{0}",accountNo);lblShow.Text = "\n" + message + "\n";}}public class Account
{//成员字段的属性改为protectedprotected int creditNo;protected decimal balance;public Account(){Random r = new Random();creditNo = r.Next(100000, 500000);  //产生一个100000到500000的随机数balance = 100;  //余额初始化为100}public decimal Balance //只读属性,读取余额{get { return this.balance; }}public int CreditNo    //只读属性,读取储蓄卡号{get { return this.creditNo; }}//改写Account类的WithDraw为虚方法public virtual bool WithDraw(decimal money, out string message)    //取款{if (money < 0)  //取款金额小于0{message = "操作失败:\n输入金额不正确!";return false;}else if (balance >= money)   //取款金额大于余额{balance -= money;message = "操作成功!\n取款" + money + "元";return true;}else{message = "操作失败!\n余额不足!";return false;}}public bool Deposit(decimal money, out string message){if (money < 0){message = "操作失败:\n输入金额不正确!";return false;}else{balance += money;message = "操作成功!\n存款" + money + "元";return true;}}public bool show(out string message){message = "您的余额为:\n" + balance + "元";return true;}}public class VipAccount : Account{public VipAccount(){Random r = new Random();creditNo = r.Next(500000, 1000000);balance = 10000;}public override bool WithDraw(decimal money, out string message){if (money < 0){message = "操作失败:\n输入金额不正确!";return false;}else if (balance >= money){balance -= money;message = "操作成功!\n取款" + money + "元";return true;}else if (balance+1000 >= money)  //取款金额大于于可透支余额{balance -= money;message = "操作成功!\n取款" + money + "元,透支"+(-balance)+"元";return true;}else{message = "操作失败!\n余额不足!";return false;}}}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这篇关于设计的银行账户管理系统,增加一个VIP账户的管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/859853

相关文章

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

Elasticsearch 的索引管理与映射配置实战指南

《Elasticsearch的索引管理与映射配置实战指南》在本文中,我们深入探讨了Elasticsearch中索引与映射的基本概念及其重要性,通过详细的操作示例,我们了解了如何创建、更新和删除索引,... 目录一、索引操作(一)创建索引(二)删除索引(三)关闭索引(四)打开索引(五)索引别名二、映射操作(一

linux ssh如何实现增加访问端口

《linuxssh如何实现增加访问端口》Linux中SSH默认使用22端口,为了增强安全性或满足特定需求,可以通过修改SSH配置来增加或更改SSH访问端口,具体步骤包括修改SSH配置文件、增加或修改... 目录1. 修改 SSH 配置文件2. 增加或修改端口3. 保存并退出编辑器4. 更新防火墙规则使用uf

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service