课程大纲

C++课程大纲


C++基础班

时长

21天


培训目标

以较低的投入和风险来了解自己是否适合转型从事C/C++开发,适合那些没有任何的计算机和编程基础,但希望通过自己的付出的人打破现状的人。


培训内容

初识C语言、数据类型与运算符、流程控制、函数、指针、指针与字符串、内存布局、结构体和共用体、文件操作、位运算、预处理、C语言提高、项目实战(学校管理系统)。

C++大神班

时长

92天


培训目标

在基础班C语言知识点之上,掌握C语言深入技巧,为日后做更大的项目打下坚实的基础,灵活应用C语言接口封装设计的方法,进行企业项目开发。


培训内容

C++对C的扩展、C++基础编程、C++进阶STL、C++进阶设计模式及UML应用、C++开源库tinyXML和JsonCpp、数据结构、QT界面编程项目案例(俄罗斯方块、贪吃蛇、扫雷)、Unix/Linux系统编程、Unix/Linux网络编程、数据库开发阶段、超轻量级开源框架tinyHttp、异步IO经典开源框架libevent/libev、全栈框架nginx+ fastCgi+ 前端、项目实战(基于C++某特别行政区电信实时计费系统、基于C++基于公安系统的视频监控项目、某上市公司股票交易系统中三选二)


学习路线

C基础

1,学习使用Windows Linux C/C++环境搭建;

2,常变量,数据类型,二大选择,三大循环,四大跳转;

3,数组,指针,函数,作用域,结构体,共用体,枚举;

4,文件常见操作,常见错误分析和程序调试。



C提高

1,宏(宏常量,宏函数),位运算,条件编译,多文件编程;

2,进程空间(内存四区),函数的压栈与出栈;

3,指针数组与数组指针,多维数组与多级指针,函数指针,回调函数;

4,字符串与字符数组,自符串函数的自实现;

5,排序算法(冒泡,选择,快速),数据结构链表(单向,双向循环);

6,企业级配置文件读写。



C项目

基于三角色的企业业务管理系统,分超级管理员,管理员和普通用户;

架构上分界面和业务逻辑两大部分。主要涵盖了前面所学到的几乎所有技术点,包含界面,文件,指针,链表,排序,多文件编程等;

用项目来推动自己的所学,给自己更大的信心。


C++部分

1,C++对C的全面提高(类型增强,函数重载,默认参数,引用,new/delete

内联函数,类型强转,命名空间,系统string类;

2,封装,类与对象,友元,运算符重载;

3,继承与派生,多态,UML;

5,文件IO流,模板,STL,,异常机制;

6,基于C++的开源框架,tinyXML/jsonCpp,使用和源码学习。


数据结构与算法

1,线性结构(数组,栈,队列);

2,链式结构:链表(单向,双向循环),树(森林->树->二叉树,

->二叉搜索树->平衡二叉搜索树(红黑树));

3,查找:顺序与二分;

4,排序:冒泡,选择,快速,希尔,堆排序,归并排序;

5,时间,空间复杂度。


Qt图形用户界面开发

1,消息泵原理,常见Wigdet使用,布局管理,信号与槽,事件处理;

2,2D绘图与图元管理(View-Scene-Item);

3,网络与通信,数据库开发,多线程

4,基于MVC的贪吃蛇,扫雷,俄罗斯方块;

5,Qt开发跨平台程序与打包。

数据库

1,数据库的搭建,mySql,Oracle,mongoDb;

2,常用Sql语句与数据库操作(表,存储过程,用户,视图,索引,触发器,命名空间,实例(模式));

3,Sql语句提高与优化。

Linux系统编程

1,Linux基本命令使用,常见服务器(samba,ftp,nfs,tftp,svn git)搭建;

2,vim gcc gdb 的使用,Bash脚本编程;

3,文件iO;

4,进程,进程空间,进程间通信,守护进程,进程同步与异步;

5,线程,线程空间,线程同步与异步。


Linux网络编程

1,网络编程,基于Socket的Tcp/Udp网络编程;

2,基于多进程,多线程,线程池的网络高并发;

3,基于异步IO(select,poll,epoll)的网络高并发。

基于Linux的开源框架

1,轻量级Http服务,tinyHttp开源框架,http协议,源码解读;

2,异步IO经典框架,开源异步IO框架libev/libevent,搭建高并发服务,源码解读;

3,使用web和反向代理服务Nginx和FastCGI,搭建全栈框架,提供高并发服务,源码解读。

项目实战(三选二)

基于C++某特别行政区电信实时计费系统
基于C++基于公安系统的视频监控项目
某上市公司股票交易系统