基于Python+mysql学生信息管理系统项目源码

题目描述

使用Python连接mysql数据库编写学生信息管理系统,

数据信息包括学生学号,学生名字,学生性别,学生电话,学生专业,学生专业方向,学生年级,学生班级,密码。

功能要包括学生账号登录,学生信息注册,通过学号查询学生信息,通过手机号查询学生信息,

通过专业名查询学生信息,通过专业方向查询学生信息,查询所以学生信息,退出系统。要求可以全部正常运行。

问题分析

用户需求是构建一个学生信息系统,该系统需要使用Python连接MySQL数据库,并实现以下功能:

  1. 学生账号登录
  2. 学生信息注册
  3. 通过学号查询学生信息
  4. 通过手机号查询学生信息
  5. 通过专业名查询学生信息
  6. 通过专业方向查询学生信息
  7. 查询所有学生信息
  8. 退出系统

解决方案

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代码来实现上述功能。代码大纲如下:

  1. 连接数据库
  2. 定义学生信息类
  3. 实现学生账号登录功能
  4. 实现学生信息注册功能
  5. 实现通过学号查询学生信息功能
  6. 实现通过手机号查询学生信息功能
  7. 实现通过专业名查询学生信息功能
  8. 实现通过专业方向查询学生信息功能
  9. 实现查询所有学生信息功能
  10. 实现退出系统功能

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
喜欢就支持一下吧
点赞14赞赏 分享