当前位置: 首页 > 新闻资讯  > 招生系统

手把手教你打造一个简单的招生管理系统

本文将通过口语化的表达,详细讲解如何构建一个基础的招生管理系统,并提供具体代码示例,帮助读者快速上手。

大家好!今天咱们来聊聊如何用Python和SQLite打造一个简单但功能齐全的招生管理系统。这个系统可以用来存储学生信息、课程信息以及他们的报名情况。听起来是不是很酷?接下来我们就一步一步来实现它!

 

首先,我们需要设计数据库结构。假设我们的系统需要以下几张表:

1. 学生表(students):包含学生的姓名、年龄等基本信息。

2. 课程表(courses):列出所有可选的课程及其详情。

3. 报名表(enrollments):记录每个学生选择了哪些课程。

招生管理系统

 

接下来是创建数据库和表的代码:

import sqlite3

def create_tables():
    conn = sqlite3.connect('recruitment.db')
    cursor = conn.cursor()
    
    # 创建学生表
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS students (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            name TEXT NOT NULL,
            age INTEGER
        );
    ''')
    
    # 创建课程表
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS courses (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            title TEXT NOT NULL,
            description TEXT
        );
    ''')
    
    # 创建报名表
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS enrollments (
            student_id INTEGER,
            course_id INTEGER,
            FOREIGN KEY(student_id) REFERENCES students(id),
            FOREIGN KEY(course_id) REFERENCES courses(id)
        );
    ''')
    
    conn.commit()
    conn.close()

create_tables()

 

然后我们可以编写一些辅助函数来添加数据。比如,添加新学生:

def add_student(name, age):
    conn = sqlite3.connect('recruitment.db')
    cursor = conn.cursor()
    cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", (name, age))
    conn.commit()
    conn.close()

 

同样地,我们也可以添加课程和报名记录。最后,为了查看所有已报名的学生及其课程,可以使用如下查询:

def list_enrollments():
    conn = sqlite3.connect('recruitment.db')
    cursor = conn.cursor()
    cursor.execute("""
        SELECT s.name AS student_name, c.title AS course_title
        FROM students s
        JOIN enrollments e ON s.id = e.student_id
        JOIN courses c ON e.course_id = c.id;
    """)
    results = cursor.fetchall()
    for row in results:
        print(f"{row[0]} 注册了 {row[1]}")
    conn.close()

 

好了朋友们,这就是一个非常基础的招生管理系统的核心部分啦!你可以根据需求继续扩展功能,比如增加删除或修改记录的功能。希望这篇文章对你有所帮助,如果有任何问题欢迎留言讨论哦!

]]>

相关资讯

    暂无相关的数据...