Python之学生信息管理系统

目录

一、基础界面实现

 1、主函数

2、保持循环,获取用户需求

 二、函数实现模块功能

1、添加学生信息

2、删除学生信息

 3、修改学生信息

4、查找全部学生信息

5、退出系统

三、整合代码

1、 完整代码

2、完整实现过程


实现

打印功能菜单、添加学生信息、删除学生信息、修改学生信息、显示学生信息、退出系统,并且需要接收用户的输入,在根据输入内容调用相应函数实现相应功能,模板图如下:

一、基础界面实现

 1、主函数

定义主函数main,并通过定义print_menu()函数输打印学生管理系统菜单

#打印功能菜单
def print_menu():print('='*30)print('学生管理系统')print('1.添加学生信息')print('2.删除学生信息')print('3.修改学生信息')print('4.显示所有学生信息')print('0.退出系统')print('')#定义主函数
def main():print_menu()
if __name__ == "__main__":main()

2、保持循环,获取用户需求

(1)while True循环:使系统菜单一直保持循环,为后面实现用户选择退出系统后,系统才结束循环作铺垫

(2)变量key:将获取到的用户需要实现的功能进行存储

(3)if循环:多分支循环,再分别实现各个模块的功能

#定义主函数
def main():while True:print_menu()key = input('请输入功能对应的数字:')if key == '1':#添加学生信息passelif key == '2':#删除学生信息passelif key == '3':#修改学生信息passelif key == '4':#查找全部学生信息passelif key == '0':#退出系统passelse:print('输入有误')

 二、函数实现模块功能

1、添加学生信息

(1)name,sex,phone:存储用户输入的新学生的姓名,性别,手机号码信息

(2)new_info():定义成一个字典,通过键值对的形式,存储当前学生的所有信息

(3)append():列表的添加,将当前的字典存入列表,作为列表的一个元素

(4)stu_info:定义了一个列表用来存储所有的学生信息

#定义一个列表来存储所有学生信息
stu_info = []#添加学生信息
def add_stu_info():name = input('请输入新学生的姓名:')sex = input('请输入新学生的性别:')phone = input('请输入新学生的手机号码:')new_info = dict()#定义一个字典new_info['name'] = namenew_info['sex'] = sexnew_info['phone'] = phonestu_info.append(new_info)

2、删除学生信息

(1)len():进入删除操作前先判断学生信息表是否为空

①为空:输出学生信息表为空,直接跳出删除操作

②不空:通过del_num变量记录用户需要删除的学生序号

(2)记录好要删除的学生序号还需要进一步判断输入的序号是否有误

①为flase:输出要删除的序号有误,跳出删除操作

②为true:通过del列表的删除操作进行删除对应序号的学生信息,并输出删除成功

#删除学生信息
def del_stu_info(student):if len(stu_info) != 0:del_num = int(input('请输入要删除的序号:')) - 1if del_num < len(stu_info):del student[del_num]print(f'删除指定序号:{del_num+1}成功')else:print('要删除的序号有误')else:print('学生信息表为空')

 3、修改学生信息

(1)len():进入修改操作前先判断学生信息表是否为空

①为空:输出学生信息表为空,直接跳出修改操作

②不空:通过rev_num变量记录用户需要修改的学生序号

(2)记录好要修改的学生序号还需要进一步判断输入的序号是否有误

①为flase:输出要修改的序号有误,跳出修改操作

②为true:通过rev_name、rev_sex、rev_phone变量记录修改后学生的信息

(3)stu_info[][]:通过列表修改元素的方法,将新的信息替换旧的信息

#修改学生信息
def rev_stu_info():if len(stu_info) != 0:rev_num = int(input('请输入要修改学生的序号:')) - 1if rev_num >= len(stu_info):print("要修改的序号有误")else:rev_name = input('请输入要修改学生的姓名:')rev_sex = input('请输入要修改学生的性别:')rev_phone = input('请输入要修改学生的手机:')stu_info[rev_num]['name'] = rev_namestu_info[rev_num]['sex'] = rev_sexstu_info[rev_num]['phone'] = rev_phoneelse:print('学生信息表为空')

