Python学生信息管理系统-简易版(Python基础)

灰太狼 2022-12-31 01:19 362阅读 0赞

Python学生信息管理系统-简易版

  • 1.学生名片信息管理系统-普通版
  • 2.学生名片信息管理系统-字典版
  • 3.学生名片信息管理系统-函数版
  • 4.学生名片信息管理系统-文件版
  • 5.学生名片信息管理系统-异常版

1.学生名片信息管理系统-普通版

1、添加名片
2、删除名片
3、修改名片
4、查询名片
5、退出系统
6、要求:程序运行后,除非选择退出系统,否则重复执行功能
7、运行界面
在这里插入图片描述
参考代码:

  1. default = ['张三', '男', '18']
  2. card_all = [default]
  3. while True:
  4. print("************************** 名片管理器 **************************")
  5. print("-------------------------- 1.添加名片 --------------------------")
  6. print("-------------------------- 2.删除名片 --------------------------")
  7. print("-------------------------- 3.修改名片 --------------------------")
  8. print("-------------------------- 4.查询名片 --------------------------")
  9. print("-------------------------- 5.查询所有 --------------------------")
  10. print("-------------------------- 6.退出系统 --------------------------")
  11. print("************************** 名片管理器 **************************")
  12. action = int(input("请输入对应数字进行操作:"))
  13. print("-" * 30) # 分隔线
  14. if action == 1:
  15. name = str(input("请输入姓名:"))
  16. gender = str(input("请输入性别:"))
  17. age = str(input("请输入年龄:"))
  18. print("-" * 30) # 分隔线
  19. name_card = [name, gender, age]
  20. card_all.append(name_card)
  21. print("【Information】:名片添加成功!")
  22. print("-" * 30) # 分隔线
  23. elif action == 2:
  24. ID = str(input("请输入管理员账号:"))
  25. password = str(input("请输入密码:"))
  26. print("-" * 30) # 分隔线
  27. if ID == "admin" or password == "123456":
  28. name = str(input("请输入姓名:"))
  29. gender = str(input("请输入性别:"))
  30. age = str(input("请输入年龄:"))
  31. print("-" * 30) # 分隔线
  32. name_card = [name, gender, age]
  33. if name_card in card_all:
  34. card_all.remove(name_card)
  35. print("删除成功!")
  36. else:
  37. print("【ERROR】:查无此人,请重新输入!")
  38. else:
  39. print("【ERROR】:账号或密码错误,请重新输入!")
  40. elif action == 3:
  41. ID = str(input("请输入管理员账号:"))
  42. password = str(input("请输入密码:"))
  43. print("-" * 30) # 分隔线
  44. if ID == "admin" and password == "123456":
  45. name = str(input("请输入姓名:"))
  46. gender = str(input("请输入性别:"))
  47. age = str(input("请输入年龄:"))
  48. print("-" * 30) # 分隔线
  49. name_card = [name, gender, age]
  50. if name_card in card_all:
  51. card_all.remove(name_card)
  52. new_name = str(input("请输入修改后的姓名:"))
  53. new_gender = str(input("请输入修改后的性别:"))
  54. new_age = str(input("请输入修改后的年龄:"))
  55. print("-" * 30) # 分隔线
  56. new_name_card = [new_name, new_gender, new_age]
  57. card_all.append(new_name_card)
  58. print("修改成功!")
  59. else:
  60. print("【ERROR】:查无此人,请重新输入!")
  61. else:
  62. print("【ERROR】:账号或密码错误,请重新输入!")
  63. elif action == 4:
  64. ID = str(input("请输入管理员账号:"))
  65. password = str(input("请输入管理员密码:"))
  66. print("-" * 30) # 分隔线
  67. if ID == "admin" and password == "123456":
  68. seek = str(input("请输入名字,性别,或年龄之一:"))
  69. print("-" * 40) # 分隔线
  70. i = -1
  71. k = 1
  72. j = 1
  73. while k <= len(card_all): # 可以用for循环直接找,不用这么麻烦,到下一版本修改
  74. k += 1
  75. i += 1
  76. card = card_all[i]
  77. if card.count(seek) == 0 and j < len(card_all):
  78. j += 1
  79. continue
  80. elif card.count(seek) == 0 and j >= len(card_all):
  81. print("【ERROR】:没有找到,请重新输入!")
  82. else:
  83. print(card)
  84. else:
  85. print("【ERROR】:账号或密码错误,请重新输入!")
  86. elif action == 5:
  87. ID = str(input("请输入管理员账号:"))
  88. password = str(input("请输入密码:"))
  89. print("-" * 30) # 分隔线
  90. if ID == "admin" and password == "123456":
  91. print("【INFO】:所有学生信息如下:")
  92. print(card_all)
  93. else:
  94. print("【ERROR】:账号或密码错误,请重新输入!")
  95. elif action == 6:
  96. sign = input("【Information】:确定退出吗?(yes/no):")
  97. if sign == "yes":
  98. print("-" * 50)
  99. print("【Information】:谢谢使用,您已成功退出系统!")
  100. exit() # break 也可以
  101. else:
  102. continue
  103. else:
  104. print("【ERROR】:输入有误,请重新输入!")

