用Python制作学生管理系统

一、系统需求

1.系统要求:学员数据存储在文件中

2.系统功能:添加学员、删除学员、修改学员信息、查询学员信息、显示所有学员信息、保存学员信息、退出系统

二、考核要求        

教程视频及文档 

链接:https://pan.baidu.com/s/1E8V6zGGe8kIMgEWdoxZKgg 
提取码:po5l

三、程序代码

1.main.py

from managerSystem import *  # 导⼊入managerSystem模块

if __name__ == '__main__':  # 启动学员管理理系统
    student_manager = StudentManager()
    student_manager.run()

  2.student.py

class Student(object):
    def __init__(self, name, gender, tel, age):
        self.name = name
        self.gender = gender
        self.tel = tel
        self.age = age

    def __str__(self):
        return f'{self.name}, {self.gender}, {self.tel}, {self.age}'

 3.managerSystem.py

from student import *  # 导⼊入student模块


class StudentManager(object):
    def __init__(self):
        self.student_list = []  # 建立一个存储数据用的列表

    def run(self):  # 程序入口函数
        self.load_student()  # 加载学员信息

        while True:
            self.show_menu()  # 显示功能菜单
            menun_num = int(input("请输入您需要的功能序号:"))  # 用户输入功能序号

            # 根据输入的序号,执行不同的功能
            if menun_num == 1:  # 添加学员
                self.add_student()
            elif menun_num == 2:  # 删除学员
                self.del_student()
            elif menun_num == 3:  # 修改学员信息
                self.modify_student()
            elif menun_num == 4:  # 查询学员信息
                self.search_student()
            elif menun_num == 5:  # 显示所有学员信息
                self.show_student()
            elif menun_num == 6:  # 保存学员信息
                self.save_student()
            elif menun_num == 7:  # 退出系统
                break
            elif menun_num == 8:  # 显示所有学员的姓名信息
                self.show_student_name()
            elif menun_num == 9:  # 显示所有男学员的全部信息
                self.show_male_studente()
            elif menun_num == 10:  # 删去年龄大于20的全部学员信息
                self.del_student_in_age()

    # 定义功能函数
    def show_menu(self):  # 显示功能菜单
        print("请选择如下功能------------")
        print("1:添加学员")
        print("2:删除学员")
        print("3:修改学员信息")
        print("4:查询学员信息")
        print("5:显示所有学员信息")
        print("6:保存学员信息")
        print("7:退出系统")
        print("8:显示所有学员的姓名信息")
        print("9:显示所有男学员的全部信息")
        print("10:删去年龄大于20的全部学员信息")

    def add_student(self):  # 添加学员

        # 用户输⼊姓名、性别、手机号、年龄
        name = input("请输入您的姓名")
        gender = input("请输入您的性别")
        tel = input("请输入您的手机号")
        age = input("请输入您的年龄")

        student = Student(name, gender, tel, age)  # 创建学员对象
        self.student_list.append(student)  # 将该学员对象添加到列表

        print(self.student_list)  # 打印信息
        print(student)  # 打印信息

    def del_student(self):  # 删除学员
        del_name = input('请输⼊要删除的学员姓名:')  # 用户输入目标学员姓名

        # 如果用户输入的目标学员存在则删除,否则提示学员不不存在
        for i in self.student_list:  # 遍历学生信息列表
            if i.name == del_name:  # 查找学生是否存在
                self.student_list.remove(i)  # 删除学生信息
                break
        else:
            print("查无此人!")

        print(self.student_list)  # 打印学生列表,验证删除功能

    def modify_student(self):  # 修改学员信息
        modify_name = input('请输⼊要修改的学员的姓名:')  # 用户输入目标学员姓名

        # 如果用户输入的目标学员存在,则修改信息,否则提示学员不存在
        for i in self.student_list:  # 遍历学生信息列表
            if i.name == modify_name:  # 查找学生是否存在
                # 更改学员信息
                i.name = input('请输⼊学员姓名:')
                i.gender = input('请输⼊学员性别:')
                i.tel = input('请输⼊学员手机号:')
                i.age = input('请输入学员年龄:')
                print(f'修改该学员信息成功,姓名{i.name},性别{i.gender}, 手机号{i.tel}, 年龄{i.age}')  # 打印学生信息,验证是否更改成功
                break
        else:
            print('查无此人!')

    def search_student(self):  # 查询学员信息
        search_name = input('请输⼊要查询的学员的姓名:')  # 用户输入目标学员姓名
        # 如果用户输入的目标学员存在,则打印学员信息,否则提示学员不存在
        for i in self.student_list:  # 遍历学生信息列表
            if i.name == search_name:  # 查找学生是否存在
                print(f'姓名{i.name},性别{i.gender}, 手机号{i.tel}, 年龄{i.age}')  # 打印学员信息
                break
        else:
            print('查无此⼈!')

    def show_student(self):  # 显示所有学员信息
        print('姓名\t性别\t手机号\t年龄')  # 打印信息名称
        for i in self.student_list:  # 遍历学生信息列表
            print(f'{i.name}\t{i.gender}\t\t{i.tel}\t{i.age}')  # 打印学员信息

    def save_student(self):  # 保存学员信息
        f = open('student.data', 'w', encoding='utf-8')  # 打开文件
        new_list = [i.__dict__ for i in self.student_list]  # 将学员数据转换成列表字典数据
        print(new_list)  # 打印信息
        f.write(str(new_list))  # 转换成字符串,存入文档
        f.close()  # 关闭文件

    def load_student(self):  # 加载学员信息
        # 尝试以"r"模式打开数据文件,文件不存在则提示用户;文件存在(没有异常)则读取数据
        try:
            f = open('student.data', 'r', encoding='utf-8')
        except:
            f = open('student.data', 'w', encoding='utf-8')
        else:
            data = f.read()  # 读取数据
            # 转换数据类型,再转换为字典为对象后存储到学员列表
            new_list = eval(data)
            self.student_list = [Student(i['name'], i['gender'], i['tel'], i['age']) for i in new_list]
        finally:
            f.close()  # 关闭文件

    def show_student_name(self):  # 打印所有学员的姓名信息
        print('姓名')  # 打印信息名称
        for i in self.student_list:  # 遍历学生信息列表
            print(f'{i.name}')  # 打印学员姓名

    def show_male_studente(self):  # 显示所有男学员的全部信息
        print('姓名\t性别\t手机号\t年龄')  # 打印信息名称
        for i in self.student_list:  # 遍历学生信息列表
            if i.gender == '男':  # 判断性别
                print(f'{i.name}\t{i.gender}\t\t{i.tel}\t{i.age}')  # 打印学员信息

