社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python综合练习:学生信息管理

howard2005 • 4 年前 • 669 次点击  

一、程序功能(Function)

1、功能概述

利用Python完成一个学生信息的增删改查程序,主要涉及知识点:程序控制结构(做多级菜单)、文件读写操作(学生信息要保存到磁盘上的文件里)、利用函数实现功能模块化。

2、思维导图

在这里插入图片描述

二、学生实体(Entity)

1、思维导图

在这里插入图片描述

2、关系模式

学生(学号, 姓名, 性别, 年龄, 班级, 专业, 系部, 电话)

3、学生表

  • 行——记录——元组
  • 列——字段——属性
学号 姓名 性别 年龄 班级 专业 系部 电话
2020001 李晓红 19 2020级软件4班 软件技术 信息工程学院 15945456780
2020002 王晓刚 18 2020级软件4班 软件技术 信息工程学院 13890904567
2020003 唐雨涵 19 2020级软件4班 软件技术 信息工程学院 18878789023
2020101 张三丰 18 2020级大数据1班 大数据技术与应用 信息工程学院 15945456780
2020102 肖雨林 18 2020级大数据1班 大数据技术与应用 信息工程学院 18890904560
2020103 郑小翠 19 2020级大数据1班 大数据技术与应用 信息工程学院 15890904567
  • 这学期,我们还没有学习MySQL,所以我们将学生信息保存到文本文件里,用空格来隔开每个字段。
    在这里插入图片描述
2020001 李晓红 女 19 2020级软件4班 软件技术 信息工程学院 15945456780
2020002 王晓刚 男 18 2020级软件4


    
班 软件技术 信息工程学院 13890904567
2020003 唐雨涵 女 19 2020级软件4班 软件技术 信息工程学院 18878789023
2020101 张三丰 男 18 2020级大数据1班 大数据技术与应用 信息工程学院 15945456780
2020102 肖雨林 男 18 2020级大数据1班 大数据技术与应用 信息工程学院 18890904560
2020103 郑小翠 女 19 2020级大数据1班 大数据技术与应用 信息工程学院 15890904567
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三、读取学生文件

  • 文件结构是由若干行若干列构成,一行一行地读取,每一行读取出来的字符串,通过空格拆分成一个列表,所有行读取出来之后就自然构成列表的列表,即二维列表。

1、演示用二维列表保存多个学生信息

  • 创建六个列表:student1、student2、student3、student4、student5和student6,然后添加到student是列表里
    在这里插入图片描述
  • 直接输出student列表
    在这里插入图片描述
  • 格式输出students
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2、读取学生文件数据,保存到二维列表里

  • 查看学生文件位置
    在这里插入图片描述
  • 切换工作目录
    在这里插入图片描述
  • 读取学生文件,保存到二维列表并输出
    在这里插入图片描述
  • 大家可以发现一个问题,每一行尾巴有个“\n”,需要去除掉才好。
    在这里插入图片描述
  • 格式化输出students列表
    在这里插入图片描述
    在这里插入图片描述
  • len(students) - 得到二维列表的行数
  • len(students[i]) - 得到二维列表第(i + 1)行的元素个数,即列数

3、学生操作遇到的问题

  • 学生.txt采用utf-8编码方式保存

在这里插入图片描述

  • 读取文件会报错
    在这里插入图片描述
  • 怎么解决问题?学生.txt文件改成ANSI编码方式保存即可。
    在这里插入图片描述
  • 现在读取文件就不会报错
    在这里插入图片描述

四、对学生二维列表进行增删改查操作

1、增加学生记录

  • 目前students里有六个元素(学生)
    在这里插入图片描述
  • 添加一个新元素(学生)
    在这里插入图片描述
  • 输出更新之后的students二维列表
    在这里插入图片描述

2、查询学生记录

(1)按学号查询学生记录

在这里插入图片描述

  • 这个程序有个缺陷,如果没有查询到,就没有任何输出信息,按理应该给用户一个提示:“查无此人!”
    在这里插入图片描述

(2)按姓名查询学生记录

在这里插入图片描述

3、修改学生记录

  • 修改学号为"2020003"的学生记录,将年龄改为“18”,电话改为“15834345670”
    在这里插入图片描述
  • 修改学号为“2020007”的学生记录,将年龄改为“20”,电话改为“13967678900”
    在这里插入图片描述

4、删除学生记录

  • 删除学号为“2020003”的学生记录
    在这里插入图片描述
    在这里插入图片描述
  • 删除学号为“2020007”的学生记录
    在这里插入图片描述

五、将学生二维列表写入学生文件

1、将students写入学生.txt

在这里插入图片描述

2、查看更新之后的学生.txt

在这里插入图片描述

2020001 李晓红 女 19 2020级软件4班 软件技术 信息工程学院 15945456780
2020002 王晓刚 男 18 2020级软件4班 软件技术 信息工程学院 13890904567
2020101 张三丰 男 18 2020级大数据1班 大数据技术与应用 信息工程学院 15945456780
2020102 肖雨林 男 18 2020级大数据1班 大数据技术与应用 信息工程学院 18890904560
2020103 郑小翠 女 19 2020级大数据1班 大数据技术与应用 信息工程学院 15890904567
2020104 吴文燕 女 18 2020级大数据1班 大数据技术与应用 信息工程学院 13956567890
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

六、构建学生信息管理多级菜单系统

(一)构建多级菜单系统

  • 编写程序 - 学生信息管理.py
    在这里插入图片描述
  • 运行程序,查看效果
    在这里插入图片描述

(二)实现学生信息管理功能模块

1、编写查询全部学生记录功能

  • 编写get_all_students()、display_all_students()函数
    在这里插入图片描述
  • 启动程序,查看效果
    在这里插入图片描述

2、编写增加学生记录功能

  • 编写add_student()函数代码
    在这里插入图片描述
  • 启动程序,查看效果
    在这里插入图片描述
  • 查看添加了新记录的学生.txt文件
    在这里插入图片描述

实训任务:同学们自行完成剩余的功能模块

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/105820
 
669 次点击