一、系统需求

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制作学生管理系统相关推荐

  1. python制作学生管理系统_Python——面向对象,简易学生信息管理系统

    一.概述 1.1涉及到的知识点 项目开发:创建项目,创建包,导入包: 面向对象:静态方法,继承,内置函数,自定义函数: 数据类型:列表,字典,字符串.列表.字典的转换和自动生成导向: 异常处理:捕获异 ...

  2. python学生管理系统-python实现学生管理系统

    python写的简单的学生管理系统,练习python语法. 可以运行在windows和linux下,python 2.7. #!/usr/local/bin/python # -*- coding:u ...

  3. Python实现学生管理系统(功能全面)

    标题Python实现学生管理系统 功能描述 1.分为两个界面:(1)登录和注册界面 (2)学生管理系统界面 2.登录功能和之前发布的图书管理系统相同,登录成功后可进入学生管理系统界面,这里不再叙述 3 ...

  4. 用python设计学生管理系统_python+tkinter实现学生管理系统

    本文实例为大家分享了python+tkinter实现学生管理系统的具体代码,供大家参考,具体内容如下 from tkinter import * from tkinter.messagebox imp ...

  5. 基于python高校学生管理系统

    随着高等院校学生数量的不断增长,管理学生信息的工作量越来越大.为了提高学生事务处理的高效快捷,达到提高高校教务办公自动化的目的和提高工作效率,适应二十一世纪教育现代化改革的要求,从而实现全面振兴教育的 ...

  6. Python 实现学生管理系统(面向对象版)

    目标 1.了解面向对象开发过程中类内部功能的分析方法 2.了解常用系统的功能:添加.删除.修改.查询 一.项目需求 使用面向对象编程思想完成学员管理系统的开发,具体如下: 1.系统要求:学员数据存储在 ...

  7. 【python】学生管理系统GUI可视化界面版本

    关于学生管理系统GUI版本的实现 参考文献: (14条消息) 使用Python中的tkinter模块实现GUI界面的学生信息管理系统_基于tkinter的学生信息管理系统_Marshal_A的博客-C ...

  8. python写学生系统-用python编写学生管理系统

    #该程序在设计返回值时用了flag(标志)和i(标识下标): #之前在travers()函数的编写中for循环中缺少一个return导致在传递参数时会有错误: # 主要体现在修改和删除首个元素时!值得 ...

  9. python学号怎么编写_用python编写学生管理系统

    #该程序在设计返回值时用了flag(标志)和i(标识下标): #之前在travers()函数的编写中for循环中缺少一个return导致在传递参数时会有错误: # 主要体现在修改和删除首个元素时!值得 ...

最新文章

  1. C/C++:sizeof('a')的值为什么不一样?
  2. 常用贴片三极管参数于常见三极管型号对照表
  3. Linux mount: Structure needs cleaning 错误解决方法
  4. 架构之美—软件架构6大步骤(开篇)
  5. python笔试题 github_简单的python面试题,居然
  6. 剑指offer:3-7记录
  7. python矩阵运算dot_numpy中的dot矩阵乘法
  8. 关于“携号转网” 还有许多你不知道的事
  9. Spring源码解析(五)——自定义标签解析
  10. 网站前端性能优化终极指南
  11. 项目日报模板_知名房企的精细化施工管理,从项目日常到施工图,全方位涵盖...
  12. 实验高中计算机,仿真物理实验室高中完整版
  13. lsass.exe和smss.exe病毒专杀工具——即磁碟机病毒专杀工具(转载)
  14. 马未都说收藏:陶瓷篇(8、9)元青花、永宣青花
  15. wifi服务器延迟高,网络延时高(网络延迟高怎么办(家里WIFI延迟高,教你几招搞定网络延迟))...
  16. 工作日志1——项目前景、项目范围、涉众分析、硬数据采集
  17. 网页定位(position属性、相对定位、绝对定位、固定定位、z-index、设置透明度)
  18. centos7虚拟机忘记密码
  19. 一文看尽深度学习中的生成对抗(GAN)网络
  20. 如何去除Android5.1状态栏音量下部分

热门文章

  1. 2015年中国互联网发生了什么?这份榜单透露真相
  2. python 获取qq群成员信息_教你用python爬取自己加入的QQ群成员名单,它们竟然是这样的人...
  3. Arduino+nRF24L01发射端(二)
  4. lindo与lingo软件有什么区别?
  5. Zynq-Linux移植学习笔记之32-SPI FLASH文件系统挂载
  6. 并行模式与算法(一)
  7. 【xtku】女星黄美姬win7主题_8.6
  8. linux 显卡检测工具,显卡欺骗器状态检测及安装注意事项
  9. 【正点原子FPGA连载】第十五章 IP核之FIFO实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
  10. 信息安全学习笔记(四)------网络后门与网络隐身