学生信息管理系统
1、系统说明
python 编写的学生信息管理系统+MySQL数据库,实现了增删改查的基本功能。
2、数据库说明
本人使用的是 MySQL8.0 版本
数据库端口号为:3306
数据库用户名是:root
数据库名称是:practice
建立的表是:students
3、系统功能
- 增加学生信息
- 删除学生信息
- 修改学生信息
- 查询学生信息
- 展示所有学生信息
- 保存学生信息到 .txt 文件中
- 退出系统
4、功能实现
本程序有两个功能文件 project.py 和 database.py,首先介绍 database.py 中的函数。
程序需要导入 pymysql 包,在运行代码前请先确定编程软件(本人使用的是pycharm)是否安装了 pymysql。
(1)condatabase():连接数据库函数,调用 pymysql 的方法 Connect(),其中参数包括数据库用户名,数据库密码,数据库 ip,数据库名称,数据库端口号以及字符集。其中需要用户手动输入数据库用户名,数据库密码,其他几项参数根据自己的信息写入代码中即可。如果用户输入的账户及密码有误则函数返回 False。
(2)add_student():向数据库中添加学生信息,操作数据库的固定流程:连接数据库,写 sql 语句,游标执行 sql 语句,关闭游标对象和数据库连接。不同之处在于根据不同的需求编写不同的 sql 语句。
(3)delete_student():删除数据库中的学生信息,具体实现同添加学生信息函数类似。
(4)select_student():查询数据库中的学生信息函数,注意该函数体中调用了 fetchone() 函数,若查询结果为空,该函数会返回 None。
(5)modify_student():修改数据库的学生信息,具体实现同添加学生信息函数类似。
(6)determine_student():判断学号是否已经在数据库中存在。
(7)show_student():输出学生信息,其中调用了 fetchall() 函数,会将查询结果以嵌套元组的方式返回。
(8)save_student():保存学生信息至 .txt 文件中,函数先判断系统中是否有学生信息,若系统为空,则提示错误信息无法保存;否则利用open()函数打开指定 .txt 文件利用 for 循环依次写入学生信息,最后记得关闭文件。
接下来是 project.py 中的函数介绍。
(1)menu():打印系统菜单函数,定义为类的静态方法。
(2)ui():用户登录函数,保存用户的数据库名称和数据库密码。
(3)add_student():增加学生信息函数,该函数可以一次增加任意数量的学生信息,而非每次只能添加一名学生;通过 for 循环依次由用户输入待添加的学生信息,若系统中不存在相同学号即可添加成功,若学号已存在,则提示错误信息无法添加。利用 database.py 中 DataBase 类中的 determine_student() 函数查询数据库中是否已经存在待添加学号学生信息。利用 DataBase 类中的 add_student() 函数向数据库中添加学生信息。
(4)delete_student():删除学生信息函数,同样利用 DataBase 类中的 determine_student() 函数查询数据库中是否存在待删除学号学生信息。若存在则利用 DataBase 类中的 delete_student() 函数删除数据库中的学生信息,否则返回无法删除提示。
(5)modify_student():修改学生信息函数,具体实现同删除学生信息函数类似,不同之处在于修改部分学生信息功能的实现,本程序中定义了一个 user_input() 方法,实现学生的信息可以不全部修改,若用户输入回车则对应项信息保持原值。
(6)select_student():查询学生信息函数,具体实现同删除学生信息函数类似。
(7)show_students():展示所有学生信息函数,调用 DataBase 类中的 show_student() 函数实现。
(8)data():保存学生信息函数,调用 DataBase 类中的 save_student() 函数实现。
(9)退出系统功能由 python 内置函数 exit() 实现。
(10)run():程序运行函数,在无限循环中判断用户输入为哪个功能代码相应地调用对应实现函数即可。若用户输入代码错误则系统给出错误提示。
5、程序源码
(1)database.p

这是一个使用Python编写的,结合MySQL8.0数据库的学生信息管理系统。具备增加、删除、修改、查询和保存学生信息的功能。系统通过pymysql包连接数据库,并提供了详细的函数实现说明。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



