[python课程设计1]学生成绩管理系统

引言

本课程设计使用数据库,熟悉了Python语言操作数据库,对数据库的增删改查,实现Qt designer界面设计以及excel表格的读写,代码通俗易懂,方便对所学知识的掌握。

需求分析

  1. 用类对学生成绩、代码封装使得操作使用简单;

  1. 利用数据库,增加了操作大量数据的效率,便于增删改查;

  1. 将信息读取数据库,更新后写入数据库,及时备份;

  1. 界面设计,可以在实际中直接应用此项目。

  1. 熟悉了对于界面的背景设计、字体、空间颜色、美化风格等的设计,使界面使用更直观。

概要设计

数据库的使用

使用PyMySQL模块操作数据库对数据进行存取

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

PyMySQL是封装了MySQL驱动的Python驱动,一个能使Python连接到MySQL的库。数据库的名称、密码都是自己设定的。

 #定义了一个操作数据库的类,包括增删改查等功能
class PyMySQL:
    def __init__(self):
        # 建立一个MySQL连接
        self.db = pymysql.connect(
            host='localhost',
            user='root',
            passwd='root',
            db='test',
            port=3306,
            charset='utf8'
        )

        # 获得游标
        self.cursor = self.db.cursor()

    # 关闭连接
    def close(self):
        # 关闭游标
        self.cursor.close()
        # 关闭数据库连接
        self.db.close()

    # 查询多条数据
    def fetchall(self, sql):
        self.cursor.execute(sql)
        res = self.cursor.fetchall()
        return res

    # 获取单条数据
    def fetchone(self, sql):
        self.cursor.execute(sql)
        res = self.cursor.fetchone()
        return res

    def execute(self, sql):
        try:
            self.cursor.execute(sql)
            self.db.commit()
        except:
            self.db.rollback()

将存放学生成绩的excel表格导入到数据库中。

安装数据库

本机安装了数据库(使用数据库操作方便快捷,若没有安装数据库,本课程设计可以使用excel表格存储查找,同样也可以。并且在使用数据库时,确保数据库是打开的,在电脑-服务-查看)

新建数据库

create database student_score; 在数据库中新建了存放学生成绩的表格和存放教师登陆信息的表格。

使用数据库

use database ***

在数据库中创建表格create table ***,可以使用命令行也可以在数据库软件中直接创建,代码中创建也可以。多种方式自选

CREATE TABLE IF NOT EXISTS teacher_login(
                            username varchar(32) NOT NULL,
                            password varchar(32) NOT NULL

读取excel表格内容

excel数据存入到数据库的表格中
[python课程设计1]学生成绩管理系统_第1张图片

将存放学生成绩信息的数据存入到数据库的表格中

[python课程设计1]学生成绩管理系统_第2张图片

在数据库中可以查看到数据存放成功了

[python课程设计1]学生成绩管理系统_第3张图片

详细设计

本部分主要分为三个界面类

教师登陆界面

登陆界面中需要查看数据库中教师的信息是否存在,密码是否正确,并给出对应的提示

登陆代码
[python课程设计1]学生成绩管理系统_第4张图片
显示界面
[python课程设计1]学生成绩管理系统_第5张图片
[python课程设计1]学生成绩管理系统_第6张图片
[python课程设计1]学生成绩管理系统_第7张图片

教师注册界面

教师注册界面将注册信息存放到数据库中,对于注册输入的信息给出响应的提示

[python课程设计1]学生成绩管理系统_第8张图片
在数据库中查看注册信息是否导入
[python课程设计1]学生成绩管理系统_第9张图片
效果
[python课程设计1]学生成绩管理系统_第10张图片
[python课程设计1]学生成绩管理系统_第11张图片
[python课程设计1]学生成绩管理系统_第12张图片

教师操作界面

[python课程设计1]学生成绩管理系统_第13张图片

对学生的成绩信息进行操作,可以增添、修改、查询、删除、导出

特别注意的是,增添信息后,数据库和界面表格中的信息都要有同样的操作,显示界面要实时刷新!!

增添信息
[python课程设计1]学生成绩管理系统_第14张图片
[python课程设计1]学生成绩管理系统_第15张图片

注意数据库和界面表格中的信息都要更新

修改信息
[python课程设计1]学生成绩管理系统_第16张图片

[python课程设计1]学生成绩管理系统_第17张图片

[python课程设计1]学生成绩管理系统_第18张图片
[python课程设计1]学生成绩管理系统_第19张图片

查询信息
[python课程设计1]学生成绩管理系统_第20张图片
[python课程设计1]学生成绩管理系统_第21张图片

若学号不存在,则查询失败

[python课程设计1]学生成绩管理系统_第22张图片
[python课程设计1]学生成绩管理系统_第23张图片

删除信息
[python课程设计1]学生成绩管理系统_第24张图片

删除失败

[python课程设计1]学生成绩管理系统_第25张图片

删除成功,数据库与界面表格中的数据都不存在了。

导出信息

将文件的信息写入到对应的excel文件中,文件名可以设定为当前的时间。

提示

[python课程设计1]学生成绩管理系统_第26张图片

默认写入成功到当前运行的文件夹,文件名为当前的时间,可以根据需要修改

[python课程设计1]学生成绩管理系统_第27张图片

总结与分析

熟悉了数据库的使用,使得大量数据操作起来方便快捷。Qt界面设计减少了代码的编写。

遇到的问题

  1. excel表格中的数据变了,但是界面表格中的数据未改变。由于采用了insert into到数据库,若主键已存在,数据就不会更新,必须加一个判断,若数据记录存在的话,删除再新加。或者使用replace into.

  1. 及时查看数据库中的信息,确保数据可以正常增删改查

  1. 注意界面的引用,容易出现界面显示不正常

  1. 在插入、更新操作中数据库中的信息无法更新,检查后发现是由于添加的信息项有缺失,无法加入。

你可能感兴趣的:(python,桌面程序,课程设计,pyqt,数据库,python)