用Go模拟了一张卡的存、取、查的简单功能。未加入对卡号的识别功能。

package main
import ("fmt"
)//定义一个账户的结构体
type Account struct {ActNo stringPwd stringBalance float64
}func (account *Account) Deposite(pwd string,money int) (isOk bool,bal float64) {isOk = falseif pwd != (*account).Pwd || money <= 0 {isOk = truebal = 0 } else {isOk = falsebal = (*account).Balance + float64(money)}(*account).Balance = balreturn isOk,bal
}func (account *Account) WithDraw(pwd string,money int) (isOk bool,bal float64) {isOk = falseif pwd != (*account).Pwd || money > int((*account).Balance) {isOk = truebal = 0 } else {isOk = falsebal = (*account).Balance - float64(money)}(*account).Balance = balreturn isOk,bal
}func (account *Account) Check(pwd string) (isOk bool,balance float64){isOk = falseif pwd != (*account).Pwd {isOk = true} else {isOk = falsebalance = (*account).Balance}return isOk,balance
}func main() {//模拟一张银行卡account := &Account{ActNo: "cs10101010",Pwd: "888888",Balance: 1000.0,}var (money intpwd stringoperator int)//内置函数deposite := func (){for i := 1; i <= 3; i ++ {fmt.Println("请输入密码...")fmt.Scanln(&pwd)fmt.Println ("请输入存款金额...")fmt.Scanln(&money)//调用存款功能方法isSuccess,balance := (*account).Deposite(pwd,money)if !isSuccess {fmt.Printf("您存入的金额是 %v, 当前的账户余额是%v \n",money,balance)break} else {fmt.Printf("输入有误,请重新输入,您还有%d次机会 \n", 3-i )}if i == 3 {fmt.Println("输入错误已满3次,系统退出..." )break}}}//内置函数withdraw := func (){for i := 1; i <= 3; i ++ {fmt.Println("请输入密码...")fmt.Scanln(&pwd)fmt.Println ("请输入取款金额...")fmt.Scanln(&money)//调用取款功能方法isSuccess,balance := (*account).WithDraw(pwd,money)if !isSuccess {fmt.Printf("您要取款的金额是 %v, 当前的账户余额是%v \n",money,balance)break} else {fmt.Printf("输入有误,请重新输入,您还有%d次机会 \n", 3-i )}if i == 3 {fmt.Println("输入错误已满3次,系统退出..." )break}}}//内置函数check := func() {for i := 1; i <= 3; i ++{fmt.Println("请输入密码...")fmt.Scanln(&pwd)//调用查询功能的方法isSuccess,bal := (*account).Check(pwd)if isSuccess {fmt.Printf("输入有误,请重新输入,您还有%d次机会 \n", 3-i )} else {fmt.Printf("您的账户余额为: %.2f \n",bal)break}if i == 3 {fmt.Println("输入错误已满3次,系统退出..." )break}}}a://for循环的标签for {fmt.Println("请输入您需要的服务: 1.存款; 2.取款; 3.查询; 4.退出")fmt.Scanln(&operator)switch operator {case 1:deposite() //调用存款的内置函数case 2:withdraw() //调用取款的内置函数case 3:check() //调用余额查询的内置函数case 4:break adefault:fmt.Println("输入有误,没有您选择的服务项目...")}}
}

输出的结果:

