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

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

학생 관리 시스템의 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

프로그램 파일은 다음과 같습니다.

프로그램 항목 파일: main.py

    학생 파일: Student.py
    • 관리 시스템 파일: ManagerSystem.py
    • 3. 글쓰기 프로그램
  • 3.1 학생 .py
    • 요구 사항:
    • 학생 정보에는 이름, 성별, 휴대폰 번호가 포함됩니다.
    • 학생 객체를 편리하게 볼 수 있는 __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으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!