X 
微信扫码联系客服
获取报价、解决方案


李经理
13913191678
首页 > 知识库 > 学工管理系统> 用Python搭建一个简单的‘学工管理系统’,结合崇左的地理信息
学工管理系统在线试用
学工管理系统
在线试用
学工管理系统解决方案
学工管理系统
解决方案下载
学工管理系统源码
学工管理系统
源码授权
学工管理系统报价
学工管理系统
产品报价

用Python搭建一个简单的‘学工管理系统’,结合崇左的地理信息

2026-01-24 20:05

大家好,今天咱们来聊聊怎么用Python做一个简单的“学工管理系统”,并且还和“崇左”这个地名有点关系。可能有人会问,学工管理系统是什么?其实就是学校里用来管理学生工作的系统,比如学生的成绩、考勤、奖惩之类的。而“崇左”是广西的一个城市,虽然看起来好像和学工系统没什么直接关系,但我们可以把系统设计得更“本地化”,比如加入一些地理信息功能。

 

首先,我得说一下,这篇文章不是那种纯理论的,也不是那种教你“怎么用”的那种,而是想通过实际代码和例子,让大家理解怎么从0开始做一个学工管理系统,同时还能结合一点地理信息的数据,比如地图坐标、天气等,让系统更有“地方特色”。

 

先来点轻松的,咱们先不急着写代码,先讲讲为什么要做这个系统。其实现在很多学校还在用比较传统的纸质记录或者Excel表格,效率低不说,还容易出错。如果有一个系统,能自动处理这些数据,那多方便啊。而且,如果你是一个程序员,或者刚接触编程的新手,这绝对是个不错的项目练手。

 

现在我们来说说技术方面。首先,我们要用什么语言?Python当然是首选,因为它的语法简单,生态丰富,很多库都可以直接用。比如,我们可以用Flask或者Django做Web框架,用SQLite或者MySQL做数据库,再配合一些前端技术,比如HTML、CSS、JavaScript,就能做出一个完整的系统了。

 

不过,为了简化问题,咱们这次先不搞前端,只做个后端的API,然后用命令行来操作。这样大家更容易理解,也更方便测试。当然,后面如果有兴趣的话,可以慢慢扩展成网页版。

 

接下来,咱们先来设计一下系统的结构。学工管理系统的核心功能应该包括:

 

- 学生信息管理(增删改查)

- 成绩管理

- 考勤记录

- 奖惩记录

- 地理信息查询(比如崇左的天气、地图)

 

今天我们先实现前三个功能,后面再说地理信息的事。

 

