学生信息管理系统python 类class

学生信息管理系统说明文档

系统概述

学生信息管理系统是一个用于管理学生个人信息、成绩以及进行基本操作(如增加、删除、查找、修改学生信息)的系统。该系统通过控制台输入操作,并提供了文本文件存储功能。

功能列表

  • 录入学生信息
  • 查找学生信息
  • 删除学生信息
  • 修改学生信息
  • 对学生成绩排序
  • 统计学生总人数
  • 显示所有学生信息
  • 退出系统

类设计

系统主要包含以下类:

  • Student: 存储单个学生的信息。
  • StudentManager: 管理学生集合及其相关操作。
  • Menu: 提供用户界面菜单及用户输入。

Student

属性
  • student_id: 学生ID(字符串类型)
  • name: 学生姓名(字符串类型)
  • english: 英语成绩(整数类型)
  • python: Python成绩(整数类型)
  • java: Java成绩(整数类型)
方法
  • total_score: 计算学生总成绩。
  • __str__: 格式化输出学生信息。

StudentManager

属性
  • students: 存储所有学生信息的字典。
方法
  • add_student: 添加新学生。
  • find_student: 查找学生。
  • remove_student: 删除学生。
  • modify_student: 修改学生信息。
  • sort_students: 根据成绩排序学生。
  • save_students: 保存学生信息到文件。
  • load_students: 从文件加载学生信息。
  • show_students: 显示所有学生信息。
静态方法
  • display_menu: 显示操作菜单。
  • get_choice: 获取用户的选择。

系统使用方法

  1. 启动程序,将显示操作菜单。
  2. 根据提示输入选择的操作编号。
  3. 根据屏幕提示输入必要信息。
  4. 系统将处理您的请求并提供反馈。

import os

class Student:
    def __init__(self, student_id, name, english, python, java):
        self.student_id = student_id
        self.name = name
        self.english = english
        self.python = python
        self.java = java

    def total_score(self):
        return self.english + self.python + self.java

    def __str__(self):
        return f"{self.student_id}\t{self.name}\t{self.english}\t{self.python}\t{self.java}\t{self.total_score()}"

class StudentManager:
    def __init__(self):
        self.students = {}

    def add_student(self):
        # 添加
        student_id = input('请输入id(如1001):')
        name = input('请输入名字(如张三):')
        english = int(input('请输入英语成绩:'))
        python = int(input('请输入python成绩:'))
        java = int(input('请输入java成绩:'))
        student = Student(student_id, name, english, python, java)
        self.students[student.student_id] = student
        print("学生信息录入完毕!")

    def find_student(self):
        # 查找
        student_id = input("请输入学生ID:")
        student = self.students.get(student_id)
        if student:
            print("找到学生信息:")
            print(student)
        else:
            print("没有找到该学生信息。")

    def remove_student(self):
        # 删除
        student_id = input("请输入要删除学生的id:")
        if student_id in self.students:
            del self.students[student_id]
            print(f"id为{student_id}的学生信息已被删除。")
        else:
            print(f"没有找到ID为{student_id}的学生信息。")

    def save_students(self, filename="student.txt"):
        with open(filename, 'w', encoding='UTF-8') as file:
            for student in self.students.values():
                file.write(f"{student}\n")

    def load_students(self, filename="student.txt"):
        if os.path.exists(filename):
            with open(filename, 'r', encoding='UTF-8') as file:
                for line in file:
                    student_data = line.strip().split('\t')
                    student = Student(*student_data)
                    self.students[student.student_id] = student

    def show_students(self):
        for student in self.students.values():
            print(student)

    def modify_student(self):
        # 修改
        student_id = input('请输入要修改的学生id: ')
        if student_id in self.students:
            student = self.students[student_id]
            print("找到学生信息,可以修改他的相关信息了!")
            student.name = input("请输入姓名:")
            student.english = int(input("请输入英语成绩:"))
            student.python = int(input("请输入python成绩:"))
            student.java = int(input('请输入java成绩:'))
            print('修改成功!')
        else:
            print("没有找到该学生的信息。")

    def sort_students(self):
        # 排序
        sort_key = input("请选择排序方式(1.按英语成绩 2.按Python成绩 3.按Java成绩 0.按总成绩): ")
        reverse = input("请选择排序方式(0.升序 1.降序): ") == '1'
        if sort_key == '1':
            sorted_students = sorted(self.students.values(), key=lambda s: s.english, reverse=reverse)
        elif sort_key == '2':
            sorted_students = sorted(self.students.values(), key=lambda s: s.python, reverse=reverse)
        elif sort_key == '3':
            sorted_students = sorted(self.students.values(), key=lambda s: s.java, reverse=reverse)
        elif sort_key == '0':
            sorted_students = sorted(self.students.values(), key=lambda s: s.total_score(), reverse=reverse)
        else:
            print("您输入有误,请重新输入。")
            return

        for student in sorted_students:
            print(student)




