2018年C/C++课程大纲

目前课程版本:4.5   升级时间:2018.10.08   查看详细

C/C++课程设计理念

  •  

    关注学员长远发展

    我们加深重点内容的讲解力度,结合实际开发的用法,增加项目比重,使学员增长开发经验和知识的应用与理解,对于以后的职业生涯有极大的帮助。牢固的基础是后续无论做项目经理还是更高层的技术研究还是其他语言的开发,都是必须的。咱们在授课的过程中,不仅关注知识的消化吸收,还注重帮助学员的职业规划,更长远的发展。

  •  

    课程定位更准确

    从整个IT行业角度出发,我们将C/C++定位于后端服务与安全研发工程师,更偏重C/C++上层应用与网络攻防技术开发,意味着从windows开发到Linux开发,从前端界面到后台服务器、从C/C++语言的底层开发到高级的上层应用开发都可胜任,而且可以掌握常见的攻防手段,让技术之路更加稳重。对于大型项目,我们课程项目紧跟时代潮流,包含移动开发、云传输等,入侵检测系统,信息安全开发等,让学员尽快的适应企业需求。

  •  

    课程定位更务实

    设计理念以务实为主,将开发中常用的知识作为课程重点,以实用为主。并且针对零基础学员,以代码驱动教学,手把手的教,效果演示,并且专门安排C/C++基础班夯实基础知识,并且有助教对基础差的学员一对一辅导;每个阶段都有案例和就业项目实战,让学员毕业后能快速上手;项目管理流程、版本管理课程让学员学习到作为企业中更高层次的人才需要具备的技能。

  •  

    课程定位更全面

    内容围绕行业热门技术,有针对性的进行项目实战。在课程内容方面,我们的项目从企业级应用类项目,到时尚热点应用类项目,再到高性能、分布式服务器类项目,最后到安全攻防项目和巩固网络安全理论;层层递进。从传统PC信息系统开发,到Linux系统开发,再到跨平台终端开发。让你学精、学深、学透C/C++,能做到系统培训后,对整个知识形成体系,业后可以有广博的知识面,并且学以致用。

  •  

    就业范围更广泛

    我们培养的学员就业范围广阔,如:桌面游戏工程师、Linux服务器开发工程师、Linux系统架构师、渗透测试工程师、网络安全研发工程师、微服务工程师、Web服务器开发工程师、大数据/云计算工程师。涉及到的行业从传统的金融银行到流行的商业项目,从系统安全到网络安全,再到新兴的大数据、物联网、人工智能开发和区块链开发等热点,C/C++无所不能,总之不用担心学会了C/C++会没有市场。

C/C++基础班课程大纲

学习对象

对C/C++感兴趣,但没有任何软件编程基础,想先从零基础入手的软件开发爱好者;希望从另外一些简单的其他语言转型从事C/C++开发的求职人员。

注:获取更多免费学习视频+资料+笔记,请加QQ:2632311208。

上课方式

全日制脱产,每周5天上课, 上两天课休息一天的上课方式(实际培训时间可能因法定节假日等因素发生变化)

培训时间

部分校区可能会根据实际情况有所调整,详情可询咨询老师   点击咨询


 

基础班课程大纲
所处阶段主讲内容技术要点学习目标
第一阶段:
C开发实战
1.Unix/Linux实战1.linux基本命令;2.vi编辑器;3.linux远程连接;4.webserver服务器搭建过程;5.Unix/Linux操作系统;6.类Unix系统目录结构可掌握的核心能力:
1、通过C语培养编程思维和动手能力;
2、通过C语言的学习培养面向过程编程思想,为以后的深入学习就业课程打下坚实基础。

可解决的现实问题:
1、具备C/C++领域基础专业编程能力;
2、实现电子词典项目案例;
3、实现贪吃蛇项目案例。

