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.面向对象学生管理系统相关推荐

  1. python2.面向对象.学生管理

    main.py(程序主入口) #1.导入管理系统模块 from mangerSystem import * #2.启动管理系统 #保证是当前文件运行才启动管理系统:if -- 创建对象并调用run() ...

  2. python学生管理系统用类写_python面向对象——学校学生教职工管理系统类的实例...

    这里做一个学校的人事管理系统中的类的实例化,其中含有的类:Person.Student.Stuff三个类.下面来具体分析类所要实现的功能. 首先可以定义使用Person类,找出学生和教职工之间的共同属 ...

  3. 面向对象案例:学生管理系统

    软件开发的大致流程 产品经理:将用户的需求,写成产品规格说明文档 程序员:需求分析–>架构设计(概要设计/详细设计)–>编码–>单元(类/函数)测试 测试员:自动化测试 上线/维护 ...

  4. 面向对象写一个简单的学生管理系统

    package com.xuesheng; //使用面向对象编写一个学生管理系统. //1.学生类属性有:姓名.性别.年龄.班级:学生可以自由选科: //3.在测试类中实例化学生对象,并打印每个学生选 ...

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

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

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

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

  7. Python学生管理系统——面向对象版本

    Python练习题----学生管理系统(面向对象版本) 一. 题目要求: 学生信息管理:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等.设计一个学生信息管理系统,使之提供以下功能: -- ...

  8. c++面向对象的学生管理系统

    这是我大一上学期做的一个项目,快做完的时候老师说要用c做,就放弃了,但这个程序基本已经做完了,要添加新的功能很容易,比如搜索学生等,需要做学生管理系统的可以借鉴一下. 需要c语言完整版的看我下一篇博客 ...

  9. python学生管理系统-学生管理系统python

    广告关闭 腾讯云+校园是针对学生用户推出的专项扶持计划,1核2G云服务器9元/月起,云数据库2元/月起,并享受按购买价续费的优惠,助力莘莘学子轻松上云 print(该学生不存在)return none ...

最新文章

  1. PAT(甲级)2018年冬季考试 7-4 Heap Paths(非递归与递归解法)
  2. java01背包问题算法_经典动态规划--01背包问题
  3. linux一键重装系统脚本,一键重装CentOS纯净版系统shell脚本
  4. ios 1 cocoa
  5. java core 之 异常处理详解
  6. Java join()原理分析
  7. 在SQL Server中导入数据库(.mdf格式)
  8. 在OpenWrt中使用SmartDNS加速DNS解析
  9. uniapp 权限判断 判断位置,摄像头,相册,通讯录是否开启,如果没有开启弹窗提示并且进入设置打开权限
  10. Windows下Mingw版本的FFMPEG源码编译
  11. 计算机发展史教学反思,计算机教学反思
  12. 工业机器人入门z50的含义_ABB工业机器人期中考试试题(中职)
  13. 微信小程序多级列表绑定
  14. 浅谈网络地址转换(NAT)技术与内网、外网
  15. 51单片机的读写端口c语言,CH375_CH376 U盘读写模块在51单片机上的应用(原理图+测试程序+资料)...
  16. 如何优雅的在windows(含win7)上执行linux脚本
  17. UE C++ 编辑器开发 1.创建一个简单的蓝图节点
  18. 用注册表修改Windows系统的MAC地址
  19. FPGA信号处理--多相滤波器(二)
  20. JAVA RedisTemplate实现(加锁/解锁) 解决高并发问题

热门文章

  1. 在Windows系统中配置Google AddressSanitizer
  2. 深度学习基础(二)激活函数
  3. java如何做全局缓存_传智播客JNI第七讲 – JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式...
  4. java的自增自减_Java中自增和自减操作符(++/--)的那些事
  5. python中布尔型的值_在python中对于bool布尔值的取反操作
  6. ad中电容用什么封装_用什么来降低噪声?只要几个电容器就可以,简单有效!...
  7. rocketmq 消息 自定义_RocketMQ消息轨迹-设计篇
  8. 操作系统实验文件管理_系统设计硬核知识(5)——操作系统的文件管理
  9. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波8 - 直方图处理 - 直方图均衡化(全局直方图均衡化)
  10. markdown 语法_Markdown 基本语法