使用python创建学员管理系统

article/2025/11/11 13:10:33

使用面向对象完成了学员管理系统,实现了添加、删除、修改、查询、保存读取等功能,将学员、学员管理后台、开始入口分为了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('你以成功退出!')breakelse: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)  # 删除breakelse:# 如果没有找到的话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}')breakelse: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}')breakelse: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


http://chatgpt.dhexx.cn/article/B2MNjUqr.shtml

相关文章

分享一款教育培训机构学员信息管理系统

平台入口:http://edu.abc168.online 学员是培训机构的运营主体,对培训机构来说,做好学员管理,往往能直接反映出机构的管理水平和教师的教学水平,是机构建立形象和口碑的关键。以往,培训学校普遍使用手工登记的方式来管…

【shell案例】学员管理系统

前言 学员管理系统涉及到学员的增删改查,这是一个综合性比较强的项目,在所有的编程语言里都会有不同版本的学员信息管理系统,难度适中 效果截图 学员管理系统源码 #!/bin/bash## 随机点名册while true doecho

学员管理系统

大家在学习编程语言的时候,有时候会遇到让编程一个简单的系统等的问题。比如我在学习python的时候,就让编程如下一样的一个学员管理信息的系统: 一个可以添加学员信息,删除学员信息,修改学员信息,查询学员信…

【Python实现】学员管理系统(详细解析)

目录 1、总体要求2、需求分析3、框架设计4、细节设计4.1 程序入口4.2 学员管理类4.2.1 初始化4.2.2 登录认证4.2.3 功能菜单4.2.4 文件操作4.2.5 新增学员4.2.6 删除学员4.2.7 修改学员4.2.8 查找学员4.2.9 显示全部学员4.2.10 学员数据统计4.2.11 清空系统数据 5、总结 1、总体…

[Java] 学员管理系统(服务器—客户端模式)

目录 学员管理系统(服务器—客户端模式)1. 项目演示a. 打开项目b. 运行项目 2. 项目说明a. 所采用的知识点b. 业务交互模式图示 3. 案例代码a. 客户端i. 创建实体类 Studentii. 创建主类 MainApp b. 服务器端i. 创建实体类 Studentii. 创建服务器端线程类…

java 中 Scanner 输入

因为涉及到 io 流输入问题,如果不关闭会一直占用资源。所以使用过后要及时关闭,防止资源一直被占用。 Scanner在使用前要导入 java.util.Scanner 包 1.整数 描述: 输入一个整数,输出这个整数。 输入描述: 输入一个整数&#xff0c…

Java之键盘输入语句Scanner

文章目录 键盘输入语句1. 介绍2. 步骤3. 案例演示 键盘输入语句 1. 介绍 在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。Input.java , 需要一个 扫描器(对象), 就是 Scanner 2. 步骤 导入该类的所在包, java.util.*创建该类对象&a…

Java的常用输入输出语句

一、概述 输入输出可以说是计算机的基本功能。作为一种语言体系,java中主要按照流(stream)的模式来实现。其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的数据流叫做输出流(outputStream)。 Java语言体系中,对数据流…

java中输入语句是怎么写的

java中用户输入语句的写法是: 1、【Scanner sc new Scanner(System.in); 】; 2、【String input sc.next();】。 (视频教程推荐:java视频) 具体代码如下:import java.util.Scanner; public class Number { /** * param a…

java基础之java输入输出语句

1、使用Scanner 使用时需要引入包importjava.util.Scanner;首先定义Scanner对象 Java基础学习:java输入输出语句 比如: Java基础学习:java输入输出语句 2、使用BufferedReader 用前需要引入importjava.io.Reader; Java基础学习&#xff1…

java 键盘输入语句怎么写

java 键盘输入语句写法 第一种: public class shuRu{ public static void main(string arg[]){ system.out.println(arg[1]); } } 第二种: import java.util.scanner; public class shuRu{ public static void main(string arg[]){ scanner i…

java语言输入语句是_java中的输入语句怎么写?

java中的输入语句怎么写? 发布时间:2020-05-20 15:19:52 来源:亿速云 阅读:206 作者:鸽子 java中用户输入语句的写法是: 1、【Scanner sc new Scanner(System.in); 】; 2、【String input sc.…

java 输入语句_java怎样输入语句

java输入语句的方法:1、输入单个字符【char c=(char)System.in.read()】;2、输入整数或者字符串【int a=cin.nextInt()】;3、可以用BufferedReader类输入。 java输入语句的方法: 如果你要进行输入,请一定加上两个包import java.util.*; import java.io.*; 请看下面例子用于…

java输入语句怎么写

壹哥在前面给大家讲过,Java中给咱们提供了有三个标准的“流”,他们被统称为standard streams。除了负责输出的流之外,还有一个负责输入的标准流,Java中对应的API是System.in。 与标准输出相比,标准输入则复杂的多。尤…

java输入语句_java输入语句是什么

Java的语句有很多,其中输入语句是最基本的操作之一。下面我将带大家一起了解一下要如何进行输入代码的编写。 首先当你进行输入操作前要将下面两个包给加入Java程序的包行列中。 先将java.io.*;以及java.util.*;导入Java代码中。import java.util.*; import java.io…

java输入语句

java输入语句 import java.util.Scanner;//导入 java.util 包下的 Scanner 类,用来构建Scanner对象 public class TestScanner{public static void main(String[] args){Scanner scanner new Scanner(System.in);//建立Scanner对象,通过System.in来读取键盘输入数…

java的四种输入方法,你会几种?

java的输入方法最常见的就是Scanner的方法,我经过查阅一些资料发现了输入方法原来还有那么多种,可以玩出不少花样,下面是我总结出的四种输入方式,有需要的可以拿去 1.Scanner相关的功能 Scanner的输入方法是最常见的一种&#x…

zzlatex制作复杂表格(跨行、跨列)

用Latex制作复杂表格, 需要用到\multirow宏包, 用\multicolumn, \multirow, \hline, \cline 四种命令来控制跨列,跨行, 横线, 竖线位置。 原帖请见: http://jhengjyun.blogspot.jp/2011/01/latexmulticolu…

HTML--table--跨行跨列

效果图 代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>跨行跨列</title><style type"text/css">table{border: 1px solid;width: 500px;}table td,th{border: 0.0625rem solid;text-align: c…

HTML表格标签跨行与跨列

关于行和列我们换个称呼&#xff1a;横与竖来形容&#xff0c;而<tr></tr>就是横&#xff0c;<th></th>和<td></td>代表的就是竖。rowspan的属性放置td标签中就是与下一横中td合并&#xff08;上下合并&#xff09;&#xff0c;此时要删除…