4、查找全部学生信息

(1)len():进入查找操作前先判断学生信息表是否为空

①为空:输出学生信息表为空,直接跳出查找操作

②不空:输出学生信息如下

(2)i:序号,记录并输出学生数量

(3)for循环:逐个输出列表元素

#查找全部学生信息
def show_stu_info():if len(stu_info) != 0:print('学生的信息如下:')print('=' * 30)print('序号  姓名  性别  手机号码')i = 1for temp_info in stu_info:print("%d  %s  %s  %s" %(i,temp_info['name'],temp_info['sex'],temp_info['phone']))i += 1else:print('学生信息表为空')

5、退出系统

(1)quit_confirm:再次询问用户是否退出,并记录

(2)if循环:判断用户输入的是Yes还是No

①break:用户输入Yes,即确定退出,跳出while True这个死循环

②coninue:用户输入No,即不退出,则继续新一轮的while True循环

#定义主函数
def main():while True:print_menu()key = input('请输入功能对应的数字:')if key == '1':#添加学生信息passelif key == '2':#删除学生信息passelif key == '3':#修改学生信息passelif key == '4':#查找全部学生信息passelif key == '0':#退出系统quit_confirm = input('亲,真的要退出么?(Yes/No):')if quit_confirm == 'Yes':breakelif quit_confirm == 'No':continueelse:print('输入有误,请重新输入')else:print('输入有误')

三、整合代码

1、 完整代码

#定义一个列表来存储所有学生信息
stu_info = []#打印功能菜单
def print_menu():print('=' * 30)print('学生管理系统')print('1.添加学生信息')print('2.删除学生信息')print('3.修改学生信息')print('4.显示所有学生信息')print('0.退出系统')print('=' * 30)#添加学生信息
def add_stu_info():name = input('请输入新学生的姓名:')sex = input('请输入新学生的性别:')phone = input('请输入新学生的手机号码:')new_info = dict()#定义一个字典new_info['name'] = namenew_info['sex'] = sexnew_info['phone'] = phonestu_info.append(new_info)#删除学生信息
def del_stu_info(student):if len(student) != 0:del_num = int(input('请输入要删除的序号:')) - 1if del_num < len(stu_info):del student[del_num]print(f'删除指定序号:{del_num+1}成功')else:print('要删除的序号有误')else:print('学生信息表为空')#修改学生信息
def rev_stu_info():if len(stu_info) != 0:rev_num = int(input('请输入要修改学生的序号:')) - 1if rev_num >= len(stu_info):print("要修改的序号有误")else:rev_name = input('请输入要修改学生的姓名:')rev_sex = input('请输入要修改学生的性别:')rev_phone = input('请输入要修改学生的手机:')stu_info[rev_num]['name'] = rev_namestu_info[rev_num]['sex'] = rev_sexstu_info[rev_num]['phone'] = rev_phoneelse:print('学生信息表为空')#查找全部学生信息
def show_stu_info():if len(stu_info) != 0:print('学生的信息如下:')print('=' * 30)print('序号  姓名  性别  手机号码')i = 1for temp_info in stu_info:print("%d  %s  %s  %s" %(i,temp_info['name'],temp_info['sex'],temp_info['phone']))i += 1else:print('学生信息表为空')#定义主函数
def main():while True:print_menu()key = input('请输入对应的功能的数字:')if key == '1':#添加学生信息add_stu_info()elif key == '2':#删除学生信息del_stu_info(stu_info)elif key == '3':#修改学生信息rev_stu_info()elif key == '4':#显示所有学生信息show_stu_info()elif key == '0':#退出系统quit_confirm = input('亲,真的要退出么?(Yes/No):')if quit_confirm == 'Yes' or quit_confirm == 'yes' or quit_confirm == 'YES':breakelif quit_confirm == 'No' or quit_confirm == 'no' or quit_confirm == 'NO':continueelse:print('输入有误,请重新输入')else:print('输入有误,请重新输入')if __name__=='__main__':main()

