自学内容网 自学内容网

学生管理系统 面向对象

创建一个实例对象后 把实例对象添加到列表后
每次遍历列表 都能获得一个实例对象
然后就可以使用实例对象的属性和方法了

'''
学生管理系统 面向对象
两个类 学生管理类 学生类
'''


# 学生类
# 属性 姓名 电话
class Student:
   def __init__(self, name, phone):
      self.name = name
      self.phone = phone
   
   def __str__(self):
      return 'name:{}, phone:{}'.format(self.name, self.phone)


# 学生管理类
# 属性 学生列表
class StudentManager:
   def __init__(self):
      self.student_lst = []  # 学生列表
   
   # 静态方法 菜单功能
   @staticmethod
   def menu():
      print('欢迎使用学生管理系统')
      print('1.添加学生')
      print('2.删除学生')
      print('3.修改学生')
      print('4.查询学生')
      print("5.展示所有学生")
      print('6.退出系统')
   
   # 执行各种方法的 总函数 类似于main()函数
   def run(self):
      while True:
         self.menu()
         choice = input('请输入你的选择:')
         if choice == '1':
            self.add_student()
         elif choice == '2':
            self.delete_student()
         elif choice == '3':
            self.update_student()
         elif choice == '4':
            self.query_student()
         elif choice == '5':
            self.show_all_student()
         elif choice == '6':
            break
         else:
            print('请输入正确的选择')
   
   # 1.添加学生
   def add_student(self):
      name = input('请输入学生姓名:')
      # #判断是否已经存在了
      # for student in self.student_lst:
      #  if student['name'] == name:
      #     print('该学生已经存在')
      #     break
      # else:
      #  phone = input('请输入学生电话:')
      #
      #  student = Student(name, phone)
      #  self.student_lst.append(student)
      #  print('添加成功')
      #  print(student.__dict__) # 打印字典
      # 面向对象
      for student in self.student_lst:
         if student.name == name:
            print('该学生已经存在')
            break
      
      else:
         phone = input('请输入学生电话:')
         student = Student(name, phone) ## 创建一个Student实例
         self.student_lst.append(student) # 将实例添加到列表中
         print('添加成功')
   # print(student.__dict__)


# 2.删除学生


   def delete_student(self):
      name = input('请输入要删除的学生姓名:')
      for student in self.student_lst:
         if student.name == name:
            self.student_lst.remove(student)
            print('删除成功')
            break
      
      else:
         print('该学生不存在')
         return
   
   # 3.修改学生


   def update_student(self):
      name = input('请输入要修改的学生姓名:')
      for student in self.student_lst:
         if student.name == name:
            re_name = input('请输入要修改的学生姓名:')
            phone = input('请输入要修改的学生电话:')
            student.name = re_name
            student.phone = phone
            print('修改成功')
            break
   
      else:
         print('该学生不存在')
         return

# 4.查询学生
   def query_student(self):
      name = input('请输入要查询的学生姓名:')
      for student in self.student_lst: #student变量在每次迭代中引用列表中的不同Student实例。
         if student.name == name:
            print(student)
            break
      else:
         print('该学生不存在')
         return
      
   # 5.展示所有学生
   def show_all_student(self):
      for student in self.student_lst:
         print(student.__dict__) # 打印字典
         # print(student) # 打印实例

if __name__ == '__main__':
   s = StudentManager()
   s.run()

原文地址:https://blog.csdn.net/qingcheng_123456/article/details/139305448

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!