2.学生名片信息管理系统-字典版

将上述学生名片管理系统数据保存格式改成字典的形式
例如:
把: [[“关羽”, “40”, “男”],[“诸葛亮”, “45”, “男”]]
改成 [{“name”: “关羽”, “age”:“40”, “sex”: “男”},{“name”: “诸葛亮”, “age”:“45”, “sex”: “男”}]

参考答案:

  1. info_list = [] # 用来存放所有学生数据,每一个学生的数据都是一个列表
  2. username = "admin"
  3. password = "123456"
  4. while True:
  5. # 1、界面
  6. print("************************** 名片管理器 **************************")
  7. print("-------------------------- 1.添加名片 --------------------------")
  8. print("-------------------------- 2.删除名片 --------------------------")
  9. print("-------------------------- 3.修改名片 --------------------------")
  10. print("-------------------------- 4.查询名片 --------------------------")
  11. print("-------------------------- 5.查询所有 --------------------------")
  12. print("-------------------------- 6.退出系统 --------------------------")
  13. print("************************** 名片管理器 **************************")
  14. # 2、输入,接收用户的输入的数字,执行对应的操作
  15. command = int(input("请输入1到6之间的数字,进行对应操作:"))
  16. # 3、通过判断用户输入的数字是1,还是2,还是3... 执行对应的操作
  17. if command == 1:
  18. # 添加学生信息
  19. # 让用户输入姓名、年龄、性别
  20. name = input("请输入姓名:")
  21. age = input("请输入年龄:")
  22. sex = input("请输入性别:")
  23. # [name, age, sex]
  24. info_list.append({
  25. "name": name, "age": age, "sex": sex})
  26. print("【INFO】:添加成功!")
  27. elif command == 2:
  28. # 删除学生信息
  29. name = input("请输入姓名:")
  30. # 遍历info_list这个列表(要找到这个人)
  31. for i in info_list:
  32. if name in i.values():
  33. # 在这个列表中就执行删除#
  34. info_list.remove(i)
  35. print("【INFO】:删除成功!")
  36. break # 已经找到这个人了,后面的人就不需要在遍历
  37. else:
  38. print("【ERROR】:查无此人!")
  39. elif command == 3:
  40. # 修改学生信息
  41. name = input("请输入姓名:")
  42. # 遍历info_list这个列表(要找到这个人)
  43. for i in info_list:
  44. if name in i.values():
  45. # 在这个列表中就执行修改
  46. age = input("请输入修改后的年龄:")
  47. sex = input("请输入修改后的性别:")
  48. # 格式:info_list[下标] =
  49. info_list[info_list.index(i)] = {
  50. "name": name, "age": age, "sex": sex}
  51. print("【INFO】:修改成功!")
  52. break # 已经找到这个人了,后面的人就不需要在遍历
  53. else:
  54. print("【ERROR】:查无此人!")
  55. elif command == 4:
  56. # 查询学生信息
  57. name = input("请输入姓名:")
  58. # 遍历info_list这个列表(要找到这个人)
  59. for i in info_list:
  60. if name in i.values():
  61. print("【INFO】:此人信息如下:%s" % i)
  62. break # 已经找到这个人了,后面的人就不需要在遍历
  63. else:
  64. print("【ERROR】:查无此人!")
  65. elif command == 5:
  66. # 查询所有学生信息
  67. uname = input("请输入管理员账号:")
  68. upwd = input("请输入管理员密码:")
  69. if uname == username and upwd == password:
  70. print("【INFO】:所有学生信息如下:")
  71. for i in info_list:
  72. for k in i.values():
  73. print(k, end="\t")
  74. print()
  75. else:
  76. print("【ERROR】:账号或者密码错误!")
  77. elif command == 6:
  78. # 退出系统
  79. # print("【INFO】:退出成功!谢谢使用!")
  80. sign = input("【INFO】:确定要退出吗?(yes or no):")
  81. if sign == "yes":
  82. print("【INFO】:退出成功!谢谢使用!")
  83. break
  84. else:
  85. continue
  86. else:
  87. print("【ERROR】:请重新输入1到5之间的数字!")

