开发者

手把手教你做python学生管理系统

目录
  • 一、用户类(User):
    • (1)注册:
      • 1、判断用户名是否已经被注册过
      • 2、注册成功
      • 3、是否需要继续追加注册用户
    • (2)登录:
      • 1、用户名未注册
      • 2、登录成功
      • 3、三次输入用户名和密码错误,登录失败
  • 二、学生类(Student):
    • 三、学生管理类(StudentManagerSystem):
      • (1)增加学生信息
        • (2)删除学生信息
          • (3)修改学生信息
            • 1、按学号进行筛选索引
            • 2、选择修改的项可以为单项或全部
          • (4)查询单个学生信息
            • (5)查询所有学生信息
              • (6)退出系统
              • 四、测试
                • 1、注册
                  • 2、登录
                    • 3、添加学生信息 
                      • 4、修改学生信息
                        • 5、查询单个学生信息
                          • 6、查询多个学生信息
                          • 五、运行代码
                            • 总结 

                              学生管理系统主要分为以下三个大类:

                              一、用户类(User):

                              属性:用户名(username)、密码(password)

                              功能:注册(register)、登录(login)

                              (1)注册:

                              1、判断用户名是否已经被注册过

                              2、注册成功

                              3、是否需要继续追加注册用户

                              def register(self):
                                  # 新用户注册
                                  while True:
                                      username = input("请输入用户名:")
                                      if username in self.users_database:
                                          print(f"用户名{username}已存在,请重新输入!")
                                          continue
                              
                                      password = input('请输入密码:')
                                      self.users_database[username] = password
                                      print(f"用户{username}注册成功!")
                              
                                      choice = input('是否继续注册用户?(y/n): ').lower()
                                      if choice != 'y':
                                          break

                              (2)登录:

                              1、用户名未注册

                              2、登录成功

                              3、三次输入用户名和密码错误,登录失败

                              def login(self):
                                  # 登录验证(检查注册状态+3次尝试机会)
                                  for i in range(3):  # 0, 1, 2
                                      username = input("请输入用户名:")
                              
                                      # 先检查用户是否注册
                                      if username not in self.users_database:
                                          print(f"用户名 {username} 未注册,请先注册!")
                                          return False
                              
                                      password = input("请输入密码:")
                              
                                      if self.users_database[username] == password:
                                          self.username = username
                                          self.password = password
                                          self.logged_in = True
                                          print("登录成功!")
                                          return True
                              
                                      # 只在还有尝试机会时显示提示
                                      if i < 2:
                                          print(f"密码错误,您还有{2 - i}次机会")
                              
                                  else:  # 3次尝试都失败
                                      print("您已连续3次输入错误,请重新登录!")
                                      return False
                              

                              二、学生类(Student):

                              属性:学生信息(学号、姓名、性别、年龄、地址、电话)

                              三、学生管理类(StudentManagerSystem):

                              属性:学生信息

                              方法:增加学生信息、删除学生信息、修改学生信息、查询单个学生信息、查询所有学生信息、退出系统

                              (1)增加学生信息

                              按学号进行筛选索引

                              def add_student(self):
                                  # 增加学生信息
                                  sid = input("请输入学生学号:")
                                  if sid in self.students:
                                      print("该学号已存在!")
                                      return
                              
                                  sname = input("请输入学生姓名:")
                                  ssex = input("请输入学生性别:")
                                  try:
                                      sage = int(input("请输入学生年龄:"))
                                      address = input("请输入地址:")
                                      # 电话改为字符串,避免以0开头的号码问题
                                      tel = input("请输入电话:")
                                      self.students[sid] = Student(sid, sname, ssex, sage, address, tel)
                                      www.devze.comprint("添加成功!")
                                  except ValueError:
                                      print("年龄必须为数字!")

                              (2)删除学生信息

                              按学号进行筛选索引

                              def delete_student(self):
                                  if not self.students:
                                      print("当前无任何学生信息!")
                                      return
                                  # 删除学生信息
                                  sid = input("请输入要删除的学生学号:")
                                  if sid in self.students:
                                      del pythonself.students[sid]
                                      print("删除成功!")
                                  else:
                                      print("未找到该学号的学生!")

                              (3)修改学生信息

                              1、按学号进行筛选索引

                              2、选择修改的项可以为单项或全部

                              def modify_student(self):
                                  if not self.students:
                                      print("当前无任何学生信息!")
                                      return
                                  # 修改学生信息
                                  sid = input("请输入要修改的学生学号:")
                                  if sid not in self.students:
                                      print("未找到该学号的学生!")
                                      return
                              
                                  student = self.students[sid]
                                  student.display_info()
                              
                                  print("\n请选择要修改的项:")
                                  print("1: 学号  2: 姓名  3: 性别  4: 年龄  5: 地址  6: 电话  7: 全部  8:退出")
                              
                                  try:
                                      choice = input("请输入选择(1-8): ")
                                      if choice == '7':
                                          new_sid = input("新的学号:")
                                          new_sname = input("新的名字:")
                                          new_ssex = input("新的性别:")
                                          new_sage = int(input("新的年龄:"))
                                          new_address = input("新的地址:")
                                          new_tel = input("新的电话:")
                              
                                          # 如果学号改变,需要先删除旧的再添加新的
                                          if new_sid != sid:
                                              del self.students[sid]
                                              self.students[new_sid] = Student(new_sid, new_sname, new_ssex,
                                                                               new_sage, new_address, new_tel)
                                          else:
                                              # 学号没变,直接修改对象属性
                                              student.sname = new_sname
                                              student.ssex = new_ssex
                                              student.sage = new_sage
                                              student.address = new_address
                                              student.tel = new_tel
                                      else:
                                          if choice == '1':
                                              new_sid = input("新的学号:")
                                              if new_sid != sid:
                                                  self.students[new_sid] = self.students.pop(sid)
                                                  self.students[new_sid].sid = new_sid
                                          elif choice == '2':
                                              student.sname = input("新的名字:")
                                          elif choice == '3':
                                              student.ssex = input("新的性别:")
                                          elif choice == '4':
                                              student.sage = int(input("新的年龄:"))
                                          elif choice == '5':
                                              student.address = input("新的地址:")
                                          elif choice == '6':
                                              student.tel = input("新的电话:")
                                          elif choice == '8':
                                              return
                                          else:
                                              print("无效选择!")
                                              return
                              
                                      print("修改成功!")
                                  except ValueError:
                                      print("输入数据有误!")

                              (4)查询单个学生信息

                              按学号进行筛选索引

                              def find_student_by_sid(self):
                                  if not self.students:
                                      print("当前无任何学生信息!")
                                      return
                                  # 查询单个学生信息
                                  sid = input("请输入学生学号:")
                                  if sid in self.students:
                                      self.students[sid].display_info()
                                  else:
                                      print("未找到该学号的学生!")

                              (5)查询所有学生信息

                              def list_all_students(self):
                                  if not self.students:
                                      print("当前无任何学生信息!")
                                      returandroidn
                                  # 查询所有学生信息
                                  print("\n================== 所有学生信息 ==================")
                                  for sid, student in self.students.items():
                                      student.display_info()
                                  print("="*50)

                              (6)退出系统

                              四、测试

                              1、注册

                              手把手教你做python学生管理系统

                              2、登录

                              手把手教你做python学生管理系统

                              3、添加学生信息 

                              手把手教你做python学生管理系统

                              4、修改学生信息

                              手把手教你做python学生管理系统

                              手把手教你做python学生管理系统

                              5、查询单个学生信息

                              手把手教你做python学生管理系统

                              6、查询多个学生信息

                              手把手教你做python学生管理系统

                              五、运行代码

                              全部运行代码放在这里:

                              class User:
                                  def __init__(self, username=None, password=None):
                                      self.users_database = {}  # 类级别的用户数据库
                                      self.username = username
                                      self.password = password
                                      self.logged_in = False
                              
                                  def register(self):
                                      # 新用户注册
                                      while True:
                                          username = input("请输入用户名:")
                                          if username in self.users_database:
                                              print(f"用户名{username}已存在,请重新输入!")
                                              continue
                              
                                          password = input('请输入密码:')
                                          self.users_database[username] = password
                                          print(f"用户{username}注册成功!")
                              
                                          choice = input('是否继续注册用户?(y/n): ').lower()
                                          if choice != 'y':
                                              break
                              
                                  def login(self):
                                      # 登录验证(检查注册状态+3次尝试机会)
                                      for i in range(3):  # 0, 1, 2
                                          username = input("请输入用户名:")
                              
                                          # 先检查用户是否注册
                                          if username not in self.users_database:
                                              print(f"用户名 {username} 未注册,请先注册!")
                                              return False
                              
                                          password = input("请输入密码:")
                              
                                          if self.users_database[username] == password:
                                              self.username = username
                                              self.password = password
                                              self.logged_in = True
                                              print("登录成功!")
                                              return True
                              
                                          # 只在还有尝试机会时显示提示
                                          if i < 2:
                                              print(f"密码错误,您还有{2 - i}次机会")
                              
                                      else:  # 3次尝试都失败
                                          print("您已连续3次输入错误,请重新登录!")
                                          return False
                              
                                  def run(self):
                                      # 用户系统主界面
                                      while True:
                                          print("\n================== 用户系统 ==================")
                                          choice = input("请选择:1、注册 2、登录 3、退出")
                                          if choice == '1':
                                              self.register()
                                          elif choice == '2':
                                              if self.login():
                                                  # 登录成功后退出用户系统
                                                  return
                                          elif choice == '3':
                                              print("退出用户系统!")
                                              exit()
                                          else:
                                              print("无效选择,请重新输入!")
                              
                              
                              class Student:
                                  def __init__(self, sid, sname, ssex, sage, address, tel):
                                      self.sid = sid
                                      self.sname = sname
                                      self.ssex = ssex
                                      self.sage = sage
                                      self.address = address
                                      self.tel = tel
                              
                                  def display_info(self):
                                      # 显示学生信息
                                      print(f"学号:{self.sid},姓名:{self.sname},性别:{self.ssex},"
                                            f"年龄:{self.sage},地址:{self.address},电话:{self.tel}")
                              
                              
                              class StudentManagerSystem:
                                  def __init__(self):
                                      self.students = {}  # 用字典存储学生对象,键为学号
                              
                                  def add_student(self):
                                      # 增加学生信息
                                      sid = input("请输入学生学号:")
                                      if sid in self.students:
                                          print("该学号已存在!")
                                          return
                              
                                      sname = input("请输入学生姓名:")
                                      ssex = input("请输入学生性别:")
                                      try:
                                          sage = int(input("请输入学生年龄:"))
                                          address = input("请输入地址:")
                                          # 电话改为字符串,避免以0开头的号码问题
                                          tel = input("请输入电话:")
                                          self.students[sid] = Student(sid, sname, ssex, sage, address, tel)
                                          print("添加成功!")
                                      except ValueError:
                                          print("年龄必须为数字!")
                              
                                  def delete_student(self):
                                      if not self.students:
                                          print("当前无任何学生信息!")
                                          return
                                      # 删除学生信息
                                      sid = input("请输入要删除的学生学号:")
                                      if sid in self.students:
                                          del self.students[sid]
                                          print("删除成功!")
                                      else:
                                          print("未找到该学号的学生!")
                              
                                  def modify_student(self):
                                      if not self.students:
                                          print("当前无任何学生信息!")
                                          return
                                      # 修改学生信息
                                      sid = input("请输入要修改的学生学号:")
                                      if sid not in self.students:
                                          print("未找到该学号的学生!")
                                          return
                              
                                      student = self.students[sid]
                                      student.display_info()
                              
                                      print("\n请选择要修改的项:")
                                      print("1: 学号  2: 姓名  3: 性别  4: 年龄  5: 地址  6: 电话  7: 全部  8:退出")
                              
                                      try:
                                          choice = input("请输入选择(1-8): ")
                                          if choice == '7':
                              android                new_sid = input("新的学号:")
                                              new_sname = input("新的名字:")
                                              new_ssex = input("新的性别:")
                                              new_sage = int(input("新的年龄:"))
                                              new_address = input("新的地址:")
                                              new_tel = input("新的电话:")
                              
                                              # 如果学号改变,需要先删除旧的再添加新的
                                              if new_sid != sid:
                                                  dpythonel self.students[sid]
                                                  self.students[new_sid] = Student(new_sid, new_sname, new_ssex,
                                                                                   new_sage, new_address, new_tel)
                                              else:
                                                  # 学号没变,直接修改对象属性
                                                  student.sname = new_sname
                                                  student.ssex = new_ssex
                                                  student.sage = new_sage
                                                  student.address = new_address
                                                  student.tel = new_tel
                                          else:
                                              if choice == '1':
                                                  new_sid = input("新的学号:")
                                                  if new_sid != sid:
                                                      self.students[new_sid] = self.students.pop(sid)
                                                      self.students[new_sid].sid = new_sid
                                              elif choice == '2':
                                                  student.sname = input("新的名字:")
                                              elif choice == '3':
                                                  student.ssex = input("新的性别:")
                                              elif choice == '4':
                                                  student.sage = int(input("新的年龄:"))
                                              elif choice == '5':
                                                  student.address = input("新的地址:")
                                              elif choice == '6':
                                                  student.tel = input("新的电话:")
                                              elif choice == '8':
                                                  return
                                              else:
                                                  print("无效选择!")
                                                  return
                              
                                          print("修改成功!")
                                      except ValueError:
                                          print("输入数据有误!")
                              
                                  def find_student_by_sid(self):
                                      if not self.students:
                                          print("当前无任何学生信息!")
                                          return
                                      # 查询单个学生信息
                                      sid = input("请输入学生学号:")
                                      if sid in self.students:
                                          self.students[sid].display_info()
                                      else:
                                          print("未找到该学号的学生!")
                              
                                  def list_all_students(self):
                                      if not self.students:
                                          print("当前无任何学生信息!")
                                          return
                                      # 查询所有学生信息
                                      print("\n================== 所有学生信息 ==================")
                                      for sid, student in self.students.items():
                                          student.display_info()
                                      print("="*50)
                              
                                  def run(self):
                                      """学生管理系统主界面"""
                                      while True:
                                          print("\n================== 学生管理系统 ==================")
                                          print("1: 添加学生")
                                          print("2: 删除学生")
                                          print("3: 修改学生")
                                          print("4: 单个查询")
                                          print("5: 全部查询")
                                          print("6: 退出系统")
                              
                                          choice = input("请输入您的选择(1-6): ")
                              
                                          if choice == '1':
                                              self.add_student()
                                          elif choice == '2':
                                              self.delete_student()
                                          elif choice == '3':
                                              self.modify_student()
                                          elif choice == '4':
                                              self.find_student_by_sid()
                                          elif choice == '5':
                                              self.list_all_students()
                                          elif choice == '6':
                                              print("退出学生管理系统!")
                                              break
                                          else:
                                              print("无效选择,请重新输入!")
                              
                              
                              if __name__ == '__main__':
                                  # 创建用户系统并运行
                                  user_system = User()
                                  user_system.run()
                              
                                  # 用户登录成功后,进入学生管理系统
                                  student_manager = StudentManagerSystem()
                                  student_manager.run()

                              总结 

                              到此这篇关于python学生管理系统的文章就介绍到这了,更多相关python学生管理系统内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

                              0

                              上一篇:

                              下一篇:

                              精彩评论

                              暂无评论...
                              验证码 换一张
                              取 消

                              最新开发

                              开发排行榜