市场价值:
具备学习编程思维,但尚不能达到任何企业用人标准。
2.C语言概述1.计算机基础;2.第一个C语言程序;3.C的代码的含义与编译;4集成开发环境(vs、qt)
3.编程基础1.常量与变量;2.进制转换;3.运算符;4.条件控制语句;5.数组与字符串
4.函数1.函数的基本概念;2.字符串操作的常用函数;3.自定义函数
5.指针1.指针变量的定义;2.指针基本使用;3.const修饰的指针;4.一级指针与数组名的关系;5.指针法操作数组元素;6.指针作为函数的参数;7.数组作为函数的参数;8.指针做函数的返回值;9.指针处理字符串
6.内存管理1.局部变量的作用域和生命周期;2.静态局部变量的作用域和生命周期;3.全局变量的作用域和生命周期;4.静态全局变量的作用域和生命周期;5.静态函数和非静态函数的区别;6.内存分区;7.堆区内存的分配(malloc)和释放(free)
7.复合类型1.结构体的基本用法;2.结构体嵌套指针和数组;3.结构体作为函数参数;4.复合类型的声明与使用
8.文件操作1.文件的分类(文本、二进制);2.文件的打开和关闭;3.文件操作函数;4.文件读写缓冲区的概念
9.项目实战1.创建Qt应用程序;2.IDE案例ui界面的设计;3.IDE案例功能实现;4.一级指针做函数参数;5.二级指针做函数参数;6.多文件编程;7.贪吃蛇案例实现

C/C++就业班课程大纲

学习对象

1、已学习过C/C++基础班课程内容的相关人士;
2、自学过C/C++书籍与视频资料,有一定的C/C++与网络攻防基础的相关人士。

上课方式

全日制脱产,每周5天上课, 上两天课休息一天的上课方式(实际培训时间可能因法定节假日等因素发生变化)

培训时间

部分校区可能会根据实际情况有所调整,详情可询咨询老师   点击咨询

 

就业班课程大纲
所处阶段主讲内容技术要点学习目标
第二阶段:
C高级编程
1.内存分区、函数调用模型1.数据类型、变量的含义;2.内存四区特点;3.函数的调用模型;4.内存操作函数;5.宏定义与预处理可掌握的核心能力:    
1、掌握C语言中的字符串、一维数组、二维数组的用法;
2、掌握一级指针,二级指针,三级指针的高级用法,理解N级指针概念,指针数组和数组指针;
3、学会结构体、文件的使用;
4、C语言接口封装设计。

可解决的现实问题:
1、可以实现自己开发小程序,例如贪吃蛇一类的用C语言写的程序;
2、应用C语言接口封装设计的方法,进行企业项目开发。

市场价值:
可以掌握C语言深入技巧,灵活应用C语言接口封装设计的方法,但尚不能达到任何企业用人标准。
2.指针高级1.指针基本使用;2.指针的步长的概念;3.指针简介赋值;4.指针以及多级指针做函数参数的特性与使用;5.通过指针操作字符串;6.const类型修饰符;7.位的逻辑运算符;8.移位运算符;9.数组指针与指针数组;10.多维数组做函数参数;11.结构体嵌套一级指针;12.结构体嵌套二级指针;13.浅拷贝深拷贝
3.函数指针与回调函数1.封装和设计的思想;2.函数指针定义的三种方式;3.回调函数
4.数据结构与链表1.链表的基本概念;2.单链表的相关操作
5.递归函数1.递归函数的概念;2.递归的使用
6.数据结构与算法1.大O表示法基本概念;2.线性表顺序存储和链式存储概念;3.线性表的顺序存储(数组);4.线性表的链式存储(链表);5.队列的顺序与链式存储;6.栈的顺序与链式存储;7.二叉树基本操作;8.常用排序算法
7.接口的封装和设计1.函数的封装设计;2.解耦合的设计理念;3.模块实现与业务分离的思想
第三阶段:
C++核心编程
与桌面应用开发
1.C++对C的扩展、引用1.C++语言的命名空间的使用;2.C++对C的扩展;3.C、C++中const不同之处;4.定义和使用引用类型变量可掌握的核心能力:
具备常用C++方向基本知识和常用技能。

可解决的现实问题:
能够具备基本的开发能力,看懂简单代码,实现开发简单程序软件的功能。