3.学生名片信息管理系统-函数版

思路:
1.先定义全局变量
2.再定义函数
添加函数 add
查找函数 search
删除函数 remove
修改函数 alter
管理员账号密码验证函数 verify
3.完成主程序函数或界面,将所有内容整合打包
类似于:def main()

  1. 4.for 语句:
  2. if 条件:
  3. break
  4. else:
  5. # for循环自然结束的时候才会执行这里的代码!!!!
  6. # 如果通过break结束的循环,那么这里的代码是不会执行!

参考代码:

  1. # 定义全局变量
  2. info_list = [{
  3. "name": '张三', "gender": '男', "age": 27}]
  4. admin_id = "python"
  5. password = "123456"
  6. def add_info_name(): # 输入姓名
  7. name = str(input("请输入姓名:"))
  8. return name
  9. def add_info_gender(): # 输入性别
  10. while True:
  11. gender = str(input("请输入性别:"))
  12. if gender in "男女":
  13. return gender
  14. else:
  15. print("【ERROR_1】:性别输入有误,请输入男或女!")
  16. def add_info_age(): # 输入年龄
  17. while True:
  18. age = str(input("请输入年龄:"))
  19. if age.isdigit() is True:
  20. return age
  21. else:
  22. print("【ERROR_2】:年龄输入有误,请输入纯数字!")
  23. def search(): # 按姓名查找
  24. name = add_info_name()
  25. for i in info_list:
  26. if name in i.values():
  27. print(i)
  28. return
  29. else:
  30. print("【ERROR_3】:查无此人,请重新输入!")
  31. def remove(): # 删除函数
  32. name = add_info_name()
  33. for i in info_list:
  34. if name in i.values():
  35. info_list.remove(i)
  36. print("【INFO_1】:删除成功!")
  37. return
  38. else:
  39. print("【ERROR_3】:查无此人,请重新输入!")
  40. def alter(): # 修改函数
  41. name = add_info_name()
  42. for i in info_list:
  43. if name in i.values():
  44. info_list[info_list.index(i)] = {
  45. "name": name, "gender": add_info_gender(), "age": add_info_age()}
  46. print("【INFO_2】:修改成功!")
  47. return
  48. else:
  49. print("【ERROR_5】:查无此人,请重新输入!")
  50. def verify():
  51. ad = str(input("请输入管理员账号:"))
  52. pd = str(input("请输入管理员密码:"))
  53. if ad == admin_id and pd == password:
  54. return True
  55. else:
  56. print("【ERROR_6】:管理员账号或密码错误,请重新输入!")
  57. def main():
  58. while True:
  59. print("************************** 名片管理器 **************************")
  60. print("-------------------------- 1.添加名片 --------------------------")
  61. print("-------------------------- 2.删除名片 --------------------------")
  62. print("-------------------------- 3.修改名片 --------------------------")
  63. print("-------------------------- 4.查询名片 --------------------------")
  64. print("-------------------------- 5.查询所有 --------------------------")
  65. print("-------------------------- 6.退出系统 --------------------------")
  66. print("************************** 名片管理器 **************************")
  67. command = str(input("请输入对应数字进行操作:")) # 采用字符串形式,避免用户输入时报错
  68. print("-" * 30) # 分隔线
  69. if command == "1": # 采用字符串形式,避免用户输入时报错
  70. dic = {
  71. "name": add_info_name(), "gender": add_info_gender(), "age": add_info_age()}
  72. info_list.append(dic)
  73. print("【INFO_3】:添加成功!")
  74. elif command == "2":
  75. if verify():
  76. remove()
  77. else:
  78. pass
  79. elif command == "3":
  80. if verify():
  81. alter()
  82. else:
  83. pass
  84. elif command == "4":
  85. if verify():
  86. search()
  87. else:
  88. pass
  89. elif command == "5":
  90. if verify():
  91. print("【INFO_4】:所有员工信息为:")
  92. print(info_list)
  93. else:
  94. pass
  95. elif command == "6":
  96. print("【INFO_5】:谢谢使用,您已成功退出系统!")
  97. exit()
  98. else:
  99. print("【ERROR_7】:输入有误,请重新输入相应数字进行操作!")
  100. main()

