python学生信息管理系统(完整版)

Python学生信息管理系统(完整版)攻略

一、需求分析

本系统需要实现的功能需求如下:

  1. 添加学生信息
  2. 删除学生信息
  3. 修改学生信息
  4. 查询学生信息
  5. 显示所有学生信息
  6. 保存学生信息到文件
  7. 从文件中读取学生信息

二、系统实现

2.1 面向对象设计

我们采用面向对象的设计思路,将学生信息存储到一个列表中,每个学生信息是一个字典,包含以下字段:

  1. 学生姓名(name)
  2. 学生年龄(age)
  3. 学生性别(sex)
  4. 学生所在班级(class)

2.2 界面设计

我们采用命令行界面,用户输入数字对应每一个菜单选项。

2.3 代码实现

最终实现的代码如下:

class Student():
    def __init__(self):
        self.name = ''
        self.age = ''
        self.sex = ''
        self.classroom = ''

class Student_List():
    def __init__(self):
        self.StudentList = []

    def add_student(self, student):
        self.StudentList.append(student)
        print(f'{student.name}学生信息已经录入成功!')

    def update_student(self, student):
        for index, stu in enumerate(self.StudentList):
            if stu.name == student.name:
                self.StudentList[index] = student
                print(f'{student.name}修改成功!')
                return
        print(f'{student.name}不存在,更新失败!')

    def delete_student(self, name):
        for index, student in enumerate(self.StudentList):
            if student.name == name:
                self.StudentList.pop(index)
                print(f'{name}信息已删除!')
                return
        print(f'{name}不存在,删除失败!')

    def query_student(self, name):
        for student in self.StudentList:
            if student.name == name:
                print(f'名字:{student.name}, 年龄:{student.age}, 性别:{student.sex}, 班级:{student.classroom}')
                return
        print(f'{name}不存在,查询失败!')

    def list_student(self):
        for student in self.StudentList:
            print(f'名字:{student.name}, 年龄:{student.age}, 性别:{student.sex}, 班级:{student.classroom}')

    def save_student(self):
        with open('student.txt', 'w', encoding='utf-8') as f:
            for student in self.StudentList:
                f.write(f'{student.name},{student.age},{student.sex},{student.classroom}\n')
        print('学生信息保存成功!')

    def read_student(self):
        try:
            with open('student.txt', 'r', encoding="utf-8") as f:
                for line in f:
                    name, age, sex, classroom = line.strip().split(",")
                    student = Student()
                    student.name = name
                    student.age = age
                    student.sex = sex
                    student.classroom = classroom
                    self.StudentList.append(student)
            print('学生信息读取成功!')
        except Exception:
            print('文件不存在,读取失败!')

student_list=Student_List()

def show_menu():
    print('1. 添加学生信息')
    print('2. 删除学生信息')
    print('3. 修改学生信息')
    print('4. 查询学生信息')
    print('5. 显示所有学生信息')
    print('6. 保存学生信息到文件')
    print('7. 从文件中读取学生信息')
    print('0. 退出系统')
    print('-' * 20)

def new_student():
    student = Student()
    student.name = input('输入学生姓名:')
    student.age = input('输入学生年龄:')
    student.sex = input('输入学生性别:')
    student.classroom = input('输入学生所在班级:')
    return student

def main():
    show_menu()
    while True:
        operator = input('请输入您的选择(数字):')
        if operator == '1':
            student= new_student()
            student_list.add_student(student)
        elif operator == '2':
            name = input('输入学生姓名:')
            student_list.delete_student(name)
        elif operator == '3':
            student = new_student()
            student_list.update_student(student)
        elif operator == '4':
            name = input('输入学生姓名:')
            student_list.query_student(name)
        elif operator == '5':
            student_list.list_student()
        elif operator == '6':
            student_list.save_student()
        elif operator == '7':
            student_list.read_student()
        elif operator == '0':
            print('欢迎您下次再使用!')
            break
        show_menu()

if __name__ == '__main__':
    main()

2.4 示范运行

