python输入姓名专业班级_Python — 学生成绩管理

Python — 学生成绩管理

摘要

本次实验要求使用python语言,读取现有的班级花名册,写入SQlite数据库,逐个显示每一个学生的学号姓名,输入其python、英语等课程的成绩,写入SQLite数据库。全部记录结束后,计算大家的总分、名次,并显示整个花名册。

在实验过程中,我首先分析实验要求,决定使用”将Excel文件导入数据库、录入学生各科成绩信息、计算总成绩、显示输出、导出文件”的基本思路,使用cmd和Notepad++环境进行实验。在”录入信息方式”,”输出显示方式”,”整合代码”,“导出为Excel文件”等方面进行代码优化,最终完成学生成绩管理程序的编写,完成实验要求。

关键字:Python SQLite数据库 文件读写 学生信息管理

一、总体思路

读取现有的班级花名册,写入SQlite数据库,逐个显示每一个学生的学号姓名,输入其python、英语等课程的成绩,写入SQLite数据库。全部记录结束后,计算大家的总分、名次,并显示整个花名册。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pISjEyM0NTRE4=,size_16,color_FFFFFF,t_70

图1 流程图

二、设计思路

2.1数据录入部分

首先需要创建一个数据库表格,用于储存学生的数据。之后,读出excel表中的数据,将数据插入到数据库表格中。然后手动或自动录入成绩信息。

2.2数据计算部分

读取数据库中各科成绩的信息,求和得出总成绩,将总成绩记录并更新表格。

2.3输出部分

将数据库表格中的数据,以一定的格式进行输出,并生成excel文件保存。

三、具体实现过程

3.1读取excel数据

要读取excel文件,需要使用openpyxl模块,该模块是一个用于读取/写入Excel 2010 xlsx / xlsm / xltx / xltm文件的Python库。可以使用pip命令安装该模块。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pISjEyM0NTRE4=,size_16,color_FFFFFF,t_70图2 安装openpyxl模块

安装完成后,就可以执行命令,读取excel表格中的数据了。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pISjEyM0NTRE4=,size_16,color_FFFFFF,t_70图3 读取文件数据

在上图中,使用load_workbook()命令,打开了名为”DK172register.xlsx”的工作簿,使用.worksheet[0],选择第一张工作表。使用for语句对工作表内的数据循环输出。于是,程序就会将表格中的每行数据,以元组的形式输出。其中包括学号和姓名信息。

3.2创建数据库表格

可以读取数据之后,我们需要创建一个数据库表格,用于储存读到的文件。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pISjEyM0NTRE4=,size_16,color_FFFFFF,t_70图4 创建表格

上图中,使用sqlite3模块,创建了一个名为”class.db”的数据库对象,之后,在数据库中创建了一个名为”DK172”的表格。该表格包含”StudentID、Name、python_score、English_score、Total”这几个表头,分别用来代表”学号、姓名、python成绩、英语成绩、总成绩”。

3.3插入表格数据

创建表格完成之后,我们就可以将excel中的数据导入到数据库中了。在这里,我也遇到了一些问题。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pISjEyM0NTRE4=,size_16,color_FFFFFF,t_70图5 INSERT报错

在上图中,我使用sqlite3模块创建数据库,使用openpyxl模块读取到了表格中的文件。将学号信息储存在id变量中,将姓名信息储存在name变量中。想通过INSERT语句及那个这两个信息插入到数据库表格中。没想到程序发生了错误。

在百度上查找相关资料,发现是INSERT语句的格式不对,经过修改后,再次执行程序:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pISjEyM0NTRE4=,size_16,color_FFFFFF,t_70图6 插入数据

上面的语句中,我将VALUES中的内容替换为了(%d ‘%s’),并用格式控制字符%将id、name变量中的值传入了VALUES中。程序正常执行,显示了导入数据的情况。为了更加直观的看出数据库中的数据,我使用”DB Brower for SQLite”查看数据库内容。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pISjEyM0NTRE4=,size_16,color_FFFFFF,t_70图7 查看可视化界面

可以看出,数据已经成功地导入了数据库中。

3.4更新成绩数据

在将excel表格中的数据导入到数据库之后,就需要插入成绩数据了。一开始我尝试使用INSERT语句进行数据导入,成绩数据导入成功,但是在DB中查看数据库,发现并不是我们想要的结果。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pISjEyM0NTRE4=,size_16,color_FFFFFF,t_70图8 使用INSERT语句插入成绩数据

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pISjEyM0NTRE4=,size_16,color_FFFFFF,t_70图9 程序运行结果

由上图可以看到,刚刚使用INSERT语句插入的随机成绩数据,并不是插入到了我们想要的位置,而是增加了新的数据。所以应该使用其他语句执行该命令。

于是,我尝试使用UPDATE命令,更新原有表格中的数据,从而实现添加数据的效果。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值