荆州达内教育
服务热线:400-008-6280
当前位置>荆州达内教育

荆州C/C++语言培训班

荆州C/C++语言培训班

  • 上课时段:见详情
  • 教学点:1个
  • 开班时间:随到随学
  • 课程价格:请咨询
  • 已关注:841
  • 优惠价格:请咨询
  • 咨询电话: 400-008-6280
授课学校:荆州达内教育 (点击获取校区地址)

课程介绍

荆州C/C++语言培训机构,地址,电话,北京达内教育

       荆州C/C++语言培训相关资料:

  C++二维数组的定义和用法

  二维数组的定义与初始化

  在实际的工作中,仅仅使用一维数组是远远不够的,例如,一个学习小组有5个人,每个人有3门课的考试成绩,如果使用一维数组解决是很麻烦的。这时,可以使用二维数组,维数组的定义方式与一维数组类似,其语法格式如下:

  类型说明符 数组名[常量表达式1] [常量表达式2];

  在上述语法格式中,“常量表达式1”被称为行下标,“常量表达式2”被称为列下标。

  例如,定义一个3行4列的二维数组,具体如下:

  int a[3][4];

  在上述定义的二维数组中,共包含3*4个元素,即12个元素。接下来,通过一张图来描述二维数组a的元素分布情况。

  1588924115618_C++.jpg

  从图中可以看出,二维数组a是按行进行存放的,先存放a行,再存放a[1行、a2行,并且每行有4个元素,也是依次存放的。

  完成二维数组的定义后,需要对二维数组进行初始化,初始化二维数组的方式有4种,具体如下。

  (1)按行给二维数组赋初值。例如:

  int a[2][3] = {{1,2,3},{4,5,6}};

  在上述代码中,等号后面有一对大括号,大括号中的第1对括号代表的是第1行的数组元素,第2对括号代表的是第2行的数组元素。

  (2)将所有的数组元素按行顺序写在1个大括号内。例如

  int a[2][3] = {1,2,3,4,5,6};

  在上述代码中,二维数组a共有两行,每行有3个元素,其中,第1行的元素依次为1、2、3,第2行元素依次为4、5、6。

  (3)对部分数组元素赋初值。例如:

  int b[3][4] = {{1},{4,3},{2,1,2}};

  在上述代码中,只为数组b中的部分元素进行了赋值,对于没有赋值的元素,系统会自动赋值为0,数组b中元素的存储方式如下所示。

  1588924136474_C++-二维数组、.jpg

  (4)如果对全部数组元素置初值,则二维数组的第1个下标可省略,但第2个下标不能省略。例如

  int a[2][3] = {1,2,3,4,5,6};

  可以写为

  int a[][3] = {1,2,3,4,5,6};

  系统会根据固定的列数,将后边的数值进行划分,自动将行数定为2。

  二维数组的引用

  二维数组的引用方式同一维数组的引用方式一样,也是通过数组名和下标的方式来引用数组元素,其语法格式如下:

  数组名[下标] [下标];

  在上述语法格式中,下标值应该在已定义的数组的大小范围内,例如,下面这种情况就是错误的。

  int a[3][ 4];    //定义a为3行4列的二维数组

  a[3][4]=3;    //对数组a第3行第4列元素赋值,出错

  在上述代码中,数组a可用的行下标范围是0~2,列下标是0~3,a[3][4]超出了数组的下标范围。为了帮助读者更好地掌握二维数组的引用,接下来,通过一个案例来演示二维数组的遍历。

  #include<stdio.h>

  void main() {

  //申明并初始化数组

  int array[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };

  for (int i = 0; i < 3; i++)    //循环遍历

  {

  for (int j = 0; j < 4; j++)    //循环遍历

  {

  printf("[%d][%d]: %d", i, j, array[i][j]);

  }

  printf("n");    //每行添加换行字符

  }

  }

  运行结果如下

  1588924165993_二维数组运行案例.jpg

  在上图中定义了一个二维数组aray,该数组有3行4列。当使用嵌套for循环遍历二维数组元素时,外层for循环用于变量数组的行元素,内层for循环用于遍历数组的列元素。从图中可以看出,程序依次将数组aray中的元素输出了。

  二维数组的应用

  熟悉了二维数组的定义和引用,接下来定义一个二维数组 StuScore[5][3],用来存放5名同学3门课程的成绩,并定义变量m表示学生,n表示第几门成绩,aver表示每名同学3门课程的平均成绩,sum表示每名同学3门课的总成绩,具体如下案例所示:

  #include<stdio.h>

  void main(int argc, char *argv[])

  {

  int StuScore[5][3] = {

  //张同学

  {88, 70, 90},

  //王同学

  {80, 80, 60},

  //李同学

  {89, 60, 85},

  //赵同学

  {80, 75, 78},

  //周同学

  {70, 80, 80}

  };

  int m = 0, n = 0;

  int nStuTotalScore = 0;

  int nMathTotalScore = 0;

  int nChineseTotalScore = 0;

  int nEnglishToatalScore = 0;

  printf("个人总成绩:n");

  for (m = 0; m < 5; m++) {

  nStuTotalScore = 0;

  for (n = 0; n < 3; n++) {

  nStuTotalScore += StuScore[m][n];

  switch (n)

  {

  case 0:

  {

  nMathTotalScore += StuScore[m][n];

  break;

  }

  case 1:

  {

  nChineseTotalScore += StuScore[m][1];

  break;

  }

  case 2:

  {

  nEnglishToatalScore += StuScore[m][2];

  }

  }

  }

  switch (m)

  {

  case 0:

  {

  printf("张同学:%dn", nStuTotalScore);

  break;

  }

  case 1:

  {

  printf("王同学:%dn", nStuTotalScore);

  break;

  }

  case 2:

  {

  printf("李同学:%dn", nStuTotalScore);

  break;

  }

  case 3:

  {

  printf("赵同学:%dn", nStuTotalScore);

  break;

  }

  case 4:

  {

  printf("周同学:%dn", nStuTotalScore);

  break;

  }

  }

  }

  printf("小组数学总分: %d 小组数学平均分:%.2fn",

  nMathTotalScore, (double)nMathTotalScore / 5);

  printf("小组语文学总分: %d 小组语文平均分:%.2fn",

  nChineseTotalScore, (double)nChineseTotalScore / 5);

  printf("小组英语总分: %d 小组英语平均分:%.2fn",

  nEnglishToatalScore, (double)nEnglishToatalScore / 5);

  }


C++ 开发语言,主导编程世界的地位

C语言属于高级语言,具有可移植性,面向过程的,贴近底层、运行速度快

       1、应用广泛

       C++ 语言广泛的用于基础软件、桌面系统、网络通信、音频视频、游戏娱乐等诸多领域,是世界上使用最广泛的编程语言之一

80%大型网络游戏由C++编程语言开发

80%大型网络游戏

由C++编程语言开发

大部分基础软件是由C++编程语言开发

大部分基础软件是由

C++编程语言开发

90%以上桌面系统都是由C++语言编写

90%以上桌面系统

都是由C++语言编写

C/C++ 技术在网络通信方面应用巨大

C/C++ 技术在网络通信

方面应用巨大


       2、稳居前列

       

稳居前列据世界权威语言排行榜(TIOBE)的最新数据显示(2019 年 3 月),C和C++ 语言已分别名列排行榜的第二和第四的位置。


C++ 软件人才稀缺,职业发展前景广

C++软件工程师在企业需求中呈上升趋势,人才需求发展处于坚挺状态


C++ 软件人才稀缺,职业发展前景广

可从事行业:算法实现 网络安全 物联网 图形 / 视频 / 多媒体处理 底层数据处理 区块链 负载均衡 反向代理


19年迭代,课程源自企业需求,紧跟时代

达内每一期课程大纲,由研发组结合热点技术与企业需求不断完善


第一阶段 C语言编辑基础课程内容:

• 计算机概述 • 标准 C 基础语法 • 数据结构和算法

学习目标

计算机概述,Linux Eclipse 开发环境搭建

基本数据类型,流程控制,数组 俄罗斯方块

各种存储结构优劣对比,排序算法优劣对比

第二阶段 linux c系统开发

课程内容

• Linux 文件系统 • Linux 内存管理 • Linux 进程管理

• Linux 线程管理 • 网络通讯开发

学习目标

掌握文件的打开与关闭、文件的读写、系统与标准I/O

掌握子进程创建、进程间通讯、信号捕获和处理

掌握线程创建、线程同步技术

第三阶段C++语言及数据库

课程内容

• C++ 基础 • OOP • 异常和 IO 流 • QT 开源框架库

• C++ 模板 • STL 标准模板库 • MySQL

学习目标

熟悉名字空间、各种数据类型的操作

熟练掌握C++ 各种异常情况处理,输入输出流操作

掌握QT 开源框架库的使用

了解C++ 泛化数据类型技术原理和实现

掌握STL 十大容器使用

第四阶段 windows系统开发

课程内容

• Windows 编程基础 • Windows 窗口 • Windows 线程管理 • MFC 框架总揽

• 视图架构 • MFC 序列化 • MFC 网络通讯 • ADO 接口

学习目标

掌握窗口的注册、窗口的创建、消息机制、资源的使用

了解MFC 的概述、程序启动机制、窗口创建机制

掌握文件操作、永久保存机制

掌握ADO 接口访问数据库技术

第五阶段 黑客攻防+网络安全

课程内容

• 网络安全概述 • 网络协议栈 • 密钥 • 内核加固

• 网络诱骗 • 防火墙 • 垃圾邮件过滤 • 恶意代码检测 • 嗅探器

学习目标

网络安全开发编码原理和切入点的剖析

对称秘钥、公钥秘钥的原理解析

针对木马攻击程序的反响渗透和注入技术

防火墙技术工作原理解析

各种抓包工具工作原理


多领域项目实战,助你职位发展先人一步

项目落地+重构,助你不仅能编程-更精编程



阶段项目一

根据当天知识点,搭建或重构项目,深谙不同编程方式的区别,选择合适的实现方式。

根据当天知识点,搭建或重构项目,深谙不同编程方式的区别,选择合适的实现方式。

HTTP服务器

WebServes

Web服务器可以解析客户端发来HTTP协议,根据用户请求,给予响应数据(静态网页,图片或动态页面)。

HTTP服务器

阶段项目二

根据当天知识点,搭建或重构项目,深谙不同编程方式的区别,选择合适的实现方式。

根据当天知识点,搭建或重构项目,深谙不同编程方式的区别,选择合适的实现方式。

网络爬虫

WebCrawler

搜索引擎的信息源自互联网,通过“网络爬虫”将整个“互联网”的海量信息获取到本地.(搜索引擎的入口)

阶段项目三

根据当天知识点,搭建或重构项目,深谙不同编程方式的区别,选择合适的实现方式。

根据当天知识点,搭建或重构项目,深谙不同编程方式的区别,选择合适的实现方式。

电信计费系统

DMS

电信部门针对电信用户登录信息进行采集,分析,传输,存储,以此作为对电信用户资费的依据。

阶段项目四

根据当天知识点,搭建或重构项目,深谙不同编程方式的区别,选择合适的实现方式。

根据当天知识点,搭建或重构项目,深谙不同编程方式的区别,选择合适的实现方式。

远程监控

Remote Control

取消远程机所有的输入控制功能,实现本地机监视并控制远程机的所有输入输出操作。

扫描二维码免费领取试听课程

报名预约

登录51乐学网

注册51乐学网

免费短信关闭