中文班高级语言程序设计(C++)(二)

《高级语言程序设计(C++)(二)》教学大纲

课程代码

045101991

课程名称

高级语言程序设计(C++)(二)

英文名称

AdvancedLanguageProgramming(C++)(2)

课程类别

公共基础课

课程性质

必修

学时

总学时:32学时,实验学时:6学时

学分

2

开课学期

开课单位

计算机科学与工程学院

适用专业

计算机科学与技术,网络工程,信息安全

授课语言

中文

先修课程

课程对毕业要求的支撑

本课程对学生达到如下毕业要求有如下贡献:

1.工程知识:掌握扎实的面向对象的程序设计基本概念、基本语法和程序设计方法,能够将数学、自然科学、本专业基础知识和专业知识用于解决复杂工程问题。

2.问题分析:能够应用数学、自然科学、本专业基本原理、方法和手段和程序设计语言的基本知识,识别、表达、并通过文献研究分析计算机复杂工程问题,以获得有效结论。

课程目标

完成课程后,学生将具备以下能力:

掌握面向对象的程序设计语言的基本概念,培养学生的计算思维能力。

能够使用面向对象方法设计小规模的应用程序,并在有关集成环境下(例如VisualC++)调试运行。

课程简介

《高级语言程序设计(C++)》课程分为(一)、(二)两部分。本课程的教学目的是通过讲授C++,介绍面向对象程序设计的概念和方法,使学生初步具备使用C++开发对象化软件的能力,以及使用、掌握新的软件工具环境的能力。

主要教学内容包括:类与对象的定义与访问,构造函数和析构函数,类的常成员、静态成员和友元,类的包含;运算符重载规则,用成员或友元函数重载运算符,几个典型的运算符重载的实现,类类型转换的实现;类之间的关系,继承、多继承、虚继承的概念;虚函数与多态性的概念及应用,纯虚函数与抽象类;函数模板、类模板的定义与运用;输入/输出流的概念,输入输出格式控制,串流的概念,文件的建立与读写。

教学内容与学时分配

(一)类与对象6学时

教学要求:要求学生识记C++中类的定义形式以及对象的访问形式;要求学生理解类与对象的概念,理解构造函数、析构函数等定义和使用,理解静态成员与友元。此外,还要求学生能够根据问题要求使用类知识来组织程序,并能够熟练地对对象进行操作。

重点:类和对象的定义以及使用

难点:对对象进行操作

(二)运算符重载6学时

教学要求:要求学生识记运算符重载形式;要求学生理解运算符重载的作用;并要求学生能够熟练地掌握常用的数学运算符的重载。

重点:运算符的重载形式

难点:类类型之间的转换,包括显示转换和隐式转换

(三)继承4学时

教学要求:要求学生识记单继承和多继承的语法形式,以及派生类构造函数的定义;要求学生理解类层次中各类对象初始化的实现、对象的访问特性以及虚继承的概念以及作用;要求学生具备设计两层以上的类体系,建立较复杂的应用程序的能力。

重点:单继承及多继承的使用,派生类对象的初始化及访问

难点:虚继承的作用及使用场景,不同继承方式的访问控制特性

(四)虚函数与多态性4学时

教学要求:要求学生识记虚函数与抽象类的语法形式;理解动态联编、基类指针和派生类指针、纯虚函数和抽象类的使用方式;要求学生有能力设计两层以上的类体系,并使用多态特性,建立较复杂的应用程序。

重点:多态性的实现

难点:含抽象类的类体系的实现

(五)模板2学时

教学要求:要求学生识记函数模板及类模板的语法形式;理解模板的概念以及模板的实例化过程;要求学生具备熟练建立和使用模板的能力。

重点:类模板以及函数模板的定义以及使用

难点:模板的实例化过程及运用

(六)输入输出流4学时

教学要求:要求学生识记流的概念和基本操作,输入输出的格式控制,文件的概念、文本文件和二进制文件的概念;要求学生掌握文件的基本操作;并要求学生具备使用流进行数据传递,建立和操作文件的能力。

重点:流的使用,文件的读写

难点:输入输出流中格式控制;正确地对不同格式文件的读写操作

实验教学(包括实验学时、实习学时、其他)

