使用Python编写简单学生管理系统

学完python基础,把学过的知识运用起来做一个简单的学生管理系统

1、需求分析

需求:进入系统显示系统功能界面,功能如下:

① 添加学员信息

② 删除学员信息

③ 修改学员信息

④ 查询学员信息(只查询某个学员)

⑤ 遍历所有学员信息

⑥ 退出系统

系统共6个功能,用户根据自己需求选取

2、功能实现步骤

① 显示功能界面

② 用户输入功能序号

③ 根据用户输入的功能序号,执行不同的功能(函数)

☆ 定义函数

☆ 调用函数

3、模块化的编程思想(面向过程)

模块化的编程思想是最早期的编程思想,其强调==把一个系统分解为若干个功能(步骤)==,每个功能就是一个模块(函数)。当所有功能开发完毕后,功能整合,则系统就完成了。

4、使用Python开发通讯录管理系统

① 显示功能界面

② 提示用户输入要操作的功能编号

③ 根据用户输入的序号执行相关功能 => if...elif...else

④ 如何让程序一直执行下去,而不是选择某个功能后,程序就退出了 => while True

⑤ 根据用户输入的序号,完成系统中的每一个功能

⑥ 扩展功能:把学生信息保存在文件中

直接上耗时两个半小时的源代码
# 定义一个大列表来保存学生信息
students = []# 功能菜单函数
def menu():print('-' * 40)print('    学生管理系统  v1.0')print('1.添加学生信息')print('2.删除学生信息')print('3.修改学生信息')print('4.查询学生信息')print('5.遍历所有学生信息')print('6.保存信息到文件')print('7.退出系统')print('-' * 40)# 添加学生功能函数
def add_student():student = {}# 用字典保存每个学生的信息,然后将它写入students列表student['name'] = input('请输入学生姓名:')student['age'] = int(input('请输入学生年龄:'))student['mobile'] = input('请输入学生电话号码:')students.append(student)print(students)# 删除学生信息功能函数
def del_student():name = input('请输入要删除学生的姓名:')for i in students:if i['name'] == name:students.remove(i)print('删除成功')print(students)breakelse:print('该学生不存在')# 修改学生信息功能函数
def edit_student():name = input('请输入要修改学生的姓名:')for i in students:if i['name'] == name:i['name'] = input('请输入修改后学生的姓名:')i['age'] = int(input('请输入修改后学生的年龄:'))i['mobile'] = int(input('请输入修改后学生的电话:'))print('您要修改的学生信息修改成功')breakelse:print('您要修改的学生信息未找到')# 查询学生的信息功能函数
def find_studet():name = input('请输入要查询学生的姓名:')for i in students:if i['name'] == name:print(i)breakelse:print('很抱歉,没有该学生的信息')# 遍历所有学生的信息的功能函数
def find_all_student():for i in students:print(i)# 保存students数据到data.txt文件功能的函数
def save_data_to_file():global studentsf = open('data.txt', 'w', encoding='utf-8')f.write(str(students))f.close()print('信息保存成功')# 定义函数load_data(),把文件数据加载到程序
def load_data():f = open('data.txt', 'r', encoding='utf-8')content = f.read()  # str类型的字符串# 判断人间是否为空if not content:return  # 终止此循环,不需要在继续加载了else:# 如果代码继续向下执行代表不为空,则进行类型转换global students  # 声明我们接下来使用的变量是全局变量students = eval(content)f.close()# 加载数据文件类容到列表students中
load_data()
while True:menu()num = int(input('请输入编号进行操作:'))if num == 1:  #添加学生信息add_student()elif num == 2:  #删除学生信息find_all_student()del_student()elif num == 3:  #修改学生信息find_all_student()edit_student()elif num == 4:  #查询学生信息find_studet()elif num == 5:  #遍历学生信息find_all_student()elif num == 6:  #保存学生信息save_data_to_file()elif num == 7:  #退出系统print('欢迎下次使用')print('退出系统成功')breakelse:print('输入不合法,请重新输入')
运行结果

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

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

相关文章

【蓝桥杯】蓝桥杯算法复习(一)

😀大家好,我是白晨,一个不是很能熬夜😫,但是也想日更的人✈。如果喜欢这篇文章,点个赞👍,关注一下👀白晨吧!你的支持就是我最大的动力!&#x1f4…

50道SQL面试题

