2017年最新版C/C++课程大纲

目前课程版本:5.0   升级时间:2016.03.23   查看详细

C/C++课程设计理念

  •  

    关注学员长远发展

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

  •  

    课程定位更准确

    从整个IT行业角度出发,我们将C/C++定位于全栈开发方向,更偏重C/C++上层应用开发,意味着从windows开发到Linux开发,从前端界面到后台服务器、从C/C++语言的底层开发到高级的上层应用开发都可胜任。对于大型项目,往往需要各种技术,全栈程序员就有了得天独厚的优势,被各大企业争抢。我们课程项目紧跟时代潮流,包含移动开发、云传输等,让学员尽快的适应企业需求。

  •  

    课程定位更务实

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

  •  

    课程定位更全面

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

  •  

    就业范围更广泛

    我们培养的学员就业范围广阔,如:C/C++应用开发工程师,网络服务器开发工程师,界面开发工程师,算法工程师,数据安全工程师,数据库开发工程师,linux运维工程师等;甚至也可以做项目经理、初级架构师。涉及到的行业从传统的金融银行到流行的媒体主播,从PC段开发到手机移动开发,再到新兴的大数据、物流网、智能开发等热点,C/C++无所不能,总之不用担心学会了C/C++会没有市场。

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

学习对象

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

上课方式

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

培训时间

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


 

C/C++基础班课程大纲
所处阶段主讲内容技术要点学习目标
第1阶段:
C语言基础
1.Unix/Linux实战用户查询和切换命令;用户管理命令;文件权限管理命令;进程管理命令;系统管理命令(关机重启、网络连通性);vi编辑器;远程操作;webserver服务器搭建过程可掌握的核心能力:
(1)通过C语培养编程思维和动手能力;
(2)通过C语言的学习培养面向过程编程思想,为以后的深入学习就业课程打下坚实基础。

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

市场价值:
具备学习编程思维,但尚不能达到任何企业用人标准。
2.Unix/Linux服务器配置Unix/Linux操作系统;类Unix系统目录结构;查询命令;目录管理命令;文件管理命令;压缩解压命令
3.C语言概述第一个C语言程序;C语言程序代码的含义;printf函数;gcc编译器对C代码进行编译;system函数;集成开发环境(vs、qt)
4.数据类型与运算符常量与变量;进制;计算机内存数值存储方式;整型int;字符类型char;实型(浮点型)float、double;字符串格式化输出和输入
5.条件判断与循环语句运算符;条件控制语句;循环控制语句(while、do-while);循环控制语句(for);条件、循环语句的嵌套使用;跳转语句
6.数组与字符串一维数组;一维数组的案例;二维数组;字符数组;srand()函数和rand()函数产生随机数
7.函数字符串输入输出函数;字符串长度获取函数;字符串拷贝、连接、比较函数;字符串格式化函数(sprintf、sscanf);字符串查询、切割函数;自定义函数
8.指针指针变量的定义;指针基本使用;const修饰的指针;一级指针;指针和数组名的关系;指针法操作数组元素;指针作为函数的参数;数组作为函数的参数;指针做函数的返回值;指针处理字符串;字符指针做函数参数;项目开发常用字符串应用模型(两头堵、字符串翻转)
9.内存管理局部变量的作用域和生命周期;静态局部变量的作用域和生命周期;全局变量的作用域和生命周期;静态全局变量的作用域和生命周期;静态函数和非静态函数的区别;内存分区;堆区内存的分配(malloc)和释放(free)
10.复合类型结构体的基本用法;结构体嵌套指针和数组;结构体作为函数参数;union联合体类型;enum枚举类型;typedef声明类型
11.文件操作文件的分类(文本、二进制);文件的打开和关闭;fgetc()函数和fputc()函数;feof()函数;fgets()函数和fputs()函数;文件相关案例一;fprintf()函数和fscanf()函数;fread()函数和fwrite()函数;fseek()函数和ftell()函数;文件相关案例二;文件读写缓冲区的概念
12.项目实战创建Qt应用程序;IDE案例ui界面的设计;IDE案例打开文本文件功能;IDE案例另存为功能;IDE案例编译代码功能;IDE案例字符编码选择功能;一级指针做函数参数;二级指针做函数参数;快译通核心代码的含义;快译通分文件(多文件)编程;Qt版快译通

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

学习对象

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

上课方式

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

培训时间

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


 

