转载自https://www.cnblogs.com/LynHome/archive/2020/04/06/12650318.html

详细解读请参考https://www.cnblogs.com/blknemo/p/13697185.html

系统需求

使用面向对象编程思想完成学员管理系统的开发,具体如下:

系统要求:学员数据存储在文件中

系统功能:添加学员、删除学员、修改学员信息、查询学员信息、显示所有学员信息、保存学员信息及退出系统等功能。

分析

⻆色分析

学员

管理系统

准备程序文件

为了方便维护代码,一般一个⻆色一个程序文件;

项目要有主程序入口,习惯为 main.py

创建项目目录,例如: StudentManager

程序文件如下:

程序入口文件:main.py

学员文件:student.py

管理系统文件:managerSystem.py

main.py:

from StudentMannager.manager import *

if __name__ == '__main__':

student_manager = Manager()

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'name = {self.name},gender = {self.gender},tel = {self.tel}'

manager.py:

from StudentMannager.student import *

class Manager(object):

def __init__(self):

self.stu_list = []

# 一. 程序入口函数

def run(self):

# 1. 加载文件里面的学员数据

self.load_student()

while True:

# 2. 显示功能菜单

self.show_menu()

# 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.modify_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

# 二. 系统功能函数

# 2.1 显示功能菜单 -- 打印序号的功能对应关系 -- 静态

@staticmethod

def show_menu():

print('请选择如下功能:')

print('1:添加学员')

print('2:删除学员')

print('3:修改学员信息')

print('4:查询学员信息')

print('5:显示所有学员信息')

print('6:保存学员信息')

print('7:退出系统')

# 2.2 添加学员

def add_student(self):

name = input("name = ")

gender = input("gender = ")

tel = input("tel = ")

stu = student(name,gender,tel)

self.stu_list.append(stu)

print('添加成功')

# 2.3 删除学员

def del_student(self):

del_name = input("del_name = ")

for i in self.stu_list:

if del_name == i.name:

self.stu_list.remove(i)

break

else:

print('查无此人!')

print('删除成功')

# 修改学员信息

def modify_student(self):

modify_name = input("modify_name = ")

for i in self.stu_list:

if modify_name == i.name:

i.gender = input(f'{i.name}\'s gender = ')

i.tel = input(f'{i.name}\'s tel = ')

print('修改成功')

break

else:

print('查无此人!')

# 查询学员信息

def search_student(self):

search_name = input("search_name = ")

for i in self.stu_list:

if search_name == i.name:

print(i)

break

else:

print('查无此人!')

# 显示所有学员信息

def show_student(self):

print('姓名\t年龄\t电话\t')

for i in self.stu_list:

print(f'{i.name}\t{i.gender}\t{i.tel}')

print('-'*20)

# 保存学员信息

def save_student(self):

try:

f = open('student.data','w')

new_list = [i.__dict__ for i in self.stu_list] # __dict__ 返回类内部所有的属性和方法对应的字典

print(new_list)

f.write(str(new_list))

f.close()

except Exception as result:

print(result)

# 加载学员信息

def load_student(self):

try:

f = open('student.data','r')

except:

f = open('student.data', 'w')

else:

data = f.read()

new_list = eval(data) # eval() 函数用来执行一个字符串表达式,并返回表达式的值。

self.stu_list = [student(i['name'],i['gender'],i['tel']) for i in new_list]

finally:

f.close()

