说明:

1.manager.go

package mainimport ("fmt""homeaccount/atmobject/utils"
)func main() {fmt.Println("面向对象ATM-OBJECT")utils.NewStructAtm().MainMenu()}

2. utils/utils.go文件:

package utilsimport ("fmt""strings"
)type StructAtm struct {action intloop boolsave_money intmoney intdraw_money int
}func NewStructAtm() *StructAtm  {return &StructAtm{action : 0,loop :true,save_money :0,money :0,draw_money :0,}
}func (this *StructAtm) find(){fmt.Printf("余额为:%d \n",this.money)
}
func (this *StructAtm) save(){fmt.Println("请输入存款金额:")fmt.Scanln(&this.save_money)fmt.Println(this.save_money)this.money += this.save_moneyfmt.Printf("存款金额%d,存款成功\n",this.save_money)
}
func (this *StructAtm) draw(){fmt.Println("请输入具体取款金额:")fmt.Scanln(&this.draw_money)if this.draw_money <= this.money{this.money -= this.draw_moneyfmt.Printf("成功取款,余额为:%d\n",this.money)}else {fmt.Println("余额不足")}
}
func (this *StructAtm) shoping(){shop_goods := make(map[string]int)goods_list := make([]string,0)var goodName stringvar shopmany intif len(shop_goods)==0 {this.add_goods(&shop_goods)}fmt.Println(shop_goods)this.shop_car(goodName ,&goods_list)for i:=0 ; i<len(goods_list);i++{v,_ :=shop_goods[goods_list[i]]shopmany += v}if this.money < shopmany{fmt.Println("购物失败,余额不足,请及时充值")}else{this.money -=  shopmany}
}func (this *StructAtm) add_goods(g *map[string]int) {for{var(name stringprice int)fmt.Println("输入新增的商品名称,按Q退出:")fmt.Scanln(&name)if strings.ToUpper(name)=="Q"{break}fmt.Println("输入该商品价格:")fmt.Scanln(&price)(*g)[name]= price}
}
func (this *StructAtm) shop_car(gn string,gl *[]string) {for{fmt.Println("输入要购买的商品(Q退出):")fmt.Scanln(&gn)if gn =="Q" {break}*gl = append(*gl,gn)}
}
func (this *StructAtm) manager() {fmt.Println("-----欢迎登陆XXX银行-----")fmt.Println("\t1:查询余额")fmt.Println("\t2:存款")fmt.Println("\t3:取款")fmt.Println("\t4:购物")fmt.Println("\t5:退出")fmt.Println("请输入你的操作:")fmt.Scanln(&this.action)switch this.action {case 1:this.find()case 2:this.save()case 3:this.draw()case 4:this.shoping()case 5:this.loop = falsedefault:fmt.Println("输入有误,请输入1-4之间的数字")}
}func (this *StructAtm) MainMenu() {for {this.manager()if this.loop == false{fmt.Println("----欢迎使用,再见----")break}}
}