(一)基于竞教相结合的实验一3学时

(二)基于竞教相结合的实验二3学时

教学方法

以课堂教学、上机实验、课外作业、网络教学相结合的教学方式

考核方式

本课程注重动手能力的考核,成绩比例为:

平时作业和课堂表现:10%

上机实验:30%

期末考试:60%

教材及参考书

现用教材:周霭如、林伟健.《C++程序设计基础》(第5版),电子工业出版社,2016.

主要参考资料:

1.H.M.Deitel,P.J.Deitel.C++大学教程(第9版)(英文版),电子工业出版社,2016

2.谭浩强.C++程序设计(第四版),清华大学出版社,2010

徐红云,沃焱,郑运平,李方,2019.4

“AdvancedLanguageProgramming(C++)(2)”Syllabus

CourseCode

145219

CourseTitle

CourseCategory

GeneralBasicCourse

CourseNature

CompulsoryCourse

ClassHours

TotalHours:32TheoryClassHours:26LabHours:6

Credits

Semester

Institute

SchoolofComputerScience&Engineering

ProgramOriented

ComputerScienceandTechnology,InformationSecurityandNetworkEngineering

TeachingLanguage

Chinese

Prerequisites

NONE

StudentOutcomes

(SpecialTrainingAbility)

Thiscoursecontributestothefollowinggraduationrequirements:

1.Engineeringknowledge:Asolidgraspofthebasicconcepts,grammarandprogrammingmethodsofobject-orientedprogrammingcanbeusedtosolvecomplexengineeringproblemsinmathematics,naturalsciences,basicknowledgeandexpertiseofthismajor.

2.Problemanalysis:Thebasicknowledgeofmathematics,naturalscience,basicprinciples,methodsandmeansofthespecialtyandprogramminglanguagecanbeappliedtoidentify,expressandanalyzecomputercomplexengineeringproblemsthroughliteratureresearchinordertoobtaineffectiveconclusions.

CourseObjectives

Afterthiscourse,studentswillberequiredto:

CourseDescription

ThiscourseisthesecondpartofAdvancedLanguageProgramming.Thepurposeofthiscourseistoletstudentunderstandtheconceptandmethodofobject-orientedprogramming.Throughthiscourse,studentswillbeabletodevelopobject-orientedsoftwareinC++andhavetheabilitytouseandmasternewprogrammingtools.

Themaincontentsofthiscourseinclude:definitionandusageofclassandobject;constructorsanddestructors;const,staticandfriendmemberofclass;rulesoftheoperatorsoverload,overloadoperatorsbymemberorfriendfunction,implementationofseveralclassicoperatorsoverloadandclasstypetransformation;relationshipbetweentwoclasses,conceptofinheritance,multipleinheritance,virtualinheritance;conceptandapplicationofvirtualfunction,polymorphism,purevirtualfunctionandabstractclass;definitionandapplicationoffunctiontemplateandclasstemplate;theconceptofiostream;controlofinputoroutputformat;conceptofstreaming;creationandoperationoffile.

TeachingContentandClassHoursDistribution

(1)ClassandobjectHours:6

Requirement:First,Allstudentsarerequiredtorecognizeandrememberthedefinitionofclass,accesswaysofobject.Second,allstudentsarerequiredtounderstandtheconceptofclassandobject,constructoranddestructor,staticmemberandfriendfunctionorclass.Thelastone,allstudentsarerequiredtouseclasstoprogramingaccordingtoproblems,andoperatemanipulateobjectsofaclass.

Focus:definitionandusingofclassanditsobject

Difficulties:operationofobject

(2)OperatorOverloadHours:6

Requirements:First,allstudentsarerequiredtorecognizeandremembertheformsofoperatorsoverload.Second,studentsarealsorequiredtounderstandtheroleofoperatoroverload.Finally,studentsarerequiredtooverloadsomeusualmathoperatorscurrently.

Focus:theformsofoperatorsoverload

Difficulties:typeconversionofclass

(3)InheritanceHours:4

