使用python图形化工具和数据库系统完成学生信息管理系统
时间: 2024-01-03 20:05:48 浏览: 136
好的,关于学生信息管理系统,您需要考虑以下几个方面:
1. 界面设计:您可以使用Python的图形界面开发工具,比如PyQt、Tkinter、wxPython等,来设计一个用户友好的界面。
2. 数据库设计:您需要设计一个数据库来存储学生信息,可以使用MySQL、SQLite、Oracle等数据库系统。
3. 功能实现:您需要实现添加、修改、删除、查询学生信息等基本功能,同时还可以增加一些高级功能,比如统计分析、导出报表等。
下面是一个基本的示例代码(仅供参考):
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QTableWidget, QTableWidgetItem
import pymysql
class StudentManagement(QWidget):
def __init__(self):
super().__init__()
self.initUI()
self.db = pymysql.connect("localhost", "root", "123456", "testdb")
self.cursor = self.db.cursor()
def initUI(self):
self.setGeometry(300, 300, 600, 500)
self.setWindowTitle('学生信息管理系统')
# 添加学生信息的控件
self.add_name_label = QLabel('姓名', self)
self.add_name_label.move(20, 20)
self.add_name_edit = QLineEdit(self)
self.add_name_edit.move(80, 20)
self.add_age_label = QLabel('年龄', self)
self.add_age_label.move(20, 60)
self.add_age_edit = QLineEdit(self)
self.add_age_edit.move(80, 60)
self.add_major_label = QLabel('专业', self)
self.add_major_label.move(20, 100)
self.add_major_edit = QLineEdit(self)
self.add_major_edit.move(80, 100)
self.add_button = QPushButton('添加', self)
self.add_button.move(20, 140)
self.add_button.clicked.connect(self.add_student)
# 修改学生信息的控件
self.modify_id_label = QLabel('ID', self)
self.modify_id_label.move(300, 20)
self.modify_id_edit = QLineEdit(self)
self.modify_id_edit.move(340, 20)
self.modify_name_label = QLabel('姓名', self)
self.modify_name_label.move(300, 60)
self.modify_name_edit = QLineEdit(self)
self.modify_name_edit.move(340, 60)
self.modify_age_label = QLabel('年龄', self)
self.modify_age_label.move(300, 100)
self.modify_age_edit = QLineEdit(self)
self.modify_age_edit.move(340, 100)
self.modify_major_label = QLabel('专业', self)
self.modify_major_label.move(300, 140)
self.modify_major_edit = QLineEdit(self)
self.modify_major_edit.move(340, 140)
self.modify_button = QPushButton('修改', self)
self.modify_button.move(300, 180)
self.modify_button.clicked.connect(self.modify_student)
# 删除学生信息的控件
self.delete_id_label = QLabel('ID', self)
self.delete_id_label.move(300, 220)
self.delete_id_edit = QLineEdit(self)
self.delete_id_edit.move(340, 220)
self.delete_button = QPushButton('删除', self)
self.delete_button.move(300, 260)
self.delete_button.clicked.connect(self.delete_student)
# 查询学生信息的控件
self.query_button = QPushButton('查询', self)
self.query_button.move(20, 180)
self.query_button.clicked.connect(self.query_student)
self.table_widget = QTableWidget(self)
self.table_widget.setGeometry(20, 220, 250, 250)
self.table_widget.setColumnCount(4)
self.table_widget.setHorizontalHeaderLabels(['ID', '姓名', '年龄', '专业'])
self.show()
def add_student(self):
name = self.add_name_edit.text()
age = self.add_age_edit.text()
major = self.add_major_edit.text()
sql = "INSERT INTO student (name, age, major) VALUES ('%s', '%s', '%s')" % (name, age, major)
try:
self.cursor.execute(sql)
self.db.commit()
self.add_name_edit.setText('')
self.add_age_edit.setText('')
self.add_major_edit.setText('')
except:
self.db.rollback()
def modify_student(self):
id = self.modify_id_edit.text()
name = self.modify_name_edit.text()
age = self.modify_age_edit.text()
major = self.modify_major_edit.text()
sql = "UPDATE student SET name='%s', age='%s', major='%s' WHERE id=%s" % (name, age, major, id)
try:
self.cursor.execute(sql)
self.db.commit()
self.modify_id_edit.setText('')
self.modify_name_edit.setText('')
self.modify_age_edit.setText('')
self.modify_major_edit.setText('')
except:
self.db.rollback()
def delete_student(self):
id = self.delete_id_edit.text()
sql = "DELETE FROM student WHERE id=%s" % (id)
try:
self.cursor.execute(sql)
self.db.commit()
self.delete_id_edit.setText('')
except:
self.db.rollback()
def query_student(self):
self.table_widget.clearContents()
sql = "SELECT * FROM student"
self.cursor.execute(sql)
results = self.cursor.fetchall()
self.table_widget.setRowCount(len(results))
for i, row in enumerate(results):
for j, item in enumerate(row):
self.table_widget.setItem(i, j, QTableWidgetItem(str(item)))
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = StudentManagement()
sys.exit(app.exec_())
```
这是一个使用PyQt5实现的学生信息管理系统示例代码,其中使用了MySQL数据库。当然,您可以根据自己的需要进行修改和完善。
阅读全文