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日

相关文章

  • 【NLP教程】用python调用百度AI开放平台进行情感倾向分析

    目录 一、背景 二、操作步骤 2.1 创建应用 2.2 获取token 2.3 情感倾向分析 三、其他情感分析 四、讲解视频 一、背景 Hi,大家!我是 @马哥python说 ,一名10年程序猿。 今天我来演示一下:通过百度AI开放平台,利用python调用百度接口进行中文情感倾向分析,并得出情感极性分为积极、消极还是中性以及置信度结果。 二、操作步骤 首先…

    python 2023年4月25日
    00
  • Python二进制串转换为通用字符串的方法

    Python中将二进制串转换为通用字符串有以下两种方法: 1. 使用 Python 自带 codecs 模块中的解码功能 在 Python 中,我们可以使用内置的codecs模块将二进制串转换为通用字符串。其使用方法如下: import codecs binary_str = b’00110010 00110000 00110030 00110031′ un…

    python 2023年6月5日
    00
  • Python3操作SQL Server数据库(实例讲解)

    Python3操作SQL Server数据库(实例讲解) 环境准备 在使用Python3操作SQL Server数据库之前,需要先安装相应的依赖包。 pip install pyodbc 如果需要在Python3中使用SQLAlchemy,还需要安装以下依赖: pip install sqlalchemy pip install pyodbc>=4.0…

    python 2023年5月20日
    00
  • 在Python中使用HTMLParser解析HTML的教程

    在Python中使用HTMLParser解析HTML的教程 HTMLParser是Python标准库中的一个模块,可以用于解析HTML文档。在本教程中,我们将介绍如何使用HTMLParser解析HTML文档,并提供两个示例。 安装 HTMLParser是Python标准库中的一部分,因此不需要安装。 解析HTML文档 以下是一个示例,演示如何使用HTMLPa…

    python 2023年5月15日
    00
  • Python中的tuple元组详细介绍

    下面是“Python中的tuple元组详细介绍”的完整攻略。 什么是tuple元组? 元组(tuple)是Python中的一个特殊的序列类型,只能包含不可变的对象(immutable),一旦定义元素不能被修改。元组使用圆括号()表示,元素之间用逗号隔开。 定义和访问元组 定义一个元组可以使用 () 或者 tuple() 函数。例如: # 创建元组的两种方式 …

    python 2023年5月14日
    00
  • python中的循环结构问题

    下面是Python中循环结构的完整攻略: 循环结构的概述 在Python中,有两种类型的循环结构:for循环和while循环。循环结构可以让我们重复执行一些代码,直到满足一定条件时停止。 for循环 for循环是一种基于序列进行的循环结构,可以遍历任何序列(比如字符串、列表、元组等),也可以遍历任何可迭代对象(比如字典的keys和values等)。for循环…

    python 2023年5月14日
    00
  • python实现发送和获取手机短信验证码

    关于“python实现发送和获取手机短信验证码”的完整攻略,大致可以分为以下几个步骤: 选择短信平台及API。目前市面上有很多短信平台提供API接口,选择一个稳定可靠的短信平台,可以根据自己的需要选择不同的套餐、价格、支持的国内外地区等。这个可以看自己的需求和具体情况进行选择。常用的短信平台有阿里云、腾讯云、华信等。 在短信平台上申请账号,获取API接口的相…

    python 2023年6月3日
    00
  • python批量读取txt文件为DataFrame的方法

    下面是“python批量读取txt文件为DataFrame的方法”的完整攻略,包括以下步骤: 步骤一:准备数据 首先需要获得一些示例数据,这些示例数据应该存在于多个.txt文件中。这些文件应该具有相同的格式,可以包含标头和数据,以制表符或其他分隔符分隔。 步骤二:导入必要的库 在使用本方法之前,需要导入pandas库。可以使用以下命令导入pandas: im…

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