Go: 模拟一张银行卡存、取、查的功能(综合练习)相关推荐

  1. 模拟银行ATM存款存取款的相关功能

    模拟银行ATM存款存取款的相关功能 具体需求: 模拟.3张银行卡,1001,1002,1003,分别设置密码和余额(可以用9个变里分别保存卡号.密码和余额) 提示用户输入银行卡和密码 如果用户输入正确 ...

  2. 【Android+OkHttp3+Jsoup】 模拟登录教务系统 抓取课表和成绩

    原文链接:https://blog.csdn.net/u013347241/article/details/52711018 今天这篇文章为大家带来的是模拟登录教务系统并抓取课表和成绩的详细实现过程. ...

  3. java 从数据库取值_JAVA操作数据库--从一张表中取值,经过判断,然后插入另一张表中。...

    JAVA操作数据库-->从一张表中取值,经过判断,然后插入另一张表中. SQL语句如下:两张表 weather 和 weather_process. id均为自动增长.Oracle中采用序列 S ...

  4. 将整张网页存成png图片

    这两天把一直用了很久的Maxthon给换了下来,因为找到了一个有趣的替代品,TheWorld. 从基本功能上而言说不上孰长孰短,TW更精简点,但是够用:界面上MT就难看多了,但是最新版(1.5.0 b ...

  5. mock模拟的数据能增删改查吗_新课通知: React+Umi3+Typescript+Mock

    各位小伙伴大家好, 这是一套经过多人像我反馈需求而录制的课程. 我们曾上线过一个React的插拔式框架Umijs版本2, 以及dvajs的课程. 但由于Umijs版本3上线了, 并且使用的语言是typ ...

  6. 分享:Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据

    Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据 http://my.oschina.net/leopardsaga/blog/94774

  7. 日麻十七步:关于如何从34张牌中取13张牌组成最大番数听牌

    喜欢玩日本麻将的雀友都知道,麻将一般是3-4人玩的,但是如何连3个人都凑不齐呢?那么,2人玩法就应运而生了!具体玩法请移步至萌娘百科十七步查阅- 关于如何从34张牌中取13张牌组成最大番数听牌 下面开 ...

  8. 模拟PWM波的自适应取阈值算法

    模拟PWM波的自适应取阈值算法 前言:   单片机开发中,我们常常接触到的波形就是PWM波,一般都是0~3.3V的数字PWM波,很少涉及模拟PWM波.两者有什么不同呢?模拟PWM波不只有高低电平,还有 ...

  9. 怎样判断一张银行卡是信用卡

    一 需求 财务软件中经常会判断一张银行卡是否是信用卡,这是一个比较普遍的需求. 二 算法1--这个算法是校验信用卡是否合法,不是用来判断一个银行卡是不是信用卡 算法来源:Java实现信用卡校验_南 墙 ...

最新文章

  1. Go 语言编程 — gormigrate GORM 的数据库迁移助手
  2. 四张图揭秘中国AI人才现状
  3. 1068 Find More Coins (30 分)【难度: 难 / 知识点:01背包问题 + 找路径】
  4. HOJ 2278 IP Filtering (二分)
  5. Java Web学习总结(3)Servlet(二)
  6. 应用层(知识架构图)
  7. ehcache缓存原理_干掉GuavaCache:Caffeine才是本地缓存的王
  8. java web事务控制_JavaWeb学习之事务
  9. c语言图灵机算法,图灵机的时间化简概述(3/4)
  10. shl归纳推理测试题库_笔经总结含征服shl功略
  11. AxureRP8.1(注册码)破解汉化教程
  12. python | prophet的案例实践:趋势检验、突变点检验等
  13. 创邻科技荣登机器之心Pro·AI 趋势先锋 Insight 榜单
  14. cocos 《成语接龙》---Button(按钮)组件
  15. Python 语言如何对身份证真实性进行实名认证(阿里云身份证实名认证接口API)
  16. 易泊夏武离线车牌识别,车牌识别SDK
  17. 教你一键开发桌面应用程序
  18. (2018, BigGAN)用于高保真自然图像合成的大规模 GAN 训练
  19. 剑指offer--反转链表
  20. 抖音天花板,电商冲不破

热门文章

  1. 计算机的端口以及tcp/ip中的端口
  2. php中以双下划线打头的作用
  3. 使用Java校验【统一社会信用代码】真假
  4. Python调用Gurobi:Assignment Problem(指派问题)简单案例
  5. P1413 坚果保龄球洛谷c++题解
  6. 如何自己建网站,免费自助建站系统平台哪个最好?
  7. 项目质量管理工具--鱼骨图(石川图)
  8. Mac录屏方法:无需下载软件
  9. 如何在 Mac 上录制屏幕
  10. 重构改善既有代码设计