4.学生名片信息管理系统-文件版

要求:将数据保存在txt文件中

参考代码:

  1. # 定义全局变量
  2. import os
  3. info_list = [] # 用来存放所有学生数据,每个学生的数据都是一个列表
  4. filename = "info.txt"
  5. admin_id = "python"
  6. password = "123456"
  7. def load_info(): # 每次打开程序都有对文件夹里的信息进行读取,所以要有登陆界面
  8. global info_list
  9. f = open(filename, "r", encoding="utf-8")
  10. str1 = f.read()
  11. info_list = eval(str1)
  12. f.close()
  13. def save_info(): # 添加信息后,退出程序时,需要将信息保存到文件夹
  14. f = open(filename, "w", encoding="utf-8")
  15. f.write(str(info_list))
  16. f.close()
  17. def add_info_name(): # 输入姓名
  18. name = str(input("请输入姓名:"))
  19. return name
  20. def add_info_gender(): # 输入性别
  21. while True:
  22. gender = str(input("请输入性别:"))
  23. if gender in "男女":
  24. return gender
  25. else:
  26. print("【ERROR_1】:性别输入有误,请输入男或女!")
  27. def add_info_age(): # 输入年龄
  28. while True:
  29. age = str(input("请输入年龄:"))
  30. if age.isdigit() is True:
  31. return age
  32. else:
  33. print("【ERROR_2】:年龄输入有误,请输入纯数字!")
  34. def search(): # 按姓名查找
  35. name = add_info_name()
  36. for i in info_list:
  37. if name in i.values():
  38. print(i)
  39. return
  40. else:
  41. print("【ERROR_3】:查无此人,请重新输入!")
  42. def remove(): # 删除函数
  43. name = add_info_name()
  44. for i in info_list:
  45. if name in i.values():
  46. info_list.remove(i)
  47. print("【INFO_1】:删除成功!")
  48. return
  49. else:
  50. print("【ERROR_3】:查无此人,请重新输入!")
  51. def alter(): # 修改函数
  52. name = add_info_name()
  53. for i in info_list:
  54. if name in i.values():
  55. info_list[info_list.index(i)] = {
  56. "name": name, "gender": add_info_gender(), "age": add_info_age()}
  57. print("【INFO_2】:修改成功!")
  58. return
  59. else:
  60. print("【ERROR_5】:查无此人,请重新输入!")
  61. def verify():
  62. ad = str(input("请输入管理员账号:"))
  63. pd = str(input("请输入管理员密码:"))
  64. if ad == admin_id and pd == password:
  65. return True
  66. else:
  67. print("【ERROR_6】:管理员账号或密码错误,请重新输入!")
  68. def main():
  69. if os.path.exists(filename): # 判断这个文件是否存在,存在才加载
  70. load_info()
  71. else: # 不存在就创建,创建后也要记得加载数据
  72. f = open(filename, "w")
  73. f.write("[]")
  74. f.close()
  75. load_info()
  76. while True:
  77. print("************************** 名片管理器 **************************")
  78. print("-------------------------- 1.添加名片 --------------------------")
  79. print("-------------------------- 2.删除名片 --------------------------")
  80. print("-------------------------- 3.修改名片 --------------------------")
  81. print("-------------------------- 4.查询名片 --------------------------")
  82. print("-------------------------- 5.查询所有 --------------------------")
  83. print("-------------------------- 6.退出系统 --------------------------")
  84. print("************************** 名片管理器 **************************")
  85. command = str(input("请输入对应数字进行操作:")) # 采用字符串形式,避免用户输入时报错
  86. print("-" * 30) # 分隔线
  87. if command == "1": # 采用字符串形式,避免用户输入时报错
  88. dic = {
  89. "name": add_info_name(), "gender": add_info_gender(), "age": add_info_age()}
  90. info_list.append(dic)
  91. print("【INFO_3】:添加成功!")
  92. elif command == "2":
  93. if verify():
  94. remove()
  95. else:
  96. pass
  97. elif command == "3":
  98. if verify():
  99. alter()
  100. else:
  101. pass
  102. elif command == "4":
  103. if verify():
  104. search()
  105. else:
  106. pass
  107. elif command == "5":
  108. if verify():
  109. print("【INFO_4】:所有员工信息为:")
  110. print(info_list)
  111. else:
  112. pass
  113. elif command == "6":
  114. sign = input("确定要退出吗?是(y)或否(n):")
  115. if sign == "y":
  116. save_info() # 退出时一定要记得保存信息
  117. print("【INFO_5】:谢谢使用,您已成功退出系统!")
  118. exit()
  119. else:
  120. continue
  121. else:
  122. print("【ERROR_7】:输入有误,请重新输入相应数字进行操作!")
  123. main()

