文章目录
一、功能概述
利用python完成一个学生信息增删改查程序,主要涉及知识 点:程序控制结构(做多级菜单)、文件读写操作(学生信息要保存到磁盘上的文件里)
二、学生实体(Entity)
关系模式:学生(学号,专业,班级,系部,性别,年龄,电话,姓名)
学生表记录
学号 | 专业 | 班级 | 系部 | 性别 | 年龄 | 电话 | 姓名 |
---|---|---|---|---|---|---|---|
20205191 | 软件技术 | 20级软件四班 | 信息工程学院 | 女 | 19 | 19136008306 | 张明琼 |
20205151 | 大数据 | 20级大数据四班 | 信息工程学院 | 女 | 18 | 19136003369 | 赢 |
20205150 | 软件技术 | 20级软件四班 | 信息工程学院 | 女 | 19 | 19136683306 | 张琼 |
20205108 | 软件技术 | 20级软件四班 | 信息工程学院 | 女 | 20 | 19163008306 | 张明 |
20205133 | 软件技术 | 19级软件四班 | 信息工程学院 | 男 | 20 | 1836008306 | 杰 |
20204921 | 会计 | 19会计三班 | 信息工程学院 | 女 | 18 | 19631008306 | 英 |
这学期,我们我们还没有学习mySQL所以我们学生信息保存到文本文件里,用空格来隔开每个字段。
三、读取学生文件
文件结构是由若干行若干列构成,一行一行地读取,每一行读取出来的字符串,通过空格拆分成一个列表,所有行读取出来之后就自然构成列表的列表,即二维列表。
-演示用二维列表保存多个学生信息
1、演示用二维列表保存多个学生信息
-创建六个列表:student1,student2,student3,student4,student5,student6,
格式输出students
2、读取学生文件数据,保存到二维列表里
- 查看学生文件位置
- 切换工作目录
- 读取学生文件,保存到二维列表并输出
- 大家可能发现一个问题,每一行尾巴可能有一个“\n”,我们可以把它去掉。
- 格式化输出students列表
- len(students)- 得到二维列表的行数
- len(students [i])-得到二维列表第(i + 1)行的元素个数,即列数
3、格式失误遇到的问题
- 学生.txt采用utf-8编码方式保存
- 读取文件会报错
- 怎么解决问题?
将学生.txt文件改写成ANSI编码方式保存即可。
- 读取文件就不会报错了
四、对学生二维列表进行增删改查操作
1、增加学生记录
- 目前students里面有六个元素(学生)
- 添加一个新元素(学生)
- 输出更新后的students二维列表
2、查询学生记录
(1)按学号查询学生记录
- 这个程序有个缺陷,如果没有查询到,就没有任何输出信息,按理应该给用户一个提示:“查无此人!”
(2)按姓名查询学生记录
3、修改学生记录
- 修改学号为“20205191”的学生记录,将年龄改为“18”,电话为“19136008383”
- 修改学号为“20200751”的学生记录,将年龄改为“20”,电话改为“13967678900”
4、删除学生记录
- 删除学号为“20205151”的学生记录
- 删除学号为“20200751”的学生记录
五、将学生二维列表写入学生文件
1、将students写入学生.txt
2、查看更新后的学生.txt
六、构建学生信息管理多级菜单系统
(一)构建多级菜单系统
- 编写程序 - 学生信息管理.py
运行结果
(二) 实现学生信息管理功能模块
1、编写查询全部学生记录功能
- 编写get_all_students()、display_all_students()函数
- 启动程序,查看效果
2、编写增加学生记录功能
-
编写add_student()函数代码
-
启动程序,查看效果
-
查看添加了新纪录的学生.txt文件
3.编写删除学生记录功能
- 运行结果
4.编写修改学生记录功能
- 编写modify_student()函数
- 运行结果