# 倒着删除
    def del_student_in_age(self):  # 删去年龄大于20的全部学员信息
        a = len(self.student_list)  # 计算列表长度
        for i in range(a - 1, -1, -1):  # 遍历学生信息列表
            if self.student_list[i].age > '20':  # 判断年龄
                self.student_list.remove(self.student_list[i])  # 删除学生信息


# 下面这种方法也可以删除,但是有漏洞,因为你删除第一个以后,列表的位置发生变化,本来下一个需要删除的是第五个,但是你把前一个删除后,第五个就变成了第四个,但是你的i值还是5,所以你删错了

    def del_student_in_age(self):  # 删去年龄大于20的全部学员信息
        for i in self.student_list:  # 遍历学生信息列表
            if i.age > '20':  # 判断年龄
                self.student_list.remove(i)  # 删除学生信息

        print(self.student_list)  # 打印学生列表,验证删除功能

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python是一种强大的编程语言,可以用来制作学生管理系统的图形页面。我们可以利用Python的Tkinter库来创建一个用户界面,用于输入学生的信息、显示学生成绩等功能。首先,我们需要创建一个主窗口,然后在窗口中添加各种控件,比如标签、输入框、按钮等来实现各种功能。我们可以使用Tkinter提供的pack()或grid()方法来管理控件的布局,使得界面看起来整洁美观。例如,我们可以在主界面上添加一个菜单栏,包括学生信息录入、成绩查询、成绩统计等功能选项。 接着,我们需要编写Python代码来实现各个功能的具体逻辑。比如,当用户在输入框中输入学生信息后,点击提交按钮,程序会将信息存储到数据库中;当用户查询学生成绩时,程序会从数据库中查询并显示在界面上。此外,我们还可以添加一些额外的功能,比如导入学生信息、导出学生成绩单等,来增强系统的实用性。 在编写代码时,我们需要注意界面和逻辑代码的分离,以便于代码的维护和扩展。另外,我们也需要考虑用户体验,确保界面操作简单直观,方便用户使用。当制作学生管理系统的图形页面后,我们可以将程序打包成可执行文件,方便用户在不具备Python环境的电脑上运行。通过Python制作学生管理系统图形页面,可以提高系统的易用性和美观性,为用户提供更好的使用体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值