Golang编写简单的银行卡功能 实现查询 取款 存款功能

package main

import (
	"fmt"
)

/*
面向对象方式实现  
将共有的属性 也就是struct 字段提取出来
银行卡属性 账号 密码 余额 必要的属性 行为就是方法 银行卡能做什么 银行卡有哪些功能 银行卡行为 取款 存款 查看 */ //定义一个结构体 储存共有的属性 银行卡的一些必要条件 type Acount struct { User string PWD string yue float64 } //取款功能 func (a *Acount) qukuan(money float64, PWD string) bool { if PWD != a.PWD { fmt.Println("取款密码不正确") return false } if money <= 0 || money > a.yue { fmt.Println("您输入的金额不正确") return false } a.yue -= money return true } func (a *Acount) Savemoney(money float64, PWD string) { if PWD != a.PWD { fmt.Println("存钱输入密码不正确") return } if money <= 0 { fmt.Println("存钱输入的金额不正确") return } a.yue += money } func (a *Acount) Query(PWD string) { if a.PWD != PWD { fmt.Println("查询密码不正确") return } fmt.Printf("user=%v 余额=%v\n", a.User, a.yue) } func main() { var a *Acount = &Acount{ User: "js10001", PWD: "123456", yue: 100, } var pwd string var input int var jine float64 var qukuan float64 var flag bool = true for { fmt.Printf("请输入密码>>:") fmt.Scanln(&pwd) if pwd != a.PWD { continue } for flag { fmt.Printf("1.查询余额\n") fmt.Printf("2.存钱\n") fmt.Printf("3.取钱\n") fmt.Printf("4.退出\n") fmt.Printf("请输入编号>>:") fmt.Scanln(&input) switch input { case 1: a.Query(pwd) case 2: fmt.Printf("请输入存款金额>>:") fmt.Scanln(&jine) a.Savemoney(jine, pwd) case 3: fmt.Printf("请输入取款金额>>:") fmt.Scanln(&qukuan) a.qukuan(qukuan, pwd) case 4: flag = false default: fmt.Printf("您输入的选项不存在") } if flag == false { break } } } }

  

posted @ 2018-12-29 10:24  运维面试辅导  阅读(650)  评论(0)    收藏  举报