python学生素质分管理系统,可以连接数据库。
有ABCD4类素质分,分别由不同的活动加分。
首先,我们需要连接数据库,可以使用 Python 的数据库连接库如 MySQLdb、PyMySQL 等。
然后,我们可以定义一个学生信息类,来存储学生的基本信息,包括学号、姓名、年级、专业等。
接下来,我们可以定义一个素质分类,来存储每个学生的素质分信息,包括学号、A 类素质分、B 类素质分、C 类素质分、D 类素质分、4 类素质分。
然后,我们可以定义一个活动信息类,来存储每个活动的信息,包括活动名称、活动时间、活动地点、活动负责人等。
最后,我们可以定义一个学生素质分管理系统类,来实现对学生信息、素质分信息、活动信息的管理,包括查询、修改、添加、删除等功能。
例如,我们可以定义如下代码:
import pymysql
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='', db='student_quality_management_system', charset='utf8')
# 创建游标
cursor = conn.cursor()
# 定义学生信息类
class Student:
def __init__(self, id, name, grade, major):
self.id = id
self.name = name
self.grade = grade
self.major = major
# 定义素质分类
class QualityScore:
def init(self, id, a, b, c, d, four):
self.id = id
self.a = a
self.b = b
self.c = c
self.d = d
self.four = four
# 定义活动信息类
class Activity:
def init(self, name, time, place, leader):
self.name = name
self.time = time
self.place = place
self.leader = leader
# 定义学生素质分管理系统类
class StudentQualityManagementSystem:
def init(self):
self.students = {} # 学生信息字典,key 为学号,value 为学生信息对象
self.qualityScores = {} # 素质分字典,key 为学号,value 为素质分对象
self.activities = {} # 活动信息字典,key 为活动名称,value 为活动信息对象
# 查询学生信息
def findStudent(self, id):
if id in self.students:
return self.students[id]
else:
print("学生不存在!")
# 查询素质分信息
def findQualityScore(self, id):
if id in self.qualityScores:
return self.qualityScores[id]
else:
print("素质分信息不存在!")
# 查询活动信息
def findActivity(self, name):
if name in self.activities:
return self.activities[name]
else:
print("活动信息不存在!")
# 修改学生信息
def updateStudent(self, student):
if student.id in self.students:
self.students[student.id] = student
else:
print("学生不存在!")
# 修改素质分信息
def updateQualityScore(self, qualityScore):
if qualityScore.id in self.qualityScores:
self.qualityScores[qualityScore.id] = qualityScore
else:
print("素质分信息不存在!")
# 修改活动信息
def updateActivity(self, activity):
if activity.name in self.activities:
self.activities[activity.name] = activity
else:
print("活动信息不存在!")
# 添加学生信息
def addStudent(self, student):
if student.id not in self.students:
self.students[student.id] = student
else:
print("学生已存在!")
# 添加素质分信息
def addQualityScore(self, qualityScore):
if qualityScore.id not in self.qualityScores:
self.qualityScores[qualityScore.id] = qualityScore
else:
print("素质分信息已存在!")
# 添加活动信息
def addActivity(self, activity):
if activity.name not in self.activities:
self.activities[activity.name] = activity
else:
print("活动信息已存在!")
# 删除学生信息
def deleteStudent(self, id):
if id in self.students:
del self.students[id]
else:
print("学生不存在!")
# 删除素质分信息
def deleteQualityScore(self, id):
if id in self.qualityScores:
del self.qualityScores[id]
else:
print("素质分信息不存在!")
# 删除活动信息
def deleteActivity(self, name):
if name in self.activities:
del self.activities[name]
else:
print("活动信息不存在!")
# 创建学生素质分管理系统对象
sms = StudentQualityManagementSystem()
# 添加学生信息
sms.addStudent(Student("001", "张三", "大一", "计算机科学与技术"))
sms.addStudent(Student("002", "李四", "大二", "电子工程"))
# 查询学生信息
student = sms.findStudent("001")
print("学号:" + student.id + ", 姓名:" + student.name + ", 年级:" + student.grade + ", 专业:" + student.major)
# 修改学生信息
sms.updateStudent(Student("001", "张三", "大二", "计算机科学与技术"))
# 再次查询学生信息
student = sms.findStudent("001")
print("学号:" + student.id + ", 姓名:" + student.name + ", 年级:" + student.grade + ", 专业:" + student.major)
# 添加素质分信息
sms.addQualityScore(QualityScore("001", 100, 50, 25, 10, 5))
# 查询素质分信息
qualityScore = sms.findQualityScore("001")
print("学号:" + qualityScore.id + ", A 类素质分:" + str(qualityScore.a) + ", B 类素质分:" + str(qualityScore.b) + ", C 类素质分:" + str(qualityScore.c) + ", D 类素质分:" + str(qualityScore.d) + ", 4 类素质分:" + str(qualityScore.four))
# 修改素质分信息
sms.updateQualityScore(QualityScore("001", 90, 40, 20, 10, 5))
# 再次查询素质分信息
qualityScore = sms.findQualityScore("001")
print("学号:" + qualityScore.id + ", A 类素质分:" + str(qualityScore.a) + ", B 类素质分:" + str(qualityScore.b) + ", C 类素质分:" + str(qualityScore.c) + ", D 类素质分:" + str(qualityScore.d) + ", 4 类素质分:" + str(qualityScore.four))
# 添加活动信息
sms.addActivity(Activity("社团招新", "2020-01-01", "学生活动中心", "张三"))
# 查询活动信息
activity = sms.findActivity("社团招新")
print("活动名称:" + activity.name + ", 时间:" + activity.time + ", 地点:" + activity.place + ", 负责人:" + activity.leader)
# 修改活动信息
sms.updateActivity(Activity("社团招新", "2020-02-01", "学生活动中心", "李四"))
# 再次查询活动信息
activity = sms.findActivity("社团招新")
print("活动名称:" + activity.name + ", 时间:" + activity.time + ", 地点:" + activity.place + ", 负责人:" + activity.leader)
# 删除学生信息
sms.deleteStudent("001")
# 删除素质分信息
sms.deleteQualityScore("001")
# 删除活动信息
sms.deleteActivity("社团招新")
# 关闭数据库连接
conn.close()