**Python**综合案例

Python综合案例

一、系统需求分析

1、需求分析

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

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

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

2、角色分析

在面向对象编程思想中,必须找到要具体实现操作的实体。

通过系统实现添加学员操作

通过系统实现删除学员操作

最终可以得出一个结论:这个通讯管理系统,其主要的实体就是通讯录管理系统本身

注意事项

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

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

3、创建项目

image-20210319144506905

创建类文件 => studentManager.py

创建项目入口文件 => main.py

image-20210319145119665

二、系统的代码开发

1、学员信息存储代码分析

students = [{}, {}, {}]

学员姓名

学员年龄

学员电话

学员信息(姓名、年龄、电话),可以使用字典来表示。但是我们已经学习了面向对象,其学员信息可以完全用对象来进行实现。

学员(主体) => 属性(姓名、年龄、电话)

2、student.py类文件编写

需求:

学员信息包含:姓名、年龄、电话

添加__str__魔法方法,方便查看学员对象信息

# 定义一个Student类
class Student():# 定义魔术方法,用于初始化属性信息def __init__(self, name, age, mobile):self.name = nameself.age = ageself.mobile = mobile# 定义魔术方法,用于打印输出学员信息def __str__(self):return f'{self.name}, {self.age}, {self.mobile}'

3、编写studentManager.py代码

studentManager.py

class StudentManager(object):# 定义__init__魔术方法,用于初始化操作def __init__(self):# 定义一个列表,将来用于保存所有学员信息self.student_list = []

未来数据的存储格式如下:

self.student_list = [p1, p2, p3, p4, ...]

4、学员管理系统具体功能说明

需求:

存储数据的位置:文件(student.data)

  • 加载文件数据

  • 修改数据后保存到文件

存储数据的形式:列表存储学员对象

系统功能:

① 添加学员信息

② 删除学员信息

③ 修改学员信息

④ 查询学员信息

⑤ 显示所有学员信息

⑥ 保存学员信息

⑦ 退出系统

编写程序代码,用于实现以上的所有功能:

☆ 基础逻辑代码

class StudentManager(object):# 定义一个__init__魔术方法,用于初始化数据def __init__(self):# 初始化一个student_list属性,用于将来保存所有学员对象信息self.student_list = []# 定义load_student()方法def load_student(self):pass# 定义静态show_help()方法@staticmethoddef show_help():print('-' * 40)print(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/307139.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS高程点生成等高线

基本步骤:数据清洗→创建TIN→TIN转栅格→等值线→平滑线。 1.(重要)数据清理:删除高程点中的高程异常值数据。 2.创建TIN:系统工具→3D Analyst Tools→数据管理→TIN→创建TIN(可直接搜索工具TIN)。 单击…

【Linux】基本指令二

这篇博客是对于上篇博客的指令的延续 上篇博客我们说了删除目录或普通文件的命令rm,下面是一些对这个指令的补充,我们知道当root用户删除文件时,系统会问是否要删除,而对于普通用户则不会 那我们如果就想让系统问一下呢&#x…

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第五节 引用类型复制问题及用克隆接口ICloneable修复

深入浅出图解C#堆与栈 C# Heaping VS Stacking 第五节 引用类型复制问题及用克隆接口ICloneable修复 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节…

Oracle数据库查询表空间使用情况

SELECTa.a1 表空间名称,c.c2 类型,c.c3 区管理,b.b2 / 1024 / 1024 表空间大小M,(b.b2-a.a2)/ 1024 / 1024 已使用M,substr((b.b2-a.a2)/ b.b2*100, 1, 5) 利用率 FROM(SELECTtablespace_name a1,sum(nvl(bytes, 0)) a2FROMdba_free_spaceGROUP BYtablespace_name) a,(SELECTta…

GBASE南大通用数据库提供的高可用负载均衡功能

GBASE南大通用GBase 8a ODBC 提供的高可用负载均衡功能是指,GBase 8a ODBC 会将客户 端请求的数据库集群连接平均分摊到集群所有可用的节点上。 GBASE南大通用数据库负载均衡的使用方法 GBASE南大通用GBase 8a ODBC 提供两种方式来使用高可用负载均衡。一种是配置数…

模拟电路基础知识笔记,你想知道的都有,建议收藏!

大家总说模电知识总是学不会,IC修真院为大家整理了模拟电子基础知识,看看你掌握了多少,文末可以获取全部哦。 文末可领全部文档 1、PN结是晶体二极管的基本结构,也是一般半导体器件的核心。 2、 射极输出器没有电压放大能力&am…

【Leetcode 39】组合总和 —— 回溯法

39. 组合总和 给你一个无重复元素的整数数组candidates和一个目标整数target ,找出candidates中可以使数字和为目标数target的 所有不同组合,并以列表形式返回。你可以按**任意顺序 **返回这些组合。 candidates中的同一个数字可以 无限制重复被选取 。…

Ubuntu安装K8S(1.28版本,基于containrd)

原文网址:Ubuntu安装K8S(1.28版本,基于containrd)-CSDN博客 简介 本文介绍Ubuntu安装K8S的方法。 官网文档:这里 1.安装K8S 1.让apt支持SSL传输 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certi…

Django 文件上传(十二)

当 Django 处理文件上传时,文件数据最终会被放置在 request.FILES 。 查看文档:文件上传 | Django 文档 | Django Django工程如下: 创建本地存储目录 在static/应用目录下创建uploads目录用于存储接收上传的文件 在settings.py 配置静态目…

Shell 入门

视频 Shell概述 本次课程主要包含内容: Shell脚本入门Shell变量Shell内置命令Shell运算符与执行运算命令流程控制语句Shell函数Shell重定向Shell好用的工具, cut sed awk sort大厂常见企业面试题 Shell脚本入门 疑问 linux系统是如何操作计算机硬件CPU,内存,磁盘,显示器等…

项目零散记录

Ts托管 仅本项目禁用本地vscode内置的ts服务 提交代码前的检查 husky(哈士奇)工具(是一个git hooks工具) 1、安装 pnpm dlx husky-init && pnpm install安装的时候,出现如下报错 解决方案,需要先执行git init初始化…

前端图片适配不同屏幕方案

预备知识: 设备独立像素,以下图的iphone12 Pro为例,390*844表示的就是设备独立像素(DIP),也可以理解为CSS像素 物理像素(设备像素),就是屏幕的分辨率,显示屏就是由一个个物理像素…