Requirements:First,allstudentsarerequiredtorecognizeandrememberthegrammarofsingleinheritanceandmultipleinheritance,andthedefinitionoftheconstructorofderivedclass.Second,studentsarealsorequiredtounderstandhowtoimplementtheobjectsofclass;andunderstandthecharacteristicsofaccesstoobject,conceptofvirtualinheritance.Finally,studentsarerequiredtodesignmorethantwolayersofclassanddesignandimplementcomplexapplications.

Focus:usingofsingleInheritanceandmultipleinheritance,initializationandaccessofobjectofderivedclass.

Difficulties:thecharacteristicsofaccesscontrolofdifferentinheritanceway,theroleofvirtualinheritance.

(4)VirtualfunctionandpolymorphismHours:4

Requirements:First,allstudentsarerequiredtorecognizeandrememberthegrammarofvirtualfunctionandabstractclass.Second,studentsarealsorequiredtounderstandthedynamicbinding,base-classpointer,derived-classpointer,purevirtualfunctionandabstractclass.Finally,allstudentsarerequiredhavethecapabilitytodesignmorethantwolayersofclassandusingdynamicblindingtodesigncomplexprogramming.

Focus:theimplementationofpolymorphism

Difficulties:theimplementationofthevirtualclass

(5)TemplateHours:2

Requirements:First,allstudentsarerequiredtorecognizeandrememberthegrammaroffunctiontemplateandclasstemplate.Second,studentsarealsorequiredtounderstandtheconceptoftemplate,theimplementationoftemplatefunctionandtemplateclass.Finally,allstudentsarerequiredhavethecapabilitytousethetemplateagilely.

Focus:thedefinitionandapplicationofclasstemplateandfunctiontemplate

Difficulties:theinstantiationandapplicationoftemplate

(6)IOStreamHours:4

Requirement:First,allstudentsarerequiredtorecognizeandrememberthedefinitionandbasicoperationsofstream,thedefinitionoffile.Second,studentsarealsorequiredunderstandtheconceptofstream,theconceptandoperationsoffile.Finally,studentsarerequiredtohavethecapabilitytousestreamtotransmitdata,tocreateandoperateanewfile.

Focus:theusingofstream,readandwriteoffile

Difficulties:theformatcontrolininput/outputstream,readandwriteoperationoffile

(7)ReservationHours:0

ExperimentalTeaching

ExperimentTwoHours:3

TeachingMethod

Teachinginclass,experiments,homeworkandlearningonline.

ExaminationMethod

Thiscoursewilltakeawrittenexamtoassessthestudents’performance,whichtakesup60%ofthefinalgrading.

Theauxiliaryassessmentofthiscourseincludes:lab,homeworkandattendance,wheretheattendancetakesup10%ofthefinalgrading,andthelabandhomeworktakesup30%ofthefinalgrading.

TeachingMaterialsandReferenceBooks

(1)TeachingMaterialsandReferenceBooks

1.周霭如、林伟健.《C++程序设计基础》(第5版),电子工业出版社,2016.

2.H.M.Deitel,P.J.Deitel.C++大学教程(第9版)(英文版),电子工业出版社,2016

3.谭浩强.C++程序设计(第四版),清华大学出版社,2010

(2)multimediateachingresource(Coursewebsite,PPTandsoon)

PreparedbyWhomandWhen

HongyunXu,YanWo,YunpingZheng,FangLi,2019-4

附件

《高级语言程序设计(C++)(二)》实验教学大纲

学科基础课

高级语言程序设计(C++)(一)

毕业要求(专业培养能力)

课程培养学生的能力(教学目标)

1.掌握面向对象的程序设计语言的基本概念,培养学生的计算思维能力。

2.能够使用面向对象方法设计小规模的应用程序,并在有关集成环境下(例如VisualC++)调试运行。

主要仪器设备与软件

硬件设备:微机(每人1台)

软件:Windows系列操作系统,VC++2010

实验报告

OJ实验占课程总成绩的30%,以在OJ上通过的题目道数计算实验成绩

教材、实验指导书及教学参考书目

(一)教材与参考书

(二)多媒体教学资源(课程网站、课件等资料)

徐红云,沃焱,郑运平,李方,2019.5

《高级语言程序设计(C++)(二)》实验教学内容与学时分配

实验项目编号

实验项目名称

实验学时

实验内容提要

实验类型

实验要求

每组人数

1

基于竞教相结合的实验一