50道SQL面试题 有需要互关的小伙伴,关注一下,有关必回关,争取今年认证早日拿到博客专家 环境 -- ---------------------------- -- Table structure for teacher -- ---------------------------- DROP TABLE IF EXISTS teacher; CREATE TABLE teacher (t_id varchar(20) …

Vue源码系列讲解——过滤器篇【三】(解析过滤器)

目录 1. 前言 2. 在何处解析过滤器 3. parseFilters函数分析 4. 小结 1. 前言 在上篇文章中我们说了,无论用户是以什么方式使用过滤器,终归是将解析器写在模板中,既然是在模板中,那它肯定就会被解析编译,通过解析用…

【自动化】PyoutuGUI操作键鼠

自动化之PyoutuGUI操作键鼠 文章目录 自动化之PyoutuGUI操作键鼠  👉引言💎一、初始化环境二、键盘鼠标事件三、消息框功能四、案例实战自动登录WPS 五、问题解决 👉引言💎 学习的最大理由是想摆脱平庸,早一天就多一…

EF类和E/F类功率放大器(能量转换器)的波形推导和理想仿真--基于Matlab和ADS

EF类和E/F类功率放大器(能量转换器)的波形推导和理想仿真–基于Matlab和ADS 参考论文:Modeling and Analysis of Class EF and Class E/F Inverters With Series-Tuned Resonant Networks(2016) 这篇文章的思路和MTT的文章A Generalized Hi…

存储引擎的简介

简介: 1.在mysql存储引擎可以说就是指表的类型,可以称为表处理器,以表的形式存储。 2.他的功能就是接收上层传下来的指令,然后对表中的数据进行提取写入操作。 目的: 为了管理方便,我们把连接管理&#xf…

通过aop实现通用日志

操作日志的使用场景系统日志和操作日志的区别 系统日志:系统日志主要是为开发排查问题提供依据,一般打印在日志文件中;系统日志的可读性要求没那么高,日志中会包含代码的信息,比如在某个类的某一行打印了一个日志。 操作日志:主要是对某个对象进行新增操作或者修改操作…

mysql笔记:4. 数据类型

文章目录 整数类型浮点数类型和定点数类型日期类型和时间类型1. YEAR四位两位 2. DATE3. TIME冒号差异 4. DATETIME5. TIMESTAMP 字符串类型CHAR和VARCHAR类型TEXT类型 二进制类型BITBINARY和VARBINARYBLOB 复合数据类型ENUM类型SET类型 数据库中的表由多列字段构成&#xff0c…

如何在一个pycharm项目中创建jupyter notebook文件,并切换到conda环境中

1、第一步可以直接在pycharm项目中创建jupyter notebook文件 2、假若想要切换成pytorch环境做实验例子,会发现报这个错误 Jupyter server process exited with code 1 C:\Users\12430\.conda\envs\pytorch3.11\python.exe: No module named jupyter在这里&#xff…

Canvas笔记05:绘制文本,可视化图表中最常用

hello,我是贝格前端工场,最近在学习canvas,分享一些canvas的一些知识点笔记,本期分享canvas绘制文本的知识,欢迎老铁们一同学习,欢迎关注,如有前端项目可以私信贝格。 Canvas绘制文本是指使用H…

【粉丝福利第四期】:《低代码平台开发实践:基于React》(文末送书)

文章目录 前言一、React与低代码平台的结合优势二、基于React的低代码平台开发挑战三、基于React的低代码平台开发实践四、未来展望《低代码平台开发实践:基于React》五、粉丝福利 前言 随着数字化转型的深入,企业对应用开发的效率和灵活性要求越来越高…

PyTorch之完整的神经网络模型训练

简单的示例: 在PyTorch中,可以使用nn.Module类来定义神经网络模型。以下是一个示例的神经网络模型定义的代码: import torch import torch.nn as nnclass MyModel(nn.Module):def __init__(self):super(MyModel, self).__init__()# 定义神经…

运维打工人,兼职跑外卖的第二个周末

北京,晴,西南风1级。 前序 今天天气还行,赶紧起来,把衣服都洗洗,准备准备,去田老师吃饭早饭了。 一个甜饼、一个茶叶蛋、3元自助粥花费7.5。5个5挺吉利的。 跑外卖的意义 两个字减肥,记录刚入…

基于最小二乘递推算法的系统参数辨识matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于最小二乘递推算法的系统参数辨识。对系统的参数a1,b1,a2,b2分别进行估计,计算估计误差以及估计收敛曲线&#…

如何在Windows中对硬盘进行分区?这里有详细步骤

本文介绍如何在Windows11、10、8、7、Vista和XP中对硬盘进行分区 如果这个过程听起来比你想象的要复杂一点,不要担心,因为事实并非如此。在Windows中对硬盘进行分区一点也不难,通常只需要几分钟。以下是操作方法。 注意:这些说明适用于Windows 11、Windows 10、Windows 8…

蓝桥杯(3.9)

1210. 连号区间数 蓝桥杯暴力过80% import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int[] res new int[n];int[] copy new int[n];for(int i0;i&…

腾讯云轻量应用服务器流量用完了怎么办?

腾讯云轻量服务器流量用完了怎么办?超额流量另外支付流量费,流量价格为0.8元/GB,会自动扣你的腾讯云余额,如果你的腾讯云账号余额不足,那么你的轻量应用服务器会面临停机,停机后外网无法访问,继…

关于mapper.xml的映射问题

org.apache.ibatis.binding.BindingException Invalidbound statement (not found)的解决方案和造成原因分析(超详细)_org.apache.ibatis.binding.bindingexception: invali-CSDN博客

js【详解】Promise

为什么需要使用 Promise ? 传统回调函数的代码层层嵌套,形成回调地狱,难以阅读和维护,为了解决回调地狱的问题,诞生了 Promise 什么是 Promise ? Promise 是一种异步编程的解决方案,本身是一个构…

自然语言处理之语言模型(LM)介绍

自然语言处理(Natural Language Processing,NLP)是人工智能(Artificial Intelligence,AI)的一个重要分支,它旨在使计算机能够理解、解释和生成人类语言。在自然语言处理中,语言模型&…