C/C++就业班课程大纲
所处阶段主讲内容技术要点学习目标
第2阶段:
C提高
1.数据类型、内存分区、函数调用模型数据类型、变量的含义;全局、静态区;栈区的特点;堆区的特点;函数的调用模型;realoc、calloc可掌握的核心能力:    
(1)掌握C语言中的字符串、一维数组、二维数组的用法;
(2)掌握一级指针,二级指针,三级指针的高级用法,和理解N级指针概念,指针数组和数组指针; 3、学会结构体、文件的使用。

可解决的现实问题:
(1)可以实现自己开发小程序,例如贪吃蛇一类的用C语言写的程序;
(2)可以读懂C语言程序代码。

市场价值:
可以掌握C语言深入技巧,灵活应用C语言接口封装设计的方法,但尚不能达到任何企业用人标准。
2.一级指针的概念和使用指针基本使用;指针的步长的概念;间接赋值是指针存在的最大意义;一级指针做函数参数;通过指针操作字符串;const类型修饰符
3.二级指针作为函数参数、位运算二级指针的基本使用;二级指针做参数输出特性的使用;二级指针做参数输入特性的使用;多级指针作为函数参数;位的逻辑运算符;移位运算符
4.指针与数组、结构体的关系数组指针;指针数组;多维数组做函数参数;结构体嵌套一级指针;结构体嵌套二级指针;结构体的浅拷贝深拷贝
5.函数指针基本功能模块的封装和设计的思想;函数指针定义的三种方式;函数指针数组的定义和使用;函数指针做函数参数(回调函数)
6.链表的操作、宏定义链表的基本概念;单向链表初始化操作;遍历链表的操作;插入节点操作;删除指定节点的操作;链表释放节点操作;预处理带参数和不参数宏
7.递归函数、案例递归函数的使用;C提高案例
第3阶段:
数据结构
1.数据结构概念、线性表大O表示法基本概念;线性表顺序存储和链式存储概念;线性表的顺序存储(数组);线性表的链式存储(链表)可掌握的核心能力:
在基础班C语言知识点之上,掌握C语言深入技巧,C语言接口封装设计

可解决的现实问题:
应用C语言接口封装设计的方法,进行企业项目开发。

市场价值:
掌握基本的数据结构类型,尚不能达到企业用人标准。
2.队列、栈队列的顺序存储;队列的链式存储;栈的顺序存储;栈的链式存储;栈的应用案例;
3.二叉树、常用排序算法二叉树基本操作(高度、拷贝、叶子节点数目);二叉树递归遍历(先序遍历、中序遍历、后序遍历);二叉树应用案例;常用排序算法
第4阶段:
C++开发编程
1.C++对C的扩展、引用C++语言的命名空间的使用;C++对C的扩展;C、C++中const不同之处;定义和使用引用类型变量可掌握的核心能力:
具备常用C++方向基本知识和常用技能。

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

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

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

市场价值:
熟练学习和掌握后,可满足企业开发的初级需求,根据市场反馈数据看,薪资普遍在9000-13000元 /月。
2.Qt常用的控件常用对话框的使用;Qt界面设计器的使用;常用控件的使用;界面布局;自定义控件的使用;Qt事件处理
3.Qt绘图与文件操作QPainter绘图;update函数;绘图设备(QPixmap、QBitmap、QImage、QPicture);文件操作
4.Qt界面编程案例汽车销售管理系统ui设计;汽车销售管理系统车辆管理模块功能开发;汽车销售管理系统销售统计模块功能开发;汽车销售管理系统人员登陆模块功能开发;人员和车辆信息文件读写类的使用
第6阶段:
MFC界面编程
1.MFC 初识Windows编程的一些基本概念;Windows编程模型;MFC应用程序框架;创建MFC应用程序;MFC函数Ex后缀和Afx前缀的作用可掌握的核心能力:
具备基本的MFC开发的技巧和常用技能;

可解决的现实问题:
实现简单的MFC界面程序;

