Python实现学生管理系统

1.代码

from prettytable import PrettyTable

class StudentInfo:
    def __init__(self):
        print("---------------------------")
        print(" 学生管理系统 V1.0 ")
        print(" 1:添加学生 ")
        print(" 2:显示所有学生 ")
        print(" 3:查询学生 ")
        print(" 4:修改学生 ")
        print(" 5:删除学生 ")
        print(" 6:退出系统 ")
        print("---------------------------")
        self.student_list = [] # 定义一个列表用来存储所有的学生信息(每个学生是一个字典)
        self.table = PrettyTable()
        self.table.field_names = ["序号", "姓名", "性别", "年龄"]

    def AddStudent(self):
        """添加学生信息"""
        student = {}  # 定义一个字典,用来存储用户的学生信息
        name = input("请输入学生姓名>>>")
        # 判断学生是否存在
        for i in self.student_list:
            if i['name'] == name:
                print("学生已经存在!!")
                return None
        sex = input("请输入学生性别>>>")
        age = input("请输入学生年龄>>>")
        # 向字典中添加数据
        student['name'] = name
        student['sex'] = sex
        student['age'] = age
        # 向列表中添加这个字典
        self.student_list.append(student)
        # 向表格里添加一行
        self.table.add_row([self.student_list.index(student)+1, name, sex, age])
        print("添加成功!!!")

    def UpdateTable(self):
        '''更新表格'''
        self.table.clear_rows()
        for i, student in enumerate(self.student_list):
            self.table.add_row([i + 1, student['name'], student['sex'], student['age']])
        print(self.table)

    def PrintTable(self):
        """打印表格"""
        print(self.table)

    def SearchStudent(self):
        """查询学生信息"""
        index = int(input("请输入要查找学生的序号:"))
        if 1 <= index <= len(self.student_list):
            print(self.table[index-1])  # 打印该学生信息
        else:
            print("输入的学生序号有误,请重新输入")

    def UpdateStudent(self):
        '''修改学生信息'''
        index = int(input("请输入要修改学生的序号:"))
        if 1 <= index <= len(self.student_list):
            print(self.table[index-1])  # 打印该学生信息
        else:
            print("输入的学生序号有误,请重新输入")
        name = input("请输入学生姓名>>>")
        # 判断学生是否存在
        for student in self.student_list:
            if student['name'] == name:
                print("学生已经存在!!")
                return None
        self.student_list[index-1]['name'] = name
        self.student_list[index-1]['sex'] = input("请输入学生性别>>>")
        self.student_list[index-1]['age'] = input("请输入学生年龄>>>")
        print("修改成功!")
        print(self.student_list)
        self.UpdateTable()
        return None

    def DeleteStudent(self):
        """删除学生信息"""
        print(self.table)
        index = int(input("请输入要删除学生的序号:"))
        if 1 <= index <= len(self.student_list):
            del_flag = input("你确定要删除么?[y/n]")
            if del_flag == 'y':
                self.student_list.pop(index-1)
                print("删除成功!!!")
                self.UpdateTable()
                return None
            else:
                print("放弃删除!!!")
                return None
        else:
            print("输入序号有误,请重新输入")

    def main(self):
        while True:
            choose = int(input("请输入的您的选择>>>"))
            if choose == 1:
                self.AddStudent()
            elif choose == 2:
                self.PrintTable()
            elif choose == 3:
                self.SearchStudent()
            elif choose == 4:
                self.UpdateStudent()
            elif choose == 5:
                self.DeleteStudent()
            elif choose == 6:
                print("Bye~~")
                break
            else:
                print("输入有误,请重新输入......")


if __name__ == '__main__':
    stu = StudentInfo()
    stu.main()

 

2.运行效果

 

posted @ 2021-11-24 14:40  不会飞的鲨鱼  阅读(922)  评论(0编辑  收藏  举报