ATM-object面向对象版本相关推荐

  1. 学生信息管理系统(面向对象版本)V3.0

    版本 面向对象版本的学生信息管理系统 第一版: import os# 面向对象的方式分析学生管理管理系统# 1. 添加学生的功能 # 2. 修改学生的功能 # 3. 删除学生的功能 # 4. 查询学生 ...

  2. [Object]面向对象编程(高程版)(二)原型模式

    [Object]面向对象编程(高程版)(二)原型模式 博客分类: Web前端-JS语言核心 作者:zccst 三.原型模式 每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个 ...

  3. Python学生管理系统——面向对象版本

    Python练习题----学生管理系统(面向对象版本) 一. 题目要求: 学生信息管理:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等.设计一个学生信息管理系统,使之提供以下功能: -- ...

  4. [Object]面向对象编程(妙味课堂版)

    zccst笔记 一.面向对象初步 工厂方法 function createPerson(name,sex){ //1 var p = new Object; //2 p.name = name; p. ...

  5. html5 canvas绘制圆形、方形矩形、线段、图片等各种图形(面向对象版本)

    概念: 面向对象的方法主要是把事物给对象化,包括其属性和行为.面向对象编程更贴近实际生活的思想.总体来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象(万物皆对象). 绘 ...

  6. 如何使用代码获得ABAP repository object不同版本的内容

    Created by Jerry Wang, last modified on Dec 21, 2014 在ABAP workbench里可以通过Version management来比较不同版本的r ...

  7. object C php,关于消息推送的补充,主要介绍服务端的实现,包含object c 版本 c 版本 java 版本 php 版本 (转)...

    1. push原理 iOS push 工作机制可以用下图简要概括 Provider:应用自己的服务器: APNS:Apple Push Notification Service的简称,苹果的PUSH服 ...

  8. python|面向对象(一)

    文章目录 面向对象(一)学会面向对象编程 一.初步了解面向对象 二.类的定义和使用 经典类和新式类示例: 实例化示例: 类空间和实例空间 __init__方法 __new__方法 单例模式 三.sel ...

  9. Python的面向对象,魔术方法、类的三大特征、自省、实例空间、经典类与新式类

    目录 1.什么是面向对象 1.1 面向过程 1.2 面向对象 1.3 面向对象的优点 2.类 2.1 什么是类.对象,方法和属性 2.2 类的定义和使用 2.2.1 类名规范和类的写法 2.3 魔术方 ...

  10. 面向对象分析与设计--遛狗玩

    这篇文章焦点并不在于继承以及多态性或者各种炫酷的设计模式上面,也不在与对未来的预测,而在于分析最基本的封装,提取类,组合 人遛狗的最简形式 public class People {public st ...

最新文章

  1. GitHub也会断供:美国制裁地区帐号都受限,毫无预警,个人页面直接404
  2. 每天一个linux命令(46):vmstat命令
  3. DataNumen RAR Repair中文版
  4. Java中通过substring和charAt截取字符串并获取指定字符
  5. 查看mysql SQL物理读_Oracle查看逻辑读、物理读资源占用排行的SQL语句
  6. python做一副54扑克牌发牌技巧_德州扑克讲堂:高级技巧 胜率之摊牌胜率的算法...
  7. struct数组初始化
  8. linux命令界面输入不了密码,如何在 Linux 中不输入密码运行 sudo 命令
  9. python模块之feedparser学习使用
  10. java中的缓存详解,一篇就够了
  11. devexpress,dotnetbar控件
  12. Zabbix 3.0 监控Web [七]
  13. 5分钟搞定 微信早安推送 升级版
  14. 403错误(已解决)
  15. 浏览器:CSDN的浏览器助手使用推荐
  16. 智慧多功能综合杆案例分享:上海市多杆合一、综合杆道路智慧路灯项目解决方案解析
  17. TIPOP 出货单单头
  18. 华为模拟器eNSP安装初体验
  19. C++程序设计:原理与实践(进阶篇)16.3 通用搜索算法f?ind_if()
  20. JAVA基础——第二章,变量,数据类型和运算符

热门文章

  1. selenium+python模拟键盘鼠标操作,python3.6安装pyUserInput
  2. 删数问题(Noip1994)
  3. Openwrt 路由器挂载摄像头教程
  4. asp.net先于iis安装导致iis不能解析aspx的问题(Failed to access IIS metabase,IISメタベースにアクセスできませんでした)...
  5. sklearn——model_selection——knn手写识别系统+iris分类
  6. SNPP/VIIRS 数据介绍和下载
  7. python 爬虫基础(一)Beautifulsoup基础介绍
  8. STM32DMA搬运ADC只搬了一半数据的原因。
  9. php数据库密码查询,php数据库查询及密码匹配的功能
  10. Bootstrap前端框架