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

news/2024/4/19 13:28:16/文章来源:https://blog.csdn.net/qq_55451220/article/details/136582561

学完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.luyixian.cn/news_show_999468.aspx

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

相关文章

02:HAL库---GPIO

一:GPIO 1:简历 2:模式 输入 : IO向32发送信号, 即外设发送信号 GPIO_Mode_AIN -----模拟输入 GPIO_Mode_IN_FLOATING -----浮空输入 GPIO_Mode_IPD -----下拉输入 GPIO_Mode_IPU ------上拉输入 GPIO_MODE_INPUT----输入模式 输出 : 32向IO发送信号, 即外设接收信号 …

【办公类-21-09】三级育婴师 视频转文字docx(等线小五单倍行距),批量改成“宋体小四、1.5倍行距、蓝色字体”

作品展示: 背景需求: 一、视频处理 1、育婴师培训的现场视频 2、下载视频,将视频换成考题名称 二、音频 视频用格式工厂转成MP3音频 3、转文字doc 把音频放入“网易云见外工作台”转换为“文字" 等待5分钟,音频文字会被写…

目标检测5:采用yolov8, RK3568上推理实时视频流

上一个效果图,海康球机对着电脑屏幕拍,清晰度不好。 RK3568接取RTSP视频流,通过解码,推理,编码,最终并把结果推出RTSP视频流。 RK3568 推理 数据集采用coco的80个种类集,通过从yovo8.pt&#x…

XSS-Labs靶场1---11关

一、XSS环境搭建: [ 靶场环境篇 ] XSS-labs 靶场环境搭建(特别详细)_xss靶场搭建-CSDN博客 (该博主总结的较为详细,若侵权必删) 常用的xss攻击语句: 输入检测确定标签没有过滤后,为了显示存在漏洞&#…

贪心算法(greedy algorithm,又称贪婪算法)详解(附例题)

目录 基本思想一)概念二)找出全局最优解的要求三)求解时应考虑的问题四)基本步骤五)贪心策略选择六)实际应用 1.零钱找回问题2.背包问题3.哈夫曼编码4.单源路径中的Djikstra算法5.最小生成树Prim算法 基本…

从 iPhone 15/15 Pro 恢复丢失数据的 3 种方法

毫无疑问, iPhone 15 是迄今为止最令人印象深刻的 iPhone 。另一方面,我们知道,设备上保存的数据无论多么可靠,在设备使用过程中都可能因各种原因而丢失。 由于这些设备的性质,您在使用 iPhone 15、iPhone 15 Pro 或 …

【Spring底层原理高级进阶】Spring Kafka:实时数据流处理,让业务风起云涌!️

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《Spring 狂野之旅:从入门到入魔》 🚀 本…

微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(三):Docker

文章目录 一、基本介绍二、环境配置三、Docker基本操作3.1 镜像操作3.2 容器操作3.2.1 演示命令run、ps、logs3.2.2 演示命令exec、rm、exit(退出)3.3 数据卷3.3.1 直接挂载3.3.2 宿主机挂载3.3.3 两种方式的对比 四、Dockerfile自定义镜像五、Docker-Co…

【开源】SpringBoot框架开发固始鹅块销售系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 鹅块类型模块2.3 固始鹅块模块2.4 鹅块订单模块2.5 评论管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 鹅块类型表3.2.2 鹅块表3.2.3 鹅块订单表3.2.4 鹅块评论表 四、系统展示五、核心代码5.…

上门服务小程序|上门服务系统成品功能包含哪些?

随着移动互联网的快速发展,上门服务小程序成为了一种创新的家政服务模式。它不仅为用户带来了极大的便利,还能在提高服务效率和质量方面发挥作用。通过上门服务小程序,用户可以轻松预约按摩或理疗服务,无需繁琐操作,只…

QT中使用QProcess执行命令,实时获取数据,例如进度条

前言 因为之前写了一个接收和发送文件的脚本&#xff0c;然后又需要获取进度&#xff0c;同步到进度条中。 效果&#xff1a; 使用正则匹配&#xff0c;获取命令行命令中的以下数据&#xff0c;然后同步到进度条 源码demo&#xff1a; 非完整代码&#xff1a; #include <Q…

2023最新群智能优化算法:巨型犰狳优化算法(Giant Armadillo Optimization,GAO)求解23个基准函数(提供MATLAB代码)

一、巨型犰狳优化算法 巨型犰狳优化算法&#xff08;Giant Armadillo Optimization&#xff0c;GAO&#xff09;由Omar Alsayyed等人于2023年提出&#xff0c;该算法模仿了巨型犰狳在野外的自然行为。GAO设计的基本灵感来自巨型犰狳向猎物位置移动和挖掘白蚁丘的狩猎策略。GAO…

MySQL安装使用(mac)

目录 一、下载MySQL 二、环境变量 三、启动 MySql 四、初始化密码设置 一、下载MySQL 打开 MySql 官方下载页面 我是macOS12&#xff0c;所以选择了8.0.30 下载完成之后&#xff0c;打开安装&#xff0c;一直下一步安装完成&#xff0c;在最后安装完成时&#xff0c;会弹出…

Spring Boot搭建入门

Spring Boot简介 Spring Boot是对Spring进行的高度封装&#xff0c;是对Spring应用开发的高度简化版&#xff0c;是Spring技术栈的综合整合&#xff0c;是J2EE的一站式解决方案。想要精通Spring Boot的前提是需要熟悉Spring整套技术栈原理与内容。 Spring Boot的优点&#xf…

粉嘟嘟的免费wordpress模板

粉色好看的wordpress免费模板&#xff0c;用免费wordpress模板也可以搭建网站。 https://www.wpniu.com/themes/11.html

typescript学习(更新中)

目录 开发环境搭建类型如何声明有哪些类型编译配置文件 开发环境搭建 npm i -g typescripttsc检查是否安装成功 类型如何声明 // 先声明再赋值 let a: number a 1// 直接赋值 let b 1function sum(a: number, b: number): number {return a b } console.log(sum(1, 2))有…

遥感领域的AI革命:ChatGPT与成像光谱的完美结合

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已逐渐渗透到各个领域&#xff0c;为传统行业带来了前所未有的变革。其中&#xff0c;遥感技术作为观测和解析地球的重要手段&#xff0c;正逐渐与AI技术相结合&#xff0c;为地球科学研究与应用提供了全新的…

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(二)

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验&#xff08;前导&#xff09; Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验&#xff08;一&#xff09; Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验&#xff08;三&#xff09; 五、实验目的 本次实验使用电脑上的…

锐科达SV-7043VP 网络有源吸顶喇叭 POE供电ip广播吸顶喇叭

锐科达SV-7043VP 网络有源吸顶喇叭 POE供电ip广播吸顶喇叭 该设备配备了10/100M以太网接口&#xff0c;内置了高品质扬声器&#xff0c;通过内置的功放和喇叭输出&#xff0c;可提供高达10W的音效功率。SV-7043VP作为SIP系统的播放终端&#xff0c;适用于各种需要广播播放的场…

【uniapp】uniapp小程序中实现拍照同时打开闪光灯的功能,拍照闪光灯实现

一、需求前提 特殊场景中&#xff0c;需要拍照的同时打开闪光灯&#xff0c;&#xff08;例如黑暗场景下的设备维护巡检功能&#xff09;。 起初我是用的uviewui中的u-upload组件自带的拍照功能&#xff0c;但是这个不支持拍照时打开闪光灯&#xff0c;也不支持从通知栏中打开…