市场价值:
熟练学习和掌握后,可满足企业开发的初级需求,根据市场反馈数据看,薪资普遍在 6000-8000元 /月。
2.函数重载1.类的的默认参数;2.c++的函数重载;3.类和对象的基本概念;4.类的封装和访问控制权限;5.类和对象进行简单编程
3.类和对象1.类的构造函数;2.类的析构函数;3.explicit关键字作用;4.类的拷贝构造函数的使用;5.深拷贝和浅拷贝问题;6.多个对象的构造和析构函(初始化列表)
4.对象的动态分配和释放1.类和对象的动态分配和释放内存;2.静态成员变量和函数的使用;3.C++编译器对成员变量和成员方法的处理机制;4.this的使用;5.友元函数;6.友元类
5.运算符重载1.运算符重载概念;2.常用运算符重载;3.自定义的智能指针类;4.实现一个自定义的String类
6.类的继承和派生、多态1.继承中的访问控制;2.继承中的构造和析构;3.多继承;4.virtual继承的基本概念;5.多态的使用(多态成立条件、使用场景);6.区分成员函数的重写和重定义;7.虚函数表指针,分步初始化;8.虚函数;9.纯虚函数;10.抽象类的使用;11.虚析构函数和纯虚析构函数
7.面向抽象类编程与设计模式1.设计模式原则;2.常用的设计模式
8.函数模板、类模板1.函数模板基本语法;2.函数模板和函数重载的调用规则;3.编译器对模板的编译过程;4.类模板的概念和基本语法;5.继承中的类模板;6.类模板中普通友元函数、友元函数模板的处理
9.异常、I/O流1.C++类型转换;2.C++标准异常库;3.异常的抛出与捕获;4.C++标准I/O流(cin、cout);5.C++的文件I/O类的使用
10.STL1.STL容器、迭代器的原理;2.序列式容器vector、string、deque;3.堆栈容器stack、quenue;4.双向链表容器list;5.关联式容器set、multiset;6.对组pair;7.关联式容器map、multimap;8.STL算法详解
11.Qt常用的控件1.Qt的基本概念;2.Qt应用程序框架;3.Qt信号和槽的应用;4.Qt窗口系统;5.常用对话框的使用;7.Qt界面设计;8.Qt事件处理可掌握的核心能力:
具备常用QT和MFC界面开发的基本技巧和常用技能;

可解决的现实问题:
能够实现简单的前台界面开发。

市场价值:
熟练学习和掌握后,可满足企业开发的初级需求,根据市场反馈数据看,薪资普遍在9000-13000元 /月。
12.Qt绘图与文件操作1.QPainter绘图;2.update函数;3.绘图设备(QPixmap、QBitmap、QImage、QPicture);4.文件操作
13.Qt界面编程实战案例1.汽车销售管理系统ui设计;2.汽车销售管理系统车辆管理模块功能开发;3.汽车销售管理系统销售统计模块功能开发;4.汽车销售管理系统人员登陆模块功能开发;5.人员和车辆信息文件读写类的使用
14.MFC对话框与常用空间1.Windows编程的基本概念;2.Windows编程模型;3.MFC应用程序框架;4.创建MFC应用程序;5.MFC函数Ex后缀和Afx前缀的作用;6.创建基于对话框的MFC应用程序;7.模态对话框和非模态对话框;8.常用控件
15.MFC界面编程案例1.销售管理系统ui设计;2.销售管理系统销售管理模块功能开发;3.销售管理系统库存管理模块功能开发;4.销售管理系统个人信息模块功能开发;5.销售管理系统人员登陆模块功能开发;6.人员和商品信息文件读写类的使用
第四阶段:
Linux高并发服务器开发
1.Linux命令1.Linux下的目录结构;2.工作日程应用命令;3.Ubuntu下的软件安装和卸载;可掌握的核心能力:
具备常用后台服务器开发方向基本知识和常用技能,并具备基本的开发能力。

可解决的现实问题:
能够实现包括服务器后台、前端界面、服务器数据库的开发。

