版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C++程序设计及项目实践》教学大纲一、课程基本信息课程代码课程名称C++程序设计及项目实践开课学期1学分3学时54课程类別必修适用专业开课对象软件工程/大一先修课程无开课单位软件工程系大纲执笔人李小斌大纲审核人祝义二、课程性质、课程目标、毕业要求和课程思政(一)课程性质本课程属于软件工程专业的专业基础课,课程通过对C++语言的语法规则、数据类型、算法、程序结构、函数、指针、结构体、类、继承、多态、文件、标准模板库(STL)、项目实践等方面的学习,为后续课程提供必要的专业基础知识。此外,通过一系列实验和课程设计,理论联系实际,进一步巩固所学的相关理论知识,培养学生具有初步的程序设计能力和良好的程序设计技能。(二)课程目标目标1:能够针对具体应用问题,在多种可选程序设计方案中,根据问题的约束条件,分析各种方案在程序结构、运行效率上的利弊,选择恰当的处理方法。目标2:掌握数据描述、赋值语句与输入/输出、选择结构程序设计、循环结构程序设计、数组、函数、指针、结构体链表、文件等基本程序设计基础知识。掌握面向对象程序设计基础、类的基础部分、文件、类的高级部分、继承多态虚函数、模板等基本面向对象程序设计基础知识。(三)支撑毕业要求的指标点3.1掌握设计/开发软件工程领域复杂工程问题解决方案的基本方法和技术,了解影响设计目标和技术方案的各种因素。5.2能够选择和使用常用软件开发语言、开发环境和开发框架,理解其局限性,并对复杂软件工程问题进行分析、计算与设计。(四)课程目标与毕业要求指标点对应的矩阵关系课程目标与毕业要求指标点对应的矩阵关系见表1。表1课程目标与毕业要求指标点对应的矩阵关系培养目标毕业要求指标点课程目标1课程目标2指标点3.1√指标点5.2√(五)课程思政本课程中的课程思政从程序设计理论和程序设计实践两方面可以体现科学精神和大国工匠精神。科学精神在程序设计理论学习中,体现科学精神的地方包括以下几个方面:(1)系统性:程序应该具有清晰的结构,模块化和高内聚低耦合的特点,方便维护和拓展。(2)可靠性:程序设计具有较强的错误处理能力,避免出现漏洞和意外的错误。(3)效率性:程序设计应优化算法和数据结构,减少计算和存储的时间和空间开销。(4)简洁性:程序设计具有简洁性,避免冗余和复杂的代码结构。(5)可扩展性:程序能够方便地进行功能扩展和修改。应遵循开放封闭原则,设计可插拔的模块和接口,方便程序的后续维护和拓展。科学精神要求C++程序设计要符合科学方法的原则,以实证为基础,注重整体规划和细节处理,追求高效、简洁、可靠和可扩展的设计。大国工匠精神在程序设计实践中,体现大国工匠精神的地方包括以下几个方面:(1)严谨的态度:对细节的追求和严谨的态度。程序设计要注重代码的规范性和一致性,遵循良好的编码风格,保证代码的可读性和可维护性。(2)高质量的代码:不断追求卓越和完美的品质。程序设计要编写高质量的代码,包括正确性、可靠性、可扩展性和高效性,保证程序的稳定性和性能。(3)高效的算法和数据结构:不断挑战自我,追求创新和优化。程序设计要选择和设计高效的算法和数据结构,以减少计算和存储的时间和空间开销,提高程序的执行效率。(4)持续学习和自我提升:持续学习和追求技术的不断进步。程序设计要求跟踪和学习最新的技术趋势和最佳实践,不断提升自己的编程技能和解决问题的能力。大国工匠精神体现在对细节的严谨追求、高质量代码的编写、优化的算法和数据结构的选择及持续学习和自我提升的态度。三、教学内容纲要(一)教学要求与主要教学内容第一章概述第一节C++语言简介C++语言的历史背景、主要特点。第二节开发工具C++编译器的作用、常见的编译器以及集成开发环境。第三节第一个C++程序通过一个简单的程序,展示C++程序的基本结构。第四节开发流程C++程序开发的四个步骤:编辑、编译、连接和执行,每个步骤的重要性和可能遇到的问题。第二章常量、变量及表达式第一节常量常量的定义、基础数据类型的字面常量、符号常量和命名常量,以及常量在程序中的作用。第二节变量及数据类型变量的定义、标识符的规则、基本输入输出操作、数据类型(包括整型、浮点型、字符型等)以及变量的初始化和赋值。第三节运算符及表达式各种运算符(如赋值运算符、算术运算符、自增自减运算符、关系运算符、逻辑运算符等)的使用方法和优先级,以及表达式的构成和计算。第三章顺序结构第一节程序语句C++中的声明语句、表达式语句、控制语句(包括选择语句、循环语句、跳转语句和标号语句)以及复合语句。第二节三种执行流程顺序结构、选择结构和循环结构的概念和特点,重点介绍了顺序结构的执行流程。第三节顺序结构顺序结构程序的设计和实现。第四章选择结构第一节if语句if语句的语法结构和执行流程。第二节if-else语句if-else语句的语法结构和执行流程,如何根据条件选择执行不同的语句块。第三节if语句的嵌套通过嵌套if语句来实现多条件判断。第四节条件运算符条件运算符“?:”的使用方法,如何用条件运算符简化if-else语句。第五节switch语句switch语句的语法结构和执行流程,如何使用switch语句实现多分支选择。第五章循环结构第一节while语句while语句的语法结构和执行流程。第二节do-while语句do-while语句的语法结构和执行流程。第三节for语句for语句的语法结构和执行流程。第四节嵌套选择结构和循环结构的嵌套使用。第五节break语句break语句的作用和使用。第六节continue语句continue语句的作用和使用。第六章函数第一节定义及调用函数函数的定义语法、无参函数和有参函数的使用。第二节递归函数递归函数的概念和使用。第三节重载函数重载函数的概念和使用。第四节函数模板函数模板的概念和使用。第五节参数默认值参数默认值的概念和使用。第六节内联函数内联函数的概念和使用。第七节多文件项目多文件项目的组织方式和开发。第八节标准库函数C++标准库中的一些常用函数,如数学函数、输入输出及格式控制函数等。第七章数组第一节一维数组数组的定义、初始化、基于位置的元素访问和基于值的元素访问。第二节二维数组二维数组的定义、初始化和元素访问。第三节高维数组高维数组的定义和使用。第四节函数中的数组数组元素作为函数参数和数组名作为函数参数的使用。第五节字符数组字符数组的定义、初始化和使用方法。字符串的概念、初始化方法和处理函数。第八章自定义类型第一节结构体结构体的定义、变量定义、初始化、读写方法以及在函数中的使用。第二节联合体联合体的定义和使用。第三节枚举枚举类型的定义和使用。第四节类型别名类型别名的概念和使用。第九章指针及引用第一节指针基础指针的概念、定义、使用方法以及void指针、NULL指针和指向指针的指针等。第二节指针与数组数组指针、指针数组和字符指针的概念和使用。第三节内存动态分配基础类型内存动态分配、可变长数组动态分配和结构体类型内存动态分配的。第四节指针与函数指针作为函数参数、指针作为函数返回值和函数指针的概念和使用。第五节单向链表单向链表的概念和实现。第六节引用引用的声明、使用方法以及引用作为函数参数和返回值的使用。第七节const对指针及引用的写保护const修饰符在指针和引用中的使用。第十章类和对象第一节初步了解类和对象的基本概念,包括类的定义、对象的创建和使用。第二节类声明类的声明形式、成员函数的定义和使用。第三节对象对象的定义、对象指针、对象引用和对象数组的概念和使用。第四节构造函数构造函数的概念、一般构造函数和拷贝构造函数。第五节析构函数析构函数的概念和使用。第六节this指针this指针的概念和使用。第七节静态成员静态成员数据和静态成员函数的概念和使用。第八节const对类及对象的保护const修饰符在类和对象中的使用。第九节类模板类模板的概念和使用方法。第十节友元友元函数、友元成员函数和友元类的概念和使用方。第十一章继承第一节单继承单继承的概念、访问属性、构造函数和析构函数。第二节多继承多继承的概念、二义性问题和虚继承及虚基类用。第十二章多态第一节基类派生类对象赋基类和派生类对象赋值的概念和使用。第二节虚函数虚函数的概念和使用。第三节纯虚函数纯虚函数的概念和使用。第四节虚析构函数虚析构函数的概念和使用。第十三章运算符重载第一节实现基础运算符重载的概念和实现,包括成员函数实现和友元函数实现。第二节双目运算符重载双目运算符重载的实现。第三节关系运算符重载关系运算符重载的实现。第四节单目运算符重载单目运算符重载的实现。第五节赋值运算符重载赋值运算符重载的实现。第六节new与delete运算符重载new和delete运算符重载的实现。第七节特殊运算符重载函数调用运算符“()”、成员访问运算符“->”和下标访问运算符“[]”的重载。第八节类类型转换转换构造函数和类型转换函数的概念和使用方法。第九节输入输出运算符重载输入输出运算符重载的实现。第十四章文件第一节文本文件文本文件的写入和读取。第二节二进制文件二进制文件的写入和读取。第三节文件随机访问文本文件和二进制文件的随机访问。第十五章C++进阶第一节异常处理异常处理的框架、标准异常类和自定义异常类。第二节命名空间命名空间的概念和使用,包括单文件单命名空间、单文件多命名空间、多文件单命名空间和多文件多命名空间的使用。第三节预处理器预处理器指令、预处理运算符#和##以及预定义的预处理器宏的使用。第四节匿名函数匿名函数的基础使用和mutable特性的使用。第五节字符串string类字符串string类的使用,包括字符串的基本操作、算法和迭代器的使用。第六节正则表达式正则表达式的基础、算法和迭代器的使用方法。第十六章标准模板库第一节容器标准模板库中的各种容器,如数组array、向量vector、双端队列deque、双向链表list、单向链表forward_list、集合Set、可重复值集合multiset、映照容器map、可重复键值映照容器multimap、无序映照unordered_map、无序可重复映照unordered_multimap、无序集合unordered_set、无序可重复值集合unordered_multiset、堆栈stack、队列queue和优先队列priority_queue等。第二节算法标准模板库中的各种算法,如批处理算法、搜索算法、拷贝算法、交换算法、转换算法、生成算法、删除算法、变序算法、分区算法、排序算法、二分搜索算法、集合算法、合并算法、堆算法、最小/最大算法、字典比较算法、排列算法和数值算法等。第十七章项目实践第一节C++基础综合项目第二节图形用户界面(GUI)项目第三节数据库项目第四节网络项目第五节游戏项目四、课程考核方式本课程成绩由实验、作业、单元测验、期终考试成绩构成,采用百分制,细则及对应的课程目标见表2。表2课程评价规则评价要素考核环节分制考核细则实验教师课堂布置100课堂表现。包括课堂出勤情况、代码质量、运行效果。作业在线系统评测100作业质量。包括代码质量、系统测评等。单元测验单元考试100测验成绩。包括代码质量、系统测评等。期终考试期末考试评价100考试内容代码质量、系统测评等。成绩总评阶段100(1)平时成绩=((2)总评成绩=平时成绩(40%)+期终考试(60%)五、建议教材及参考资料1.教材[1]李小斌主编,《C++程序设计及项目实践》,清华大学出版社,20242.参考资料[1]谭浩强主编,《C++程序设计》(第四版),清华大学出版社,2021[2]赵凤芝主编,《C语言程序设计能力教程》,中国铁道出版社,2018[3]戴波主编,《C与C++程序设计》,北京大学出版社,2018[4]萨维奇(Savitch,Walter)主编,《C++入门经典》,清华大学出版社,2018《C++程序设计及项目实践实验》教学大纲一、课程基本信息课程代码课程名称C++程序设计及项目实践实验开课学期1学分1.5学时54课程类別必修适用专业开课对象软件工程/大一先修课程无开课单位软件工程系大纲执笔人李小斌大纲审核人祝义二、课程性质、课程目标、毕业要求和课程思政(一)课程性质本实验课程为非独立设课,是《C++程序设计及项目实践》课程教学的重要组成部分,是对学生的一种全面综合训练,是与课堂讲授、自学和练习相辅相成的必不可少的一个教学环节。通过本实验课程的教学,使学生掌握程序设计的基本思想、C++语言的基本语法及编程思想,培养学生编写程序及调试程序的能力,及在一定层面上培养学生的综合程序设计能力。(二)课程目标目标1:能够针对具体应用问题,在多种可选程序设计方案中,根据问题的约束条件,分析各种方案在程序结构、运行效率上的利弊,选择恰当的处理方法。目标2:掌握数据描述、赋值语句与输入/输出、选择结构程序设计、循环结构程序设计、数组、函数、指针、结构体链表、文件等基本程序设计基础知识。掌握面向对象程序设计基础、类的基础部分、文件、类的高级部分、继承多态虚函数、模板等基本面向对象程序设计基础知识。(三)支撑毕业要求的指标点3.1掌握设计/开发软件工程领域复杂工程问题解决方案的基本方法和技术,了解影响设计目标和技术方案的各种因素。5.2能够选择和使用常用软件开发语言、开发环境和开发框架,理解其局限性,并对复杂软件工程问题进行分析、计算与设计。(四)课程目标与毕业要求指标点对应的矩阵关系课程目标与毕业要求指标点对应的矩阵关系见表1。表1课程目标与毕业要求指标点对应的矩阵关系培养目标毕业要求指标点课程目标1课程目标2指标点3.1√指标点5.2√(五)课程思政本课程中的课程思政从程序设计理论和程序设计实践两方面可以体现科学精神和大国工匠精神。科学精神在程序设计理论学习中,体现科学精神的地方包括以下几个方面:(1)系统性:程序应该具有清晰的结构,模块化和高内聚低耦合的特点,方便维护和拓展。(2)可靠性:程序设计具有较强的错误处理能力,避免出现漏洞和意外的错误。(3)效率性:程序设计应优化算法和数据结构,减少计算和存储的时间和空间开销。(4)简洁性:程序设计具有简洁性,避免冗余和复杂的代码结构。(5)可扩展性:程序能够方便地进行功能扩展和修改。应遵循开放封闭原则,设计可插拔的模块和接口,方便程序的后续维护和拓展。科学精神要求C++程序设计要符合科学方法的原则,以实证为基础,注重整体规划和细节处理,追求高效、简洁、可靠和可扩展的设计。大国工匠精神在程序设计实践中,体现大国工匠精神的地方包括以下几个方面:(1)严谨的态度:对细节的追求和严谨的态度。程序设计要注重代码的规范性和一致性,遵循良好的编码风格,保证代码的可读性和可维护性。(2)高质量的代码:不断追求卓越和完美的品质。程序设计要编写高质量的代码,包括正确性、可靠性、可扩展性和高效性,保证程序的稳定性和性能。(3)高效的算法和数据结构:不断挑战自我,追求创新和优化。程序设计要选择和设计高效的算法和数据结构,以减少计算和存储的时间和空间开销,提高程序的执行效率。(4)持续学习和自我提升:持续学习和追求技术的不断进步。程序设计要求跟踪和学习最新的技术趋势和最佳实践,不断提升自己的编程技能和解决问题的能力。大国工匠精神体现在对细节的严谨追求、高质量代码的编写、优化的算法和数据结构的选择及持续学习和自我提升的态度。三、教学内容纲要(一)教学要求与主要教学内容实验1C++环境操作及简单程序编写了解和使用C++集成开发环境;熟悉C++环境的基本命令和功能键;熟悉常用的功能菜单命令;学习使用C++环境的帮助;学习完整的C++程序开发过程;理解简单的C++程序结构;掌握C++程序设计基础相关知识;掌握cout输出数据方式的使用。实验2简单数据类型及运算实验掌握和理解简单数据类型(整型、实型、字符型)、运算、表达式;利用基本数据类型,编写简单C++程序;掌握cin输入数据的使用。实验3顺序结构实验理解并掌握程序顺序结构;掌握复杂计算过程的程序;初步学习调试方法;包括cin、计算、cout等完整部分的程序的编写。实验4选择结构实验理解并掌握程序的if-else分支结构;理解并掌握程序嵌套的if-else结构;理解并掌握程序的switch结构。实验5循环结构实验理解并掌握程序的循环结构(for语句、while语句、do-while语句);掌握循环语句的嵌套形式;学习循环控制语句break,continue的使用方法。实验6函数实验掌握函数声明、定义和使用的方法;掌握函数递归调用的方法;掌握函数重载、函数模板、参数默认值等的使用方法。实验7数组实验掌握一维数组和二维数组定义的规则;掌握数组初始化方法及数组元素的引用;熟练掌握一维数组和二维数组的使用;掌握字符数组与字符串的关系以及字符串变量的表示;熟练字符串处理函数的应用。实验8结构体实验掌握结构的概念和结构类型的定义;掌握结构变量的定义和初始化;掌握结构体类型的概念和应用;掌握结构成员的访问、结构赋值的含义以及结构与指针、函数的关系。实验9指针实验熟练掌握指针、地址、指针类型、void指针、空指针概念;熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式;掌握数组的指针和指向数组的指针变量;掌握字符串的指针和指向字符串的指针变量;学会使用指向函数的指针变量;学会使用指针数组与多级指针;掌握简单链表的基本操作。实验10类和对象实验掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;掌握类对象的定义;理解类的成员的访问控制的含义,公有、私有和保护成员的区别;掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭医生签约宣传活动总结
- 2026年贵州省六盘水市社区工作者招聘考试备考题库及答案详解
- 医院周例会规章制度
- 关于做好员工年度体检工作的通知
- 企业员工文艺比赛通知函(4篇)范文
- 湖北省黄冈市部分高中2025-2026学年高一语文上学期期中测试
- 智能电网逆潮流自适应控制算法及硬件设备采购咨询
- 区块链多方协同确权
- 河北省石家庄市、张家口市部分学校2025-2026学年高二下学期6月测试 语文含答案
- 2026年家庭服务器CPU性能优化:任务调度与负载均衡实战
- 2023年中国中医科学院广安门医院专项招聘医学类人员及高层次卫技人才考试历年高频考点试题含答案解析
- 工作场所安全使用化学品规定
- 小学二年级数学下册无纸化测试题
- 《大道之行也》比较阅读12篇(历年中考语文文言文阅读试题汇编)(含答案与翻译)(截至2020年)
- T-QGCML 772-2023 管状电机标准规范
- GA 1815.8-2023交通运输系统反恐怖防范要求第8部分:公路隧道
- 双梁抓斗桥式起重机大修施工方案【完整版】
- 化工设计概论第八章向非工艺专业提供设计条件
- 计算机组成原理考试题
- 小升初英语试卷及答案(十套)
- GB/T 5023.1-2008额定电压450/750 V及以下聚氯乙烯绝缘电缆第1部分:一般要求
评论
0/150
提交评论