市场价值:
熟练学习和掌握后,可满足企业开发的初级需求,根据市场反馈数据看,薪资普遍在9000-13000元 /月。
2.MFC对话框与常用空间创建基于对话框的MFC应用程序;模态对话框和非模态对话框;常用控件
3.MFC界面编程案例销售管理系统ui设计;销售管理系统销售管理模块功能开发;销售管理系统库存管理模块功能开发;销售管理系统个人信息模块功能开发;销售管理系统人员登陆模块功能开发;人员和商品信息文件读写类的使用
第7阶段:
linux系统编程
1.Linux常用命令Linux下的目录结构和常见目录的作用、相对路径和绝对路径、常用文件和目录操作相关的命令;修改用户权限、用户和用户组相关的命令;find命令相关参数进行文件查找;grep命令根据文件内容进行文件的查找;压缩工具完成文件或目录的压缩解压缩;Ubuntu下的软件安装和卸载可掌握的核心能力:
具备常用后台服务器开发方向基本知识和常用技能,并具备基本的开发能力;

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

市场价值:
熟练学习和掌握后,可满足企业开发的初中级需求,根据市场反馈数据看,薪资普遍在 8000-11000元 /月。
2.vim常用命令vim命令模式下相关命令;命令模式切换到编辑模式的相关命令;vim末行模式下相关命令;找到vim的配置文件并且参考资料进行配置;gcc的工作流程和掌握常见参数;Linux下的静态库的制作和使用;Linux下的共享库的制作和使用
3.makefile、gdb调试使用规则编写简单的makefile文件;makefile中的变量;makefile中的函数;gdb相关调试命令;pcb和文件描述符,虚拟地址空间;Linux系统IO函数;阻塞和非阻塞的概念
4.目录相关操作函数stat/lstat函数;文件属性相关函数;链接相关的函数;目录操作相关函数;目录遍历相关函数;dup、dup2函数;fcntl函数
5.进程进程相关的概念;fork/getpid/getppid函数;ps/kill命令;execl/execlp函数;什么是孤儿进程和僵尸进程;wait函数;waitpid函数
6.进程间通信pipe进行父子进程间通信、兄弟进程间通信;fifo进行无血缘关系的进程间通信;mmap函数;mmap创建匿名映射区;mmap进行有血缘关系的进程间通信、无血缘关系的进程间通信
7.信号信号中的基本概念;使用信号相关的函数;信号内核实现原理;参考文档使用信号集操作相关函数;信号捕捉函数signal、sigaction;使用信号完成子进程的回收;发送信号时如何进行参数传递
8.守护进程守护进程的特点;进程组和会话概念和相关函数;守护进程的创建;多个线程的创建;线程的退出和资源回收、取消(杀死线程);线程属性设置线程分离
9.信号互斥量;死锁以及解决方案;读写锁;条件变量;条件变量实现生产消费者模型;信号量实现生产消费者模型;线程同步解决哲学家就餐问题
10.网络协议概述OSI七层模型结构;TCP/IP 4层模型结构;B/S、C/S优缺点对比;常见网络协议格式;套接字;网络字节序;IP地址转换函数;编写TCP的C/S网络程序
11.TCP/IP、高并发服务器三次握手建立连接过程;四次握手断开连接过程;滑动窗口概念;错误处理函数封装;多进程并发服务器;多线程并发服务器
12.TCP/IP、selectTCP状态转换图;2MSL概念;端口复用方法;半关闭;多路IO转接模型;select函数;fd_set相关操作函数;select多路IO转接模型
13.poll和epollpoll操作函数;epoll多路IO模型;epollET/LT触发模式;epoll反应堆模型设计思想;线程池模型的设计思想
14.UDPUDP通信;UDP C/S 服务器模型;UDP 广播机制;UDP 组播机制;本地套接字
15.Linux小项目通过项目实战,使大家熟悉Linux知识的应用,已经如何开发服务器程序,从项目需求分析项目设计,到项目实现,对程序开发有个整体的认识
16.libevnet简介libevnet库设计核心思想epoll反应堆模型;libevnet库event_base;libevnet库中的循环;libevnet库中的事件Event;使用BufferEvent、evBuffer;结合帮助手册扩展学习libevnet库;git代码管理工具的基础使用
17.开发常用小技术xml文件的语法格式;借助xml对应C库函数,生成xml文件;已知xml文件,解析xml数据;xml库接口封装设计;自定义库函数接口的使用;json数据存储的语法格式;借助cJSON函数,生成json文件 ;已知json文件,解析出数据;json库接口封装设计;自定义库函数接口的使用
第8阶段:
数据库编程
1.SQL语句Oracle数据库基本概念;sqlplus工具访问Oracle数据库;select语句查询数据;sql语句过滤;sql语句排序表数据;相关单行函数;多行函数(组函数);group by与having进行分组数据与分组过滤可掌握的核心能力:
掌握常用数据库类型的操作技巧和简单开发。

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

