【C语言】C语言-学生选修课程系统(源码)【独一无二】

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


【C语言】C语言-学生选修课程系统(源码)【独一无二】



IP协议

一、设计要求

  1. 功能描述

    • 学生选修课程系统用于管理学校的课程信息,并提供给学生选择适合的课程。
    • 功能包括录入课程信息、浏览课程信息、按学分查询课程、按课程性质查询课程和学生选修课程等。
  2. 数据结构

    • 采用结构体 Course 来表示课程信息,包括课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分和开课学期等字段。
    • 课程信息存储在结构体数组 courses 中,其中 course_count 记录当前课程数量。
  3. 文件操作

    • 提供加载课程信息和保存课程信息的函数,以便将课程信息存储在文件中,保证数据持久化。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “选修课” 获取。👈👈👈

  1. 菜单设计

    • 系统应该提供一个菜单界面,包括录入课程信息、浏览课程信息、按学分查询课程、按课程性质查询课程和学生选修课程等选项。
    • 菜单选项应该清晰明了,方便用户选择不同的功能。
  2. 课程管理功能

    • 提供录入课程信息的功能,包括课程编号、名称、性质、学时、学分等信息的录入。
    • 提供浏览课程信息的功能,以便学生了解学校提供的课程。
    • 提供按学分查询课程和按课程性质查询课程的功能,方便学生根据自己的需求筛选课程。
    • 提供学生选修课程的功能,学生可以根据课程编号选择自己感兴趣的课程。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “选修课” 获取。👈👈👈


二、结果展示

2.1 录入课程信息

在这里插入图片描述

2.2 浏览课程信息

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “选修课” 获取。👈👈👈

2.3 按学分查询课程

在这里插入图片描述

2.4 按课程性质查询

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “选修课” 获取。👈👈👈

2.5 学生选修课程

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “选修课” 获取。👈👈👈


三、代码展示

  1. 数据结构

    • 代码中使用了结构体 Course 来表示课程信息,包括课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分和开课学期等字段。

    • 课程信息以结构体数组 courses 的形式存储,同时用整型变量 course_count 记录当前课程数量。

      typedef struct {
          int course_id;
          char course_name[COURSE_NAME_LEN];
          char course_type[COURSE_NAME_LEN];
          int total_hours;
          int lecture_hours;
          int lab_hours;
          int credits;
          int semester;
      } Course;
      

      👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “选修课” 获取。👈👈👈

  2. 文件操作

    • load_courses 函数用于从文件中加载课程信息,采用二进制读取方式将课程数量和课程信息从文件中读取到内存中。

    • save_courses 函数用于将当前的课程信息保存到文件中,采用二进制写入方式将课程数量和课程信息写入文件。

      void load_courses() {
          FILE* file = fopen("courses.dat", "rb");
          if (file == NULL) {
              return;
          }
          fread(&course_count, sizeof(int), 1, file);
          fread(courses, sizeof(Course), course_count, file);
          fclose(file);
      }
      
  3. 菜单功能

    • menu 函数提供了一个菜单界面,包括录入课程信息、浏览课程信息、按学分查询课程、按课程性质查询课程和学生选修课程等选项。

    • 根据用户输入的选项,调用相应的功能函数进行处理。

      
      void menu() {
          int choice;
          do {
              printf("学生选修课程系统\n");
              printf("1. 录入课程信息\n");
              printf("2. 浏览课程信息\n");
              printf("3. 按学分查询课程\n");
              printf("4. 按课程性质查询课程\n");
              printf("5. 学生选修课程\n");
              printf("0. 退出\n");
              printf("请输入你的选择: ");
              scanf("%d", &choice);
      
              switch (choice) {
              case 1:
                  add_course();
                  break;
              case 2:
                  browse_courses();>👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “选修课” 获取。👈👈👈
      
                  break;
              case 3:
                  query_by_credits();
                  break;
              case 4:
                  query_by_type();
                  break;
              case 5:
                  student_select_courses();>👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “选修课” 获取。👈👈👈
      
                  break;
              case 0:
                  printf("退出系统\n");
                  break;
              default:
                  printf("无效的选择,请重新输入\n");
              }
          } while (choice != 0);
      }
      
      

      👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “选修课” 获取。👈👈👈

  4. 功能实现

    • add_course 函数用于录入新的课程信息,先接收用户输入的课程信息,然后将新课程添加到课程数组中。
    • browse_courses 函数用于浏览所有课程信息,遍历课程数组并将每门课程的信息输出到控制台。
    • query_by_credits 函数用于按学分查询课程,根据用户输入的学分查找符合条件的课程信息并输出。
    • query_by_type 函数用于按课程性质查询课程,根据用户输入的课程性质查找符合条件的课程信息并输出。
    • student_select_courses 函数用于学生选修课程,学生可以根据课程编号选择感兴趣的课程,并检查选修课程的总学分是否符合要求。
  5. 错误处理

    • 对文件操作进行了简单的错误处理,如果打开文件失败则直接返回。
    • 对用户输入的课程编号进行了检查,如果未找到对应的课程则给出相应的提示信息。
      void load_courses();
      void save_courses();
      void add_course();
      void browse_courses();
      void query_by_credits();
      void query_by_type();
      void student_select_courses();
      void menu();
      

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “选修课” 获取。👈👈👈

  • 39
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米码收割机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值