python创建学生管理系统_学员管理系统 培训机构

python创建学生管理系统_学员管理系统 培训机构使用面向对象完成了学员管理系统,实现了添加、删除、修改、查询、保存读取等功能。将学员、学员管理后台、开始入口分为了3个py文件,分别是Student.py、Student_management.py、main.py。保存文件名叫student.txt文件。内含注释,我也是给初学者,可能有些地方解释不清楚。Student.py代码如下#定义学生的类classStudent(object):def__init__(self,name,gender,number):

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

使用面向对象完成了学员管理系统,实现了添加、删除、修改、查询、保存读取等功能,将学员、学员管理后台、开始入口分为了3个py文件,分别是Student.py、Student_management.py、main.py。保存文件名叫student.txt文件。内含注释,我也是给初学者,可能有些地方解释不清楚。

Student.py代码如下

# 定义学生的类
class Student(object):
    def __init__(self, name, gender, number):
        self.name = name  # 表示学生姓名
        self.gender = gender  # 表示学生性别
        self.number = number  # 表示学生手机号

    def __str__(self):  # 打印学生状态
        return f'姓名:{self.name}\t性别:{self.gender}\t手机号:{self.number}'

Student_management.py代码

开始函数:

    def run(self):
        # 读取文件
        self.du_qu()
        while True:
            # 打印菜单
            self.cai_dan()
            # 用户选择
            xuan_ze = input('请输入你的选择:')
            if xuan_ze == '1':
                self.xuan_ze1()
            elif xuan_ze == '2':
                self.xuan_ze2()
            elif xuan_ze == '3':
                self.xuan_ze3()
            elif xuan_ze == '4':
                self.xuan_ze4()
            elif xuan_ze == '5':
                self.xuan_ze5()
            elif xuan_ze == '6':
                self.xuan_ze6()
            elif xuan_ze == '7':
                print('你以成功退出!')
                break
            else:
                print('你的选择出错,请重新输入:')

加载数据函数

    def du_qu(self):
        # 读取文件
        # 设置一个异常,第一次运行时如果没有该文件则会报错运行w模式进行创建
        try:
            f = open('student.txt', mode='r')
        except:
            f = open('student.txt', mode='w')
        else:
            new_student = f.read()
            # print(new_student)  # 测试
            # 将读取的字符串当中表达式进行有效的表达式进行计算并返回值
            # 在这里的作用是将读取的字符串转换为列表格式,因为保存时是以列表的格式转换为字符串的类型进行保存,
            # 所以在文件中还保留着列表的中括号,在这里当中有效的表达式进行计算就可以返回一个列表
            student_list = eval(new_student)  # 列表类型,内部每个学员是字典类型
            for i in student_list:
                # 迭代将列表的数据读取出来保存到学员管理的学员列表中,将数据传入Student可以让他们的格式统一
                self.student_list.append(Student.Student(i['name'], i['gender'], i['number']))
            # print(self.student_list)  # 测试
        finally:
            f.close()   #关闭文件

菜单函数:

    def cai_dan(self):
        print('1、添加学员')
        print('2、删除学员')
        print('3、修改学员')
        print('4、查询学员')
        print('5、显示全部学员')
        print('6、保存学员')
        print('7、退出系统')

添加学员函数

    def xuan_ze1(self):
        # 添加学员
        name = input('请输入你要添加的学员姓名:')
        gender = input('请输入你要添加的学员性别:')
        number = input('请输入你要添加的学员手机号:')

        # 添加到学员系统模块
        student = Student.Student(name, gender, number)  # 传入名字、性别、手机号

        # 在添加到列表中方便保持
        self.student_list.append(student)

        # print(self.student_list)  # 测试
        # print(student)  # 测试
        # for i in self.student_list:   #测试
        #     print(i)

删除学员函数

    def xuan_ze2(self):
        # 删除学员
        name = input('请输入你要删除的学员名字:')
        for i in self.student_list:  # 迭代查找要删除的对象
            if name == i.name:  # 如果相同的话
                self.student_list.remove(i)  # 删除
                break
        else:
            # 如果没有找到的话
            print('查无此人!')
        print(self.student_list)  # 测试

修改学员函数

    def xuan_ze3(self):
        # 修改学员
        name = input('请输入你要修改的学员姓名:')
        for i in self.student_list:  # 迭代查找要修改的学员
            if name == i.name:  # 如果相同的话
                i.name = input('请输入修改后的学员姓名:')
                i.gender = input('请输入修改后的学员性别:')
                i.number = input('请输入修改后的学员手机号:')
                print(f'修改后为:姓名:{i.name},性别:{i.gender},手机号:{i.number}')
                break
        else:
            print('查无此人!')