市场价值:
熟练学习和掌握后,可满足企业开发的初中级需求,根据市场反馈数据看,薪资普遍在 8000-13000元 /月。
2.Linux开发与调试工具1.vim命令模式下操作;2.vim末行模式下操作;3.vim的配置4.gcc的工作流程和掌握常见参数;5.Linux下的静态库与共享库(windows动态库)的制作和使用;6.Makefile;7.gdb调试;8.pcb和文件描述符,虚拟地址空间;9.Linux系统IO函数;10.阻塞和非阻塞的概念
3.系统I/O操作1.stat/lstat函数;2.文件属性相关函数;3.链接相关概念及函数;4.目录操作相关概念及函数;5.dup、dup2函数;6.fcntl函数
4.进程与IPC通信1.进程相关的概念;2.进程操作相关函数;3.孤儿进程;4.僵尸进程;5.进程回收;6.进程间通信
5.线程与并发同步1.互斥量;2.死锁以及解决方案;3.读写锁;4.条件变量;5.条件变量实现生产消费者模型;6.信号量实现生产消费者模型;7.线程同步解决哲学家就餐问题;
6.信号1.信号中的基本概念;2.使用信号相关的函数;3.信号内核实现原理;4.信号捕捉函数signal、sigaction;5.使用信号完成子进程的回收;6.发送信号时如何进行参数传递;
7.网络协议与网络编程1.OSI七层模型结构;2.TCP/IP 4层模型结构;3.B/S、C/S优缺点对比;4.常见网络协议格式;5.套接字;网络字节序;6.IP地址转换函数;7.编写TCP的C/S网络程序;8.UDP通信机制与模型;9.本地套接字;10.三次握手建立连接过程;11.四次握手断开连接过程;12.滑动窗口概念;13.错误处理函数封装;14.TCP状态转换;15.2MSL概念;16.端口复用方法;17.半关闭;
8.高并发服务器开发
(poll、select和epoll)
1.多路IO转接模型;2.select函数;3.fd_set相关操作函数;4.select多路IO转接模型poll操作函数;5.epoll多路IO模型;6.线程池模型的设计思想;7.多进程并发服务器;8.多线程并发服务器;9.libevent库;10.epoll反应堆模型;11.使用BufferEvent、evBuffer;12.git代码管理;
9.Linux并发服务器项目实战通过项目实战,使大家熟悉Linux知识的应用,已经如何开发服务器程序,从项目需求分析项目设计,到项目实现,对程序开发有个整体的认识。
第五阶段:
Windows/Linux
跨平台企业项目实战
1.oracle1.简单查询;
2.oracle的常用函数;
3.多表查询;
4.集合操作;
5.DDL操作管理表;
6.DML管理数据;
7.其它数据库对象;
8.PL/SQL编程;
9.存储过程与存储函数
10.触发器;
11.工具查询;
12.解决Top-N问题;
可掌握的核心能力:
掌握常用数据库类型的操作技巧和简单开发。

可解决的现实问题:
熟练应用项目中使用的数据库知识,能做简单的数据库开发。

市场价值:
熟练学习和掌握后,可满足企业开发的初中级需求,根据市场反馈数据看,薪资普遍在 8000-12000元 /月。
2.mysql1.mysql表的约束;
2.mysql中出现的中文乱码问题;
3.mysql函数库连接数据库;
4.mysql API访问数据库;
5.使用基础类API实现mysql客户端工具;
6.预处理类API访问mysql数据库;
7.使用api修改mysql事务特性;
3.企业财富库的接口的封装和设计1.外联接口
2.线程同步
3.socket
4.线程池
4.windows经典应用程序开发1.windows下图形化界面;
2.设计模式的应用
3.异步通信
4.xml
5.json
6.html
7.共享内存,消息队列
5.Linux信息安全开发1.共享内存,消息队列
2.秘钥加密
3.接口封装设计
4.ASN.1
5.html
6.程序操作数据库
6.跨平台兼容开发与调试1.windows与linux跨平台通信
2.windows与linux跨平台调试
大项目1:
金融类安全传输平台
本项目类似于支付宝与银行的汇帐,二者相互识别与身份认证,是一款基础设施类项目,实现标准的信息安全服务;
第六阶段:
分布式游戏服务器开发
1.Lua编程开发1.Lua环境安装
2.Lua基本语法
3.Lua数据类型
4.Lua循环与流程控制
5.Lua函数与数组
6.Lua元表
7.Lua中的的协程
8.Lua模块与包
9.Lua面向对象
可掌握的核心能力:
掌握高性能服务器解决方案(负载均衡);
掌握分布式存储解决方案(redis集群/mysql集群/ mongodb集群);
掌握项目压力测试和单元测试,掌握服务器逻辑开发。

可解决的现实问题:
解决大型互联网公司并发高吞吐问题;
解决分布式web应用服务器集群问题。