市场价值:
熟练学习和掌握后,可满足企业开发的初中级需求,根据市场反馈数据看,薪资普遍在 8000-11000元 /月。
2.多表查询、事务多表查询检索表数据;编写外连接sql检索数据;子查询获取表数据;解决Top-N问题;进行集合运算;处理表数据;事务的概念;第三方工具登陆oracle数据库
3.oracle创建和管理表(oracle);oracle表的约束;数据库的对象视图和索引(oracle);Oracle基于用户的解决方案实施;安装启动mysql数据库;对mysql数据库进行CURD操作、对表进行CURD操作、增删改操作;查询语句获取mysql表数据
4.mysqlmysql表的约束;mysql中出现的中文乱码问题;mysql函数库连接数据库;mysql API访问数据库;使用基础类API实现mysql客户端工具;预处理类API访问mysql数据库;使用api修改mysql事务特性
5.mongodb操作mongodb的安装;mongodb的相关概念;mongodb的基本操作指令;对mongodb进行数据操作、索引操作;mongodb的副本集
6.mongodb-c++API的使用使用mongodb-c++API;需求分析的一般过程;需求案例的实现原理和设计过程;案例程序框架搭建和部署;使用mysql-API操作mysql数据库、mongodb数据库

基础差? 可免费学基础班

申请试读名额

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

基础测试

C/C++学科项目介绍

  • 企业级应用类项目-安全传输平台

    项目简介:

    是一款基础设施类项目, 为集团、企业信息系统的提供统一、标准的信息安全服务;解决企业和企业之间,集团内部信息数据的传输安全、消息安全、身份鉴别和认证;以及传统的安全产品部署分散、效率低下、系统脆弱等关键问题。

    项目特色:

    1、我们深度结合实战开发项目,分析开发的流程,传授开发经验,深度讲解开发中遇到bug如何调试。
    2、在开发中我们将通用组件和业务流合理分层,使得子系统和子系统之间完全解耦合;
    3、在开发中,进行Windows的客户端和linux服务程序异构对接。
    4、讲解经典网页web相关知识,包含开发中常用到的XML、json等知识,进行web和linux服务程序完美对接;
    5、实现B/S结构和C/S架构的完美融合。

  • 互联网热点应用类项目-传智快车

    项目简介:

    是一款移动热点应用类项目,参照滴滴打车业务流程,涵盖了目前互联网热点技术。该项目涵盖了滴滴打车主要功能,开发中使用了Mysql数据库、tufao、QT、libcurl、json打包和解析、jni等流行技术实现。

    项目特色:

    1、该项目涵盖了目前互联网热点技术:定位、导航、在线支付服务,是很多新兴公司最为看重的技术。
    2、在该开发过程中进行移动端的项目开发,学习android体用C/C++代码原理。
    3、进行跨平台业务,客户端采用android,界面采用java编写,后台为C/C++实现,重现C++经典技术和java技术完美融合。
    4、该项目完美支持导航地图定位,并且可以实现在线支付服务功能。

  • C/C++性能王者-某知名网络社区分布式云存储项

    项目简介:

    本项目为社区、电子商务网站、银行、政府、证券等提供高性能、分式式存储方案。通过集群应用、网络技术、分布式文件系统等,共同对外提供数据存储和业务访问功能的一个系统。

    项目特色:

    1、客户端用移动终端(android/ios)和PC端的网页访问等方式。
    2、C/C++后台服务器功能性能高效,可以有效解决用户端的跨平台问题;
    3、项目给予异步IO经典开源框架libevent,使用企业广泛使用的高性能服务器nginx,内存数据库memcached和redis,还用到fastDFS服务器安装配置等新技术,实现分布式文件存储服务器和缓存服务器的功能。
    4、在项目过程中,详细分析开发流程,快速增加学员的项目经要。

 

C/C++面授视频试听

  • 函数的定义和声明

  • 结构体基本操作

  • calloc与realloc的使用

  • 链表和数组的区别

  • 以太网帧格式

  • QT介绍

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

教学服务

  • 每日测评

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

  • 技术辅导

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

  • 学习系统

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

  • 末位辅导

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

  • 生活关怀

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

  • 就业辅导

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