> 백엔드 개발 > 파이썬 튜토리얼 > 학생 관리 시스템의 Python 객체 지향 버전을 소개합니다.

학생 관리 시스템의 Python 객체 지향 버전을 소개합니다.

coldplay.xixi
풀어 주다: 2021-02-25 10:10:51
앞으로
2124명이 탐색했습니다.

학생 관리 시스템의 Python 객체 지향 버전을 소개합니다.

무료 학습 권장 사항: Python 비디오 튜토리얼

기사 디렉토리

  • Python 객체 지향 버전 학생 관리 시스템
  • 목표
  • 1. 시스템 요구사항
  • 둘 . 프로그램 파일 준비
    • 2.1 분석
    • 2.2 프로그램 파일 만들기
  • 3. 프로그램 작성
    • 3.1 Student.py
      • 3.1.2 프로그램 코드
    • 3 .2.managerSystem.py
      • 3.2.1 수업 정의
      • 3.2.2 관리 시스템 프레임워크
    • 3.3 main.py
    • 3.4 시스템 기능 정의
      • 3.4.1 기능 추가
      • 3.4.2 학생 삭제
      • 3.4 . 3 학생 정보 수정
      • 3.4.5 학생 정보 조회
      • 3.4.6 모든 학생 정보 표시
      • 3.4.7 학생 정보 저장
      • 3.4.8 학생 정보 불러오기
  • 요약

목표

  • 객체지향 개발과정에서 클래스 내부함수 분석방법 이해
  • 일반적인 시스템 함수 이해
    • Add
    • Delete
    • Modify
    • Query

1. 시스템 요구사항

사용 지향 객체 프로그래밍 아이디어는 다음과 같이 학생 관리 시스템 개발을 완성합니다.

  • 시스템 요구 사항: 학생 데이터는 파일에 저장됩니다.
  • 시스템 기능: 학생 추가, 학생 삭제, 학생 정보 수정, 학생 정보 조회, 모든 학생 정보 표시, 학생 정보 저장 및 시스템 기능 종료.

2. 프로그램 파일 준비

2.1 분석

  • 역할 분석
    • 학생
    • 관리 시스템

작업시 주의사항

  1. 편의를 위해 유지 관리 코드는 일반적으로 각 역할 프로그램 파일
  2. 프로젝트에는 일반적으로 main.pymain.py

2.2 创建程序文件

创建项目目录,例如:StudentManagerSystem

程序文件如下:

  • 程序入口文件:main.py
  • 学员文件:student.py
  • 管理系统文件:managerSystem.py

三. 书写程序

3.1 student.py

需求:

  • 学员信息包含:姓名、性别、手机号;
  • 添加__str__

2.2 프로그램 파일 생성