市场价值:
熟练学习和掌握后,可满足企业开发的初中级需求,根据市场反馈数据看,薪资普遍在 9000-15000元 /月。
2.游戏开发1.游戏框架
2.物理检测引擎
3.设计模式
4.MVC架构
3.虚拟化Docker1.Docker容器基础指令
2.Docker网络配置
3.DockerFile、DockerCompose
4.分布式文件存储服务器和缓存服务器1.fastDFS分布式存储系统应用开发
2.redis缓存开发
5.深入理解nginx1.nginx的部署
2.nginx维护机制
3.nginx通信架构模型
4.nginx的高并发性能架构
6.负载均衡反向代理1.基于nginx搭建反向代理
2.分布式web应用服务器搭建
7.git1.代码版本控制工具git的常用指令
2.git的团队开发组建
3.git代码仓库的创建与管理
大项目2:
分布式游戏服务器开发
本项目是指通过集群应用、网络技术或分布式文件系统等功能,实现的游戏业务处理、并发的服务器实现。
第七阶段:
入侵检测与网络攻防
1.Kali Linux操作系统实战1 Kali Linux介绍
2.Kali Liunx安装
3.Kali Linux系统更新
4.Kali Linux基本配置
5.Kali Linux 常用攻击工具
可掌握的核心能力:
具备市场主流网络安全攻防技术;
具备流量监测等核心安全研发能力。

可解决的现实问题:
解决国内外敌对势力通过隐匿通道(如VPN、即时通信软件)有限监控手段现状问题;
解决私有加密应用和网络异常通信行为,并能对加密流量进行还原和审计。

市场价值:
熟练学习和掌握后,可满足企业开发的初中级、甚至高级需求,根据市场反馈数据看,薪资普遍在 12000-20000元 /月。
2.网络防御技术1.网络攻防环境搭建
2.信息安全理论
3.Linux基本安全防护技术
1)访问权限
2)访问控制列表ACL
3)文件属性
4)PAM技术
5)特权机制
4.安全审计
5.网络嗅探及协议分析技术
1)Wireshark抓包工具
2)Tcpdump抓包工具
3)网络嗅探技巧
6.Linux防火墙技术
1)Iptables详解配置规则
2)TCP Warrpper
7.Linux 入侵检测分析技术
1)Debian 9 入侵分析
2)开机自启服务与安全防护机制
3.网络攻击技术1.安全渗透
2.范围界定
3.信息收集与DNS记录分析
4.目标识别技术
1)识别目标主机
2)系统指纹信息识别
5.服务枚举
1)端口扫描
2)Nmap识别服务指纹信息
6. DDOS分布式拒绝服务攻击
1)TCP SYN Flood攻击
2)TCP Reset攻击
7. 口令暴力破解
8. 网络攻防艺术
9. 渗透测试实战
4.DPI(深度包检测)a) 不少于30大类的网络应用的识别。
b) 支持HTTP、SMTP、POP3、IMAP等几十种周知协议的解析与还原。
c) 加密应用识别:
VPN识别:应支持PPTP、L2TP、OpenVPN、SSTP、IPSec、Cisco VPN的识别和上下线检测;
即时通信识别:应支持微信、QQ、陌陌、WhatsAPP、Skype等识别。
翻墙软件识别:应支持Goagent、SSH、Shadowsocks、VPN Gate、赛风3、BTSync、Fqrouter2、OpenDoor、Puffin、无界、纽约时报、Onavo、曲径、Operamini等的识别和上下线检测。
通用加密应用识别:应支持HTTS、FTPS、POP3S、SMTPS、IMAPS、Gmail等的识别。
特种木马:应支持若干种特种木马的加密通道识别。
5.异常通信行为分析对采集到的netflow原始流记录或录制的原始报文等组合应用多种网络通信行为分析技术,可发现未知攻击和未知木马。
异常域名检测:通过分析域名请求、应答记录发现异常域名,留存域名访问记录元数据。
异常通信行为分析:发现网络异常通信行为,如内部主机和外部主机的间歇性连接、服务器主动外联、工作主机非工作时间主动外联等。
6.加密流量还原支持自由门、极速VPN、shadowsocks等隐匿通道的流量破解还原能力,支持Talkbox应用的破解还原。
大项目3: 网络隐匿私有
应用入侵检测系统
网络私有应用监测系统主要由多核硬件平台、安全操作系统、监测引擎、存储管理、数据关联分析、协同分析、升级管理、维护管理、综合管理界面等功能模块组成。
第八阶段:
Shell脚本编程
与面试强化
1.Shell高级编程1.高级指令引入2.Shell函数3.Shell特殊用法4.Shell案例实战课程设计理念:
Shell编程作为Linux平台高级运维语言,掌握Shell可以在任意Linux/Unix操作系统做系统维护和问题定位。

