练习题:试使用C#编程实现银行、ATM等功能

时间:2022-09-19 22:49:07

练习题:试使用编程实现银行、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等功能

练习题:试使用C#编程实现银行、ATM等功能的更多相关文章

  1. 银行ATM机工作流程模拟编程

    [编程内容] 编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程.依据帐户信息:姓名.帐号.密码.余额,完成ATM机功能:登录.显示余额.取款.修改密码. ...

  2. MySQL银行ATM存取款机系统(需求分析)

    银行ATM需求文档 一.E-R图形文 二.开发步骤 1.明确需求--数据库设计--编码实现功能--测试 2.绘制e-r图--绘制数据库模型图--使用三大方式规范数据库结构 三.开发思路 1. 模型图综 ...

  3. 实验01——java模拟银行ATM系统

    用java写的一个模拟银行系统,比较初级. ATM.java package cn.tedu.yinhang; import java.util.Scanner; /** * @author 赵瑞鑫 ...

  4. jsp&plus;servlet&plus;mysql 实现简单的银行登录转账功能

    jsp+servlet+mysql 实现简单的银行登录转账功能 [前期的准备] html(登录界面),servlet(处理业务逻辑),jsp(主要实现界面),mysql(实现与数据库的简单的交互)先从 ...

  5. NODE编程(一)--Node功能的组织和重用

    Node开发面对的两个问题: 1.如何组织代码 2.如何进行异步编程. 一.Node功能的组织和重用 Node模块允许你从被引入文件中选择要暴露给程序的函数和变量.如果模块返回的函数或变量不止一个,那 ...

  6. 银行ATM机工作流程模拟编程(代码)

    #include<stdio.h>#include<stdlib.h>#include <conio.h>#include <string.h> voi ...

  7. 模拟银行ATM系统(基础版)

    Account类 package ATM; public class Account {//定义Account类 private String accountID;//用于存储学生的用户账号(由八位数 ...

  8. 数据库期末作业之银行ATM存取款机系统

    --一.建库.建表.建约束 --1.使用SQL创建表 --客户信息表userinfo --字段名称 说明 备注 --customerID 顾客编号 自动编号(标识列),从1开始,主键 --用序列seq ...

  9. C 语言之银行ATM机界面

    其实就是简单地对switch的用法,希望能给广大读者一些思路,写出自己的创意界面. #include <stdio.h> void main() { char SelectKey,Cred ...

随机推荐

  1. 复杂sql分组查询 ( pivot)

    一个数据表里面字段有年.月.日.金额.支付方式等字段,然后现在想写个sql语句,把每一天的每种支付方式金额(支付方式有多重)排在同一行, 最后在增加一列小计当前的所有支付方式的金额.如下图: 原sql ...

  2. 每个Android开发者都应该了解的资源列表

    前言   这是一篇译文,原文地址Resources every Android developer must know,在译文开头,推荐两篇同样适合于Android开发者阅读的资源列表Android开 ...

  3. bzoj 3037 贪心

    我们可以贪心的分析,每个点的入度如果是0,那么这个点不可能 被用来更新答案,那么我们每次找入度为0的点,将他去掉,如果他连的 点没有被更新过答案,那么更新答案,去掉该点,环的时候最后处理就行了 /** ...

  4. uav 11258 String Partition &lpar;DP&rpar;

    Problem F - String Partition                                                                         ...

  5. hdu2602 Bone Collector &lpar;01背包)

    本文来源于:http://blog.csdn.net/svitter 题意:典型到不能再典型的01背包.给了我一遍AC的快感. //================================== ...

  6. AOJ2249最短路+最小费用

    题意:求出某个点到其他点的最短路,并求出在最短路情况下的最小费用 分析:用dijkstra求出最短路并同时更新最小费用即可,注意的是在最短路长度相同时费用取最小即可 #include <iost ...

  7. 扫雷游戏制作过程(C&num;描述):第二节、界面设计

    前言 这里给出教程原文地址. 该项目已经放在github上托管. 扫雷界面设计 界面的设计,首先需要创建一个菜单栏.具体方法在左边找到工具箱窗口,展开其中的菜单和工具栏,找到MenuStrip选项,双 ...

  8. TXT电子书格式怎样转换成epub格式

    怎样将TXT电子书格式转换成epub格式呢?因为很多时候不同的阅读器所支持的电子书格式是有所不同,所以电子书格式转换的问题,在生活中也是会经常出现的问题.如果我们需要将TXT电子书格式转换成epub格 ...

  9. 【splunk】启动停止

    在控制台 splunk目录/bin下 ./splunk start #启动 ./splunk stop #停止 启动时出错,需要更改一下SPLUNK的配置 $SPLUNK_HOME/etc/splun ...

  10. js和css

    body{height:100%;background-image:url(./img/background.png);}  宽度同理 body的高度适应屏幕大小设置成  height:100%; 前 ...