例如,我们可以按以下步骤测试系统功能:

  1. 添加学生信息:依次输入1、张三、18、男、一年级一班
  2. 查看学生信息:依次输入4、张三
  3. 修改学生信息:依次输入3、张三、20、男、一年级二班
  4. 删除学生信息:依次输入2、张三
  5. 退出系统:依次输入0,最后退出系统。

经过以上步骤,我们发现系统功能正常,可以实现我们设想的需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python学生信息管理系统(完整版) - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • python上下文管理器使用场景及异常处理

    在Python中,上下文管理器是一种用于管理资源的对象,它可以自动分配和释放资源,以确保资源的正确使用。上下文管理器通常使用with语句来使用,可以在进入和退出代码块时执行特定的操作。下面是Python上下文管理器的使用攻略: 1. 使用场景 上下文管理器通常用于管理资源,例如文件、网络连接、数据库连接等。在使用这些资源时,我们需要确保它们被正确地打开和关闭…

    python 2023年5月13日
    00
  • 详解Python 字典、映射和散列表

    下面是Python 字典、映射和散列表的完整攻略。 Python字典 Python中的字典是一种无序的键值对数据结构,也称为哈希表或关联数组。它们非常适合存储和快速访问大量的相关数据。 创建字典 下面是创建Python字典的几种方法: # 空字典 d = {} # 直接通过键值对创建字典 d = {‘apple’: 2, ‘banana’: 3, ‘pear…

    python-answer 2023年3月25日
    00
  • Python实现用手机监控远程控制电脑的方法

    下面是Python实现用手机监控远程控制电脑的攻略: 一、安装必要的软件包 1. 安装PyAutoGUI PyAutoGUI是Python的一个库,可以模拟用户在计算机上的鼠标和键盘动作。可以使用pip(Python自带的包管理工具)命令安装PyAutoGUI: pip install pyautogui 2. 安装OpenCV OpenCV是一个专门处理图…

    python 2023年5月23日
    00
  • Python 使用有限迭代器

    Python中的有限迭代器 (finite iterator) 指的是一次性的迭代器,即使用后就不能再次迭代。一些Python内置的函数(如sorted和max)以及一些外部库(如pandas和numpy)也提供了一些有限迭代器。 Python有限迭代器主要有以下几种类型: zip(): 这个函数可以接受任意多个可迭代对象,将它们中对应的元素打包成一个元组(…

    python-answer 2023年3月25日
    00
  • Python random模块的使用示例

    Python random模块的使用示例 Python中的random模块用于生成随机数,包括整数、浮点数和随机序列。接下来介绍random模块的常见使用示例。 1. 生成随机整数 要生成指定范围内的随机整数,可以使用random.randint()函数。该函数接受两个参数,分别代表随机整数的范围。下面的代码示例生成一个1~100之间的随机整数: impor…

    python 2023年6月3日
    00
  • 彻底解决Python包下载慢问题

    针对Python包下载慢问题,下面是一份完整的攻略,供参考: 1. 更换镜像源 很多Python包在下载时会通过pip去官网下载源码,但是国内访问官网的速度并不可能跟得上国外的访问速度,因此我们需要通过更换Python包镜像源来解决下载慢的问题。 方法 打开 清华镜像源 页面; 根据自己使用的 Python 版本和操作系统,在“常用链接”块中找到对应版本链接…

    python 2023年5月14日
    00
  • 使用批处理for命令清除事件查看器所有Windows EventLog日志

    清除事件查看器所有Windows EventLog日志需要使用批处理for命令,下面是完整攻略: 步骤一:打开命令提示符窗口 按下Win+R快捷键,打开运行对话框,输入cmd并按下Enter键,打开命令提示符窗口。 步骤二:输入for命令清除Windows EventLog日志 输入以下命令: for /f "tokens=*" %1 i…

    python 2023年6月13日
    00
  • python中json格式处理和字典的关系

    Python中的JSON库可以完成JSON格式数据的解析和生成。JSON格式数据是一种轻量级的数据交换格式,常用于前后端的数据交互。而字典是Python中的一种数据结构,可以存储键值对(key-value)的集合。本文将详细讲解Python中JSON格式处理和字典之间的关系和转换方法。 JSON基础知识 首先,我们需要了解下JSON的基础知识。JSON是Ja…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部