class Menu:
    # 菜单
    @staticmethod
    def display_menu():
        print("===========================学生信息管理系统==========================")
        print('-------------------------------功能菜单----------------------------')
        print('\t\t\t\t\t\t1.录入学生信息')
        print('\t\t\t\t\t\t2.查找学生信息')
        print('\t\t\t\t\t\t3.删除学生信息')
        print('\t\t\t\t\t\t4.修改学生信息')
        print('\t\t\t\t\t\t5.对学生成绩排序')
        print('\t\t\t\t\t\t6.统计学生总人数')
        print('\t\t\t\t\t\t7.显示所有学生信息')
        print('\t\t\t\t\t\t0.退出系统')
        print('-----------------------------------------------------------------------')

    @staticmethod
    def get_choice():
        choice = input("请选择:")
        return choice


def main():
    # 主函数
    student_manager = StudentManager()
    student_manager.load_students()

    while True:
        Menu.display_menu()
        choice = Menu.get_choice()

        if choice == '1':
            student_manager.add_student()
        elif choice == '2':
            student_manager.find_student()
        elif choice == '3':
            student_manager.remove_student()
        elif choice == '4':
            student_manager.modify_student()
        elif choice == '5':
            student_manager.sort_students()
        elif choice == '6':
            print(f"一共有{len(student_manager.students)}名学生。")
        elif choice == '7':
            student_manager.show_students()
        elif choice == '0':
            student_manager.save_students()
            print("谢谢您的使用。")
            break
        else:
            print("您输入的有误,请重新输入。")




if __name__ == "__main__":
    main()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用实现的Python学生信息管理系统的示例: ```python class Student: def __init__(self, name, age, gender, score): self.name = name self.age = age self.gender = gender self.score = score class StudentManager: def __init__(self): self.students = [] def add_student(self, student): self.students.append(student) def remove_student(self, student): self.students.remove(student) def get_all_students(self): return self.students def get_student_by_name(self, name): for student in self.students: if student.name == name: return student return None def get_student_with_highest_score(self): if len(self.students) == 0: return None highest_score_student = self.students[0] for student in self.students: if student.score > highest_score_student.score: highest_score_student = student return highest_score_student ``` 这个示例中,我们定义了一个`Student`来表示学生,包含了学生的姓名、年龄、性别和分数。然后我们定义了一个`StudentManager`来管理学生信息,包含了添加学生、删除学生、获取所有学生、根据姓名获取学生和获取分数最高的学生等方法。 使用这个实现学生信息管理系统的具体步骤如下: 1. 创建一个`StudentManager`对象。 2. 使用`add_student`方法添加学生信息。 3. 使用`get_all_students`方法获取所有学生信息。 4. 使用`get_student_by_name`方法根据姓名获取学生信息。 5. 使用`get_student_with_highest_score`方法获取分数最高的学生信息。 6. 使用`remove_student`方法删除学生信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值