2、完整实现过程

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

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

相关文章

想自学软件测试?一般人我还是劝你算了吧。。。

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

<keep-alive>作用及用法

<keep-alive>是Vue.js的内置组件。它用于缓存具有相同组件树的组件。当组件使用<keep-alive>包裹时&#xff0c;组件不会被销毁&#xff0c;而是会缓存到内存中&#xff0c;等到下次再次渲染时&#xff0c;直接使用缓存中的组件实例。 <keep-alive>有以下几…

【Linux】共享内存

文章目录 一、共享内存的原理详谈共享内存的实现过程二、共享内存的接口函数1.shmget2. shmatshmdtshmctl 进程间使用共享内存通信三、共享内存的特性 关于代码 一、共享内存的原理 共享内存是由操作系统维护和管理的一块内存。 共享内存的本质是内核级的缓冲区。 一个进程向…

C语言精华题目锦集1

第一题 test.c文件中包括如下语句&#xff0c;文件中定义的四个变量中&#xff0c;是指针类型的是&#xff08;&#xff09;【多选】 #define INT_PTR int* typedef int* intptr; INT_PRT a,b; int_ptr c,d;A:a  B:b  C:c  D:d #define是宏定义&#xff0c;此时在程序中IN…

SQLite3 数据库学习(六):Qt 嵌入式 Web 服务器详解

参考引用 SQLite 权威指南&#xff08;第二版&#xff09;SQLite3 入门 1. Apache 搭建 cgi 环境 1.1 什么是 Apache Apache 是世界使用排名第一的 Web 服务器软件 它可以运行在几乎所有广泛使用的计算机平台上&#xff0c;由于其跨平台和安全性被广泛使用 1.2 具体搭建流程…

一、用户管理

一、后端数据库初始化 1.1 因为版本问题&#xff0c;始终报错&#xff0c;按照报错信息去查询解决方案&#xff0c;无法解决 灵机一动&#xff1a; 网址&#xff1a; Spring Boot 3.0 升级 实战踩坑记录 - 掘金 (juejin.cn) &#xff11;.&#xff12; 个人配置【运行成功…

c++的三目运算符

C三目运算符增强 C中的三目运算符表达式返回的可以是一个变量&#xff0c;但是C语言中返回的是一个常量。 C语言中&#xff1a; void test05() { int a 10; int b 20; printf("%d\n", a < b ? a : b); //在C语言中三目运算符返回的是表达式的值&am…

Javascript每天一道算法题(十三)——最大子数组和_中等

文章目录 动态规划题三个重要步骤&#xff08;了解思路&#xff09;1、问题2、示例3、解决方法&#xff08;1&#xff09;方法1——动态规划 总结 动态规划题三个重要步骤&#xff08;了解思路&#xff09; &#xff08;1&#xff09;定义数组元素的含义 用一个数组来保存历史数…

2020年06月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 执行以下脚本后舞台上的角色将 ? A:先克隆自身,克隆体出现后被删除。 B:先克隆自身,克隆体出现后删除本体。 C:克隆出自身后本体与克隆体同时被删除。 D:克隆出自身后本体与克…

docker常用命令, 镜像版本的导入、导出并加载,打包镜像的命令

文章目录 docker常用命令&#xff1a;打镜像包&#xff1a;镜像版本的导入、导出并加载 docker常用命令&#xff1a; 打镜像包&#xff1a; ​ docker build -t calc:20230630 /home/apps/calc/docker/ 删除某个镜像的版本&#xff0c;allen_mysql的5.7版本 docker rmi all…

Redis深入理解-内核请求处理流程、数据传输协议

