练习题:试使用C#编程实现银行、ATM等功能
练习题:试使用编程实现银行、ATM等功能
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
//创建账户wangcehnjun
Account wangchenjun = new Account("wangchenjun", "");
//创建账户niejiong
Account niejiong = new Account("niejiong", ""); //创建ATM机Transfer1
ATM Transfer1 =new ATM();
//用户wangchenjun存入余额100万元
wangchenjun.toDeposit(); Console.WriteLine("wangchenjun用户的余额为: {0}元",wangchenjun.getBalance()); //使用ATM机Transfer1,从用户wangchenjun向用户niejiong转账500元
if (Transfer1.toTransfer(wangchenjun, niejiong, ))
Console.WriteLine("转账已完成!");
else Console.WriteLine("转账未完成!"); //用户wangchenjun取出50元现金
wangchenjun.toTakeOut(); Console.WriteLine("wangchenjun用户的余额为:{0}元",wangchenjun.getBalance());
Console.WriteLine("niejiong用户的余额为:{0}元", niejiong.getBalance()); Console.ReadKey(); }
}
class Account
{
//用户名
private string userName = ""; //用户密码
private string userPassword = ""; //用户余额(balance)
private int userBalance = ; //创建账号,构造函数,输入姓名和密码
public Account(string name, string password)
{
userName = name;
userPassword = password;
} //获取该账户的用户名
public string getUserName()
{
return userName;
} //获取账户余额
public int getBalance()
{ return userBalance; } //存钱
public bool toDeposit(int numOfDeposit)
{
if (numOfDeposit >= ) //存储金额为正数
{
userBalance = userBalance + numOfDeposit;
return true;
}
else
{
return false;
}
} //取钱
public bool toTakeOut(int numOfTakeOut)
{
if ((numOfTakeOut >= ) && (numOfTakeOut <=userBalance)) //要保证取钱数为正数,且要小于余额
{
userBalance = userBalance - numOfTakeOut;
return true;
}
else return false;
} } class ATM
{
//ATM主要用于转账,该类只包含转账这一种方法
public bool toTransfer(Account account1,Account account2,int amount)
{
bool isTakeOutOK = account1.toTakeOut(amount);
if (isTakeOutOK)
{
Console.Write("账户1({0})转出{1}元成功!",account1.getUserName(), amount);
bool isDepositOK = account2.toDeposit(amount);
if (isDepositOK)
{
Console.Write("账户2({0})转入{1}元成功!", account2.getUserName(),amount);
return true;
}
else
{
account1.toDeposit(amount); //将扣的钱退回到account1
Console.Write("转账失败!");
return false;
}
}
else
{
Console.Write("转账失败!");
return false;
}
}
}
}
运行结果:

练习题:试使用C#编程实现银行、ATM等功能的更多相关文章
- 银行ATM机工作流程模拟编程
[编程内容] 编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程.依据帐户信息:姓名.帐号.密码.余额,完成ATM机功能:登录.显示余额.取款.修改密码. ...
- MySQL银行ATM存取款机系统(需求分析)
银行ATM需求文档 一.E-R图形文 二.开发步骤 1.明确需求--数据库设计--编码实现功能--测试 2.绘制e-r图--绘制数据库模型图--使用三大方式规范数据库结构 三.开发思路 1. 模型图综 ...
- 实验01——java模拟银行ATM系统
用java写的一个模拟银行系统,比较初级. ATM.java package cn.tedu.yinhang; import java.util.Scanner; /** * @author 赵瑞鑫 ...
- 银行ATM存取款系统(C语言实现)
这里使用的运行工具是DEV C++.老铁们一定要看仔细了.是DEV C++ 仅供借鉴:这个是大一时期写的.大四的时候整理了一下(本人C语言学的也不太好).肯定很多不足和存在漏洞的地方.仅供借鉴.仅供借 ...
- jsp+servlet+mysql 实现简单的银行登录转账功能
jsp+servlet+mysql 实现简单的银行登录转账功能 [前期的准备] html(登录界面),servlet(处理业务逻辑),jsp(主要实现界面),mysql(实现与数据库的简单的交互)先从 ...
- NODE编程(一)--Node功能的组织和重用
Node开发面对的两个问题: 1.如何组织代码 2.如何进行异步编程. 一.Node功能的组织和重用 Node模块允许你从被引入文件中选择要暴露给程序的函数和变量.如果模块返回的函数或变量不止一个,那 ...
- 银行ATM机工作流程模拟编程(代码)
#include<stdio.h>#include<stdlib.h>#include <conio.h>#include <string.h> voi ...
- 模拟银行ATM系统(基础版)
Account类 package ATM; public class Account {//定义Account类 private String accountID;//用于存储学生的用户账号(由八位数 ...
- 数据库期末作业之银行ATM存取款机系统
--一.建库.建表.建约束 --1.使用SQL创建表 --客户信息表userinfo --字段名称 说明 备注 --customerID 顾客编号 自动编号(标识列),从1开始,主键 --用序列seq ...
随机推荐
- Daily record-December
December 11. All circles have the same shape. 所有圆的形状都是相同的.2. She first drew a circle on the board. 她 ...
- linux下用户操作
在linux中添加ftp用,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test. 2.建用户:在root用户下: useradd ...
- CentOS 配置防火墙操作实例
注:防火墙的基本操作命令: 查询防火墙状态: [root@localhost ~]# service iptables status<回车> 停止防火墙: [root@localh ...
- .NET快速开发平台免费版预发布
自己团队开发的一套软件,可通过配置完成列表.表单.流程等的快速开发,因项目原因有一段时间没更新了,准备发出来希望能帮助更多企业快速实现信息化. 该软件主要应用的技术有如下: 1.存储:采用SqlSer ...
- tinyproxy代理配置
tinyproxy代理配置 应用场景: 生产机处于内网,无法直接访问外网,程序安装和漏洞修复等操作需要进行联网操作:通过在办公网(可访问外网)上设置代理服务器,生产机通过代理由办公网访问外网 代理服务 ...
- lintcode中等题目的四道题
第一题: 第一句先创建了一个解决问题的类, 第二句声明了一个公共接口的整形链表里面有N个整形数, 第三句给链表动态初始化, 第四步判断链表里的数有没有,如果N<=0则返回结果0,否则执行Prin ...
- jQuery对象与DOM对象互相转换
1.jQuey对象转DOM对象 a. [index] 代码如下: var $a = $("#a"); //jQuery对象 var a = $a[]; //DOM对象 b. g ...
- python中下划线的特殊用法
python下划线用法总结: ① _XXX 不能用于“ from model import * ”的导入: ②__XXX__ 系统定义名字: ③__XXX 类中的私有变量名. 总结:避免随意用下划线 ...
- LeetCode 57 插入区间
题目: 给出一个无重叠的 ,按照区间起始端点排序的区间列表. 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间). 示例 1: 输入: intervals ...
- SpringMVC云题库错题及答案汇总-2
此题目考察的是SpringMVC-注解驱动控制器,注释类型的范围: A.处理requet uri 部分的注解: @PathVariable; B.处理request header部分的注解: @Req ...