这篇文章主要说明:
一、对项目完成一个转账功能。
二、在使用改软件前,有一个登录功能,只有输入正确的用户名和密码才能操作。
(1)完成转账功能代码如下:
<
将转账写成一个方法:
//将转账写成一个方法
func (this *FamilyAccount) Transfer() {fmt.Println("---------------转账功能--------------------")fmt.Println("本次转账金额:")//用户输入转账金额fmt.Scanln(&)//根据用户余额对转账的金额做出判断 > this.balance {fmt.Println("你的余额不足,不足以完成转账...")}//转账后用户的余额发生变化this.balance -= fmt.Println("本次转账说明:")fmt.Scanln(&)//将转账情况拼接到details变量this.details += fmt.Sprintf("n转账t%vt%vt%v", this.balance, , )this.flag = true
}
主菜单MainMenu()
func (this *FamilyAccount) MainMenu() {for {//显示主菜单fmt.Println("n-------------家庭收支记账软件-------------")fmt.Println(" 1 收支明细")fmt.Println(" 2 登记收入")fmt.Println(" 3 登记支出")fmt.Println(" 4 选择转账")fmt.Println(" 5 退出软件")fmt.Println("请选择(1-5):")//接收用户输入(1-5)fmt.Scanln(&this.key)//对用户输入进行判断switch this.key {case "1"://调用this.showDetails()case "2":this.income()case "3":this.pay()case "4":this.Transfer()case "5":it()default:fmt.Println("请输入" +"正确的选项")}//退出for循环if !this.loop {break}}
(2)实现登录功能代码如下:
在结构体FamilyAccount中新增加字段
//密码pwd string//账号account string
返回*FamilyAccount实例:
func NewFamilyAccount() *FamilyAccount {return &FamilyAccount{key: "",loop: true,balance: 10000.0,money: 0.0,note: "",flag: false,details: "详情t账户金额t收支金额t说明",pwd: "88888888",account: "中国工商银行",}
}
将密码写成一个方法Showcode
func (this *FamilyAccount) Showcode(accountnumber string, code string) {for {fmt.Println("请输入你的系统账号..")fmt.Scanln(&accountnumber)fmt.Println("请输入你的系统密码..")fmt.Scanln(&code)//逻辑判断if code != this.pwd || accountnumber != this.account {fmt.Println("你输入的账号或者密码不正确,请重新输入..")//递归调用this.Showcode("", "")} else {fmt.Println("恭喜你!正在进入系统...")//如果成功进入,调用主菜单this.MainMenu()}}}
在直接调用Showcode
func main() {fmt.Println("这个是面向对象的方式完成..n")//调用登录页面Showcodeutils.NewFamilyAccount().Showcode("","")
}
(3)项目测试页面如下:
参考:尚硅谷韩顺平Go语言核心编程
欢迎大家指正补充,感谢阅读。
本文发布于:2024-01-30 04:21:37,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170655969919178.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |