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

yizhihongxing

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实现翻译HTML中的文本字符串

    在Python中,我们可以使用BeautifulSoup库和Googletrans库来翻译HTML中的文本字符串。本文将介绍如何基于Python实现翻译HTML中的文本字符串的过程解析。我们将提供两个示例,以帮助读者更好理解如何实现这个目标。 步骤1:安装必要的库 在使用Python程序翻译HTML中的文本字符串之前,我们需要安装必要的库。我们使用以下库: …

    python 2023年5月15日
    00
  • Python产生Gnuplot绘图数据的方法

    Python可以通过Gnuplot绘图库来进行图形绘制,而Gnuplot本身则可以通过读取格式化的数据文件来生成绘图。因此,我们可以在Python中使用Gnuplot来生成数据文件,进而绘制图形。下面是详细的攻略: 准备工作 要使用Python和Gnuplot进行绘图,需要先安装Gnuplot库和相关的Python库。在Ubuntu Linux系统上,可以使…

    python 2023年6月3日
    00
  • Python+MySQL随机试卷及答案生成程序的示例代码

    下面是Python+MySQL随机试卷及答案生成程序的完整攻略,包含了示例代码和两条示例说明。 Python+MySQL随机试卷及答案生成程序 程序功能 本程序可生成随机试卷及答案。通过输入试卷的问题、选项及答案,程序会将输入的信息存储在MySQL数据库中,并在程序运行时,随机从数据库中选择指定数量的题目生成随机试卷和答案。 实现步骤 1. 数据库设计 本程…

    python 2023年6月3日
    00
  • Python中三个不可思议的返回功能分享

    Python中三个不可思议的返回功能分享 在Python中,有三个不可思议的返回功能,分别是return、yield和raise。本文将详细讲解这三个返回功能的使用方法和注意事项,并提供两个示例说明。 return return是Python中最常用的返回功能,用于从函数中返回一个值。当函数执行到return语句时,函数将会立即停止执行将return后面的值…

    python 2023年5月13日
    00
  • Python 数据类型中的字符串和数字

    Python 数据类型中的字符串和数字 在Python中,字符串和数字是两种非常常见的数据类型。学习掌握这两种数据类型,对于Python编程入门非常重要。接下来,我们将详细讲解Python数据类型中的字符串和数字。 字符串 字符串是一种表示文本数据的数据类型,可以使用单引号或双引号表示,例如: str1 = ‘Hello, world!’ str2 = &q…

    python 2023年5月14日
    00
  • Python基础知识方法重写+文件处理+异常处理

    Python基础知识方法重写 在Python中,可以通过方法重写来修改类的默认行为。方法重写指的是在子类中定义与父类同名的方法,从而覆盖父类的默认行为。 方法重写的一般步骤如下: 定义一个继承自父类的子类。 在子类中定义与父类同名的方法。 在子类方法中可以通过super()函数调用被重写的父类方法。 例如,下面的例子演示了如何通过方法重写来修改Python中…

    python 2023年5月13日
    00
  • Python机器学习之随机梯度下降法的实现

    Python机器学习之随机梯度下降法的实现 在机器学习中,拟合函数常常通过优化算法来实现。梯度下降法是一种最常见的优化算法,其具有简单、易于实现等特点。随机梯度下降法(Stochastic Gradient Descent, SGD)则是梯度下降法的一种变体,其通常比标准梯度下降法具有更低的时间复杂度和更快的速度。 本文将介绍随机梯度下降法的实现过程,包括概…

    python 2023年6月3日
    00
  • Python获取脚本所在目录的正确方法

    当我们编写Python程序时,有时需要获取当前执行文件所在的目录。获取程序所在目录在处理文件读取、文件写入、文件路径转换等场景下都是非常必要的。Python提供了多种方式获取执行文件所在目录,但是有些方式并不正确,因此在本文中将为大家介绍Python获取脚本所在目录的正确方法。 方法一:使用os.path Python中的os.path模块可以用于操作文件路…

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