C/C++开发课程大纲

一、C课程

阶段一:C基础入门阶段

此阶段学完之后可以熟练使用C语言完成简单编程问题,理解和使用面向过程思想;可以开发小型命令行工具。

课程内容:

  1. C语言特点及其运行环境
  2. C语言和面向对象语言C++、Java的比较
  3. 介绍基本数据类型、运算符、关系表式
  4. 条件判断语句if-elseIf-else if-elseswitch-case语句
  5. 循环语句:whiledo-whilefor
  6. 自定义的函数声明和定义、以及使用
  7. 函数的实参和形参的区别,函数的传值调用和传址调用

项目实战:2019年个税计算器

应用场景:

程序第一功能就是完成日常的复杂计算。通过个税计算器项目,让学员学会使用C语言编写程序,解决现实生活问题。真正做到学以致用,在实践中学习。


阶段二:C初阶阶段

此阶段学完之后可以熟练使用C语言高级特性,完成更加复杂的命令行工具。

课程内容:

  1. 数组的定义和在内存中的分配排布
  2. 数组的完全初始化、部分初始化和不初始化
  3. 数组名在C程序里的意义
  4. 数组名在函数传参过程中代表的含义及其作用
  5. 指针的定义,和在内存中扮演的角色
  6. 宏定义
  7. const关键字与普通变量、指针变量之间的关系
  8. 指针变量运算关系的实质
  9. 函数指针存在的意义及其使用
  10. 堆内存的使用和释放

阶段三:C进阶阶段

此阶段学完之后可以熟练使用C语言高级特性,完成更加复杂的命令行工具。

课程内容:

  1. 引入内存中,虚拟内存和内存映射的关系
  2. 结构体struct的定义和自身各成员的类型
  3. 结构体成员之间内存对齐的实质和指令对齐的操作
  4. 结构体数组和指针的应用
  5. Linux内核中offsetofcontainer_of
  6. 结构体位字段的使用意义
  7. 结构体:柔性数组的演示和实战
  8. typedef关键字的作用及其使用
  9. 数组指针、指针数组、函数指针、指针函数
  10. 枚举定义和使用
  11. 位操作运算符:&|~^
  12. main函数的参数、返回值
  13. 递归函数的栈实现原理应和应用特点
  14. 迭代函数的特点和应用

项目实战:学员签到管理系统

image.png

应用场景:

管理系统是最常见的软件,所有的管理系统的基本功能大体相似,主要是增加、修改、删除、查找以及统计。真实企业开发中大部分问题可以归结为这几种功能。

基础数据结构和算法

  • 数据结构:顺序表、链表、栈、队列
  • 排序算法:冒泡排序、插入排序、选择排序、希尔排序、快速排序、归并排序

阶段三:Linux系统编程

此阶段学员学会用C语言访问Linux操作系统接口,实现高级复杂功能。并且通过案例,理解操作系统常用基本概念和原理。

课程内容:

  1. 进程基础
  2. 进程通信--管道
  3. 进程通信--套接字与FIFO
  4. IPC--消息队列
  5. IPC--共享内存
  6. IPC--信号量
  7. 读写锁
  8. 多线程编程
  9. 多线程同步

项目实战:线程池ThreadPool

应用场景:

所有的程序员都要与其程序所处操作系统中的系统调用和程序库打交道。通过操作系统提高程序和软件性能。


阶段四:Linux网络编程

此阶段学完之后可以掌握Linux最基础网络编程方式,实现计算机之间简单的相互通信。

课程内容:

1.Socket编程-TCP
2.Socket编程-UDP
3.I/O复用

项目实战:网盘

应用场景:

计算机改变世界最主要是互联网,Socket是网络通信中最基础的通信方式,通过学习Linux网络编程,了解计算机网络通信的基本原理,学会设计和实现自定义的通信协议。


一、C++课程

阶段一:C++基础入门阶段

此阶段学完之后可以理解和使用面向对象思想;熟练设计和使用类;熟练使用继承、多态、组合、聚合等技术;可以开发小型命令行程序(类似shell、wc、grep等)和图形界面程序(类似记事本、计算器等)。

课程内容:

  1. C语言到C++语言的过渡
  2. C++面向对象思想
  3. C++类的定义与对象创建
  4. 复制控制
  5. 操作符重载与转换
  6. 友元函数与友元类
  7. 多态实现与原理分析
  8. C++文件读写操作
  9. 异常处理
  10. C++11新增语法简介

项目实战:人工智能五子棋人机对战程序AlphaGobang

应用场景:

游戏开发是C++开发的一个主要方面,因为C++同时具有高开发效率和高执行效率两个特点。通过开发AlphaGobang熟悉C++图形界面开发和游戏逻辑规则开发。


阶段二:STL基础入门阶段

此阶段学完之后可以熟练使用各种常见的容器和算法;熟悉模版的编写和原理;掌握常用容器、迭代器和算法实现原理。

课程内容:

  1. 模板编程基础
  2. 顺序容器
  3. 关联容器
  4. 迭代器
  5. 泛型算法入门
  6. C++11新增语法简介

项目实战:实现小型STL库miniSTL

应用场景:

STL是C++的标准模板库,是模板编程非常经典的案例。无论笔试还是面试都会涉及到它的一些实现问题,所以自己手动实现一部分经典STL是C++学习一个必须的过程。
通过miniSTL,我们还将学习软件开发中的单元测试和接口文档编写,接触真实的软件开发。


阶段三:C++进阶阶段

此阶段学完之后可以熟练掌握企业级常用开发技术以及原理;深入了解C++重载原理和对象模型。

课程内容:

  1. 重载原理分析
  2. 动态库静态库的制作与使用
  3. C++类型转换
  4. C++对象模型简介

项目实战:多级别多输出可配置日志库TinyLog

应用场景:

企业级C++开发中,直接开发可执行文件的情况约占30%,更多的情况是开发动态库或者静态库。所以,熟练开发动态库和静态库是C++必须掌握的技能。
日志模块是所有大型系统中不可缺少的部分,通过日志开发和使用,初步了解大型系统开发方式和调试方法。


阶段四:STL进阶阶段

此阶段学完之后可以掌握各种高级STL技术;能够使用各种智能指针并理解底层实现原理。

课程内容:

  1. 空间配置器
  2. 萃取编程技巧
  3. 仿函数
  4. 容器适配器
  5. 泛型算法进阶
  6. 智能指针应用与分析
  7. C++11 lambda表达式

项目实战:智能指针库SmartPtr

应用场景:

C++最复杂和最容易出错的是内存管理,智能指针简化了内存管理方式。本阶段通过实现各种智能指针,熟练掌握C++高级内存管理方式,远离内存泄露风险。

高级数据结构和算法

  • 数据结构:树、平衡二叉树、红黑树、哈希表、图
  • 排序算法:堆排序
  • 算法思想:分治策略、动态规划、回溯策略、贪婪策略

阶段五:第三方库使用与分析

此阶段学完之后可以熟练搭建第三方库,熟练编写和实施代码单元测试,熟练使用boost和asio开发和发布程序。

课程内容:

  1. C++测试框架CppTest环境搭建与使用
  2. boost标准库开发环境搭建与使用
  3. asio环境搭建与使用

项目实战:高性能HTTP静态服务器

应用场景:

服务器程序开发是C++开发的另一个重要的方向,通过开发HTTP服务器,了解HTTP协议,掌握网络开发的基本流程和方法。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容