python面相对象编程超市系统_python面向对象编程: 面向对象版学员管理系统相关推荐

  1. 还不会python面相对象?活该单身(面向对象基础+交互关系)

    文章目录 概述 名词解释 类的定义 类的实例化 类属性 两个对象的交互 依赖关系 关联关系 组合关系 类变量的用途 概述 活在当下的程序员应该都听过"面向对象编程"一词,之前太懒了 ...

  2. python面相对象编程指南_Python面向对象编程指南

    抽象是隐藏多余细节的艺术.在面向对象的概念中,抽象的直接表现形式通常为类.虽然Python是解释性语言,但是它是面向对象的,从设计之初就已经是一门面向对象的语言.Python基本上提供了面向对象编程语 ...

  3. python函数的作用降低编程复杂度_Python函数式编程

    lambda 本文将介绍Python中函数式编程的特性.在对函数式编程的概念有了了解后,本文会介绍iterators和generators等语言特性,还有itertools和functools等相关的 ...

  4. python课后题答案第一章_python核心编程课后习题解答第一章

    闲着没事,决定将<python核心编程>这本书的课后习题做一遍,以增加自己的编程能力. 1-1 将python安装到系统上 本人用的ubuntu系统,系统中自带了python,无需安装,本 ...

  5. python元编程 实际应用_Python元编程

    简单定义"元编程是一种编写计算机程序的技术,这些程序可以将自己看做数据,因此你可以在运行时对它进行内审.生成和/或修改",本博参考<>将对元编程内容进行详细描述,若有不 ...

  6. mysql数据库小系统_Mysql数据库基础小实例 学员管理系统菜单

    package test; import java.sql.*; import java.util.Scanner; public class testSql002_StudentTest { /** ...

  7. python 面对对象思维导图_Python面向对象思维导图

    P ython面向对象 面 向 对 象 入 门 33 课 程 简介 17 面 向 对 象 与 面 向 过 程 26 定 义 和 使 用 类 31 描 述 对 象 的 特 征 26 让 对 象 具 有 ...

  8. python html5 便利店收银系统_python面向过程编程小程序- 模拟超市收银系统

    6.16自我总结 功能介绍 程序功能介绍: 商品信息再读取修改买卖均已xlsx格式 且生成购物记录也按/用户名/购买时间.xlsx格式生成 账号密码输入错误三次按照时间进行冻结 用户信息已json格式 ...

  9. python综合实训项目教程_Python安全编程项目实训教程

    Python是一门非常强大的高级程序语言,其具有语法简洁.可读性高.开发效率高.可移植性.支持自行开发或第三方模块.可调用C和C++库.可与Java组建集成等优点,已被应用到Web开发.操作系统管理. ...

最新文章

  1. SpringMvc CharacterEncodingFilter 解析 encoding 参数并初始化参数
  2. Spring Boot Admin 集成诊断利器 Arthas 实践
  3. 本周 Github 精选:多款超赞 AI 开源项目,等你来 Star!
  4. Django从理论到实战(part32)--外键删除
  5. C#中5步完成word文档打印的方法
  6. 浅析C#中foreach引用变量
  7. android 属性动画实例,Android 属性动画Animator工具类代码案例
  8. 【鲲鹏来了】华为云鲲鹏弹性云服务器 KC1一文全掌握(2)
  9. Selenium自动化测试-文件上传
  10. 为什么要有handler机制
  11. 【图像融合】基于matlab curvelet变换图像融合(评价指标)【含Matlab源码 781期】
  12. 【读书笔记《Android游戏编程之从零开始》】1.Android 平台简介与环境搭建
  13. Linux(Ubuntu)触摸屏校准
  14. 【汉字】转【pīnyīn】
  15. win10磁贴中的图标变成白色的解决方法
  16. 微信实名认证怎么更改?更改微信实名认证只要3个小步骤
  17. 思岚科技陈士凯:场景化应用或成服务机器人行业突破口
  18. 美团大规模微服务通信框架及治理体系OCTO核心组件开源
  19. 工业计算机应用与plc论文,PLC在工业自动化控制的应用-工业工程论文-工业论文.docx...
  20. pycharm每次新建项目都会创建虚拟环境问题,导致很多库安装后无法导入

热门文章

  1. APP设计|搜索页面设计灵感
  2. 可爱的PNG免扣新年装饰素材,让你海报增加节日气氛
  3. 经典商务未来科技海报PSD分层模板,以后绝对用得上
  4. UI设计|搭配色彩素材专辑,轻松掌握要点
  5. html 为元素附空值,HTML空(void)元素有哪些?
  6. 华为云NP考试题库_阿里云ACP大数据及云计算经验感悟
  7. edxp显示未安装_智能水表安装使用注意事项
  8. C++设计模式详解之命令模式解析
  9. DPDK lcore学习笔记
  10. 什么是I/O地址,I/O端口和I/O端口地址?