OpenI 启智社区

启智社区,确实给力

当前位置:首页 > 学习 > 实训 >

C&C++程序设计(计算机程序设计)

C&C++程序设计(计算机程序设计)

  • 来源:国防科技大学
  • 章节:4 单元:9

  • 周会平

  • 尹良泽

  • 徐建军

  • 陈振邦

  • 李姗姗

  • 陈立前

  • 刘万伟

  • 何鸿君
进入实训课程

课程简介:

`C`和`C++`是历史最悠久、最受欢迎的程序设计语言。`C++`是`C`语言的面向对象扩展,是`C`语言的超集。除了面向对象编程等`C++`特性之外,两种语言基本上是一致的。`C`和`C++`应用领域非常广泛,包括系统软件、游戏、网络软件、分布式系统、嵌入式系统等等。
目前国际、国内或者各知名`IT`企业组织的程序设计竞赛大多使用`C`和`C++`语言,如`ACM/ICPC`、`Google`的`GCJ`、`Facebook`的`HackerRank`、`TopCoder`、百度之星等,获得好的成绩相当于获得进入这些知名企业的通行证。
国防科技大学自`2000`年开始讲授`C++`语言以来,经历了面向语言、面向编程能力、面向问题求解、面向新工科计算能力的需求,采用语言、精心设计的能同时反应语言设计初衷和实际问题求解需求的案例两条线并进的方式,引导学生,从简单到复杂,分阶段逐步滚动迭代,培养学生复杂工程问题的计算分析和求解能力。课程组获湖南省教学成果特等奖`1`次、二等奖`1`次,获校教学成果一等奖`1`次,`2017`年获得学校唯一的一个本科教学优秀集体一等奖。
本课程充分利用`Educoder`边学习边闯关的特点,采用实训闯关和视频教学相结合的方式,其中实训闯关在`EduCoder`平台(实践课程链接:https://www.educoder.net/paths/3 )实施,视频教学在学堂在线(`MOOC`链接:https://www.xuetangx.com/course/NUDT08091001138/12423889 ) 实施,将学习过程分为`3`个阶段,由浅入深,通过知识网结构帮助学生全面把握所学内容,通过大量的案例引导学生进行能力的训练,使学生逐步掌握`C`和`C++`语言,掌握计算分析和求解能力,为求职或更进一步的学习、研究打好基础。本课程适合自学或者辅助线下教学。
本课程在知士荟上建了“C/C++程序设计”学习空间(学习空间链接:[https://learnerhub.net/#/spaces/478/issues](https://learnerhub.net/#/spaces/478/issues)),方便同学们讨论交流,也方便老师统一答疑,学习过程中有任何问题欢迎到学习空间查询答案或提问。学习空间也有历年来同学们上传的课程资源可供下载。

课程章节:

第一部分 程序控制

程序可以抽象为“数据的输入-数据的处理-结果输出”。这一部分从输入输出引入程序结构,然后用模块化程序设计方法贯穿整个部分。数据的每一个最小处理单元由运算符来完成,运算符形成的表达式可以实现预定义数据类型的计算,某个计算过程(也可以说算法)需要一组有序的运算共同完成,组织这些运算需要使用顺序、选择、循环三种结构。更复杂的功能则需要引入函数,使用模块化的程序设计方法进行设计。

第二部分 数据结构

程序=数据结构+算法,光有程序控制部分实现算法不够,还需要有数据结构的设计。数据结构一般可以抽象为数据对象加上数据对象之间的联系。数组描述一种最常见的数据结构:连续存放有序的同类型数据对象。结构则用来描述单个复杂对象,指针可以通过存放的地址访问该地址的对象,常用来表示对象之间的联系。实际数据结构的设计则更加灵活。这一部分带你走进C++的数据结构设计。

第三部分 综合提升

数据结构经常可以描述为数据对象和数据对象之间的联系,通过联系的复杂性可以分为线性结构、树形结构和图形结构,这一部分通过线性表初步接触数据结构的设计和实现。大型系统的运行则需要文件的支持,文件使程序处理大量数据成为可能。这一部分从数据结构的复杂性和处理数据的量两个方面进行综合提升。

示例