3

类与对象、运算符重载、继承与派生的使用

设计性

必做

基于竞教相结合的实验二

类与对象、运算符重载、继承与派生、虚函数与多态性、模板、输入/输出流的使用

“AdvancedLanguageProgramming(C++)(2)”ExperimentalTeachingSyllabus

DisciplinaryBasicCourse

SchoolofComputerScienceandEngineering

Computer,InformationSecurityandNetworkEngineeringmajors.

AdvancedLanguageProgramming(C++)(1)

StudentOutcomes(SpecialTrainingAbility)

TeachingObjectives

1.Masterthebasicconceptsofobject-orientedprogramminglanguage;developthestudents’abilityofthoughandcalculations.

InstrumentsandEquipments

Hardware:microcomputerforperstudent

Software:WindowsOperatingSystem,VC++2010

ExperimentReport

Assessment

LabandhomeworkonOJtakesup30%ofthefinalgradingandtheOJgradingisdecidedbythenumberofproblemsthestudentsolved.

(1)TeachingMaterialsandReferenceBooks

(2)multimediateachingresource(Coursewebsite,PPTandsoon)

HongyunXu,YanWo,YunpingZheng,FangLi,2017-6

“AdvancedLanguageProgramming(C++)(2)”ExperimentalTeachingArrangements

No.

ExperimentItem

ContentSummary

Category

Requirements

NumberofStudentsEachGroup

Instruments,EquipmentsandSoftware

OJexperimentone

Usingofclassandobject,operatorsoverload,inheritanceandderivedclass

Design

Compulsory

OJexperimenttwo

Usingofclassandobject,operatorsoverload,inheritanceandderivedclass,virtualfunctionandpolymorphism,template,inputoroutputstream

思政建设内容

一、育人目标

1、实现专业知识教学与立德树人教育的有机融合;

2、激发学生“实干兴邦”的爱国奋斗精神。

二、教学特色

以50年代华南理工大学老一辈科学家研制俄汉翻译机作为历史故事,实现历史与现实(国家战略)的结合。

三、预期成效

1、发挥“高级语言程序设计(C++)(一)”第一堂课的育人主渠道作用,实现专业教育与课程思政的有效结合;

2、结合程序设计语言在提高国家信息技术水平的基础性地位,激发学生的爱国情怀。

