寫一個用戶登錄注冊的小程序
運行程序,給出提示
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}}}
}