Redis 内核级请求处理流程 Redis Server 其实就是 Linux 服务器中的一个进程 主要还是下图的流程 应用先和 server 端建立 TCP 连接建立连接之后&#xff0c;server 端就会有一个与该客户端通信的 socket&#xff0c;客户端的读写请求发送到服务端的 socket那么通过 IO 多路…

分组背包问题学习笔记 AcWing 9. 分组背包问题

原题 有 N&#xfffd; 组物品和一个容量是 V&#xfffd; 的背包。 每组物品有若干个&#xff0c;同一组内的物品最多只能选一个。 每件物品的体积是 vij&#xfffd;&#xfffd;&#xfffd;&#xff0c;价值是 wij&#xfffd;&#xfffd;&#xfffd;&#xff0c;其中 …

PC8233(CC/CV控制)高耐压输入5V/3.4A同步降压电路内建补偿带恒流恒压输出

概述 PC8233&#xff08;替代CX8853&#xff09;是一款同步降压调节器,输出电流高达3.4A,操作范围从8V到32V的宽电源电压。内部补偿要求最低数量现成的标准外部组件。PC8233在CC&#xff08;恒定输出电流&#xff09;模式或CV&#xff08;恒定输出电压&#xff09;模式&#x…

【前端】前端监控⊆埋点

文章目录 前端监控分为三个方面前端监控流程异常监控常见的错误捕获方法主要是 try / catch 、window.onerror 和window.addEventListener 等。Promise 错误Vue 错误React 错误 性能监控用户行为监控常见的埋点方案来源 前端监控分为三个方面 异常监控&#xff08;监控前端页面…

基于element-ui后台模板,日常唠嗑

后面会补充github地址 文章目录 目录 文章目录 案例说明 1.引入库 2.创建布局组件 3.创建布局组件 4.菜单效果展示 5.创建顶部组件 5.创建顶部面包屑组件 6.创建内容区域组件 7.效果总览 7.布丁&#xff08;实现一些小细节&#xff09; 前言一、pandas是什么&#xff1f;二、使…

CentOS7中升级OpenSSL详细教程

文章目录 一. 引言二. 升级前的准备1.备份现有配置2. 检查系统版本3. 安装依赖 三. OpenSSL安装四. 验证 一. 引言 OpenSSL: 是用于保护数据安全的重要工具。它能提供加密&#xff0c;解密等多项功能。 然而&#xff0c;随着技术的发展和新的安全漏洞的出现&#xff0c;使用最…

管理类联考——英语二——备考 100 句涵盖所有词汇

全中 在海里的这个地区&#xff0c;熊猫们喜欢就着苏打碗豆喝茶。而大洋州的民兵则喜欢经过半岛&#xff0c;带着编剧本的公式上餐厅去。附件的电影院里有额外的歌剧和香蕉&#xff0c;这一时代的斑马们被外面的天线所吸引。实验室里的蟹想用它的肋骨去戳四肢象灯炮的小羊。但…

千梦网创:创业,一场游戏一场梦

创业这件事就好比一场养成类游戏&#xff0c;而我们自己就是游戏主角。 这个游戏有一个特殊之处在于&#xff1a;SSS级装备有穿戴等级设定&#xff0c;就算你氪重金买到了一把神器&#xff0c;自身阅历不够也根本无法发挥它的强大威力而只能当个装饰。 这就要求我们真正沉浸在…

催单开发信怎么写?外贸人如何写催单邮件?

年末催单开发信编写技巧&#xff1f;最有效的催单话术有哪些&#xff1f; 催单开发信成为了企业间日常沟通的重要一环。这些信件不仅有助于促进业务发展&#xff0c;还可加强供应链的协调&#xff0c;确保货物及时送达。蜂邮EDM将介绍如何写一封出色的催单开发信&#xff0c;以…

ubuntu20.04安装多版本cuda,切换版本

1. 安装cuda toolkit: 下载网站 https://developer.nvidia.com/cuda-11.3.0-download-archive 选择版本&#xff0c;这里选择11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run给cuda权限: chmod x…