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

Python小二 Python小二     2022-12-29     792

关键词:

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

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

1、需求分析

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

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

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

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

  5. 通过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 ttk
import tkinter.font as tkFont
import 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)教师操作界面:添加、修改、查询、删除

class TeacherMenu:(销毁上一个窗口)初始化一个根窗口window;添加三个Frame框架控件,用于框架分组self.frame_center、self.frame_left、frame_right;在中心区域添加ttk.Treeview树视图窗口控件,ttk.Scrollbar 滚动条控件,设置列、表头,定义储存数据的列表,从数据库获取表格内容,设置表格内容,给表头绑定函数tree_sort_column,点击可排序,给表格绑定点击事件tree_click,获取被点击的条目;在左方区域添加八个Label标签控件,用于单行文本显示;添加八个Entry输入控件,用于显示用户输入文本,添加六个Button按钮控件,将其分别与关联函数绑定;在主事件循环中等待用户触发事件响应。

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、总结与体会

4、运行结果

(1)开始界面

(2)教师注册界面


(3)教师登录界面


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


2)修改学生成绩信息


3)查询学生成绩信息


4)删除学生成绩信息


5)学生成绩信息排序


6)写入到Excel文件



在公众号Python小二后台回复成绩获取源代码+Excel文件+报告。

道友路过给个赞吧~

[课程设计]学生成绩管理系统(python版)

背景学生成绩管理系统是各类程序设计课程的一个常见课程设计项目,包括了学生成绩信息的增删改查和排序功能。虽然学生成绩管理系统互联网上随处可见,但是大多数代码命名不规范、随意性大,而且代码质量较... 查看详情

基于javaweb学生成绩信息管理系统(附源码资料)-毕业设计

1.适用人群本课程主要是针对计算机专业相关正在做毕业设计、或者是需要实战项目的Java开发学习者。2.你将收获提供:项目源码、项目文档、数据库脚本、软件工具等所有资料(在平台的课程附件中进行下载)从零开始手把手... 查看详情

c#课程设计之学生教务管理系统

C#课程设计之学生教务管理系统下载地址登录界面管理者界面学生管理学生列表添加学生选课列表班级管理班级列表添加班级成绩管理成绩列表录入成绩课程管理课程列表添加课程修改密码发送邮件学生端界面用户设置修改资料... 查看详情

数据结构课程设计——ytu学生成绩管理系统(代码片段)

...**********版权所有(C)2016,ChangRui**文件名称:ytu学生成绩管理系统*文件标识:无*内容摘要:简单模拟学生成绩管理过程,完成对学生成绩信息的建立、增加、删除、查找 查看详情

java课程设计-学生成绩管理系统(代码片段)

...程工具Maven下载链接计算机课程设计|毕业设计之学生成绩管理系统代码-基于JavaWeb的学生成绩管理系统文章目录计算机课程设计|毕业设计之学生成绩管理系统代码-基于JavaWeb的学生成绩管理系统前言一、系统功能1.1开发环境1.2管... 查看详情

java课程设计——学生成绩管理系统

 可实现功能: 添加学生功能:姓名、学号、性别、出生年月日。(编号唯一且自增,学号手动生成且唯一)添加学生成绩功能:每个人都有数学、Java与体育三门课,可分课程输入成绩。根据学生学号查找学生成绩功能... 查看详情

课程设计|学生成绩管理系统(代码片段)

🎈作者:Linux猿🎈简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!🎈关注专栏: C/C++... 查看详情

matlab设计一个学生管理系统(简易结构体版)(代码片段)

设计一个简单的学生成绩管理程序,包含如下功能:1、可创建不少于100名学生成员;2、每名成员的记录包括:学号、姓名、专业和5门课程的成绩; 3、能够实现添加、删除、修改学生成员;4、能够实现... 查看详情

数据结构课程设计——ytu学生成绩管理系统(代码片段)

...**********版权所有(C)2016,ChangRui**文件名称:ytu学生成绩管理系统*文件标识:无*内容摘要:简单模拟学生成绩管理过程,完成对学生成绩信息的建立、增加、删除、查找、修改等功能*其他内容:无**当前版本ÿ... 查看详情

matlab设计一个学生管理系统(类与对象)(代码片段)

设计一个简单的学生成绩管理程序,包含如下功能:1、可创建不少于100名学生成员;2、每名成员的记录包括:学号、姓名、专业和5门课程的成绩; 3、能够实现添加、删除、修改学生成员;4、能够实现... 查看详情

c语言学生成绩管理系统课程设计

...法为基础,以VC++6.0集成开发环境为工具,实现学生成绩管理系统的设计和开发。学生成绩管理系统要求实现如下功能:1、学生信息的录入。如:学生编号、学生姓名、学生成绩。2、学生信息的查询。如:按学号查询、按成绩查... 查看详情

期末课程设计--学生成绩管理系统及开发(代码片段)

...a;2016年12月28日*版本号:v1.0**问题描述:学生成绩管理系统及开发**输入描述:无*程序输出:无*/Find.cpp#include<stdio.h>#include<windows.h>//清屏#include<iostream>#include<malloc.h>#include<string.h>#include"stud... 查看详情

matlab设计一个学生管理系统(简易结构体版)(代码片段)

设计一个简单的学生成绩管理程序,包含如下功能:1、可创建不少于100名学生成员;2、每名成员的记录包括:学号、姓名、专业和5门课程的成绩; 3、能够实现添加、删除、修改学生成员;4、能够实现... 查看详情

c语言程序设计班级学生成绩管理系统

C语言程序设计班级学生成绩管理系统解决时间:2009-6-2609:50基本要求1.初始化成绩表:将原成绩表的信息清空;2.显示班级学生成绩信息:按要求显示全部或特定学生成绩信息;3.插入学生成绩:插入一个学生成绩信息;4.修改学... 查看详情

java课程设计--学生成绩管理系统

一、团队名称:团队成员林艺薇201721123032网络1712黄毓颖201721123033网络1712唐川201721123034网络1712梁才玉201721123038网络1712任务分配二、项目git地址https://gitee.com/ev32/keshe/tree/master三、项目git提交记录截图四、项目功能架构图与主要功... 查看详情

matlabgui图形界面设计一个学生管理系统(代码片段)

设计一个简单的学生成绩管理程序,包含如下功能:1、可创建不少于100名学生成员;2、每名成员的记录包括:学号、姓名、专业和5门课程的成绩; 3、能够实现添加、删除、修改学生成员;(增加非... 查看详情

python课程设计之学生信息管理系统(代码片段)

Python课程设计之学生信息管理系统需求分析系统设计主函数设计录入学生信息删除学生信息修改学生信息查找学生信息统计学生总人数显示所有学生信息排序模块项目所有源码下载地址需求分析系统设计主函数设计核心代码defmai... 查看详情

课程设计|mfc学生成绩分析系统(含课程报告+源码)

目录简介一、系统概述与需求分析二、系统设计1.功能模块设计2.界面设计三、系统实现1.自定义类2.功能设计四、系统测试五、设计总结参考文献项目地址结语简介Hello!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢... 查看详情