基于python PyQt5的学生管理系统,包括学生成绩和学生信息的增删改查

本项目旨在开发一个基于Python和PyQt5的学生管理系统,主要功能包括学生成绩和学生信息的增删改查。该系统为学校和教育机构提供了一个高效且直观的学生数据管理工具,简化了信息录入和查询的流程,提升了管理效率。

项目背景


随着教育信息化的推进,传统的纸质学生档案管理方式逐渐被电子化管理系统所取代。现有的管理系统大多功能繁杂,对于中小型教育机构而言,开发一个功能精简且易于使用的学生管理系统尤为重要。本项目基于此需求,选择了Python作为开发语言,并利用PyQt5构建图形用户界面(GUI),旨在创建一个轻量级、功能实用的学生管理系统。

项目功能


学生信息管理:

新增:用户可以通过系统界面输入学生的基本信息,如姓名、性别、年龄、学号、班级等,并将这些信息存储到数据库中。
删除:管理员可以通过搜索或选择学生记录进行删除操作,确保数据库中的信息时刻保持最新。
修改:系统支持对现有学生信息进行修改,用户可以更新学生的基本信息,保证数据的准确性。
查询:用户可以通过学号、姓名等关键字快速检索学生信息,方便查看或编辑。


学生成绩管理:

新增成绩:系统允许教师输入学生的各科成绩,并将其存储在数据库中。
删除成绩:在需要时,教师可以删除学生的某科成绩或整个学期的成绩记录。
修改成绩:教师可以对已录入的成绩进行更改,确保记录的准确性。
成绩查询:通过输入学生学号或姓名,用户可以快速查询到该生的所有成绩,系统还可以生成简易的成绩单。


用户友好界面:

直观操作:系统采用PyQt5进行界面开发,提供直观的菜单和按钮布局,用户无需复杂的培训即可上手操作。
数据存储:系统采用SQLite数据库进行数据存储,支持基本的CRUD操作,数据持久性强且查询响应快。


项目意义


该学生管理系统简化了日常的学生信息和成绩管理流程,降低了人工操作的复杂度,减少了数据管理中的人为错误风险。由于系统使用Python和PyQt5开发,具有较好的跨平台兼容性,适用于Windows、macOS、Linux等操作系统。这种简单易用且功能完善的管理系统,非常适合中小型教育机构、培训班等场景,为日常的学生数据管理提供了有力的支持。


本系统通过Python和PyQt5构建,具备学生信息与成绩的增删改查功能,界面友好,操作简便。它能够有效提升学校或教育机构的管理效率,减少数据处理过程中的出错率,为教育管理提供了高效的工具。

效果图如下

有需要的关注我获取!

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于 Python + SQL Server + PyQt5学生成绩管理系统的代码示例,实现了登录和增删改查操作: ```python import sys import pyodbc from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QTableWidget, QTableWidgetItem, QMessageBox class MainWindow(QWidget): def __init__(self): super().__init__() # 连接数据库 self.conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=mydatabase;UID=myusername;PWD=mypassword') self.cursor = self.conn.cursor() # 设置窗口 self.setWindowTitle('学生成绩管理系统') self.setGeometry(100, 100, 500, 500) # 设置控件 self.label_username = QLabel('用户名:', self) self.label_username.move(50, 50) self.edit_username = QLineEdit(self) self.edit_username.move(120, 50) self.label_password = QLabel('密码:', self) self.label_password.move(50, 100) self.edit_password = QLineEdit(self) self.edit_password.move(120, 100) self.edit_password.setEchoMode(QLineEdit.Password) self.button_login = QPushButton('登录', self) self.button_login.move(150, 150) self.button_login.clicked.connect(self.login) self.table = QTableWidget(self) self.table.setGeometry(50, 200, 400, 200) self.table.setColumnCount(3) self.table.setHorizontalHeaderLabels(['学号', '姓名', '成绩']) self.button_add = QPushButton('添加', self) self.button_add.move(50, 420) self.button_add.clicked.connect(self.add) self.button_delete = QPushButton('删除', self) self.button_delete.move(150, 420) self.button_delete.clicked.connect(self.delete) self.button_update = QPushButton('修改', self) self.button_update.move(250, 420) self.button_update.clicked.connect(self.update) self.button_query = QPushButton('查询', self) self.button_query.move(350, 420) self.button_query.clicked.connect(self.query) def login(self): # 获取用户名和密码 username = self.edit_username.text() password = self.edit_password.text() # 查询数据库,判断是否有该用户 self.cursor.execute("SELECT COUNT(*) FROM users WHERE username=? AND password=?", (username, password)) result = self.cursor.fetchone() if result[0] == 1: QMessageBox.information(self, '提示', '登录成功!') else: QMessageBox.warning(self, '警告', '用户名或密码错误!') def add(self): # 打开添加学生信息的对话框 pass def delete(self): # 获取选中的学生学号 selected_row = self.table.currentRow() if selected_row == -1: QMessageBox.warning(self, '警告', '请先选择一行!') return student_id = self.table.item(selected_row, 0).text() # 在数据库中删除该学生信息 self.cursor.execute("DELETE FROM students WHERE student_id=?", (student_id,)) self.conn.commit() # 刷新表格 self.query() def update(self): # 获取选中的学生学号和修改后的成绩 selected_row = self.table.currentRow() if selected_row == -1: QMessageBox.warning(self, '警告', '请先选择一行!') return student_id = self.table.item(selected_row, 0).text() new_score, ok = QInputDialog.getInt(self, '修改成绩', '请输入新的成绩:') if not ok: return # 在数据库中更新该学生信息 self.cursor.execute("UPDATE students SET score=? WHERE student_id=?", (new_score, student_id)) self.conn.commit() # 刷新表格 self.query() def query(self): # 查询数据库,获取所有学生信息 self.cursor.execute("SELECT * FROM students") results = self.cursor.fetchall() # 在表格中显示学生信息 self.table.setRowCount(len(results)) for i, result in enumerate(results): self.table.setItem(i, 0, QTableWidgetItem(str(result[0]))) self.table.setItem(i, 1, QTableWidgetItem(result[1])) self.table.setItem(i, 2, QTableWidgetItem(str(result[2]))) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 上述代码中,我们使用了 pyodbc 库来连接 SQL Server 数据库,并且使用 PyQt5 库来创建 GUI 界面。在登录功能中,我们查询数据库,判断是否有该用户;在增删改查功能中,我们通过 SQL 语句来操作数据库,然后在表格中显示或修改学生信息。注意,这里的 SQL 语句只是示例,具体的 SQL 语句要根据实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值