python综合练习:学生管理系统
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、程序功能(Function)
- 1、功能概述
- 2、思维导图
- 二、 学生实体(Entity)
- 2、关系模式
- 3、学生表记录
- 三、读取学生文件
- 1、演示用二维列表保存多个学生信息创建六个列表:
- 四、对学生二维列表进行增删改查操作
- 1、增加学生记录
- 2、查询学生记录
- (1)按学号查询学生记录
- (2)按姓名查询学生记录
- 3、修改学生记录
- 4、删除学生记录
- 五、将学生二维列表写入学生文件
- 1、将students写入学生.txt
- 2、查看更新之后的学生.txt
- 六、构建多级菜单系统
- (一)构建多级菜单系统
- (二)实现学生信息管理功能模块
- 1、编写查询全部学生记录功能
- 2、编写增加学生记录功能
- 实训任务:创建一个完整的学生信息管理系统
- 代码如下:
- 七、感谢大家观看,此文章来自泸职院软件技术4班饶博文同学带来的第一个实训任务!!!
<
一、程序功能(Function)
1、功能概述
利用python完成完成一个学生信息的增删改查程序,主要涉及知识点:程序控制结构(做多级菜单)、文件读写操作(学生信息要保存到磁盘上的文件里)。
2、思维导图
二、 学生实体(Entity)
2、关系模式
学生(学号,姓名,性别,年龄,班级,专业,系部,电话)
3、学生表记录
行——记录——元组
学号 | 姓名 | 性别 | 年龄 | 班级 | 专业 | 系部 | 电话 |
---|---|---|---|---|---|---|---|
2020001 | 陈天 | 男 | 19 | 2020级软件技术4班 | 软件技术 | 信息工程学院 | 111111111 |
2020002 | 李潇 | 男 | 19 | 2020级软件技术4班 | 软件技术 | 信息工程学院 | 111111111 |
2020003 | 陈天 | 男 | 19 | 2020级软件技术4班 | 软件技术 | 信息工程学院 | 111111111 |
2020004 | 陈天 | 男 | 19 | 2020级软件技术4班 | 软件技术 | 信息工程学院 | 111111111 |
2020005 | 陈天 | 男 | 19 | 2020级软件技术4班 | 软件技术 | 信息工程学院 | 111111111 |
2020006 | 陈天 | 男 | 19 | 2020级软件技术4班 | 软件技术 | 信息工程学院 | 111111111 |
这一学期我们没有学习MySQL,所以我们将学生信息保存到文本文件里面,用空格隔开每个字段
三、读取学生文件
文件结构是由若干行若干列构成,一行一列地读取,每一行读取出来的字符串,通过空格拆分成一个列表,所有行读取出来之后就自然构成列表,即二维列表。
1、演示用二维列表保存多个学生信息创建六个列表:
student1、student2、student3、student4、student5和student6,然后添加到student是列表里
直接输出student列表
格式输出students
查看学生文件位置
切换工作目录
读取学生文件,保存到二维列表并输出
大家可以发现一个问题,每一行尾巴有个“\n”,需要去除掉才好。
格式化输出students列表
len(students) - 得到二维列表的行数
len(students[i]) - 得到二维列表第(i-1)行的元素个数,即列数
四、对学生二维列表进行增删改查操作
1、增加学生记录
目前students里有六个元素(学生)
添加一个新元素(学生)
输出更新之后的students二维列表
2、查询学生记录
(1)按学号查询学生记录
这个程序有个缺陷,如果没有查询到,就没有任何输出信息,按理应该给用户一个提示:“查无此人!”
(2)按姓名查询学生记录
3、修改学生记录
修改学号为"2020007"的学生记录,将年龄改为“20”,电话改为“110112119”
修改学号为“2020006”的学生记录,将年龄改为“16”,电话改为“119110120”
4、删除学生记录
删除学号为“2020006”的学生记录
删除学号为“2020008”的学生记录
五、将学生二维列表写入学生文件
1、将students写入学生.txt
2、查看更新之后的学生.txt
六、构建多级菜单系统
(一)构建多级菜单系统
编写程序 - 学生信息管理.py
运行程序,查看效果
(二)实现学生信息管理功能模块
1、编写查询全部学生记录功能
编写get_all_students()、display_all_students()函数
2、编写增加学生记录功能
编写add_student()函数代码
启动程序,查看效果
查看添加了新记录的学生.txt文件
实训任务:创建一个完整的学生信息管理系统
代码如下
代码如下:
"""
功能:学生信息管理系统
作者:陈天
时间:2021-1-9 17:55:17"""def login():print('欢迎登录')while True:print('----------')print('1.登录')print('2.退出')print('----------')key = int(input('输入菜单号:'))if key == 2:login()elif key ==1 :print('欢迎使用!')break
#encoding utf=8
#定义一个函数,显示可以使用的功能列表给用户
def showInfo():print("-"*30)print(" 学生管理系统 v1.0")print(" 1.添加学生的信息")print(" 2.删除学生的信息")print(" 3.修改学生的信息")print(" 4.查询学生的信息")print(" 5.退出系统")print( '-'*30)#定义一个列表,用来存储多个学生的信息
students=[]while True:#把功能列表进行显示给用户showInfo()#提示用户选择功能#获取用户选择的功能key = int(input("请选择功能(序号):"))#根据用户选择,完成相应功能if key == 1:print("您选择了添加学生信息功能")name = input("请输入学生姓名:")stuId = input("请输入学生学号(学号不可重复):")age = input("请输入学生年龄:")major = input("请输入学生专业:")sex = input("请输入学生性别:")#验证学号是否唯一i = 0leap = 0for temp in students:if temp['id'] == stuId:leap = 1breakelse:i = i + 1if leap == 1:print("输入学生学号重复,添加失败!")breakelse:# 定义一个字典,存放单个学生信息stuInfo = {}stuInfo['name'] = namestuInfo['id'] = stuIdstuInfo['age'] = agestuInfo['major'] = majorstuInfo['sex'] = sex# 单个学生信息放入列表students.append(stuInfo)print("添加成功!")elif key == 2:print("您选择了删除学生功能")delId=input("请输入要删除的学生学号:")#i记录要删除的下标,leap为标志位,如果找到leap=1,否则为0i = 0leap = 0for temp in students:if temp['id'] == delId:leap = 1breakelse:i=i+1if leap == 0:print("没有此学生学号,删除失败!")else:del students[i]print("删除成功!")elif key == 3:print("您选择了修改学生信息功能")alterId=input("请输入你要修改学生的学号:")#检测是否有此学号,然后进行修改信息i = 0leap = 0for temp in students:if temp['id'] == alterId:leap = 1breakelse:i = i + 1if leap == 1:while True:alterNum=int(input(" 1.修改学号\n 2.修改姓名 \n 3.修改年龄 \n 4.修改专业\n 5.修改性别\n 6.退出修改\n"))if alterNum == 1:newId=input("输入更改后的学号:")#修改后的学号要验证是否唯一i = 0leap1 = 0for temp1 in students:if temp1['id'] == newId:leap1 = 1breakelse:i = i + 1if leap1 == 1:print("输入学号不可重复,修改失败!")else:temp['id']=newIdprint("学号修改成功")elif alterNum == 2:newName=input("输入更改后的姓名:")temp['name'] = newNameprint("姓名修改成功")elif alterNum == 3:newAge=input("输入更改后的年龄:")temp['age'] = newAgeprint("年龄修改成功")elif alterNum == 4:newMajor=input("输入更改后的专业:")temp['Major'] = newMajorprint("专业修改成功")elif alterNum == 5:newSex=input("输入更改后的性别:")temp['Sex'] = newSexprint("性别修改成功")elif alterNum == 6:breakelse:print("输入错误请重新输入")else:print("没有此学号,修改失败!")elif key == 4:print("您选择了查询学生信息功能")searchID=input("请输入你要查询学生的学号:")#验证是否有此学号i = 0leap = 0for temp in students:if temp['id'] == searchID:leap = 1breakelse:i = i + 1if leap == 0:print("没有此学生学号,查询失败!")else:print("找到此学生,信息如下:")print("学号:%s\n姓名:%s\n年龄:%s\n专业:%s\n性别:%s\n"%(temp['id'],temp['name'],temp['age'],temp['major'],temp['sex']))elif key == 5:#退出功能,尽量往不退出的方向引quitconfirm = input("亲,真的要退出么 (yes或者no)??~~(>_<)~~??")if quitconfirm == 'yes':print("欢迎使用本系统,谢谢")break;else:print("您输入有误,请重新输入")
七、感谢大家观看,此文章来自泸职院软件技术4班饶博文同学带来的第一个实训任务!!!
python综合练习:学生管理系统相关推荐
- python代码案例详解-Python综合应用名片管理系统案例详解
本文实例讲述了Python综合应用名片管理系统.分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎 ...
- 汇编综合实验--学生管理系统
文章目录 前言 一.程序完整的代码 二.各各子程序的功能讲解 1.登入功能 2.菜单功能 3.输入功能 4.输出功能 5.成绩排序功能 6.不及格人数统计功能 7.删除学习信息功能 8.插入学生信息功 ...
- 管理系统制作的python代码_python学生管理系统代码实现
本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下 类 class Student: stuID = "" name = "" s ...
- Python 综合应用 —— 名片管理系统
综合应用 -- 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ************ ...
- python实现一个学生管理系统
新手开始学习,跟着网上教程敲出一个学生管理系统 主要学习与熟悉:1.学习如何使用函数封装实现系统功能 2.熟悉对txt文本文件的增删改查 3.熟悉对字典.列表.字符串的处理 目录 一.需求分析 二.系 ...
- python管理系统web版_基于Python实现简单学生管理系统
学生信息管理系统负责编辑学生信息,供大家参考,具体内容如下 第一次发帖,下面通过python实现一个简单的学生信息管理系统 要求如下: 1.添加学生的信息 2.删除学生的信息 3.修改的信息 4.查询 ...
- Python项目:学生管理系统连接MySQL数据库(增删改查、排序、统计、显示所有信息)
文章目录 一程序功能(Function) 1. 功能概述 2. 思维导图 二.开始实践 战前准备 定义学生管理系统菜单 定义主函数 1.录入学生信息 2.查找学生信息 3.删除学生信息 4.修改学生信 ...
- Python项目之学生管理系统
目录 引言 一 .学习目标 二.系统需求 三.准备程序文件 3.1分析 3.2创建程序文件 四.定义学员类(student.py) 4.1需求 4.2程序代码 五.管理系统(managerSystem ...
- 用Python做个学生管理系统,这不简简单单
前言 最近因为疫情,各大高校都开始放假了,要不就是回家上网课 我朋友的老师真有趣,硬是要我朋友做个学生管理系统打包成exe文件发给他,才能回家 这不就找上我来了,我写完就顺便发篇文章咯 准备工作 环境 ...
- 用 Python 做个学生管理系统,并打包成exe文件
由于Python都会了,学校教的确实基础,平时就没怎么去上课,让美女老师天天脑壳痛,这不快毕业了,让我做一个学生管理系统出来,还要打包成exe发给她,她就不追究我不上课的问题了~ 话说这能难倒我吗?赶 ...
最新文章
- HashMap 1.8 源码解析以及非线程安全分析
- 运维工程师必备之MySQL数据的主从复制、半同步复制和主主复制详解
- 组装电脑的五大注意点
- 使用Spring Boot和Vue进行有益的开发
- MIUI 13 去除输入法广告
- vue3+ts使用Ant Design实现表格序号自增
- 计算机添加本地安全组用户名和密码错误,win7系统访问远程共享文件夹提示未知的用户名或密码错误的解决方法...
- 如何批量将 Txt 文本文档转换为 PDF 文档
- 宏基d260linux系统,千呼万唤始出来 宏碁D260新本仅售2499
- 量子计算机的成熟度模型,全球首家:紫光展锐通过 TMMi 软件测试成熟度模型集成 5 级认证...
- 怎么用wifi进e站_科普微e站 | 注意!路由器千万别再这样用,当心信号越来越差!...
- 怎么注册Google账号(使用国内手机号注册)
- MInd+实例4——公园人数计数系统
- 20年南京大学软件工程考研经验分享
- 目前最新NIST随机数测试软件下载、安装、及使用教程
- c语言程序和plc程序的区别,一文告诉你PLC与计算机的本质区别在哪里!小白都能看懂!...
- 7月清北学堂培训 Day 1
- python+Anaconda3+pycharm完整的下载安装过程及配置过程
- NVIDIA,显卡驱动,CUDA版本之间兼容关系及安装
- Zebra源码分析-SingleDataSource
热门文章
- 常用技术指标之一文读懂RSI指标
- php学籍信息管理系统心得_php学生信息管理系统
- 微信登录整合——app、小程序、公众号、扫码
- 数据表数据迁移——复制一个表的数据到另外一个表
- 如何利用无线路由接收无线信号
- linux中的21是什么
- 程序员必知的40个算法
- module ‘selenium.webdriver‘ has no attribute ‘PhantomJS‘
- UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xbd in position 5: illegal multibyte sequence
- EXCEL2013 vba工程密码破解