一、要求
- 创建程序,在 model 包中定义 Account 结构体:在 main 函数中体会 Golang 的封装性。
- Account 结构体要求具有字段:账号(长度在 6-10 之间)、余额(必须>20)、密码(必须是六
- 通过 SetXxx 的方法给 Account 的字段赋值。
- 在 main 函数中测试
二、实现
package model
import (
"fmt"
)
type account struct {
accountNo string
pwd string
balance float64
}
func NewAccount(accountNo string, pwd string, balance float64) *account{
if len(accountNo)<6 || len(accountNo)>10{
fmt.Println("您输入的账号错误...")
return nil
}
if len(pwd) != 6{
fmt.Println("您输入的密码长度不对...")
return nil
}
if balance < 20 {
fmt.Println("余额不足...")
return nil
}
return &account{
accountNo: accountNo,
pwd: pwd,
balance: balance,
}
}
func (account *account)Deposite(money float64,pwd string){
if pwd !=account.pwd{
fmt.Println("输入的密码错误")
return
}
if money <= 0{
fmt.Println("你输入的金额不正确")
return
}
account.balance += money
fmt.Println("存款成功,当前余额为: ", account.balance)
}
func (account *account)WithDraw(money float64,pwd string){
if pwd !=account.pwd{
fmt.Println("输入的密码错误")
return
}
if money <= 0 || money > account.balance{
fmt.Println("你输入的金额不正确")
return
}
account.balance -= money
fmt.Println("取款成功,当前余额为: ", account.balance)
}
func (account *account)Query(pwd string){
if pwd !=account.pwd{
fmt.Println("输入的密码错误")
return
}
fmt.Printf("账号:%v的账户当前的余额为:%v ", account.accountNo, account.balance)
}
package main
import (
"chapter12/fengzhuang/model"
"fmt"
)
func main() {
account := model.NewAccount("jzh111", "000000", 40)
if account != nil {
fmt.Println("创建成功=", account)
} else {
fmt.Println("创建失败")
}
}