• 【项目开发 | C语言项目 | C语言课程管理系统】


    本项目是一个简易的课程管理系统,为了帮助用户管理大学课程信息。用户可以进行课程的添加、删除、查看、搜索和修改等操作。适用于初学者学习c语言,也适用于高校学生课程设计,毕业设计参考。

    一,开发环境需求

    • 操作系统:Windows, Linux

    • 开发环境工具:QT, VSCode, Visual Studio

    • 技术要求

      • 语言:C语言
      • 文件操作:C语言标准库中的文件操作函数
      • 数据结构:结构体

    二,功能说明

    在这里插入图片描述

    三,功能实现

    1. 查看课程

    void listCourses() {
        readCoursesFromFile(courses, &numCourses);  // 从文件读取课程信息
        printf("课程编号 课程名称 教师名称 上课时间 上课地点\n");
        for (int i = 0; i < numCourses; i++) {
            printf("%s %s %s %s %s\n",
                   courses[i].courseID, courses[i].courseName,
                   courses[i].teacherName, courses[i].courseTime,
                   courses[i].courseLocation);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2. 添加课程

    void addCourse() {
        printf("请输入课程编号:");
        scanf("%s", courses[numCourses].courseID);
        printf("请输入课程名称:");
        scanf("%s", courses[numCourses].courseName);
        printf("请输入教师名称:");
        scanf("%s", courses[numCourses].teacherName);
        printf("请输入上课时间:");
        scanf("%s", courses[numCourses].courseTime);
        printf("请输入上课地点:");
        scanf("%s", courses[numCourses].courseLocation);
        numCourses++;
        saveCoursesToFile(courses, numCourses);
        printf("课程已添加成功!\n");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    3. 删除课程

    void deleteCourse() {
        char id[10];
        printf("请输入要删除的课程编号:");
        scanf("%s", id);
        int index = -1;
        for (int i = 0; i < numCourses; i++) {
            if (strcmp(courses[i].courseID, id) == 0) {
                index = i;
                break;
            }
        }
        if (index != -1) {
            for (int i = index; i < numCourses - 1; i++) {
                courses[i] = courses[i + 1];
            }
            numCourses--;
            saveCoursesToFile(courses, numCourses);
            printf("课程已删除成功!\n");
        } else {
            printf("未找到指定课程编号的课程。\n");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    4. 搜索课程

    void searchCourse() {
        char name[50];
        printf("请输入要搜索的课程名称:");
        scanf("%s", name);
        int found = 0;
        for (int i = 0; i < numCourses; i++) {
            if (strcmp(courses[i].courseName, name) == 0) {
                printf("课程编号:%s\n", courses[i].courseID);
                printf("课程名称:%s\n", courses[i].courseName);
                printf("教师名称:%s\n", courses[i].teacherName);
                printf("上课时间:%s\n", courses[i].courseTime);
                printf("上课地点:%s\n", courses[i].courseLocation);
                found = 1;
                break;
            }
        }
        if (!found) {
            printf("找不到相关课程!\n");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    5. 更新课程

    void updateCourse() {
        char id[10];
        printf("请输入要更新的课程编号:");
        scanf("%s", id);
        int index = -1;
        for (int i = 0; i < numCourses; i++) {
            if (strcmp(courses[i].courseID, id) == 0) {
                index = i;
                break;
            }
        }
        if (index != -1) {
            printf("请输入新的课程名称:");
            scanf("%s", courses[index].courseName);
            printf("请输入新的教师名称:");
            scanf("%s", courses[index].teacherName);
            printf("请输入新的上课时间:");
            scanf("%s", courses[index].courseTime);
            printf("请输入新的上课地点:");
            scanf("%s", courses[index].courseLocation);
            saveCoursesToFile(courses, numCourses);
            printf("课程信息已更新成功!\n");
        } else {
            printf("未找到指定课程编号的课程。\n");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    四,效果图

    后续截图添加

    五,源码

    代码已开源,可访问gitee下载。

    六,总结

    本项目是一个基于C语言的简单课程管理系统,通过命令行交互,用户可以方便地对课程进行管理。尽管该项目比较简单,但它涵盖了文件操作、数据结构等基本的编程知识点,为进一步的学习和项目开发打下了基础。希望该项目能为您的学习和工作带来帮助。

    七,声明

    本项目大量使用AI编写,如有想法和疑问请联系作者

  • 相关阅读:
    Allegro基本规则设置指导书之Spacing规则设置
    插件_创蓝图文滑动验证码
    【建议收藏】50 道硬核的 Python 面试题!
    pdf拆分成一页一页
    基于IoT全链路实时质量 - 魔洛哥
    UDP网络通信收发包原理即代码
    会声会影色彩校正在哪里 会声会影色彩素材栏在哪 会声会影中文免费版下载
    DRM系列(8)之prepare_signaling
    页面查询多项数据组合的线程池设计
    亲戚小孩月薪17k,而我只有4k+,好慌......
  • 原文地址:https://blog.csdn.net/qq_43657810/article/details/133360764