5.学生名片信息管理系统-异常版

要求:每次登陆时对文件夹里的信息进行读取,如果读取不到文件则抛出异常,通过 try…except…来完成。

参考代码:

  1. # 定义全局变量
  2. import os
  3. info_list = [] # 用来存放所有学生数据,每个学生的数据都是一个列表
  4. filename = "info.txt"
  5. admin_id = "python"
  6. password = "123456"
  7. def load_info(): # 每次打开程序都有对文件夹里的信息进行读取,所以要有登陆界面
  8. global info_list
  9. try:
  10. f = open(filename, "r", encoding="utf-8")
  11. except FileNotFoundError:
  12. # 捕获到“找不到文件”这个异常
  13. # 创建文件
  14. f = open(filename, "w", encoding="utf-8")
  15. f.write("[]")
  16. f.close()
  17. f =open(filename, "r", encoding="utf-8")
  18. str1 = f.read()
  19. info_list = eval(str1)
  20. f.close()
  21. def save_info(): # 添加信息后,退出程序时,需要将信息保存到文件夹
  22. f = open(filename, "w", encoding="utf-8")
  23. f.write(str(info_list))
  24. f.close()
  25. def add_info_name(): # 输入姓名
  26. name = str(input("请输入姓名:"))
  27. return name
  28. def add_info_gender(): # 输入性别
  29. while True:
  30. gender = str(input("请输入性别:"))
  31. if gender in "男女":
  32. return gender
  33. else:
  34. print("【ERROR_1】:性别输入有误,请输入男或女!")
  35. def add_info_age(): # 输入年龄
  36. while True:
  37. age = str(input("请输入年龄:"))
  38. if age.isdigit() is True:
  39. return age
  40. else:
  41. print("【ERROR_2】:年龄输入有误,请输入纯数字!")
  42. def search(): # 按姓名查找
  43. name = add_info_name()
  44. for i in info_list:
  45. if name in i.values():
  46. print(i)
  47. return
  48. else:
  49. print("【ERROR_3】:查无此人,请重新输入!")
  50. def remove(): # 删除函数
  51. name = add_info_name()
  52. for i in info_list:
  53. if name in i.values():
  54. info_list.remove(i)
  55. print("【INFO_1】:删除成功!")
  56. return
  57. else:
  58. print("【ERROR_3】:查无此人,请重新输入!")
  59. def alter(): # 修改函数
  60. name = add_info_name()
  61. for i in info_list:
  62. if name in i.values():
  63. info_list[info_list.index(i)] = {
  64. "name": name, "gender": add_info_gender(), "age": add_info_age()}
  65. print("【INFO_2】:修改成功!")
  66. return
  67. else:
  68. print("【ERROR_5】:查无此人,请重新输入!")
  69. def verify():
  70. ad = str(input("请输入管理员账号:"))
  71. pd = str(input("请输入管理员密码:"))
  72. if ad == admin_id and pd == password:
  73. return True
  74. else:
  75. print("【ERROR_6】:管理员账号或密码错误,请重新输入!")
  76. def main():
  77. load_info()
  78. while True:
  79. print("************************** 名片管理器 **************************")
  80. print("-------------------------- 1.添加名片 --------------------------")
  81. print("-------------------------- 2.删除名片 --------------------------")
  82. print("-------------------------- 3.修改名片 --------------------------")
  83. print("-------------------------- 4.查询名片 --------------------------")
  84. print("-------------------------- 5.查询所有 --------------------------")
  85. print("-------------------------- 6.退出系统 --------------------------")
  86. print("************************** 名片管理器 **************************")
  87. command = str(input("请输入对应数字进行操作:")) # 采用字符串形式,避免用户输入时报错
  88. print("-" * 30) # 分隔线
  89. if command == "1": # 采用字符串形式,避免用户输入时报错
  90. dic = {
  91. "name": add_info_name(), "gender": add_info_gender(), "age": add_info_age()}
  92. info_list.append(dic)
  93. print("【INFO_3】:添加成功!")
  94. elif command == "2":
  95. if verify():
  96. remove()
  97. else:
  98. pass
  99. elif command == "3":
  100. if verify():
  101. alter()
  102. else:
  103. pass
  104. elif command == "4":
  105. if verify():
  106. search()
  107. else:
  108. pass
  109. elif command == "5":
  110. if verify():
  111. print("【INFO_4】:所有员工信息为:")
  112. print(info_list)
  113. else:
  114. pass
  115. elif command == "6":
  116. sign = input("确定要退出吗?是(y)或否(n):")
  117. if sign == "y":
  118. save_info() # 退出时一定要记得保存信息
  119. print("【INFO_5】:谢谢使用,您已成功退出系统!")
  120. exit()
  121. else:
  122. continue
  123. else:
  124. print("【ERROR_7】:输入有误,请重新输入相应数字进行操作!")
  125. if __name__ == "__main__": # 只有本文件才能调用的判定
  126. main() # 入口函数

发表评论

表情:
评论列表 (有 0 条评论,362人围观)

还没有评论,来说两句吧...

相关阅读