Python课程设计:学生成绩管理系统(附源代码) 您所在的位置:网站首页 python处理学生成绩 Python课程设计:学生成绩管理系统(附源代码)

Python课程设计:学生成绩管理系统(附源代码)

#Python课程设计:学生成绩管理系统(附源代码)| 来源: 网络整理| 查看: 265

0 分享至

用微信扫码二维码

分享至好友和朋友圈

版权声明:本文为CSDN博主「大格子嘞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:

https://blog.csdn.net/qq_43971504/article/details/107048678

大家好,欢迎来到 Crossin的编程教室 !

今天给大家分享一个Python开发教学实例,涉及GUI、数据库、Excel导入导出等功能。

1、需求分析

通过类的知识实现学生成绩信息(学号、姓名、院系、三门课成绩、考试平均成绩、同学互评分、任课教师评分、综合测评总分,其中综合测评总分由:考试平均成绩70%,同学互评分10%,任课教师评分20% );

能够实现学生成绩信息的保存和读取(使用数据库对数据进行存取);

实现所有相关信息的输入、输出、查找、删除、修改等功能;

系统界面应至少实现控制台界面(使用桌面窗体界面进行交互);

通过xlrd和xlwt模块读取和写入Excel文件;

2、功能设计与分析 1、使用数据库对数据进行存取 (1)使用PyMySQL模块操作数据库对数据进行存取

先安装PyMySQL模块:pip install PyMySQL,再使用时直接导入即可:import pymysql;

(2)创建数据库school,创建数据表student_sore、teacher_login

可以使用Navicat for MySQL创建,也可以使用预处理语句创建表,若不存在则创建,若存在则跳过;

(3)使用xlrd模块从Excel文件中读取数据到数据库

先安装xlrd模块:pip install xlrd,再使用时直接导入即可:import xlrd;打开一个Excel文件,通过sheet的索引获取sheet表,循环获取每个单元格的值,一行一行读取到数据库表中。

(4)定义一个PyMySQL增删改查的工具类PyMySQLUtils

1)def __init__(self)获取连接:打开数据库的连接,使用cursor()方法获取操作游标;

2)def fetchall(self, sql)查询获取多条数据:使用execute()方法执行SQL语句,使用fetchall()方法获取多条数据;

3)def fetchone(self, sql)查询获取单条数据:使用execute()方法执行SQL语句,使用fetchone()方法获取单条数据;

4)def execute(self, sql)添加删除更新操作:使用execute()方法执行SQL语句,提交到数据库执行,发生错误时回滚;

5)def close(self)关闭连接:关闭游标,关闭数据库连接;

2、使用桌面窗体界面进行交互 (1)使用Tkinter模块实现图形化界面GUI设计

使用时直接导入即可:

from tkinter import *from tkinter import ttkimport tkinter.font as tkFontimport tkinter.messagebox as messagebox

(2)开始界面:教师注册、教师登录、退出系统

class StartMenu:(销毁上一个窗口)初始化一个根窗口window;添加Label标签控件,用于单行文本显示"学生成绩管理系统";添加三个Button按钮控件,将其分别与关联函数lambda: TeacherRegister、lambda: TeacherLogin、window.destroy绑定;在主事件循环中等待用户触发事件响应。

(3)教师注册界面:输入账号、输入密码、确认账号、确定、返回

class TeacherRegister:(销毁上一个窗口)初始化一个根窗口window;添加Label标签控件,用于单行文本显示"教师注册页面",“输入账号”、“输入密码”、“确认账号”;添加三个Entry输入控件,用于显示用户输入文本,添加两个Button按钮控件,将其分别与关联函数register、back绑定;在主事件循环中等待用户触发事件响应。

(4)教师登录界面:账号、密码、确定、返回

class TeacherLogin:(销毁上一个窗口)初始化一个根窗口window;添加两个Entry输入控件,用于显示用户输入文本,添加两个Button按钮控件,将其分别与关联函数login、back绑定;在主事件循环中等待用户触发事件响应。

(5)教师操作界面:添加、修改、查询、删除

3、实现所有相关信息的添加、修改、查询、删除等功能 (1)添加学生成绩信息

insert:判断输入框中的学号在不在储存学号的列表中,在则警告"该学生成绩信息已存在!";不在则先添加输入框中的数据到数据库中,接着添加到储存储存数据的列表中,最后添加到表格内容中。

(2)修改学生成绩信息

update:判断输入框中的学号在不在储存学号的列表中,不在则警告"该学生成绩信息不存在!";在则先根据输入框中的学号修改数据库中的数据,接着根据输入框中的学号在储存学号列表的索引删除储存数据的列表中的数据,最后删除表格内容中的数据。

(3)查询学生成绩信息

select:判断输入框中的学号在不在储存学号的列表中,不在则警告"该学生成绩信息不存在!";在则根据输入框中的学号在储存学号列表的索引直接查询储存数据的列表中的数据,把数据设置到输入框中。

(4)删除学生成绩信息

delete:判断输入框中的学号在不在储存学号的列表中,不在则警告"该学生成绩信息不存在!";在则先根据输入框中的学号删除数据库中的数据,接着根据输入框中的学号在储存学号列表的索引删除储存数据的列表中的数据,最后删除表格内容中的数据。

(5)清空输入框的内容

clear:通过StringVar.set()方法直接把输入框的内容设置为空。

(6)写入到Excel文件

先安装xlwt模块:pip install xlwt,再使用时直接导入即可:import xlwt;新建一个Excel文件,添加一个名为sheet1的表,设置允许重写覆盖,从数据库中获取数据,循环向sheet写入数据,最后保存文件中。

3、运行结果 (1)开始界面

(2)教师注册界面

(3)教师登录界面

(4)教师操作界面 1)添加学生成绩信息

2)修改学生成绩信息

3)查询学生成绩信息

4)删除学生成绩信息

5)学生成绩信息排序

6)写入到Excel文件

获取源代码+Excel文件+报告,请在公众号 Crossin的编程教室 后台回复:成绩

如果文章对你有帮助,欢迎转发/点赞/收藏~

如需了解付费精品课程及教学答疑服务

请在Crossin的编程教室内回复:666

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

/阅读下一篇/ 返回网易首页 下载网易新闻客户端


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有