题目描述
使用Python连接mysql数据库编写学生信息管理系统,
数据信息包括学生学号,学生名字,学生性别,学生电话,学生专业,学生专业方向,学生年级,学生班级,密码。
功能要包括学生账号登录,学生信息注册,通过学号查询学生信息,通过手机号查询学生信息,
通过专业名查询学生信息,通过专业方向查询学生信息,查询所以学生信息,退出系统。要求可以全部正常运行。
问题分析
用户需求是构建一个学生信息系统,该系统需要使用Python连接MySQL数据库,并实现以下功能:
- 学生账号登录
- 学生信息注册
- 通过学号查询学生信息
- 通过手机号查询学生信息
- 通过专业名查询学生信息
- 通过专业方向查询学生信息
- 查询所有学生信息
- 退出系统
解决方案
1. 数据库设计
首先,我们需要设计数据库表结构来存储学生信息。表结构如下:
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(50),
gender VARCHAR(10),
phone VARCHAR(15),
major VARCHAR(50),
major_direction VARCHAR(50),
grade VARCHAR(10),
class VARCHAR(10),
password VARCHAR(50)
);
2. Python代码大纲
接下来,我们编写Python代码来实现上述功能。代码大纲如下:
- 连接数据库
- 定义学生信息类
- 实现学生账号登录功能
- 实现学生信息注册功能
- 实现通过学号查询学生信息功能
- 实现通过手机号查询学生信息功能
- 实现通过专业名查询学生信息功能
- 实现通过专业方向查询学生信息功能
- 实现查询所有学生信息功能
- 实现退出系统功能
3. 具体代码实现
import mysql.connector
from mysql.connector import Error
# 连接数据库
def connect_db():
try:
connection = mysql.connector.connect(
host='localhost',
database='student_db',
user='root',
password='your_password'
)
return connection
except Error as e:
print(f"数据库连接错误: {e}")
return None
# 学生信息类
class Student:
def __init__(self, student_id, name, gender, phone, major, major_direction, grade, class_, password):
self.student_id = student_id
self.name = name
self.gender = gender
self.phone = phone
self.major = major
self.major_direction = major_direction
self.grade = grade
self.class_ = class_
self.password = password
# 学生账号登录
def login(connection, student_id, password):
cursor = connection.cursor()
query = "SELECT * FROM students WHERE student_id = %s AND password = %s"
cursor.execute(query, (student_id, password))
result = cursor.fetchone()
cursor.close()
return result
# 学生信息注册
def register(connection, student):
cursor = connection.cursor()
query = """
INSERT INTO students (student_id, name, gender, phone, major, major_direction, grade, class, password)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)
"""
cursor.execute(query, (student.student_id, student.name, student.gender, student.phone, student.major, student.major_direction, student.grade, student.class_, student.password))
connection.commit()
cursor.close()
# 通过学号查询学生信息
def query_by_id(connection, student_id):
cursor = connection.cursor()
query = "SELECT * FROM students WHERE student_id = %s"
cursor.execute(query, (student_id,))
result = cursor.fetchone()
cursor.close()
return result
# 通过手机号查询学生信息
def query_by_phone(connection, phone):
cursor = connection.cursor()
query = "SELECT * FROM students WHERE phone = %s"
cursor.execute(query, (phone,))
result = cursor.fetchone()
cursor.close()
return result
# 通过专业名查询学生信息
def query_by_major(connection, major):
cursor = connection.cursor()
query = "SELECT * FROM students WHERE major = %s"
cursor.execute(query, (major,))
result = cursor.fetchall()
cursor.close()
return result
# 通过专业方向查询学生信息
def query_by_major_direction(connection, major_direction):
cursor = connection.cursor()
query = "SELECT * FROM students WHERE major_direction = %s"
cursor.execute(query, (major_direction,))
result = cursor.fetchall()
cursor.close()
return result
# 查询所有学生信息
def query_all(connection):
cursor = connection.cursor()
query = "SELECT * FROM students"
cursor.execute(query)
result = cursor.fetchall()
cursor.close()
return result
# 退出系统
def exit_system():
print("退出系统")
exit()
# 主函数
def main():
connection = connect_db()
if not connection:
return
while True:
print("1. 学生账号登录")
print("2. 学生信息注册")
print("3. 通过学号查询学生信息")
print("4. 通过手机号查询学生信息")
print("5. 通过专业名查询学生信息")
print("6. 通过专业方向查询学生信息")
print("7. 查询所有学生信息")
print("8. 退出系统")
choice = input("请输入选项: ")
if choice == '1':
student_id = input("请输入学号: ")
password = input("请输入密码: ")
result = login(connection, student_id, password)
if result:
print("登录成功")
else:
print("登录失败")
elif choice == '2':
student_id = input("请输入学号: ")
name = input("请输入姓名: ")
gender = input("请输入性别: ")
phone = input("请输入电话: ")
major = input("请输入专业: ")
major_direction = input("请输入专业方向: ")
grade = input("请输入年级: ")
class_ = input("请输入班级: ")
password = input("请输入密码: ")
student = Student(student_id, name, gender, phone, major, major_direction, grade, class_, password)
register(connection, student)
print("注册成功")
elif choice == '3':
student_id = input("请输入学号: ")
result = query_by_id(connection, student_id)
if result:
print(result)
else:
print("未找到该学生信息")
elif choice == '4':
phone = input("请输入手机号: ")
result = query_by_phone(connection, phone)
if result:
print(result)
else:
print("未找到该学生信息")
elif choice == '5':
major = input("请输入专业名: ")
result = query_by_major(connection, major)
if result:
for row in result:
print(row)
else:
print("未找到该专业学生信息")
elif choice == '6':
major_direction = input("请输入专业方向: ")
result = query_by_major_direction(connection, major_direction)
if result:
for row in result:
print(row)
else:
print("未找到该专业方向学生信息")
elif choice == '7':
result = query_all(connection)
if result:
for row in result:
print(row)
else:
print("未找到学生信息")
elif choice == '8':
exit_system()
else:
print("无效选项,请重新输入")
if __name__ == "__main__":
main()
总结
以上代码实现了一个基本的学生信息系统,包括数据库连接、学生信息类定义、各种查询功能以及系统退出功能。用户可以根据需要进一步扩展和优化系统功能。
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END