基于函数章节—制作用户管理系统

  1. 用户信息存储
    1. 内存
    2. 结构(切片 []映射 map
    3. 用户 ID name age tel addr
  2. 用户创建
  3. 用户的修改
    1. 请输入需要修改的用户ID:
    2. users[id] => 在 不在(你输入的用户ID不正确)
    3. 打印用户信息,提示用户是否确认修改(Y/N)
    4. Y 提示用户输入修改后内容
    5. nameageteladdr
  4. 用户的查询
  5. 用户的删除
    1. 请输入需要删除的用户ID:
    2. users[id] => 在 不在(你输入的用户ID不正确)
    3. 打印用户信息,提示用户是否确认修改(Y/N)
    4. delete()
  6. 用户登录:
    1. 在程序中定义PASSWORD = “1qaz!QAZ”,提示输入密码,如果密码输入3次都失败,提示并退出,如果输入成功在进行操作。
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "strings"
  6. )
  7. func AddUser(base string) string {
  8. fmt.Println(base)
  9. fmt.Scan(&base)
  10. return base
  11. }
  12. func add(pk int, users map[string]map[string]string) {
  13. var (
  14. id string = fmt.Sprintf("%d", pk)
  15. name string
  16. age string
  17. tel string
  18. addr string
  19. )
  20. name = AddUser("请输入姓名:")
  21. age = AddUser("请输入年龄:")
  22. tel = AddUser("请输入电话:")
  23. addr = AddUser("请输入地址:")
  24. fmt.Println(id, name, age, tel, addr)
  25. users[id] = map[string]string{
  26. "id": id,
  27. "name": name,
  28. "age": age,
  29. "tel": tel,
  30. "addr": addr,
  31. }
  32. }
  33. //查询用户
  34. func query(users map[string]map[string]string) {
  35. var q string
  36. fmt.Printf("请输入查询的信息:\n")
  37. fmt.Scan(&q)
  38. title := fmt.Sprintf("%5s|%20s|%5s|%20s|%50s\n", "ID", "Name", "Age", "Tel", "Addr")
  39. fmt.Printf(title)
  40. fmt.Println(strings.Repeat("-", len(title)))
  41. for _, v := range users {
  42. if q == "q" || strings.Contains(v["name"], q) || strings.Contains(v["tel"], q) || strings.Contains(v["addr"], q) {
  43. fmt.Printf("%5s|%20s|%5s|%20s|%50s\n", v["id"], v["name"], v["age"], v["tel"], v["addr"])
  44. }
  45. }
  46. }
  47. // 修改用户
  48. func modify(users map[string]map[string]string) {
  49. var q string
  50. fmt.Printf("请输入需要修改的用户ID:\n")
  51. fmt.Scan(&q)
  52. for k, v := range users {
  53. if k == q {
  54. var yn string
  55. fmt.Printf("%5s|%20s|%5s|%20s|%50s\n", v["id"], v["name"], v["age"], v["tel"], v["addr"])
  56. fmt.Printf("是否修改以上信息(y/n):")
  57. fmt.Scan(&yn)
  58. for {
  59. if yn == "y" || yn == "Y" {
  60. v["name"] = AddUser("请输入新姓名:")
  61. v["age"] = AddUser("请输入新年龄:")
  62. v["tel"] = AddUser("请输入新电话:")
  63. v["addr"] = AddUser("请输入新地址:")
  64. break
  65. } else if yn == "N" || yn == "n" {
  66. fmt.Println("取消修改,程序退出")
  67. break
  68. } else {
  69. fmt.Println("输入错误,请重新输入!!!")
  70. fmt.Printf("是否修改以上信息(y/n):")
  71. fmt.Scan(&yn)
  72. }
  73. }
  74. break
  75. } else {
  76. fmt.Println("输入错误请重新输入")
  77. }
  78. }
  79. }
  80. // 删除用户
  81. func dele(users map[string]map[string]string) {
  82. var dele string
  83. fmt.Println("请输入需要删除的用户ID:")
  84. fmt.Scan(&dele)
  85. for k, v := range users {
  86. if k == dele {
  87. var fn string
  88. fmt.Printf("%5s|%20s|%5s|%20s|%50s\n", v["id"], v["name"], v["age"], v["tel"], v["addr"])
  89. fmt.Printf("是否删除以上信息(y/n):")
  90. fmt.Scan(&fn)
  91. for {
  92. if fn == "y" || fn == "Y" {
  93. delete(users, dele)
  94. break
  95. } else if fn == "N" || fn == "n" {
  96. fmt.Println("取消删除,程序退出")
  97. break
  98. } else {
  99. fmt.Println("输入错误,请重新输入!!!")
  100. fmt.Printf("是否删除以上信息(y/n):")
  101. fmt.Scan(&fn)
  102. }
  103. }
  104. break
  105. } else {
  106. fmt.Println("输入错误,程序退出")
  107. }
  108. }
  109. }
  110. const (
  111. maxAuth = 3
  112. password = "123456"
  113. )
  114. func auth() bool {
  115. var input string
  116. for i := 0; i < maxAuth; i++ {
  117. fmt.Println("请输入程序密码:")
  118. fmt.Scan(&input)
  119. if input == password {
  120. return true
  121. } else {
  122. fmt.Println("密码输入错误,请重新输入!")
  123. }
  124. }
  125. return false
  126. }
  127. func main() {
  128. if !auth(){
  129. fmt.Printf("密码%d次错误,程序退出\n",maxAuth)
  130. return
  131. }
  132. //存储用户信息
  133. users := make(map[string]map[string]string)
  134. id := 0
  135. fmt.Println("欢迎使用大冬系统")
  136. for {
  137. var op string
  138. fmt.Print(`
  139. 1.新建用户
  140. 2.修改用户
  141. 3.删除用户
  142. 4.查询用户
  143. 5.退出
  144. 请输入指令:`)
  145. fmt.Scan(&op)
  146. if op == "1" {
  147. id++
  148. add(id, users)
  149. } else if op == "2" {
  150. modify(users)
  151. } else if op == "3" {
  152. dele(users)
  153. } else if op == "4" {
  154. query(users)
  155. } else if op == "5" {
  156. os.Exit(0)
  157. } else {
  158. fmt.Println("输入错误,请重新输入")
  159. }
  160. }
  161. }