python2.面向对象学生管理系统
main.py(程序主入口)
#1.导入管理系统模块
from mangerSystem import *
#2.启动管理系统
#保证是当前文件运行才启动管理系统:if -- 创建对象并调用run()方法
if __name__=="__main__":
student_manager=StudentManager()
student_manager.run()
student.Py
class Student(object):
def __init__(self,name,gender,tel):
#姓名,性别,手机号
self.name=name
self.gender=gender
self.tel=tel
def __str__(self):
return f'{self.name},{self.gender},{self.tel}'
# aa=Student("aa","女",111)
# print(aa)
mangerSystem
from student import *
class StudentManager(object):
def __init__(self):
#存储学员数据 -- 列表
self.student__list=[]
#一.程序入口函数
def run(self):
#1.加载文件里的学员数据
# self.load_student()
while True:
#2.显示功能菜单
self.showmenu()
#3.用户输入目标功能序号
menu_num=int(input("请输入你需要的功能序号:"))
#4.根据用户输入的序号执行不同的功能 -- 如果用户输入1,执行添加
if menu_num==1:
#添加学员
self.add_student()
elif menu_num==2:
#删除学员
self.del_student()
elif menu_num==3:
#修改学员信息
self.modif_student()
elif menu_num==4:
#查询学员信息
self.search_student()
elif menu_num==5:
#显示所有学员信息
self.show_student()
elif menu_num==6:
#保存学员信息
self.save_student()
elif menu_num==7:
#退出系统--退出循环
# break
self.load_student()
elif menu_num == 8:
# 退出系统--退出循环
# break
# 程序想要结束,退出终止while True -- break
exit_flag = input("确定要退出吗?yes or no")
if exit_flag == 'yes':
print("退出系统")
break
else:
print("输入的功能序号有误!")
#二.系统功能函数
#2.1显示功能菜单 -- 打印序号功能对应关系--静态
@staticmethod
def showmenu():
print("请选择如下功能:")
print("1:添加学员")
print("2:删除学员")
print("3:修改学员信息")
print("4:查询学员信息")
print("5:显示所有学员信息")
print("6:保存学员信息")
print("7:加载学员信息")
print("8:退出系统")
# 2.2添加学员
def add_student(self):
# print("添加学员")
#1.用户输入姓名,性别,手机号
name=input("请输入你的姓名:")
gender=input("请输入你的性别:")
tel=input("请输入你的手机号:")
#2.创建学员对象--类,类在student文件里面 先导入student模块,在创建对象
student=Student(name,gender,tel)
#3.将该对象添加到学员列表
self.student__list.append(student)
# print(123)
# print(self.student__list)
print(student)
# 2.3删除学员
def del_student(self):
# print("删除学员")
#1.用户输入目标学员姓名
del_name=input("请输入要删除的学员姓名:")
#2.遍历学员列表,如果用户输入的学员存在,则删除学员对象。否则提示学员不存在
for i in self.student__list:
if del_name==i.name:
#删除学员对象
# self.student__list.remove(i)
break
else:
#循环正常结束执行代码:循环结束都没有删除任何一个对象,所以说明用户输入的目标学员不存在。
print("查无此人!")
print(self.student__list)
# 2.4修改学员信息
def modif_student(self):
#print("修改学员信息")
# 1.用户输入目标学员姓名
modify_name=input("请输入要修改的学员姓名:")
#2遍历列表数据,如果学员存在,修改姓名,性别,手机号。否则提示学员不存在
for i in self.student__list:
if modify_name==i.name:
i.name=input("姓名:")
i.gender=input("性别:")
i.tel=input("手机号:")
print(f"修改学员信息成功,姓名:{i.name},性别:{i.gender},手机号:{i.tel}")
break
else:
print("查无此人!")
# 2.5查询学员信息
def search_student(self):
# print("查询学员信息")
#1.用户输入目标学员姓名
search_name=input("请输入你要搜索的学员姓名:")
#2.遍历列表。如果学员存在打印学员信息,否则提示学员不存在
for i in self.student__list:
if search_name==i.name:
print(f"姓名是:{i.name},性别是:{i.gender},手机号是:{i.tel}")
break
else:
print("查无此人!")
# 2.6显示所有学员信息
def show_student(self):
# print("显示所有学员信息")
#1.打印表头
print("姓名\t性别\t手机号")
#2.打印学员数据
for i in self.student__list:
print(f"{i.name}\t{i.gender}\t{i.tel}")
# 2.7保存学员信息
def save_student(self):
# print("保存学员信息")
#1.打印文件
f=open("student.data","a")
#2.文件写入数据
#2.1[学员对象]转换成[字典]
new_list=[i.__dict__ for i in self.student__list]
#2.2文件写入 字符串数据
f.write(str(new_list))
#3.关闭文件
f.close()
# 2.8加载学员信息
def load_student(self):
# print("加载学员信息")
with open("student.data","r") as file:
showAll=file.read()
print(showAll,"\n")
python2.面向对象学生管理系统相关推荐
- python2.面向对象.学生管理
main.py(程序主入口) #1.导入管理系统模块 from mangerSystem import * #2.启动管理系统 #保证是当前文件运行才启动管理系统:if -- 创建对象并调用run() ...
- python学生管理系统用类写_python面向对象——学校学生教职工管理系统类的实例...
这里做一个学校的人事管理系统中的类的实例化,其中含有的类:Person.Student.Stuff三个类.下面来具体分析类所要实现的功能. 首先可以定义使用Person类,找出学生和教职工之间的共同属 ...
- 面向对象案例:学生管理系统
软件开发的大致流程 产品经理:将用户的需求,写成产品规格说明文档 程序员:需求分析–>架构设计(概要设计/详细设计)–>编码–>单元(类/函数)测试 测试员:自动化测试 上线/维护 ...
- 面向对象写一个简单的学生管理系统
package com.xuesheng; //使用面向对象编写一个学生管理系统. //1.学生类属性有:姓名.性别.年龄.班级:学生可以自由选科: //3.在测试类中实例化学生对象,并打印每个学生选 ...
- Python 实现学生管理系统(面向对象版)
目标 1.了解面向对象开发过程中类内部功能的分析方法 2.了解常用系统的功能:添加.删除.修改.查询 一.项目需求 使用面向对象编程思想完成学员管理系统的开发,具体如下: 1.系统要求:学员数据存储在 ...
- python制作学生管理系统_Python——面向对象,简易学生信息管理系统
一.概述 1.1涉及到的知识点 项目开发:创建项目,创建包,导入包: 面向对象:静态方法,继承,内置函数,自定义函数: 数据类型:列表,字典,字符串.列表.字典的转换和自动生成导向: 异常处理:捕获异 ...
- Python学生管理系统——面向对象版本
Python练习题----学生管理系统(面向对象版本) 一. 题目要求: 学生信息管理:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等.设计一个学生信息管理系统,使之提供以下功能: -- ...
- c++面向对象的学生管理系统
这是我大一上学期做的一个项目,快做完的时候老师说要用c做,就放弃了,但这个程序基本已经做完了,要添加新的功能很容易,比如搜索学生等,需要做学生管理系统的可以借鉴一下. 需要c语言完整版的看我下一篇博客 ...
- python学生管理系统-学生管理系统python
广告关闭 腾讯云+校园是针对学生用户推出的专项扶持计划,1核2G云服务器9元/月起,云数据库2元/月起,并享受按购买价续费的优惠,助力莘莘学子轻松上云 print(该学生不存在)return none ...
最新文章
- PAT(甲级)2018年冬季考试 7-4 Heap Paths(非递归与递归解法)
- java01背包问题算法_经典动态规划--01背包问题
- linux一键重装系统脚本,一键重装CentOS纯净版系统shell脚本
- ios 1 cocoa
- java core 之 异常处理详解
- Java join()原理分析
- 在SQL Server中导入数据库(.mdf格式)
- 在OpenWrt中使用SmartDNS加速DNS解析
- uniapp 权限判断 判断位置,摄像头,相册,通讯录是否开启,如果没有开启弹窗提示并且进入设置打开权限
- Windows下Mingw版本的FFMPEG源码编译
- 计算机发展史教学反思,计算机教学反思
- 工业机器人入门z50的含义_ABB工业机器人期中考试试题(中职)
- 微信小程序多级列表绑定
- 浅谈网络地址转换(NAT)技术与内网、外网
- 51单片机的读写端口c语言,CH375_CH376 U盘读写模块在51单片机上的应用(原理图+测试程序+资料)...
- 如何优雅的在windows(含win7)上执行linux脚本
- UE C++ 编辑器开发 1.创建一个简单的蓝图节点
- 用注册表修改Windows系统的MAC地址
- FPGA信号处理--多相滤波器(二)
- JAVA RedisTemplate实现(加锁/解锁) 解决高并发问题
热门文章
- 在Windows系统中配置Google AddressSanitizer
- 深度学习基础(二)激活函数
- java如何做全局缓存_传智播客JNI第七讲 – JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式...
- java的自增自减_Java中自增和自减操作符(++/--)的那些事
- python中布尔型的值_在python中对于bool布尔值的取反操作
- ad中电容用什么封装_用什么来降低噪声?只要几个电容器就可以,简单有效!...
- rocketmq 消息 自定义_RocketMQ消息轨迹-设计篇
- 操作系统实验文件管理_系统设计硬核知识(5)——操作系统的文件管理
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波8 - 直方图处理 - 直方图均衡化(全局直方图均衡化)
- markdown 语法_Markdown 基本语法