c++实现课程管理系统

本文档详述了如何使用C++在Linux环境下构建一个课程管理系统,涉及C++语言基础、面向对象编程、Makefile等内容。项目包括课程类、课程管理类和命令管理类的实现,适合有C++基础的学习者提升编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 内容

本实验使用 C++ 实现一个课程管理系统,这个项目会用到 C++ 的很多特性,同时可以熟悉Linux下的C++语言编译方法及简单的Makefile编写。

1.2 实验知识点

  • C++语言基本语法;
  • 基本的Makefile;
  • C++面向对象程序设计,类,虚函数,继承,重载;
  • C++ 标准库;
  • C++11 的一些用法,例如auto。

1.3 实验环境

  • g++

  • Xfce终端

1.4 适合人群

本课程是初级难度,适合有 C++ 基础的同学,可以提升 Linux 下的 C++ 语言编写的能力。 初学者可以先学习 C++11/14 高速上手教程 及其他 C++ 基础教程。

1.5 代码获取

我们提供本项目完整的代码及详细注释供参考,由于代码比较多,文档中仅对部分代码进行讲解。本实验中使用的代码可以在下面的链接中获取。

# 下载课程管理程序代码
wget http://labfile.oss.aliyuncs.com/courses/1052/cmsys.zip

# 解压代码
unzip cmsys.zip

# 进入代码文件夹查看
cd cmsys

请尽量按照实验步骤自己完成代码编写。

1.6 效果截图

二、步骤

需求分析:

项目功能需求可以拆分成下面两个模块:

  • 命令输入及处理
  • 课程存储及管理

提炼每个模块中的参与者:

  • 命令管理对象
  • 课程对象
  • 课程管理对象

其中命令管理对象对命令进行管理。课程对象存储每个课程的信息,课程管理对象对课程列表进行维护和管理。

我们需要课程类,课程管理类,命令管理类三个类。如果命令对象包含的信息很复杂的话也可以单独设计成类,在本项目中命令仅仅是一个数字及相关的描述信息,为了便于查找我们只需要把命令定义在命令管理类中。

根据需求,课程类为基础类,表示基础课,子类分别为项目课,评估课。但我们的需求中并没有什么地方需要用到这两个子类的虚函数实现,所以这部分会作为扩展内容。

     2.1 抽象与细化

根据上面的需求分析,设计所需的类:

  1. 定义课程类Course及课程管理类CourseManager,命令处理类CmdManager
  2. Course类成员包括:
    • 课程ID(课程对象创建时自动生成)
    • 课程名称
  3. Course类成员函数至少包括:
    • 构造函数(参数课程名称)
    • 拷贝构造函数
    • 返回和设置课程名称
    • 获得课程ID的函数
    • 打印信息函数(考虑重载 <<
  4. CourseManager类成员至少包括:
    • 课程列表(可以思考下使用什么数据类型存储?)
  5. CourseManager类成员函数至少包括:
    • 构造函数(参数为课程对象vector
    • 获取课程数量函数
    • 添加课程函数(参数为课程名称)
    • 添加课程函数(参数为课程对象)
    • 删除最新课程函数
    • 删除课程函数(指定ID或指定课程名称)
    • 打印课程列表
    • 打印指定课程(指定ID或指定课程名称)
    • 打印最长名称课程函数
  6. CmdManager类成员至少包括:
    • 命令列表(可以思考下使用什么数据类型存储?)
    • 课程管理对象(用在需要调用课程管理的地方)
  7. CmdManager类成员函数至少包括:
    • 初始化函数:课程及命令信息初始化
    • 打印帮助信息
    • 命令处理函数
  8. 实现中请注意:
    • 哪些函数可以定义为const?
    • 是否有类成员可以定义为静态或const?
    • 哪些函数可以定义为友元?
    • 哪些构造函数等于默认构造函数?

根据这些细化的思路,我们先创建必要的程序文件,每个类都会创建一个头文件和一个cpp文件,另外为了未来命令对象的扩展,我们先创建了一个Cmd.h文件定义所有支持的命令数字。

首先为要实现的程序命名为cmsys(Course Manager System缩写):

# 在 /home/shiyanlou/ 目录下创建代码目录
cd ~
mkdir cmsys
cd cmsys

# 创建所需的文件
touch Course.h Course.cpp
touch CourseManager.h CourseManager.cpp
touch Cmd.h CmdManager.h CmdManager.cpp
touch main.cpp
touch Makefile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值