프로젝트 디렉토리 생성 예: StudentManagerSystem<p><strong>프로그램 파일은 다음과 같습니다. </strong></p> <p>프로그램 항목 파일: main.py</p> <ul>학생 파일: Student.py<li><ul>관리 시스템 파일: ManagerSystem.py<li> <li> 3. 글쓰기 프로그램</ul></li> <li>3.1 학생 .py<li> <ul> <li>요구 사항:</li> <li>학생 정보에는 이름, 성별, 휴대폰 번호가 포함됩니다.<li>학생 객체를 편리하게 볼 수 있는 <code>__str__ 매직 메서드 추가 information
  • 3.1.2 프로그램 코드
  • class Student(object):
        def __init__(self, name, gender, tel):
            self.name = name
            self.gender = gender
            self.tel = tel    def __str__(self):
            return f'{self.name}, {self.gender}, {self.tel}'
    로그인 후 복사
  • 3.2 ManagerSystem.py요구사항 :

    저장 데이터 위치 : 파일(student.data)

    파일 데이터 불러오기수정 후 파일로 저장 the data

      저장된 데이터 형식: list 학생 객체 저장
      • 시스템 기능
        • 학생 추가
        • 학생 삭제
        • 학생 수정
        • 학생 정보 조회
        • 모든 학생 정보 표시
      • 학생 정보 저장
      • 종료 the system

    3.2.1 클래스 정의

    class StudentManager(object):
        def __init__(self):
            # 存储数据所用的列表
            self.student_list = []
    로그인 후 복사
    3.2.2 관리 시스템 프레임워크

    요구 사항: 시스템 기능은 주기적으로 사용되며 사용자는 다양한 기능을 수행하기 위해 다양한 기능 번호를 입력합니다.

      단계
    • 프로그램 진입 기능 정의

    • 데이터 로드
    • 기능 메뉴 표시

        사용자가 기능 번호를 입력합니다
      • 사용자가 입력한 기능 번호에 따라 다른 기능을 실행합니다
      • 시스템 정의 함수 함수, 학생 추가 및 삭제 Wait
    • class StudentManager(object):
          def __init__(self):
              # 存储数据所用的列表
              self.student_list = []
      
          # 一. 程序入口函数,启动程序后执行的函数
          def run(self):
              # 1. 加载学员信息
              self.load_student()
      
              while True:
                  # 2. 显示功能菜单
                  self.show_menu()
      
                  # 3. 用户输入功能序号
                  menu_num = int(input('请输入您需要的功能序号:'))
      
                  # 4 根据用户输入的功能序号执行不同的功能
                  if menu_num == 1:
                      # 添加学员
                      self.add_student()
                  elif menu_num == 2:
                      # 删除学员
                      self.del_student()
                  elif menu_num == 3:
                      # 修改学员信息
                      self.modify_student()
                  elif menu_num == 4:
                      # 查询学员信息
                      self.search_student()
                  elif menu_num == 5:
                      # 显示所有学员信息
                      self.show_student()
                  elif menu_num == 6:
                      # 保存学员信息
                      self.save_student()
                  elif menu_num == 7:
                      # 退出系统
                      break
      
          # 二. 定义功能函数
          # 2.1 显示功能菜单
          @staticmethod
          def show_menu():
              print('请选择如下功能-----------------')
              print('1:添加学员')
              print('2:删除学员')
              print('3:修改学员信息')
              print('4:查询学员信息')
              print('5:显示所有学员信息')
              print('6:保存学员信息')
              print('7:退出系统')
      
          # 2.2 添加学员
          def add_student(self):
              pass
      
          # 2.3 删除学员
          def del_student(self):
              pass
      
          # 2.4 修改学员信息
          def modify_student(self):
              pass
      
          # 2.5 查询学员信息
          def search_student(self):
              pass
      
          # 2.6 显示所有学员信息
          def show_student(self):
              pass
      
          # 2.7 保存学员信息
          def save_student(self):
              pass
      
          # 2.8 加载学员信息
          def load_student(self):
              pass
      로그인 후 복사
    • 3.3 main.py

    # 1. 导入managerSystem模块from managerSystem import *# 2. 启动学员管理系统if __name__ == '__main__':
        student_manager = StudentManager()
    
        student_manager.run()
    로그인 후 복사
    3.4 시스템 함수 정의 function
    • 3.4.1 함수 추가
      • 요구 사항: 사용자가 학생의 이름, 성별, 휴대폰 번호를 입력하고 시스템에 추가된 학생을 추가합니다. steps
    • user는 이름, 성별, 휴대폰 번호를 입력합니다. 학생 대상을 제작합니다.
    요구사항 : 대상 학생의 이름을 입력하고, 해당 학생이 존재하면 해당 학생을 삭제합니다.

    단계

    사용자가 대상 학생의 이름을 입력합니다
    • 학생 데이터 목록을 탐색합니다. 사용자가 입력한 학생 이름이 있으면 삭제합니다. 그렇지 않으면 해당 학생이 존재하지 않는다는 메시지가 표시됩니다.
      • Code
      • # 添加学员函数内部需要创建学员对象,故先导入student模块from student import *class StudentManager(object):
        		......
            
            # 2.2 添加学员
            def add_student(self):
                # 1. 用户输入姓名、性别、手机号
                name = input('请输入您的姓名:')
                gender = input('请输入您的性别:')
                tel = input('请输入您的手机号:')
        
                # 2. 创建学员对象:先导入学员模块,再创建对象
                student = Student(name, gender, tel)
        
                # 3. 将该学员对象添加到列表
                self.student_list.append(student)
                
                # 打印信息
                print(self.student_list)
                print(student)
        로그인 후 복사
      3.4.3 학생 정보 수정
    요구사항 : 대상 학생의 이름을 입력하고, 해당 학생이 존재하는 경우 학생 정보를 수정합니다.

    단계

    사용자가 대상 학생의 이름을 입력합니다. 🎜🎜사용자가 입력한 학생 이름이 있으면 학생 이름, 성별, 휴대폰 번호 데이터를 수정합니다. 학생이 존재하지 않는다는 메시지를 표시합니다. 🎜🎜🎜🎜Code🎜🎜
        # 2.3 删除学员:删除指定姓名的学员
        def del_student(self):
            # 1. 用户输入目标学员姓名
            del_name = input('请输入要删除的学员姓名:')
            
            # 2. 如果用户输入的目标学员存在则删除,否则提示学员不存在
            for i in self.student_list:
                if i.name == del_name:
                    self.student_list.remove(i)
                    break
            else:
                print('查无此人!')
    
            # 打印学员列表,验证删除功能
            print(self.student_list)
    로그인 후 복사
    🎜🎜3.4.5 학생 정보 조회🎜🎜
    • 需求:用户输入目标学员姓名,如果学员存在则打印该学员信息
    • 步骤
      • 用户输入目标学员姓名
      • 遍历学员数据列表,如果用户输入的学员姓名存在则打印学员信息,否则提示该学员不存在。
    • 代码
        # 2.5 查询学员信息
        def search_student(self):
            # 1. 用户输入目标学员姓名
            search_name = input('请输入要查询的学员的姓名:')
    
            # 2. 如果用户输入的目标学员存在,则打印学员信息,否则提示学员不存在
            for i in self.student_list:
                if i.name == search_name:
                    print(f'姓名{i.name},性别{i.gender}, 手机号{i.tel}')
                    break
            else:
                print('查无此人!')
    로그인 후 복사

    3.4.6 显示所有学员信息

    • 打印所有学员信息
    • 步骤
      • 遍历学员数据列表,打印所有学员信息
    • 代码
        # 2.6 显示所有学员信息
        def show_student(self):
            print('姓名\t性别\t手机号')
            for i in self.student_list:
                print(f'{i.name}\t{i.gender}\t{i.tel}')
    로그인 후 복사

    3.4.7 保存学员信息

    • 需求:将修改后的学员数据保存到存储数据的文件。
    • 步骤
      • 打开文件
      • 文件写入数据
      • 关闭文件

    思考

    1. 文件写入的数据是学员对象的内存地址吗?
    2. 文件内数据要求的数据类型是什么?
    • 拓展__dict__
    class A(object):
        a = 0
    
        def __init__(self):
            self.b = 1aa = A()# 返回类内部所有属性和方法对应的字典print(A.__dict__)# 返回实例属性和值组成的字典print(aa.__dict__)
    로그인 후 복사

    在Python中

    • 代码
        # 2.7 保存学员信息
        def save_student(self):
            # 1. 打开文件
            f = open('student.data', 'w')
    
            # 2. 文件写入学员数据
            # 注意1:文件写入的数据不能是学员对象的内存地址,需要把学员数据转换成列表字典数据再做存储
            new_list = [i.__dict__ for i in self.student_list]
            # [{'name': 'aa', 'gender': 'nv', 'tel': '111'}]
            print(new_list)
    
            # 注意2:文件内数据要求为字符串类型,故需要先转换数据类型为字符串才能文件写入数据
            f.write(str(new_list))
    
            # 3. 关闭文件
            f.close()
    로그인 후 복사

    3.4.8 加载学员信息

    • 需求:每次进入系统后,修改的数据是文件里面的数据

    • 步骤

      • 尝试以"r"模式打开学员数据文件,如果文件不存在则以"w"模式打开文件
      • 如果文件存在则读取数据并存储数据
        • 读取数据
        • 转换数据类型为列表并转换列表内的字典为对象
        • 存储学员数据到学员列表
      • 关闭文件
    • 代码

        # 2.8 加载学员信息
        def load_student(self):
            # 尝试以"r"模式打开数据文件,文件不存在则提示用户;文件存在(没有异常)则读取数据
            try:
                f = open('student.data', 'r')
            except:
                f = open('student.data', 'w')
            else:
                # 1. 读取数据
                data = f.read()
    
                # 2. 文件中读取的数据都是字符串且字符串内部为字典数据,故需要转换数据类型再转换字典为对象后存储到学员列表
                new_list = eval(data)
                self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list]
            finally:
                # 3. 关闭文件
                f.close()
    로그인 후 복사

    四. 总结

    • 函数
      • 定义和调用
      • 参数的使用
    • 面向对象
      • 定义类
      • 创建对象
      • 定义和调用实例属性
      • 定义和调用实例方法
    • 数据类型
      • 列表
        • 增加删除数据
        • 列表推导式
      • 字典
      • 字符串
    • 文件操作
      • 打开文件
      • 读取或写入
      • 关闭文件

    相关免费学习推荐:python教程(视频)

    위 내용은 학생 관리 시스템의 Python 객체 지향 버전을 소개합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

  • 관련 라벨:
    원천:csdn.net
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