THE END
1.C++在线工具(3款)c++在线运行工具文章浏览阅读1.1k次,点赞3次,收藏2次。实用的C++在线工具。3 (本人认为最实用)_c++在线运行工具https://blog.csdn.net/kkssdj/article/details/135184884
2.C++编译器2024官方下载C++编译器app最新版本免费下载C++编译器 3.4 2.4万下载 编程 预览 简介 C++编译器是一款精简但是功能完善的APP,主要为C++初学者提供核心的编辑、编译功能,能够随时随地验证一些小程序,为自己解决疑惑。该软件支持直接从文件管理器中打开代码文件,方便用户在浏览器中浏览查看。 如何在电脑上下载并使用C++编译器 https://sj.qq.com/myapp/detail.htm?apkName=coding.yu.cppcompiler.new
3.C++编译器app下载C++编译器安卓版下载[考试学习]软件语言:简体 备案号:冀ICP备2023024561号-3A Win版下载 猜您喜欢 学习通 6.4.0 学起plus 9.31.24 超星阅读器 6.3.3 有道翻译官 4.1.32 锦书在线 2.32.33.10006 七彩课堂 2.1.1 C++编译器是一款面向初学者的便携式APP,集成了基础的编辑与编译功能,让用户能够随时编写和测试小规模C++代码,有效辅助学习https://www.downza.cn/soft/10432004.html
4.最新安卓C++编译器免费下载–AppChina应用汇软件大小: 62.83MB 最后更新: 2024-11-28 最新版本: 10.4.1 文件格式: apk 应用分类: 学习办公 使用语言: 中文 网络支持: 系统要求: 5.0以上 C++编译器 应用介绍 C++编译器是一款精简但是功能完善的APP,主要为C++初学者提供核心的编辑、编译功能,能够随时随地验证一些小程序,为自己解决疑惑。该软件http://m.appchina.com/app/coding.yu.cppcompiler.new
5.C++编程ontheAppStoreC++ 是一种中级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上。 本教程通过通俗易懂的语言来讲解 C++ 编程语言。 教程包含以下章节 基础教程 *C++ 简介 *C++ 环境设置 *C++ 基本语法 *C++ 注释https://apps.apple.com/cn/app/20-20-20-20-20-20-20-20-20/id1203780811?l=en
6.C++编译器app下载C++编译器安卓版[学习教育]软件厂商:唐山旗鱼科技有限公司 备案号:冀ICP备2023024561号-3A 软件介绍 软件截图 资讯教程 C++编译器是一款移动应用,为初学者提供基础C++代码编辑和编译功能,无需复杂的环境设置。它支持直接打开代码文件,便于在移动设备上编写和测试代码,作为学习C++的辅助工具。 https://www.pcsoft.com.cn/android/soft/30226086.html
7.C++ProC语言在线编辑和编程教育工具软件下载C++Pro软件大小:12.6 MB 软件评分: 软件类型:国产软件 更新时间:2017-08-07 应用平台:ios 软件语言:中文 版本:1 效率工具口碑排行榜 倒数日·Days Matter 极简待办 PDF阅读器Xodo Docs 单多多(原房客通) 小黑板APP 下载服务协议见页面底部 基本简介 .C/C++/C#在线编辑器,你可以在线编程,简单易学.同时支持GO语言在线编http://www.onlinedown.net/soft/646517.htm
8.少儿编程(Scratch/Python/C++)软件下载青少儿编程软件(Scratch/Python/C++/Java/机器人/Linux)免费下载地址大全 注意:仅支持电脑浏览器下载,建议使用360、华为、谷歌、微软等电脑浏览器,微信内置浏览器和IE浏览器不支持下载。 一、图形化编程语言工具 1、ScratchJr 编程软件 适合年龄:4-8岁 https://kidscodes.cn/download
9.DevC++是一个开源的编程软件吗?运行途中司机反映列车制动机有漏泄时机车或车辆原因的判别:让司机充风至( )kpa 后施行常用制动减压 170kpa,关闭机后第一位车辆的折角塞门,上车确认车辆风表压力。若列车管的压力标准,则故障在机车一方,与司机共同确认后由司机处理。乘务长要作好相关记录。https://www.shuashuati.com/ti/54e18a0c04114172904d99d9708b507c.html?fm=bdbdsdf4e59ac9361ae41bee099ac286f2fe7
10.[软件分享编程交流]RedPandaDev免费在线预览全文 [软件分享编程交流 ]RedPandaDev-C++—— ?巧但功能强?的 CC++编辑器 [软件分享/编程交流]Red Panda Dev-C++ —— ?巧但功能强?的 C/C++编辑器 前? Dev-C++是?个?巧的开源C/C++ 集成开发环境,?常适合于C/C++ 语?的初学者使?,但是到2015年后已停?开发。https://max.book118.com/html/2022/1123/7066051145005015.shtm
11.C++代码在线编辑器21xrx.com最后,在线C++代码编辑器可以帮助开发者在本地环境下学习编程语言。由于该工具可以在任何设备上使用,无需进行任何安装或配置,因此开发人员可以随时随地学习和测试C++代码,这样可以加快其学习速度和提高其技能水平。 总之,在线C++代码编辑器是一项非常有用的工具,它可以提高开发者的工作效率和协作能力,同时也可以帮助开发者https://21xrx.com/Articles/read_article/226307
12.C语言中文网:C语言程序设计门户网站(入门教程编程软件)由C语言发展而来的一种面向对象的编程语言。 C++11 C++11是2011年发布的C++标准,是C++的一次重大升级。 STL STL是C++标准模板库,实现了常见的数据结构和Nexus是一款优秀的仓库管理软件,常用来搭建Maven私服。 Servlet教程 Servlet是第一代Java Web(网站)开发技术。 JSP教程 JSP是第二代Java Web开发技术,是Servlehttps://c.biancheng.net/
13.小白学习C++,用哪个编程软件比较好?C++作为起源较早的编程语言之一,因其面向对象,功能强诸多特点被广泛应用,自然也成为小白首选编程语言之一,当然C++起源早,自然也有很多的编程软件,今天将为小伙伴们减少四款好用性价比高的C++编程软件,感兴趣的小伙伴可以试试看。 1、Visual Studio Visual Studio是指美国微软研发的开发工具包系列产品Microsoft Visual https://www.fanyedu.com/content/4508.html
14.TurboC/C++软件学习下载CPP程序设计学习与实验系统(原名TurboC/C++软件官网:未知官方 更新时间:2019-02-11 网友评分: 360通过腾讯通过金山通过 35.92MB 详情介绍 cpp程序设计学习与实验系统(Turbo C/C++)是一款用于C语言的编程的集成环境工具,主要功能为用户提供了错误信息定位,智能缩进、查找、替换、关键字实时帮助等功能,非常的适用便捷,可有效提高编程效率。 https://www.jb51.net/softs/267709.html
15.VC++(c语言编程软件)VC++(c语言编程软件)v6.0中文版最需网软件介绍 VC++是一款专业强大的C语言编辑软件,这款软件全面支持C++以及C++/CLI等编程语言,同时还能自动生成程序框架以及类管理等等便捷的编程辅助功能,为您提供优质的集成开发环境,从而让您能够更好地进行编程工作。 基本介绍 Microsoft Visual C++,(简称Visual C++、MSVC、VC++或VC)是Microsoft公司推出的以C++语言为https://www.zuixu.com/down/472074.html
16.手机编程c语言软件下载手机编程入门自学软件合集下载手机编程c语言是专为广大编程用户们所提供的一个线上编辑器工具,在这里可以获得有关编程C++语言的教学知识学习,为初学编程的用户们提供了更加全面的知识教学方式,同时还可以在线直接进行内容的编程代码的练习和编写运行等功能,内置常见的代码编程的公式直接套用,节省了常见代码编写的时间,在编写后支持在手机上进行运行并http://www.downcc.com/k/sjbc/
17.7个在线学习C++编程的最佳途径星朝扩展阅读 快速高效学习Java编程在线资源Top 20 28款GitHub最流行的开源机器学习项目 程序员编程能力层次模型 2015年你需要学习的15种编程语言 自学成才!16个非常优秀的在线教育网站 更多 C++ 软件编程 C++https://www.cnblogs.com/jpfss/p/9994497.html
18.编程信息网编程网课哪个好? 编程软件有哪些 一、编程软件: 1、电脑编程软件主要有:BASIC、PASCAL、C、COBOL、FORTRAN、LOGO以及VC、VBjava等。 2、CC++ 常用软件是MS VC++(6.0和更高版本)集成在微软的开发工具visual studio中,JAVA桌面编程常用软件是netbean,网络编程是MyEclipse(包括了常用的Eclipse和常用工具,目前Java最流行的网络编程https://www.ultimate-communications.com/zh/program_407425
19.C++游戏开发软件手机游戏目前主流使用java语言开发.电脑游戏一般都使用C/C++语言开发编程软件以各自厂商的选择为主我们能常见到的有微软的VC++6.0开发环境或C++8.0系列而游戏开发厂商一般都有自己的开发环境来使用C/C++语言开发游戏.电视游戏一https://wap.hxsd.com/wenda/70802/
20.C/C++用什么软件编程51CTO博客一款方便顺手的编程软件对于 C/C++ 开发者们来说,无疑会节省非常多不必要的环境安装和学习使用教程的时间。看到一些回答围绕不同操作系统,推荐了不同的IDE。我在这里给大家介绍一个全平台都通用、轻量且功能强大的在线编辑器 Lightly。它是首个根据中国开发者使用习惯量身打造的 IDE 编程软件,界面https://blog.51cto.com/u_15431443/5159971
21.C++案例趣学附录说明了C++集成开发环境——Dev-C++的安装和使用。 本书与传统信息学竞赛类教材相比,具有如下特点。 (1)语言通俗易懂,内容风趣幽默,难度适中,既有知识性,又注重趣味性,适合中小学生入门学习。 (2)在内容组织上,打破传统编程教材分章模式,按知识点组织课程,将课程分为知识讲解和实例练习两种,在形式上更接近中https://labs.epubit.com/bookDetails?id=UBbf16e3464ab5