那么,先来写个简单的数据库模型。这里我们用SQLite,因为它不需要额外安装,直接用Python内置的sqlite3模块就可以。

 

    import sqlite3

    conn = sqlite3.connect('student.db')
    cursor = conn.cursor()

    # 创建学生表
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS students (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            name TEXT NOT NULL,
            student_id TEXT NOT NULL UNIQUE,
            major TEXT,
            class TEXT,
            gender TEXT
        )
    ''')

    # 创建成绩表
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS grades (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            student_id TEXT NOT NULL,
            course TEXT NOT NULL,
            score INTEGER
        )
    ''')

    # 创建考勤表
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS attendance (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            student_id TEXT NOT NULL,
            date DATE,
            status TEXT
        )
    ''')

    conn.commit()
    conn.close()
    

 

这段代码就是创建三个表:students、grades、attendance。每个表都有自己的字段,比如学生信息、成绩、考勤记录。注意,这里用了UNIQUE约束,确保每个学生的学号是唯一的,避免重复录入。

 

接下来,我们需要写一些函数来操作这些数据。比如添加学生、查询学生、更新成绩、记录考勤等等。

学工系统

 

    def add_student(name, student_id, major, class_name, gender):
        conn = sqlite3.connect('student.db')
        cursor = conn.cursor()
        cursor.execute("INSERT INTO students (name, student_id, major, class, gender) VALUES (?, ?, ?, ?, ?)",
                       (name, student_id, major, class_name, gender))
        conn.commit()
        conn.close()

    def get_students():
        conn = sqlite3.connect('student.db')
        cursor = conn.cursor()
        cursor.execute("SELECT * FROM students")
        results = cursor.fetchall()
        conn.close()
        return results

    def update_grade(student_id, course, score):
        conn = sqlite3.connect('student.db')
        cursor = conn.cursor()
        cursor.execute("UPDATE grades SET score = ? WHERE student_id = ? AND course = ?",
                       (score, student_id, course))
        conn.commit()
        conn.close()

    def record_attendance(student_id, date, status):
        conn = sqlite3.connect('student.db')
        cursor = conn.cursor()
        cursor.execute("INSERT INTO attendance (student_id, date, status) VALUES (?, ?, ?)",
                       (student_id, date, status))
        conn.commit()
        conn.close()
    

 

这些函数就是对数据库的基本操作。比如add_student是用来添加学生的,get_students是获取所有学生的信息,update_grade是修改成绩,record_attendance是记录考勤。

 

有了这些基础功能之后,我们可以写一个简单的命令行界面,让用户输入指令来操作系统。比如:

 

    def main():
        while True:
            print("\n学工管理系统")
            print("1. 添加学生")
            print("2. 查看学生")
            print("3. 修改成绩")
            print("4. 记录考勤")
            print("5. 退出")
            choice = input("请选择: ")

            if choice == '1':
                name = input("请输入姓名: ")
                student_id = input("请输入学号: ")
                major = input("请输入专业: ")
                class_name = input("请输入班级: ")
                gender = input("请输入性别: ")
                add_student(name, student_id, major, class_name, gender)
                print("学生已添加!")

            elif choice == '2':
                students = get_students()
                for student in students:
                    print(student)

            elif choice == '3':
                student_id = input("请输入学号: ")
                course = input("请输入课程: ")
                score = int(input("请输入成绩: "))
                update_grade(student_id, course, score)
                print("成绩已更新!")

            elif choice == '4':
                student_id = input("请输入学号: ")
                date = input("请输入日期 (YYYY-MM-DD): ")
                status = input("请输入状态 (正常/缺课/迟到): ")
                record_attendance(student_id, date, status)
                print("考勤已记录!")

            elif choice == '5':
                print("退出系统。")
                break

            else:
                print("无效选项,请重新选择。")

    if __name__ == "__main__":
        main()
    

 

这个主函数就是一个简单的命令行菜单,用户可以选择不同的操作。比如添加学生、查看学生、修改成绩、记录考勤,最后退出。

 

到这里,我们已经完成了一个非常基础的学工管理系统了。虽然它没有图形界面,也没有复杂的业务逻辑,但它确实具备了基本的学生信息管理功能。

 

现在,我们来聊聊“崇左”这个地名。虽然刚才的系统并没有直接和崇左相关联,但如果我们想让它更“本地化”,可以加入一些地理信息的功能。比如,查询崇左的天气、地图位置,甚至根据学生所在地区推荐课程或活动。

 

比如,我们可以用OpenWeatherMap API来获取崇左的天气信息。不过这个需要注册一个API密钥,这里就不详细展开,但你可以参考下面的代码:

 

    import requests

    def get_weather(city):
        api_key = "你的API密钥"
        url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}"
        response = requests.get(url)
        data = response.json()
        if data["cod"] != 200:
            return "无法获取天气信息"
        weather = data["weather"][0]["description"]
        temperature = data["main"]["temp"] - 273.15  # 转换为摄氏度
        return f"{city} 的天气是 {weather},温度是 {temperature:.1f}°C"

    print(get_weather("Chongzuo"))
    

 

这段代码就是调用OpenWeatherMap API来获取崇左的天气信息。当然,你得自己去申请一个API密钥,才能运行这段代码。

 

如果你有更多时间,还可以把天气信息集成到学工管理系统中,比如在学生信息页面显示他们所在城市的天气,或者在系统中加入“根据天气推荐课程”这样的功能。

 

总结一下,今天我们用Python写了一个简单的学工管理系统,包括学生信息管理、成绩管理和考勤记录。虽然功能比较简单,但它是建立在真实需求上的,非常适合新手练习。同时,我们也提到了如何将系统与“崇左”这样的地理信息结合起来,让系统更具本地特色。

 

如果你对这个项目感兴趣,可以继续扩展它,比如加入前端页面、权限管理、数据分析等功能。也可以尝试连接更多的外部API,比如地图服务、天气预报、甚至短信通知等,让系统变得更强大。

 

最后,希望这篇文章对你有帮助,也欢迎你在评论区分享你的想法或者提出问题。如果你觉得有用,记得点赞和转发哦!

本站知识库部分内容及素材来源于互联网,如有侵权,联系必删!

标签: