写一个用户登录注册的小程序
运行程序,给出提示
1. 注册
输入用户名、密码、年龄、性别 {"用户名": "root", "passwd": "123456", "age": 18, "sex": "男"}
注册前要判断是否存在此用户
2. 登录
输入用户名、密码
判断用户名和密码是否正确
3. 退出
不限次数登录注册,直到按3退出
/*
写一个用户登录注册的小程序
运行程序,给出提示1. 注册输入用户名、密码、年龄、性别 {"用户名": "root", "passwd": "123456", "age": 18, "sex": "男"}注册前要判断是否存在此用户2. 登录输入用户名、密码判断用户名和密码是否正确3. 退出不限次数登录注册,直到按3退出
*/
package mainimport "fmt"func main() {user := make(map[string]map[string]string)user["张三"] = map[string]string{"passwd": "123456", "age": "18", "sex": "男"}user["李四"] = map[string]string{"passwd": "654321", "age": "22", "sex": "女"}for {fmt.Println("**********欢迎来到菜单页面**********")fmt.Println("按“1”--》注册")fmt.Println("按“2”--》登录")fmt.Println("按“3”--》退出")fmt.Println("请输入您的选择:")var choice intfmt.Scan(&choice)if choice == 1 {fmt.Println("**********欢迎来到注册页面**********")var name stringfmt.Println("请输入用户名:")fmt.Scan(&name)flag := 0for k, _ := range user {if k == name {fmt.Println("用户已存在,请重新输入用户名!")flag = 1}}if flag == 0 {var passwd stringfmt.Println("请输入密码:")fmt.Scan(&passwd)var age stringfmt.Println("请输入年龄:")fmt.Scan(&age)var sex stringfmt.Println("请输入性别:")fmt.Scan(&sex)user[name] = map[string]string{"passwd": passwd, "age": age, "sex": sex}fmt.Println("注册成功,您的用户信息为:", user[name])}} else if choice == 2 {fmt.Println("**********欢迎来到登录页面**********")var name stringfmt.Println("请输入用户名:")fmt.Scan(&name)flag := 0for k, _ := range user {if k == name {// input_passwd:var passwd stringfmt.Println("请输入密码:")fmt.Scan(&passwd)if passwd == user[name]["passwd"] {fmt.Println("密码正确,您的用户信息如下:")fmt.Println(user[name])flag = 1break} else {fmt.Println("密码错误,请重新输入!")continue// goto input_passwd}}}if flag == 0 {fmt.Println("用户名不存在,请重新输入!")}} else if choice == 3 {break}}}
方法二:
package mainimport ("fmt"
)func main() {// 使用map存储用户信息,key是用户名,value是包含用户详细信息的mapusers := make(map[string]map[string]string)// 初始化一些示例用户users["张三"] = map[string]string{"passwd": "123456", "age": "18", "sex": "男"}users["李四"] = map[string]string{"passwd": "654321", "age": "22", "sex": "女"}for {// 显示主菜单fmt.Println("**********欢迎来到菜单页面**********")fmt.Println("按\"1\"-->注册")fmt.Println("按\"2\"-->登录")fmt.Println("按\"3\"-->退出")fmt.Print("请输入您的选择:")var choice int_, err := fmt.Scan(&choice)if err != nil {fmt.Println("输入无效,请输入数字1-3!")continue}switch choice {case 1:registerUser(users)case 2:loginUser(users)case 3:fmt.Println("感谢使用,再见!")returndefault:fmt.Println("无效的选择,请重新输入1-3!")}}
}// 注册用户函数
func registerUser(users map[string]map[string]string) {fmt.Println("**********欢迎来到注册页面**********")// 获取用户名并检查是否已存在var name stringfor {fmt.Print("请输入用户名:")fmt.Scan(&name)if _, exists := users[name]; exists {fmt.Println("用户已存在,请重新输入用户名!")} else {break}}// 获取密码var passwd stringfmt.Print("请输入密码:")fmt.Scan(&passwd)// 获取年龄var age stringfmt.Print("请输入年龄:")fmt.Scan(&age)// 获取性别var sex stringfmt.Print("请输入性别:")fmt.Scan(&sex)// 创建用户信息users[name] = map[string]string{"passwd": passwd,"age": age,"sex": sex,}fmt.Println("注册成功!您的用户信息为:")fmt.Printf("用户名: %s\n密码: %s\n年龄: %s\n性别: %s\n", name, passwd, age, sex)
}// 登录用户函数
func loginUser(users map[string]map[string]string) {fmt.Println("**********欢迎来到登录页面**********")// 获取用户名并检查是否存在var name stringfor {fmt.Print("请输入用户名:")fmt.Scan(&name)if user, exists := users[name]; !exists {fmt.Println("用户名不存在,请重新输入!")} else {// 获取密码并验证var passwd stringfmt.Print("请输入密码:")fmt.Scan(&passwd)if passwd == user["passwd"] {fmt.Println("登录成功!您的用户信息如下:")fmt.Printf("用户名: %s\n密码: %s\n年龄: %s\n性别: %s\n",name, user["passwd"], user["age"], user["sex"])return} else {fmt.Println("密码错误,请重试!")return}}}
}