可掌握的核心能力:
Unix/Linux下Shell编程开发;
掌握Shell的函数语法和工具制作;
掌握Linux常用Shell指令和问题定位方法;
面试强化训练。

可解决的现实问题:
复习和巩固所学知识,进行专题面试强化。
2.面试强化1.高级数据结构2.数据库加强训练3.面试强化训练

基础差? 可免费学基础班

申请试读名额

基础过关? 可直接就读就业班

基础测试

C/C++学科项目介绍

  • 金融类安全传输平台

    项目简介:

    数据安全传输基础设置平台项目(简称,数据传输平台),类似于支付宝与银行的汇帐,二者相互识别与身份认证,是一款基础设施类项目,为集团、企业信息系统提供统一、标准的信息安全服务;本项目具有通用组件和业务流合理分层、子系统和子系统之间完全解耦合、Win的客户端和Linux服务程序异构对接。

    项目特色:

    并发服务器开发、MFC/QT客户端开发;Win系统和Linux系统对接调试;还有企业级的通用财富组件:报文编解码组件、Socket通信组件、IPC机制读写组件、日志库组件,基础组件支持windows和Linux操作系统。

  • 分布式游戏服务器开发

    项目简介:

    游戏开发采用3D、2D两种游戏引擎,游戏框架采用FPS射击场景应用;后端服务器采用高性能、分式式解决方案,实现统一游戏或其他应用后端云平台,同时实现跨平台、高并发小文件的快速云服务功能;集群基础设施采用Docker容器搭建。

    项目特色:

    Epoll并发服务器、Redis/MySQL集群、分布式文件系统FastDFS、高性能服务器Nginx、U3d、Docker、游戏物理引擎等。

  • 网络隐匿私有应用入侵检测系统

    项目简介:

    网络私有应用监测系统主要由多核硬件平台、安全操作系统、监测引擎、数据关联分析、协同分析、升级管理、维护管理、综合管理等功能模块组成。

    项目特色:

    NetFlow原始流录制技术;VPN、即时通信、翻墙软件、通用应用加密等嗅探技术;网络安全威胁体系、XSS漏洞与过滤、WebShell防护、拒绝服务攻击;常见Web安全漏洞;沙盒框架。

 

C/C++面授视频试听

  • 函数的定义和声明

  • 结构体基本操作

  • calloc与realloc的使用

  • 链表和数组的区别

  • 以太网帧格式

  • QT介绍

申请免费线下基础班试听名额

教学服务

  • 每日测评

    每晚对学员当天知识的吸收程度、老师授课内容难易程度进行评分,老师会根据学员反馈进行分析,对学员吸收情况调整授课内容、课程节奏,最终让每位学员都可以跟上班级学习的整体节奏。

  • 技术辅导

    为每个就业班都安排了一名优秀的技术指导老师,不管是白天还是晚自习时间,随时解答学员问题,进一步巩固和加强课上知识。

  • 学习系统

    为了能辅助学员掌握所学知识,黑马程序员自主研发了6大学习系统,包括教学反馈系统、学习难易和吸收分析系统、学习测试系统、在线作业系统、学习任务手册、学员综合能力评定分析等。

  • 末位辅导

    末位辅导队列的学员,将会得到重点关心。技术辅导老师会在学员休息时间,针对学员的疑惑进行知识点梳理、答疑、辅导。以确保知识点掌握上没有一个学员掉队,真正落实不抛弃,不放弃任何一个学员。

  • 生活关怀

    从学员学习中的心态调整,到生活中的困难协助,从课上班级氛围塑造到课下多彩的班级活动,班主任360度暖心鼓励相伴。

  • 就业辅导

    小到五险一金的解释、面试礼仪的培训;大到500强企业面试实训及如何针对性地制定复习计划,帮助学员拿到高薪Offer。