使用Go 练习写一个登陆注册
2020-08-20 本文已影响0人
刘xin_8
学习一门语言,最重要的就是动手,一个项目的代码写三遍,看起来笨的方法,实际上也是最快的方法。能直接运行看效果,还有一些细节需要完善 留给你们咯
package main
import "fmt"
定义一个结构体 相当于创建一个字典
type FamilyA struct {
key string
account string
password string
loop bool
}
编写构造方法,返回 *FamilyA实例 类似于初始化
func functions() *FamilyA {
return &FamilyA{
key: "",
account: " ",
password: " ",
loop: true,
}
}
登陆
func (this *FamilyA)login() {
for{
fmt.Println("请输入账号:")
var account string
fmt.Scanln(&account)
if this.account != account {
fmt.Println("该账号未注册,请去注册!")
fmt.Println(" 1 - 主界面 ")
fmt.Println(" 2 - 注册")
fmt.Println("请选择(1-2)")
fmt.Scanln(&this.key)
switch this.key {
case "1":
this.Index()
case "2":
this.register()
}
} else {
var pwd string
fmt.Println("请输入密码: ")
fmt.Scanln(&pwd)
if pwd == this.password {
fmt.Println("登陆成功 OvO ")
this.index()
break
} else {
fmt.Println("密码错误! ")
}
}
}
}
注册
func (this *FamilyA)register() {
fmt.Println("请输入注册账号:")
var account string
fmt.Scanln(&account)
if this.account == account{
fmt.Println("该账号已注册,请重新输入!")
} else {
this.account = account
fmt.Println("请输入密码:")
var password string
fmt.Scanln(&password)
this.password = password
fmt.Println("注册成功!")
fmt.Println(" 1 - 主界面 ")
fmt.Println(" 2 - 登陆")
fmt.Println("请选择(1-2)")
fmt.Scanln(&this.key)
switch this.key {
case "1":
this.Index()
case "2":
this.login()
}
}
}
登陆成功后
func (this *FamilyA)index() {
fmt.Println("欢迎来到主页面!")
}
开始主页
func (this *FamilyA)Index() {
for {
fmt.Println("================ 主界面 ================")
fmt.Println(" 1 - 登陆")
fmt.Println(" 2 - 注册")
fmt.Println(" 3 - 忘记密码")
fmt.Println(" 4 - 退出")
fmt.Println("请选择(1-4)")
fmt.Scanln(&this.key)
switch this.key {
case "1":
this.login()
case "2":
this.register()
case "4":
this.loop = false
default:
fmt.Println("您的输入不正确,请按提示输入正确的选项..")
}
if !this.loop{
break
}
}
}
mian
func main() {
lo := functions()
lo.Index()
}