谭浩强-C++程序设计内容目录:第1篇基本知识第1章C++的初步知识*1.1从C到C++*1.2最简单的C++程序1.3C++程序的构成和书写形式1.4C++程序的编写和实现1.5关于C++上机实践第2章数据类型与表达式2.1C++的数据类型2.2常量2.3变量2.4C++的运算符2.5算术运算符与算术表达式2.6赋值运算符与赋值表达式2.7逗号运算符与逗号表达式第2篇面向过程的程序设计第3章程序设计初步3.1面向过程的程序设计和算法3.2C++程序和语句3.3赋值语句3.4C++的输入与输出3.5编写顺序结构的程序3.6关系运算和逻辑运算3.7选择结构和if语句3.8条件运算符和条件表达式3.9多分支选择结构和switch语句3.10编写选择结构的程序3.11循环结构和循环语句3.12循环的嵌套3.13break语句和continue语句3.14编写循环结构的程序第4章函数与预处理4.1概述4.2定义函数的一般形式4.3函数参数和函数的值4.4函数的调用*4.5内置函数*4.6函数的重载*4.7函数模板*4.8有默认参数的函数4.9函数的嵌套调用4.10函数的递归调用4.11局部变量和全局变量4.12变量的存储类别4.13变量属性小结4.14关于变量的声明和定义4.15内部函数和外部函数4.16预处理命令第5章数组5.1数组的概念5.2一维数组的定义和引用5.3二维数组的定义和引用5.4用数组名作函数参数5.5字符数组*5.6C++处理字符串的方法——字符串类与字符串变第6章指针6.1指针的概念6.2变量与指针6.3数组与指针6.4字符串与指针6.5函数与指针6.6返回指针值的函数6.7指针数组和指向指针的指针6.8有关指针的数据类型和指针运算的小结*6.9引用第7章自定义数据类型7.1结构体类型7.2共用体7.3枚举类型7.4用typedef声明类型第3篇基于对象的程序设计第8章类和对象8.1面向对象程序设计方法概述8.2类的声明和对象的定义8.3类的成员函数8.4对象成员的引用8.5类的封装性和信息隐蔽8.6类和对象的简单应用举例第9章关于类和对象的进一步讨论9.1构造函数9.2析构函数9.3调用构造函数和析构函数的顺序9.4对象数组9.5对象指针9.6共用数据的保护9.7对象的动态建立和释放9.8对象的赋值和复制9.9静态成员9.10友元9.11类模板第10章运算符重载10.1什么是运算符重载10.2运算符重载的方法10.3重载运算符的规则10.4运算符重载函数作为类成员函数和友元函数10.5重载双目运算符10.6重载单目运算符10.7重载流插入运算符和流提取运算符10.8不同类型数据间的转换第4篇面向对象的程序设计第11章继承与派生11.1继承与派生的概念11.2派生类的声明方式11.3派生类的构成11.4派生类成员的访问属性11.5派生类的构造函数和析构函数11.6多重继承11.7基类与派生类的转换11.8继承与组合11.9继承在软件开发中的重要意义第12章多态性与虚函数12.1多态性的概念12.2一个典型的例子12.3虚函数12.4纯虚函数与抽象类第13章输入输出流13.1C++的输入和输出13.2标准输出流13.3标准输入流13.4文件操作与文件流13.5字符串流
1
3.几何图形(满分50分)版本1:满分10分设计抽象类GeometricObject及其子类Triangle和Circle。
GeometricObject类设计要求如下:■一个名为color的Color类型的私有数据域,表示对象的颜色■一个名为filled的Boolean类型的私有数据域,表示对象是否■一个名为dateCreated的Date类型的私有数据域,表示对象的■一个无参构造方法。
■一个能创建特定color和filled的有参构造方法。
■相关数据域的访问器和修改器。
■两个个名为draw和erase的抽象方法。
■一个名为getArea的抽象方法。
■一个名为getPerimeter的抽象方法。
■重写toString方法。
Triangle类设计要求如下:■三个名为side1、side2和side3的double类型的私有数据域表们的默认值是1.0。
要求三个数据域保留2位小数。
■一个无参的构造方法创建默认三角形。
■一个能创建带指定side1、side2和side3的有参构造方法。
■所有三个数据域的访问器和修改器方法。
■父类抽象方法的实现。
■重写toString方法。
Circle类设计要求如下:■一个名为radius的double类型的私有数据域,表示圆的半径,数据域保留2位小数。
■一个名为PI的静态常量,其值为3.14■一个无参的构造方法创建默认三角形。
■一个能创建带指定radius的有参构造方法。
■radius数据域的访问器和修改器方法。
■父类抽象方法的实现。
■重写toString方法。
测试类TestGeometricObject1设计要求如下:■一个能随机生成Circle类和Triangle类对象的静态方法GeometricObject[]RandomCreateGeometricObject()■以随机生成的数组为参数,输出数组中每个对象的基本信息、周长和面积。
■类中其它方法的测试版本2:满分20分将上面的抽象类GeometricObject改为接口,接口只保留其中四个抽象方法,声明类Circle、Triangle实现该接口,类的基本要求如上,同时为每个类增加一个将当前对象序列化到指定文件的方法writeToFile(Filef)。
测试类TestGeometricObject2设计要求如下:■一个能随机生成Circle类和Triangle类对象的静态方法,该方法将随机生成的象序列化到指定的文件GeometricObjects.dat中,序列化成功返回真,否则返回假。
BooleanRandomCreateGeometricObject()■将GeometricObjects.dat文件中对象全部读出,存储到GeometricObject对象数组中,然后以此数组为参数,输出数组中每个对象的基本信息、周长和面积。
■类中其它方法的测试。
新增一个类Rectangle,也实现接口GeometricObject,同时修改测试类TestGeometricObject2,体会开-闭原则。
版本3:满分20分在第2步的基础上设计实现一个具有GUI界面的几何图形绘制系统系统,要求实现根据选择的几何图形类型来绘制和删除相应的图形,其中相关参数应通过界面输入,并可计算图形的周长和面积。
2024/7/31 3:21:55 23KB 几何图形 jpanel 课程设计CQUT xhay
1
1、设计一个抽象类表达宠物;
属性包括宠物的寿命、饥饿值、口渴值、健康值等;
实现宠物日常的吃、喝、抚摸、玩耍、生病等功能。
建议采用良好的控制台人机交互界面。
2、在抽象类的基础上至少派生出两种宠物;
3、用主程序模拟多种宠物的生命过程。
2024/6/28 16:12:36 7.32MB C++ 课程设计 有文档
1
本人经过两天的研究,终于掌握了动态链接库的使用方法,动态链接库的使用上并不难,难在动态链接库中的导出类,把dll中类的成员函数导出来才是最重要的,我就用几个例子介绍一下几种导出的方法:第一种:这种方法不是很好,实现的也比较麻烦,可以参考例子中的1_DLLDemoCll工程原理:利用虚函数导出,导出的dll中申请的对象指针,再利用虚函数的特性,利用虚函数表实现了类函数的导出,比较麻烦建议了解一下。
第二种:这种方法实现起来比较简单,采用的是静态加载的方式,但是有很多的局限性,因为当dll有错是整个应用都会出问题,不建议在打的工程中使用。
具体代码实现见static_link_DLL工程,其中dll文件由Abstrct文件编译。
第三种:这种方法是我推荐的,它是由动态加载进来的,其中实现原理是:运用抽象类,为工程创建接口,通过接口来导出类成员函数这种方式通用性强,而且代码比较的健壮,节省内存。
见工程useDLL。
2024/6/4 0:49:19 57KB 动态链接 导出类 loadlibrary
1
几乎所有的大型系统都有一个多任务多线程处理内核。
本程序提供了一个多任务多线程异步处理框架。
该框架使用简单,用户只需要继承抽象类Task,构建自己的任务类,再构造一个任务源,就可以轻松使用这个框架。
程序包里提供了一个例子Mytask和MyTaskGenerator,用户只需要运行类bootStraps即可。
2024/3/23 17:13:11 5KB Java 多线程 多任务 异步处理
1
1·第一讲JAVA语言概述2·第二讲JAVA语言基本语法3·第四讲类的定义和对象使用4·第五讲类与对象(二)5·第六讲类与对象(三)6·第七讲抽象类与抽象方法7·第八讲接口及应用8·第九讲数组与字符串9·第十讲时间、日期和Math类10·第十一讲Applet基础与绘图11·第十二讲文本框和文本区12·第十三讲异常处理、按钮与标签13·第十四讲选择型组件与窗口事件14·第十五讲布局设计15·第十六讲菜单设计
2023/12/17 2:24:58 1.67MB JAVA 完整 ppt 课件
1
为了方便,把代码放在Word里面了,每次上机实验的题目代码都在。
第一次:对如下多项式编写类定义:+++…+其中,n为多项式的次数。
完成如下功能:(1)可存储任意大的多项式(提示:可用动态数组实现)。
(2)定义构造函数、析构函数、拷贝构造函数。
(3)包含一个static成员存储定义的多项式的数量。
(4)定义一个成员函数输出多项式。
(可参照-x^4-6x^3+5格式输出)(5)定义一个成员函数计算多项式的值。
(6)写main函数测试类的功能。
(7)采用多文件实现。
考虑:哪些成员函数可以声明为const.第二次:(8)重载“+”运算符,实现两个多项式相加。
(9)重载“-”运算符,实现两个多项式相减。
(10)重载“*”运算符,实现两个多项式相乘。
(11)重载“=”运算符,实现两个多项式的赋值运算。
考虑:把其中某个运算符重载为友元函数。
第三次:C++的一般编译器都定义和封装了字符串功能,请模仿定义string类的实现,可以实现并支持如下功能:(1)strings=“吉林大学”;
(2)stringt=s;(3)stringm;
m=t;
(4)m.legnth()函数测量字符串的长度(5)m.cat(stringconst&)连接字符串第四次:我公司为仪器生产企业,目前生产摄像机和行车记录仪两种产品,分别销售给用户。
摄像机包含摄像、图像质量设定、编码算法等属性。
将摄像机增加相应芯片(具有操作菜单、自动拍摄、车速传感器、源代码等功能)后,形成一个行车记录仪。
要求:设计摄像机类,并请根据下列不同的功能要求,采用不同的继承方式,设计行车记录仪类,并添加测试代码,体验不同继承方式下的成员访问属性。
(类设计时可根据需要自行添加数据成员和其他成员函数。
)(1)行车记录仪的芯片可以使用摄像机的摄像、图像质量设定功能。
行车记录仪用户可以操作行车记录仪的操作菜单和摄像机的摄像功能。
(2)行车记录仪的芯片可以使用摄像机的拍摄、图像质量设定功能。
行车记录仪用户仅仅可以操作行车记录仪的操作菜单。
(3)行车记录仪的芯片可以使用摄像机的拍摄、图像质量设定功能。
行车记录仪用户仅仅可以操作行车记录仪的操作菜单同时其他公司购买行车记录仪,因该公司也用于销售,不得泄露其全部内容课后:(1)采用组合方式设计行车记录仪类,增加相应测试代码,体验继承和组合的关系。
(2)分别为继承和组合方式下为各类添加构造函数、析构函数,增加相应测试代码,体验对象的初始化和构造顺序。
(3)将摄像机类和行车记录仪类功能相近的函数(如拍摄、编码等功能函数)设为同名函数,增加相应测试代码,体验同名函数覆盖。
(4)为我公司建立一个多态的产品类层次结构,使用抽象类,测试时,创建一个基类指针的容器,通过基类指针调用虚函数,体验多态。
2023/12/6 1:35:36 110KB 吉林大学 C++ 实验报告 代码
1
《C++程序设计教程(第二版)》,作者:钱能,出版社:清华大学出版社,ISBN:7302114641,PDF格式,大小24.9MB,高清影印版。
内容简介:本书是《C++程序设计教程》的第二版。
然而从指导思想、内容结构、写作特点等方面,都以全新的面貌呈现于读者。
全书全部重新执笔,代码全部重写,涵盖了基本C++编程方法的全部技术特征。
本书以C++标准为蓝本,从过程化编程的基本描述,到对象化编程的方法展开,乃至高级编程的实质揭示,形成一条自然流畅的主线,通俗易懂,形象风趣。
本书在内容结构上自成体系,并以独特的描述手法,辐射到计算机专业其他诸课程,体系严谨,结构独特。
作者在长期的教学、科研实践以及ACM大学生程序设计竞赛培训工作中,总结出了许多难能可贵的教学经验,能使读者快捷而准确地找到编程技术要领,洞穿C++内部实现要害,直击抽象编程本质。
与本书配套,《C++课程设计指导》、《C++程序设计习题及解答》、《C++程序设计教程详解》和《C++程序设计教程精粹》也将陆续面世。
除此之外,还配有C++程序设计教程课件和源代码供读者下载。
本书适用于大学计算机程序设计教学,也适合于立志自学成才的读者,帮助他们从零开始走向高级程序员。
本书也旨在引导读者从欣赏C++入门的初级精彩到享受C++经典名作的内在精彩,因而,也是一本软件工作者不可多得的案头参考书。
目录:第一部分基础编程第1章概述1.1程序设计语言1.2c++前史1.3c++1.4c++编程流程1.5程序与算法1.6过程化程序设计1.7对象化程序设计1.8目的归纳1.9练习1第2章基本编程语句2.1说明语句2.2条件语句2.3循环语句2.4循环设计2.5输入输出语句2.6转移语句2.7再做循环设计2.8目的归纳.2.9练习2第3章数据类型3.1整型3.2整数子类3.3浮点型3.4c-串与string3.5数组3.6向量3.7指针与引用3.8目的归纳3.9练习3第4章计算表达4.1名词解释与操作符4.2算术运算问题4.3相容类型的转换4.4关系与逻辑操作4.5位操作4.6增量操作4.7表达式的副作用4.8目的归纳4.9练习4第二部分过程化编程第5章函数机制5.1函数性质5.2指针参数5.3栈机制5.4函数指针5.5main函数参数5.6递归函数5.7函数重载5.8目的归纳5.9练习5第6章性能6.1内联函数6.2数据结构6.3算法6.4数值计算6.5标准c++算法6.6动态内存6.7低级编程6.8目的归纳6.9练习6第7章程序结构7.1函数组织7.2头文件7.3全局数据7.4静态数据7.5作用域与生命期7.6名空间7.7预编译7.8目的归纳7.9练习7第三部分面向对象编程技术第8章类8.1从结构到类8.2成员函数8.3操作符8.4再论程序结构8.5屏蔽类的实现8.6静态成员8.7友元8.8目的归纳8.9练习8第9章对象生灭9.1构造函数设计9.2构造函数的重载9.3类成员初始化9.4构造顺序9.5拷贝构造函数9.6析构函数9.7对象转型与赋值9.8目的归纳9.9练习9第10章继承10.1继承结构10.2访问父类成员10.3派生类的构造10.4继承方式10.5继承与组合10.6多继承概念10.7多继承技术10.8目的归纳10.9练习10第11章基于对象编程11.1抽象编程11.2编程质量11.3分析josephus问题11.4基于过程的解决方案11.5基于对象的解决方案11.6程序维护11.7程序扩展11.8目的归纳11.9练习11第四部分高级编程第12章多态12.1继承召唤多态12.2抽象编程的困惑12.3虚函数12.4避免虚函数误用12.4.3若干限制12.5精简共性的类12.6多态编程12.7类型转换12.8目的归纳12.9练习12第13章抽象类13.1抽象基类13.2抽象类与具体类13.3深度隔离的界面1
2023/11/12 12:58:06 24.32MB 钱能 C++教程 钱能C++ C++程序设计
1
面向对象的继承、多态、抽象类、虚方法的Demo
2023/11/3 0:57:49 23KB 多态 抽象类 c#
1
单人纸牌游戏,牌桌上有7个堆共28张牌,第一堆1张牌,第二堆2张,。


第7堆7张,每一堆的第一张牌朝上,其他朝下。
牌桌上还有4个suitpiles,一个deckcard堆和一个discardcard堆。
运用面向对象封装、继承、抽象类、抽象方法、多态、动态绑定等概念。
山东大学面向对象课程设计
2023/9/25 1:53:56 89KB 纸牌游戏
1
共 30 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