用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 = nameself.gender = genderself.tel = telself.age = agedef __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: # 退出系统breakelif 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) # 删除学生信息breakelse: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}') # 打印学生信息,验证是否更改成功breakelse: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}') # 打印学员信息breakelse: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) # 打印学生列表,验证删除功能
用Python制作学生管理系统相关推荐
- python制作学生管理系统_Python——面向对象,简易学生信息管理系统
一.概述 1.1涉及到的知识点 项目开发:创建项目,创建包,导入包: 面向对象:静态方法,继承,内置函数,自定义函数: 数据类型:列表,字典,字符串.列表.字典的转换和自动生成导向: 异常处理:捕获异 ...
- python学生管理系统-python实现学生管理系统
python写的简单的学生管理系统,练习python语法. 可以运行在windows和linux下,python 2.7. #!/usr/local/bin/python # -*- coding:u ...
- Python实现学生管理系统(功能全面)
标题Python实现学生管理系统 功能描述 1.分为两个界面:(1)登录和注册界面 (2)学生管理系统界面 2.登录功能和之前发布的图书管理系统相同,登录成功后可进入学生管理系统界面,这里不再叙述 3 ...
- 用python设计学生管理系统_python+tkinter实现学生管理系统
本文实例为大家分享了python+tkinter实现学生管理系统的具体代码,供大家参考,具体内容如下 from tkinter import * from tkinter.messagebox imp ...
- 基于python高校学生管理系统
随着高等院校学生数量的不断增长,管理学生信息的工作量越来越大.为了提高学生事务处理的高效快捷,达到提高高校教务办公自动化的目的和提高工作效率,适应二十一世纪教育现代化改革的要求,从而实现全面振兴教育的 ...
- Python 实现学生管理系统(面向对象版)
目标 1.了解面向对象开发过程中类内部功能的分析方法 2.了解常用系统的功能:添加.删除.修改.查询 一.项目需求 使用面向对象编程思想完成学员管理系统的开发,具体如下: 1.系统要求:学员数据存储在 ...
- 【python】学生管理系统GUI可视化界面版本
关于学生管理系统GUI版本的实现 参考文献: (14条消息) 使用Python中的tkinter模块实现GUI界面的学生信息管理系统_基于tkinter的学生信息管理系统_Marshal_A的博客-C ...
- python写学生系统-用python编写学生管理系统
#该程序在设计返回值时用了flag(标志)和i(标识下标): #之前在travers()函数的编写中for循环中缺少一个return导致在传递参数时会有错误: # 主要体现在修改和删除首个元素时!值得 ...
- python学号怎么编写_用python编写学生管理系统
#该程序在设计返回值时用了flag(标志)和i(标识下标): #之前在travers()函数的编写中for循环中缺少一个return导致在传递参数时会有错误: # 主要体现在修改和删除首个元素时!值得 ...
最新文章
- C/C++:sizeof('a')的值为什么不一样?
- 常用贴片三极管参数于常见三极管型号对照表
- Linux mount: Structure needs cleaning 错误解决方法
- 架构之美—软件架构6大步骤(开篇)
- python笔试题 github_简单的python面试题,居然
- 剑指offer:3-7记录
- python矩阵运算dot_numpy中的dot矩阵乘法
- 关于“携号转网” 还有许多你不知道的事
- Spring源码解析(五)——自定义标签解析
- 网站前端性能优化终极指南
- 项目日报模板_知名房企的精细化施工管理,从项目日常到施工图,全方位涵盖...
- 实验高中计算机,仿真物理实验室高中完整版
- lsass.exe和smss.exe病毒专杀工具——即磁碟机病毒专杀工具(转载)
- 马未都说收藏:陶瓷篇(8、9)元青花、永宣青花
- wifi服务器延迟高,网络延时高(网络延迟高怎么办(家里WIFI延迟高,教你几招搞定网络延迟))...
- 工作日志1——项目前景、项目范围、涉众分析、硬数据采集
- 网页定位(position属性、相对定位、绝对定位、固定定位、z-index、设置透明度)
- centos7虚拟机忘记密码
- 一文看尽深度学习中的生成对抗(GAN)网络
- 如何去除Android5.1状态栏音量下部分
热门文章
- 2015年中国互联网发生了什么?这份榜单透露真相
- python 获取qq群成员信息_教你用python爬取自己加入的QQ群成员名单,它们竟然是这样的人...
- Arduino+nRF24L01发射端(二)
- lindo与lingo软件有什么区别?
- Zynq-Linux移植学习笔记之32-SPI FLASH文件系统挂载
- 并行模式与算法(一)
- 【xtku】女星黄美姬win7主题_8.6
- linux 显卡检测工具,显卡欺骗器状态检测及安装注意事项
- 【正点原子FPGA连载】第十五章 IP核之FIFO实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
- 信息安全学习笔记(四)------网络后门与网络隐身