查询学员函数

    def xuan_ze4(self):
        # 查询学员
        name = input('请输入你要查询的学员姓名:')
        for i in self.student_list:  # 迭代查找查询学员姓名
            if name == i.name:  # 如果找到的话
                print(f'该学员姓名为{i.name},性别为{i.gender},手机号为{i.number}')
                break
        else:
            print('查无此人!')

显示全部学员函数

    def xuan_ze5(self):
        # 显示全部学员信息
        print('%-4s\t%s\t%s' % ('姓名', '性别', '手机号'))  # 格式化输出标头
        for i in self.student_list:
            print('%-4s\t%s\t%s' % (i.name, i.gender, i.number))  # 格式化

保存学员函数 

    def xuan_ze6(self):
        # 获取句柄
        f = open('student.txt', mode='w')
        new_list = []  # 保存的列表
        # 转换为字典进行保存,所以保存后数据未外层一个列表,如何内部为一个数据一个字典
        for i in self.student_list:
            new_list.append(i.__dict__)
        # 下面的为上面的推导式,效果一样
        # new_list =[i.__dict__ for i in self.student_list]

        # 写入文件中,保存时还需要将字典转换为字符串
        f.write(str(new_list))

        # 关闭文件
        f.close()

有需要完整代码的下面链接。 

https://download.csdn.net/download/HHYZBC/85055822icon-default.png?t=M276https://download.csdn.net/download/HHYZBC/85055822

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192838.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 前端的浅拷贝和深拷贝区别_解构赋值是深拷贝还是浅拷贝

    前端的浅拷贝和深拷贝区别_解构赋值是深拷贝还是浅拷贝一、浅拷贝和深拷贝的区别数据都是存储在内存当中,而我们调用数据的时候都是通过地址来调用数据。对于浅拷贝来说,比如一个数组,只要我们修改了一个拷贝数组,那么原数组也会改变!vara=[0,1,2,3,4];varb=a;console.log(b);//[0,1,2,3,4]console.log(a);//[0,1,…

    2022年9月30日
    0
  • php开发环境的配置过程_mac配置java环境

    php开发环境的配置过程_mac配置java环境VsCode系列:VSCode配置Python开发环境!今天博主跟大家聊一聊如何使用VsCode系列:VSCode配置Python开发环境!不喜勿喷,如有建议欢迎补充、讨论!关于安装和汉化可以观看博主的这篇文章《下载安装及汉化》以及Python系列:windows10配置Python3.0开发环境!,安装完毕重启VsCode!Comeon!首先请大家确定VsCode的安装以及Pyt…

    2022年10月26日
    0
  • voliate理解

    voliate理解voliatevoliate定义java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁更加方便。如果一个字段被声明成volatile,java线程内存模型确保所有线程看到这个变量的值是一致的。volatile可以保证线程可见性且提供了一定的有序性,但是无法保证原子性。在JVM…

    2022年6月5日
    108
  • python清理浏览器缓存_以编程方式清除边缘浏览器缓存

    python清理浏览器缓存_以编程方式清除边缘浏览器缓存我已经尝试这么做了好几天,并在堆栈溢出和许多其他网站没有运气。在基本上,我需要清除MicrosoftEdgeBrowser的缓存和Internet临时文件。我已经在我自己的电脑上找到了这个文件夹的位置,但是路径在每台电脑上都会动态变化。我不能每次都让程序清除相同的路径,因为路径会随每次安装而变化。在以下是缓存中的文件示例:C:\Users\patdj\AppData\Local\Package…

    2022年7月18日
    13
  • Android的系统服务一览

    System_Server进程运行在systemserver进程中的服务比较多,这是整个Android框架的基础Native服务SurfaceFlinger这是framebuffer合成的服务,将各

    2021年12月22日
    50
  • 数字电路实验(01)基本逻辑运算及其电路实现

    数字电路实验(01)基本逻辑运算及其电路实现题目实验要求一、实验目的1.认识逻辑值1、0和逻辑门的输入、输出信号电平之间的关系;2.从逻辑门的输入、输出电平的关系去认识逻辑与(与非)、或、非的运算;3.熟悉基本逻辑门的使用。二、实验

    2022年6月30日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号