提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、程序功能(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综合练习:学生管理系统相关推荐

  1. python代码案例详解-Python综合应用名片管理系统案例详解

    本文实例讲述了Python综合应用名片管理系统.分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎 ...

  2. 汇编综合实验--学生管理系统

    文章目录 前言 一.程序完整的代码 二.各各子程序的功能讲解 1.登入功能 2.菜单功能 3.输入功能 4.输出功能 5.成绩排序功能 6.不及格人数统计功能 7.删除学习信息功能 8.插入学生信息功 ...

  3. 管理系统制作的python代码_python学生管理系统代码实现

    本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下 类 class Student: stuID = "" name = "" s ...

  4. Python 综合应用 —— 名片管理系统

    综合应用 -- 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ************ ...

  5. python实现一个学生管理系统

    新手开始学习,跟着网上教程敲出一个学生管理系统 主要学习与熟悉:1.学习如何使用函数封装实现系统功能 2.熟悉对txt文本文件的增删改查 3.熟悉对字典.列表.字符串的处理 目录 一.需求分析 二.系 ...

  6. python管理系统web版_基于Python实现简单学生管理系统

    学生信息管理系统负责编辑学生信息,供大家参考,具体内容如下 第一次发帖,下面通过python实现一个简单的学生信息管理系统 要求如下: 1.添加学生的信息 2.删除学生的信息 3.修改的信息 4.查询 ...

  7. Python项目:学生管理系统连接MySQL数据库(增删改查、排序、统计、显示所有信息)

    文章目录 一程序功能(Function) 1. 功能概述 2. 思维导图 二.开始实践 战前准备 定义学生管理系统菜单 定义主函数 1.录入学生信息 2.查找学生信息 3.删除学生信息 4.修改学生信 ...

  8. Python项目之学生管理系统

    目录 引言 一 .学习目标 二.系统需求 三.准备程序文件 3.1分析 3.2创建程序文件 四.定义学员类(student.py) 4.1需求 4.2程序代码 五.管理系统(managerSystem ...

  9. 用Python做个学生管理系统,这不简简单单

    前言 最近因为疫情,各大高校都开始放假了,要不就是回家上网课 我朋友的老师真有趣,硬是要我朋友做个学生管理系统打包成exe文件发给他,才能回家 这不就找上我来了,我写完就顺便发篇文章咯 准备工作 环境 ...

  10. 用 Python 做个学生管理系统,并打包成exe文件

    由于Python都会了,学校教的确实基础,平时就没怎么去上课,让美女老师天天脑壳痛,这不快毕业了,让我做一个学生管理系统出来,还要打包成exe发给她,她就不追究我不上课的问题了~ 话说这能难倒我吗?赶 ...

最新文章

  1. HashMap 1.8 源码解析以及非线程安全分析
  2. 运维工程师必备之MySQL数据的主从复制、半同步复制和主主复制详解
  3. 组装电脑的五大注意点
  4. 使用Spring Boot和Vue进行有益的开发
  5. MIUI 13 去除输入法广告
  6. vue3+ts使用Ant Design实现表格序号自增
  7. 计算机添加本地安全组用户名和密码错误,win7系统访问远程共享文件夹提示未知的用户名或密码错误的解决方法...
  8. 如何批量将 Txt 文本文档转换为 PDF 文档
  9. 宏基d260linux系统,千呼万唤始出来 宏碁D260新本仅售2499
  10. 量子计算机的成熟度模型,全球首家:紫光展锐通过 TMMi 软件测试成熟度模型集成 5 级认证...
  11. 怎么用wifi进e站_科普微e站 | 注意!路由器千万别再这样用,当心信号越来越差!...
  12. 怎么注册Google账号(使用国内手机号注册)
  13. MInd+实例4——公园人数计数系统
  14. 20年南京大学软件工程考研经验分享
  15. 目前最新NIST随机数测试软件下载、安装、及使用教程
  16. c语言程序和plc程序的区别,一文告诉你PLC与计算机的本质区别在哪里!小白都能看懂!...
  17. 7月清北学堂培训 Day 1
  18. python+Anaconda3+pycharm完整的下载安装过程及配置过程
  19. NVIDIA,显卡驱动,CUDA版本之间兼容关系及安装
  20. Zebra源码分析-SingleDataSource

热门文章

  1. 常用技术指标之一文读懂RSI指标
  2. php学籍信息管理系统心得_php学生信息管理系统
  3. 微信登录整合——app、小程序、公众号、扫码
  4. 数据表数据迁移——复制一个表的数据到另外一个表
  5. 如何利用无线路由接收无线信号
  6. linux中的21是什么
  7. 程序员必知的40个算法
  8. module ‘selenium.webdriver‘ has no attribute ‘PhantomJS‘
  9. UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xbd in position 5: illegal multibyte sequence
  10. EXCEL2013 vba工程密码破解