- 博客(114)
- 收藏
- 关注
原创 【运算符重载】 第2关:重载流运算符:实现 Complex 的第三个版本
通过重载流运算符,使 Complex 类支持标准输入输出。本关需要在上一关的基础上实现 Complex 类对标准输出流操作的支持。
2024-05-26 20:05:59
837
1
原创 【运算符重载】第4关:运算符重载实现类型转换
实现从Circle对象到double数据的转换则需要通过类型转换运算符来实现,该函数名为operator double,自定义的类型转换函数甚至可以被编译器的提升规则使用,例如程序中计算Circle类型的对象x和2相加,由于类Circle没有重载运算符+,编译器会自动调用其类型转换函数,将x转换为double类型,然后完成和2相加的运算。类型转换的本质是生成,根据一种类型的数据对象生成另一种类型的对象。
2024-05-26 20:04:38
705
原创 【运算符重载】第5关:自定义类型之间的相互转换
本关任务:编写类型转换运算符函数,实现圆对象和正方形对象之间的互转。类型转换就是生成,生成的对象满足需求就行,即使有时候看起来不是那么合理。提示,在右侧编辑器补充代码,实现类Ciecle的operator Square()类型转换函数,该函数将圆对象转换成一个同等面积的正方形,实现类Square的operator Circle()类型转换函数,该函数将正方形对象转换成一个周长相同的圆。
2024-05-26 20:03:47
693
原创 【类和对象】第2关:构造方法与析构方法:Stack 类的第二个版本
在上一关中,我们构造了 Stack 类的第一个版本。事实上,在上一关的实现中,Stack::init(unsigned int) 与 Stack::cleanup() 分别起到了初始化成员对象与销毁成员对象的作用。
2024-05-16 11:53:15
785
原创 【类和对象】第4关:DynArray类的第一个版本
将链表封装为一个动态数组(DynArray)类。该类能够实现元素的访问、元素的动态插入、删除等功能。
2024-05-16 11:51:19
820
原创 【类和对象的创建和使用】第3关:设计汽车类
其中打开车门、关闭车门、打开车灯、关闭车灯四个函数,用于改变对象内部对应的成员变量的值。加速,减速两个函数,每次调用就将内部的速度变量分别对应增加10或者减少10。车门,车灯两个函数的初始状态都为 OFF,速度的初始值为0。设计一个汽车类,并实现它的基本功能。成员变量:车门,车灯,速度(类型以及变量名均自拟)。成员函数:打开车门、关闭车门、打开车灯、关闭车灯、加速、减速。根据输入的命令(命令由1-6表示,分别对应调用打开车门、关闭车门、打开车灯、关闭车灯、加速、减速函数)输出汽车的最终状态。
2024-05-16 11:47:26
658
原创 【线性表实训】第1关:顺序构建线性表
本关任务:按照数据输入的顺序构建一个线性表。即如果输入的3个结点数据分别为1、2、3,则构建的线性表包含3个结点,且从前往后的结点数据分别为1、2、3。
2024-05-15 08:53:13
1189
原创 【线性表实训】第2关:逆序构建线性表
h可能为空,但是t是创建的元素,不会为空。所以代码能够处理h为空的corner case。本关任务:补全 insertHead 函数,实现将一个结点插入到一个链表头部的功能。
2024-05-15 08:52:31
393
原创 【线性表实训】第3关:排序构建线性表
本关任务:补全 insertSort 函数,实现将一个结点按结点数据 data 从小到大的顺序插入到一个有序链表中。根据插入结点 data 的大小,插入点可能是链表头、尾或者中间某个位置。
2024-05-15 08:50:36
762
原创 【线性表实训】第4关:查找元素
本关任务:补全 search 函数,实现在一个链表中搜索包含指定数据的结点。如果链表中有多个结点包含该数据,则返回第一个。
2024-05-15 08:49:53
738
原创 【线性表实训】第6关:删除包含特定数据的结点
删除链表的结点时,有时候不知道结点在哪,只知道结点数据的特征,如删除成绩低于60的学生结点、删除学号为20160903的学生等。本关任务:补全 delHas 函数,实现删除链表中包含特定数据的结点,如果有多个这样的结点,只删除第一个。
2024-05-15 08:47:58
772
原创 【线性表实训】第8关:线性表应用一:栈
完成 empty 、pop 和 push 三个函数,以实现判断栈空、弹栈和压栈的功能。函数 pop 实现从栈 sk 中弹出栈顶元素,参数 sk,传引用,因为弹栈可能会改变 sk 的值,返回值为弹栈弹出的数据,如果栈空,则返回 -1;函数 push 实现压栈功能,将 n 压入栈 sk 中,参数 sk 为传引用,因为压栈可能会改变 sk 的值,由于栈使用链表实现,只要还有内存,压栈都会成功。共需要补全三个函数(也是栈的基本功能):判断栈空的 empty 函数、压栈的 push 函数和弹栈的 pop 函数。
2024-05-15 08:37:20
855
原创 【线性表实训】第9关:线性表应用二:队列
完成 queueEmpty 、enQueue 和 deQueue 三个函数,以分别判断队列是否为空、入列和出列的要求。具体要求如下:函数 queueEmpty 判断队列 iq 是否为空,为空则返回 true,否则返回 false;函数 deQueue 实现从队列 iq 出列,如果队列非空,则返回出列的数据,否则返回−1。共需要补全三个函数(也是队列的基本功能):判断队列空的 queueEmpty 函数、入列的 enQueue 函数和出列的 deQueue 函数。
2024-05-15 08:36:17
541
原创 【线性表实训】第10关:线性表应用三:集合
具体需要补全三个函数:计算集合并集的 unionSet 函数、计算集合交集的 intersection 函数和向集合中添加元素的 addElement 函数。函数 addElement 将元素 num 加入到集合 is 中,如果 is 中已经存在 num 了,则不需要加入,不存在则加入。在右侧编辑器中的Begin-End之间补充代码,完成 unionSet、intersection 、addElement 三个函数,以实现集合的三个功能。参数 a 和 b 是两个集合,返回值为 a 和 b 的交集。
2024-05-14 16:22:20
902
原创 【高阶应用】 第1关:合并链表
具体实现如下:从小到大依次输入两列整数,以-1表示结尾,然后根据这两列整数构造两个单向链表,按整数大大小关系把这两个链表合并成一个有序单向链表,最后从头到尾遍历输出这个链表的数据域(用一个空格隔开)。本关任务:编写程序,把两个有序排列的单向整数链表合并成一个有序排列的的整数链表。
2024-04-14 17:39:08
864
原创 【高阶应用】第2关:奥运会综合项目计分程序
第2行Alex:第1个项目第2名(7分),第2个项目第4名(4分),第3个项目第1名(10分),总分21;第3行Bolt:第1个项目第4名(4分),第2个项目第1名(10分),第3个项目第4名(4分),总分18;第4行Jack:第1个项目第1名(10分),第2个项目第2名(7分),第3个项目第2名(7分),总分24;第5行Will:第1个项目第3名(5分),第2个项目第3名(5分),第3个项目第3名(5分),总分15。第1行的3 4表示,该综合项目有3个子项目,有4个运动员参数;
2024-04-14 17:38:13
1139
原创 【结构】第1关:求连接两个点的线段的斜率
本关任务:编写程序,依次输入两个点的横纵坐标(设都是整数,并且两个点的横轴坐标不等),计算连接两个点的线段的斜率(浮点数),最后输出。
2024-04-14 17:34:52
682
原创 【结构】第2关:复数类型
一个复数由实部和虚部两部分(都是整数)构成,定义复数的结构类型。在主程序中定义四个复数变量c1、c2、c3和c4,输入c1和c2的复数值,定义函数sub和mul,分别实现c3=c1-c2和c4=c1*c2,最后输出c3和c4的值。
2024-04-14 17:34:17
920
原创 【结构】第3关:日期排序
本关任务:编写程序,定义一个结构date,包含年、月、日三个整型数据成员,使用结构date声明包含5个数组元素的结构数组,依次输入5个数组元素的值,按日期先后对数组进行排序,输出排序的结果。
2024-04-14 17:33:35
1184
原创 【结构】第4关:歌曲名排序
本关任务:编写程序,然用户输入10首歌名,歌名存在一个字符指针数组,然后按字典序进行排序,最后依次输出这些歌名。注意:为了简化起见,输入的歌名只有一个单词,即歌名中不含空格。
2024-04-14 17:30:53
1311
原创 【指针】第1关:指针声明和应用
本关任务:编写程序,声明一个double类型的变量d,声明一个int类型的指针ptr,并用ptr指向d。用户输入一个浮点数存入变量d,然后输出*ptr的值。
2024-04-09 15:40:07
954
原创 【指针】第2关:指针实现整数排序
本关任务:题目中已经定义3个整型变量及3个整型指针变量,完成程序功能,仅用指针方法读入三个整数,并实现按由小到大的顺序进行排序,最后输出排序结果。
2024-04-09 15:37:44
1203
原创 【指针】第3关:实现自己的strcat函数
题目中已经给出main函数,main函数会调用mystrcat函数进行测试,会输入两个字符串A和Bmystrcat返回连接后的字符串,并且在A和B之间加上一个字符“-”。
2024-04-09 15:36:45
1181
4
原创 【指针】第5关:静态分配内存(习题6.5修改版)
本关任务:编写程序,定义一个可存放10个实数的一位数组来表示一个班某门课程的成绩,成绩由用户输入。然后根据输入的号码(1~10)输出对应学生的成绩,当输入号码不合法时,输出Error。
2024-04-09 10:49:13
915
原创 【指针】第6关:动态分配内存(习题7.10修改版)
本关任务:利用动态内存分配重新编写实训第5关(习题6.5修改版),要求能处理任意人数的成绩,总人数由用户输入,然后对应数量的成绩,最后根据根据输入的号码(注意最小号码是1)输出对应学生的成绩,当输入号码不合法时,输出Error。例如:输入人数10,再输入十个成绩78 86.5 65 99 91 77.5 56 72 84 88,再输入号码4,输出99。注意:记得释放动态分配的内存。
2024-04-09 10:48:31
1105
原创 【字符串】第1关:恺撒加密第2步(小写转大写)
例如:明文是"Attack in the morning",转换后为"ATTACK IN THE MORNING"。本关任务:要求在题干所给代码框架的基础上,完成凯撒加密的第二个步骤,把明文中的小写字母转换成对应的大写字母。
2024-04-08 11:35:21
1070
1
原创 【字符串】第2关:恺撒加密第3步(按密钥加密)
例如:明文是"ATTACK IN THE MORNING",密钥k为3,则密文是"DWWDFN LQ WKH PRUQLQJ"。
2024-04-08 11:34:00
1123
1
原创 【字符串】第4关:判断回文
不要只用一个下标,然后用len-1-i计算对称轴另一端下标,很麻烦。就是一个char类型的元素。char类型是一个有符号数,不能直接和。是汉字的第一个字符时,str[i]作为一个无符号数时才落在。这里直接把英文字符全部转换成小写了。函数直接获取字符串长度,需要包含。,但是这里有一个问题需要注意,强制转换成无符号char类型。不要再用下面的代码了。如何判断一个字符串是不是中文。是一个char类型的数组,
2024-04-08 11:32:14
1290
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人