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

news2024/9/23 15:32:01

请添加图片描述


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


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


目录

  • 【C语言】C语言-学生选修课程系统(源码)【独一无二】
  • IP协议
  • 一、设计要求
  • 二、结果展示
    • 2.1 录入课程信息
    • 2.2 浏览课程信息
    • 2.3 按学分查询课程
    • 2.4 按课程性质查询
    • 2.5 学生选修课程
  • 三、代码展示


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();
      

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1696025.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

牛客NC302 环形数组的连续子数组最大和【中等 动态规划 Java/Go/PHP/C++】

题目 题目链接: https://www.nowcoder.com/practice/e9f3282363844355aa51497c5410beee 思路 动态规划 两种情况(首位相连的)和首位不相连的 首尾相连的可以算最小的连续子数组得出,sum-就是。Java代码 import java.util.*;pub…

Echarts - 多个页面内有N个 echarts 图表,封装组件 CommonEcharts 快捷实现

目录 子组件父组件使用注意 option 文件效果展示相关数据处理&#xff08;代码备份 - 可不看&#xff09;数据处理后页面展示 子组件 CommonEcharts.vue <template><div><div v-for"id in domId" :id"id" :key"id" class"…

springboot+vue+mybatis校园兼职平台+PPT+论文+讲解+售后

社会的发展和科学技术的进步&#xff0c;互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱&#xff0c;也逐渐进入了每个学生的使用。互联网具有便利性&#xff0c;速度快&#xff0c;效率高&#xff0c;成本低等优点。 因此&#xff0c;构建符合自己要…

十、通配符和正则表达式

10.1 通配符 通配符是由shell处理的, 它只会出现在 命令的“参数”里。当shell在“参数”中遇到了通配符 时&#xff0c;shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配&#xff1a;若符合要求的匹配存在&#xff0c;则进 行代换(路径扩展)&#xff1b;否则就将该通配…

基于springboot+vue的致远汽车租赁系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

新兴勒索软件组织不断涌现:他们是谁,如何运作

新兴的勒索软件团伙正采取不同的策略和目标&#xff0c;填补大公司关闭和执法中断所留下的空白。 3 月份 BlackCat (ALPHV) 的关闭和 2 月份执法部门对 LockBit 基础设施的干扰导致勒索软件生态系统出现空白&#xff0c;而这一空白正迅速被经验不足的团体所填补。 今年到目前…

Flask实现文件上传/下载【基础版】

目录 前言 一.文件上传 1.1一些<input>相关上传属性 1.1.1multiple 1.1.2accept 1.2Flask后台接收文件提交 1.3Flask后台接收多个文件 二.保护文件上传 2.1限制文件上传大小 2.2验证文件名 2.3验证文件内容 三.文件下载 3.1使用send_file()方法下载文件 前言…

SwiftUI中的Stepper(系统Stepper以及自定义Stepper)

本篇文章主要介绍一下Stepper&#xff0c;这个组件在UIKit中也已经有较长的历史了&#xff0c;下面看看在SwiftUI中如何使用&#xff0c;有哪些更加便捷的方法呢&#xff1f; Stepper减号(-)和加号()按钮&#xff0c;可以点击后以指定的数值进行加减。 基础初始化方法 Stepp…

【SpringCloud】服务注册与发现

目录 Eureka/注册中心简介模式 使用Eureka实现注册中心1.创建一个名称为demo-eureka-server的Spring Boot项目2.添加项目依赖3. 在启动类添加启动注解4.添加配置信息Eureka的自我保护机制为Eureka Server添加用户认证1.添加依赖2. 添加配置信息3.添加放行代码4.启动服务&#x…

NASA数据集——阿尔法喷气式大气实验甲醛(HCHO)数据

Alpha Jet Atmospheric eXperiment Formaldehyde Data 简介 阿尔法喷气式大气实验甲醛数据 阿尔法喷气式大气实验&#xff08;AJAX&#xff09;是美国国家航空航天局艾姆斯研究中心与 H211, L.L.C. 公司的合作项目&#xff0c;旨在促进对加利福尼亚、内华达和太平洋沿岸地区的…

春秋云境CVE-2018-7422

简介 WordPress Plugin Site Editor LFI 正文 1.进入靶场 2.漏洞利用 /wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path/../../../../../../flag看别人wp做的。不懂怎么弄的&#xff0c;有没有大佬讲一下的

谈谈你对 vue 的理解 ?

1.谈谈你对 vue 的理解 ? 官方: Vue是一套用于构建用户界面的渐进式框架,Vue 的核心库只关注视图层 2. 声明式框架 Vue 的核心特点,用起来简单。那我们就有必要知道命令式和声明式的区别! 早在 JQ 的时代编写的代码都是命令式的,命令式框架重要特点就是关注过程 声明…

【Chrono Engine学习总结】6-创建自定义场景-6.1-3D场景获取

由于Chrono的官方教程在一些细节方面解释的并不清楚&#xff0c;自己做了一些尝试&#xff0c;做学习总结。 Chrono可以导入自定义的三维模型&#xff0c;所以想自己搭建一个3D仿真环境。过程中遇到了一些问题&#xff0c;记录与整理。 1、3D环境的创建方法 Chrono的Irrlich…

如何从头搭建一个自己的java库并上传到maven官方仓库

创建代码 在代码库根目录执行maven命令&#xff0c;用于快速生成一个基础的Maven项目 mvn archetype:generate \-DgroupIdcom.mycompany \-DartifactIdmy-maven-project \-Dversion1.0.0 \-DarchetypeArtifactIdmaven-archetype-quickstart \-DinteractiveModefalse 这个命令…

初学Echart

创建一个html文件 1.引入 点击链接----快速上手网址&#xff1a;快速上手 - 使用手册 - Apache ECharts 复制这一串【这个是引入echart路径】 引入到这里 2.使用 我们在上一步---点击返回--往下翻---找到完整代码--复制黏贴 复制粘贴后--总体长这样 <!DOCTYPE html> &…

【YOLOv10训练教程】如何使用YOLOv10训练自己的数据集并且推理使用

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Oracle Graph 入门 - RDF 知识图谱

Oracle Graph 入门 - RDF 知识图谱 0. 引言1. 查看 RDF Semantic Graph 安装情况2. 创建一个语义网络4. 创建一个模型5. 加载 RDF 文件6. 配置 W3C 标准的 SPARQL 端点 0. 引言 Oracle Graph 的中文资料太少了&#xff0c;只能自己参考英文资料整理一篇吧。 Oracle 数据库包括…

【学习笔记】计算机组成原理(八)

CPU 的结构和功能 文章目录 CPU 的结构和功能8.1 CPU的结构8.1.1 CPU的功能8.1.2 CPU结构框图8.1.3 CPU的寄存器8.1.4 控制单元CU和中断系统 8.2 指令周期8.2.1 指令周期的基本概念8.2.2 指令周期的数据流 8.3 指令流水8.3.1 指令流水原理8.3.2 影响流水线性能的因素8.3.3 流水…

从0开始带你成为Kafka消息中间件高手---第二讲

从0开始带你成为Kafka消息中间件高手—第二讲 那么在消费数据的时候&#xff0c;需要从磁盘文件里读取数据后通过网络发送出去&#xff0c;这个时候怎么提升性能呢&#xff1f; 首先就是利用了page cache技术&#xff0c;之前说过&#xff0c;kafka写入数据到磁盘文件的时候&…