谭浩强-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
一、UNIX文件系统的基本原理    UNIX采用树型目录结构,每个目录表称为一个目录文件。
一个目录文件是由目录项组成的。
每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。
在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;
后14B为文件名,是该文件的外部标识。
所以,文件目录项记录了文件内、外部标识的对照关系。
根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。
UNIX的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。
本次课程设计是要实现一个简单的模拟UNIX文件系统。
我们在磁盘中申请一个二进制文件模拟UNIX内存,依次初始化建立位示图区,I节点区,数据块区。
二、基本要点思路     1、模拟磁盘块的实现:因为文件系统需要从磁盘中读取数据操作数据,在实现时是使用文件来模拟磁盘,一个文件是一块磁盘,在文件中以划分磁盘块那样划分不同的区域,主要有三个区域:位图区,inode索引节点区,磁盘块区。
位图区我是使用一个512byte的数组存放,inode区和磁盘块区我采用一种自认为比较巧妙的方法,就是存放对象列表,之前说过,在本次实验的所有的结构都使用对象进行存储,而inode节点和磁盘块就是两个重要的数据结构,在初始化时我实例化32个inode对象和512个block对象(至于这些类的具体定义下面会提到),然后将这些对象加入各自对应的对象列表中,在存储时,使用java的对象序列化技术将这个对象数组存到磁盘中。
当使用文件系统时,程序会先从磁盘文件中读取出位图数组,inode对象列表,block对象列表,之后的操作就是通过对这些列表进行修改来实现。
使用这种方法可以减小存储的空间(对象序列话技术)而且不需要在使用时进行无用的查找,只要第一次初始化中将这些对象都读取出来。
    2、界面的实现:在实现这个文件系统时使用了两种方案,一种是直接在java控制台来进行输入输出,因为原本想着UNIX文件系统原本也是使用的命令行语句,所以在控制台上实现也很接近。
后来在老师的建议下又将整个程序重新修改,改成在UI界面上进行输入输出,这样确实界面美观舒服了不少,只不过两者用的技术很不一样,前者主要使用的是系统的输入输出流,后者使用java监听器。
    3、权限的实现:在实现多用户的权限方面,我给文件和文件夹各定义了三级权限1、访问:在文件中是可以查看文件的内容,在文件夹中是可以进入该文件夹。
2、修改:文件中是可以对文件进行编辑,文件夹中是可以在该文件夹中创建新的文件或目录。
3、删除:顾名思义。
文件或文件夹的创建者拥有最高级别的权限,只有拥有最高级权限的用户才可以给其他用户针对该文件或文件夹进行授权和授权操作。
在每次对文件或文件夹进行访问修改删除操作时都会检查当前用户在该文件或文件夹所拥有的权限,只有拥有的权限大于想要实现的权限时才可以进行该操作。
2024/2/1 11:25:27 9KB java UNIX操作系统 课程设计
1
常规的给类对象数组是无法定义事件的,这个例子给了一些参考。
2023/9/7 12:53:18 3KB vb6 类对象数组 类对象数组事件
1
实验室快速电影院引见本练习的目的是学习如何自行播种数据库并能够创建电影院网页,我们将在其中显示电影列表。
除此之外,您还将创建一个详细信息页面,其中将为每个电影分别显示更多详细信息。
要求分叉此回购克隆此仓库提交完成后,运行以下命令:$gitadd.$gitcommit-m"done"$gitpushoriginmaster创建请求请求,以便您的TA可以检查您的工作。
指示迭代0|初始化项目该实验室具有基于ExpressGenerator的标准代码。
分叉并克隆项目后,您将安装所有依赖项:$npminstall现在您可以开始了。
:rocket:迭代1|播种数据库首先,我们需要播种我们的数据库。
在下面,您将找到包含8个电影信息的对象数组。
您应该创建两个文件:创建一个文件夹models并在其中添加Movie模型的Movi
2018/3/11 20:43:18 83KB JavaScript
1
5.井字游戏(满分50分)版本1:满分20分井字游戏是一种在3*3格子上进行的连珠游戏,和五子棋比较类似。
由分别代表O和X的两个游戏者轮番在格子里留下标记(一般来说先手者为X)。
最先在任意一条直线上(水平、垂直或者对角线)成功连接三个标记的一方获胜。
当所有格子都被填满,双方都未获胜时,为平局。
提示两个用户轮番输入X和O。
当一个标记设置后,程序在控制台重新显示,并判断游戏状态(赢家、平局、继续)。
控制台程序运行示例:版本2:满分10分创建自定义面板Cell类用来显示X、O或者不显示。
当绘制面板时,随机决定显示内容。
提示:使用Math.random()方法产生整数0、1或者2,对应于显示X、O或者不显示。
创建一个框架包含9个自定义面板,产生井字游戏界面。
运行示例:版本3:满分20分创建可以用户交互的井字游戏。
修改(2)中Cell类:初始时,所有格子为空;
第一个玩家使用X标记,第二个玩家使用O标记。
当一个用户在格子上点击鼠标时,如果该格子为空,就使用X或O填充;
如果格子已经填充,则忽略用户操作。
主程序面板TicTacToe类包括9个Cell对象,可以创建对象数组Cell[3][3]存储;
一个Button用于重新开始;
一个标签用于描述当前进行的玩家、赢家或者平局,运行示例:
2017/6/12 1:18:39 5KB 井字游戏 xhay cqut 课程设计
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