
oj c++
文章平均质量分 51
程序员阿登
这个作者很懒,什么都没留下…
展开
-
【id:80】【20分】B. 复数的加减乘运算(运算符重载)
设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i.2.编写main函数,初始化两个Complex对象,计算它们之间的加减乘,并输出结果。定义一个复数类,通过重载运算符:+、-、*,实现两个复数之间的各种运算。第1行:输入两个数值,分别为第一个Complex对象的实部和虚部。第2行:输入两个数值,分别为第二个Complex对象的实部和虚部。第3行:两个Complex对象相乘后的输出结果。1.实现Complex类;原创 2023-06-19 20:46:30 · 153 阅读 · 0 评论 -
【id:180】【20分】D. 汽车收费(虚函数和多态)
第一行表示测试次数。从第二行开始,每个测试用例占一行,每行数据意义如下:汽车类型(1为car,2为Truck,3为Bus)、编号、基本信息(Car是载客数和重量,Truck给出重量,Bus给出载客数)。主函数根据输入的信息,相应建立Car,Truck或Bus类对象,对于Car给出载客数和重量,Truck给出重量,Bus给出载客数。以Vehicle为基类,构建出Car、Truck和Bus三个类。Car的收费公式为: 载客数*8+重量*2。Bus的收费公式为: 载客数*30。Truck的收费公式为:重量*5。原创 2023-06-12 20:57:59 · 81 阅读 · 0 评论 -
【id:64】【20分】C. 图形面积(虚函数与多态)
由它派生出3个派生类:Circle(圆形)、Square(正方形)、Rectangle(矩形)。2、要求用基类指针数组,使它每一个元素指向每一个派生类对象。第 t 组测测试数据中正方形的边长。第 t 组测试数据中矩形的长、宽。第一组测测试数据中正方形的边长。第一组测试数据中矩形的长、宽。第 t 组测试数据中圆的半径。第 t 组数据中正方形的面积。第 t 组数据中矩形的面积。第一组测试数据中圆的半径。第一组数据中正方形的面积。第 t 组数据中圆的面积。第一组数据中矩形的面积。第一组数据中圆的面积。原创 2023-06-12 20:35:00 · 755 阅读 · 0 评论 -
【id:76】【20分】B. 商旅信用卡(多重继承)
生成旅程信用卡对象,输入卡信息,调用对象成员函数完成旅程网下单、信用卡刷卡、信用卡退款、信用卡积分兑换为旅程积分等操作。旅程信用卡可以按 旅程积分:信用卡积分= 1:2 的比例将信用卡积分兑换为旅程积分。旅程会员卡,有会员卡号(int)、旅程积分(int),通过会员卡下订单,按订单金额累计旅程积分。通过旅程信用卡在旅程网下单,旅程积分和信用卡积分双重积分(即旅程积分和信用卡积分同时增加)。信用卡退款m,账单金额-m,信用卡积分减去退款金额。初始假设信用卡积分、旅程积分、账单金额为0。原创 2023-06-12 19:55:17 · 688 阅读 · 0 评论 -
【id:57】【20分】B. 银行账户(静态成员与友元函数)
为账户类Account增加一个友元函数,实现账户结息,要求输出结息后的余额(结息余额=账户余额+账户余额*利率)。在main函数中,定义一个Account类型的指针数组,让每个指针指向动态分配的Account对象,并调用成员函数测试存款、取款、显示等函数,再调用友元函数测试进行结息。第1行开始,每行输出一个账户的相关信息,包括账号、姓名、存款后的余额、存款后结息余额、取款后余额。第3行开始,每行依次输入一个账户的“账号”、“姓名”、“余额”、存款数,取款数。最后一行输出所有账户的余额。原创 2023-05-29 20:37:35 · 531 阅读 · 0 评论 -
【id:56】【20分】A. 距离计算(友元函数)
2.为Point类增加一个友元函数double Distance(Point &a, Point &b),用于计算两点之间的距离。直接访问Point对象的私有数据进行计算。每行依次输出一组点对之间的距离(结果直接取整数部分,不四舍五入 )3.编写main函数,输入两点坐标值,计算两点之间的距离。第2行开始,每行依次输入两个点的x和y坐标。第1行:输入需计算距离的点对的数目。1.实现Point类;原创 2023-05-23 10:47:38 · 122 阅读 · 0 评论 -
【id:52】【20分】D. 软件备份(拷贝构造函数)
软件作为一种对象也可以用类来描述,软件的属性包括软件名称、类型(分别用O、T和B表示原版、试用版还是备份)、有效截至日期(用CDate类子对象表示)和存储介质(分别用D、H和U表示光盘、磁盘和U盘)等。试完成该类的拷贝构造、构造和打印(包括从2015年4月7日算起有效期还有多少天,是否过期)成员函数的实现。如果输入日期在2015年4月7日之后,则显示之后的剩余天数。第一个软件类型 第一个软件介质类型 第一个软件有效期年 月 日。第二个软件类型 第二个软件介质类型 第二个软件有效期年 月 日。原创 2023-04-19 21:04:36 · 2135 阅读 · 0 评论 -
【id:50】【20分】B. 对象是怎样构造的(拷贝构造函数)
某个类包含一个整型数据成员.程序运行时若输入0表示用缺省方式定义一个类对象;输入1及一个整数表示用带一个参数的构造函数构造一个类对象;输入2及一个整数表示构造2个类对象,一个用输入的参数构造,另一个用前一个对象构造。试完成该类的定义和实现。原创 2023-04-19 20:43:42 · 196 阅读 · 0 评论 -
【id:45】【20分】A. Equation(类与对象+构造)
/输出小数点后3位。1、无参构造(abc默认值为1.0、1.0、0)与有参构造函数,用于初始化a、b、c的值;建立一个类Equation,表达方程ax2+bx+c=0。#include <iomanip> //必须包含这个头文件。2、set方法,用于修改a、b、c的值。3、getRoot方法,求出方程的根。输出方程的根,结果到小数点后2位。输入测试数据的组数t。原创 2023-04-19 20:32:24 · 495 阅读 · 0 评论 -
【id:51】【20分】C. 电话号码升位(拷贝构造函数)
拷贝构造函数的功能是用原来7位号码的对象升位为8位号码对象,也就是说拷贝构造的对象是源对象的升级.电话升位的规则是原2、3、4开头的电话号码前面加8,原5、6、7、8开头的前面加2。注意:电话号码只能全部是数字字符,且与上述情况不符的输入均为非法)字符指针是用于动态创建一个字符数组,然后保存外来输入的电话号码。构造函数的功能是为对象设置键盘输入的7位电话号码,如果号码升级不成功,则输出报错信息,具体看示例。第一个号码升位后的号码。第二个号码升位后的号码。原创 2023-04-18 11:15:39 · 834 阅读 · 0 评论 -
【id:35】【20分】E. Stack(类与构造)
4.push操作表示堆栈的数组存放一个数据,例如一开始数组为空,则top为0,当有数据要入栈时,把数据存放在a[top]的位置,然后top加1指向下一个空白位置、数据进栈只能从栈顶进。1. 堆栈的数据实际上是保存在数组a中,而a开始是一个指针,在初始化时,根据实际需求将a动态创建为数组,数组长度根据构造函数的参数决定。上面是栈类的定义,栈是一种具有先进后出特点的线性表,请根据注释,完成类中所有方法的实现,并在主函数中测试之。6.判断堆栈空的条件是top是否等于0,判断堆栈满的条件是top是否等于size。原创 2023-04-14 16:48:04 · 556 阅读 · 0 评论 -
【id:34】【20分】D. Point_Array(类+构造+对象数组)
上面是我们曾经练习过的一个习题,请在原来代码的基础上作以下修改:1、增加自写的析构函数;3、根据下面输出的内容修改相应的构造函数。输出第一组距离最大的两个点以及其距离(存在多个距离都是最大值的情况下,输出下标排序最前的点组合。比如如果p[0]和p[9]、p[4]和p[5]之间的距离都是最大值,那么前一个是答案,因为p[0]排序最前)cout<<fixed<<setprecision(3)<<a<<endl;然后在主函数中根据用户输入的数目建立Point数组,求出数组内距离最大的两个点之间的距离值。原创 2023-04-14 15:09:13 · 790 阅读 · 0 评论 -
【id:33】【20分】C. 分数类(类与构造)
3. 若r不为0,则用b代替a, r代替b,此时a,b都比上一次的小,问题规模缩小了;// 求对象的分子和分母的最大公约数。2. 用a除b得到余数r,若r=0,则b为最大公约数,退出.注意:如果分母是1的话,也按“分子/1”的方式输出。1. 交换a, b使a > b;原创 2023-04-12 20:02:35 · 1044 阅读 · 0 评论 -
【id:32】【20分】B. Date(类与构造)
要求第一个日期的年月日初始化采用构造函数,第二个日期的年月日初始化采用setDate方法,第三个日期又采用构造函数,第四个日期又采用setDate方法,以此类推。下面是一个日期类的定义,请在类外实现其所有的方法,并在主函数中生成对象测试之。例如9.月30日的明天是10月1日,12月31日的明天是第二年的1月1日。2月28日的明天要区分是否闰年,闰年则是2月29日,非闰年则是3月1日。第一组测试数据的年 月 日。原创 2023-04-11 11:30:15 · 567 阅读 · 0 评论 -
【id:31】【20分】A. Point(类与构造)
第一组测试数据点p1的x坐标 第一组测试数据点p1的y坐标 第一组测试数据点p2的x坐标 第一组测试数据点p2的y坐标。//输出小数点后3位。下面是一个平面上的点的类定义,请在类外实现它的所有方法,并生成点测试它。#include //必须包含这个头文件。输出p1到p2的距离。原创 2023-04-11 11:20:02 · 664 阅读 · 0 评论 -
【id:162】【20分】E. 身体评估(类与对象)
输出t行,每行输入一个实例的BMI和体脂率,BMI四舍五入到个位,体脂率小数数值精确到小数点后2位。BMI方法,返回BMI数值(整数,四舍五入到个位),计算公式BMI= 体重 / 身高的平方。第二行起,每行输入四个参数:姓名、身高、体重、腰围,姓名的最大长度不超过20。评估成年人身体健康有多个指标,包括BMI、体脂率等。2)参数b=体重(kg)×0.082+34.89。李圆的BMI指数为28--体脂率为0.25。张高 1.85 78.5 85.2。3)体脂肪重量(kg)=a-b。其它方法根据需要自行定义。原创 2023-04-06 18:37:00 · 380 阅读 · 1 评论 -
【id:21】【20分】E. 抄袭查找(结构体+指针+函数)
定义一个函数,返回值为一个整数,参数是两个结构体指针,函数操作是比较两张试卷的每道题目的答案,如果相同题号的答案相似度超过90%,那么就认为有抄袭,函数返回抄袭题号,否则返回0。相似度是指在同一题目中,两个答案的逐个位置上的字符两两比较,相同的数量大于等于任一个答案的长度的90%,就认为抄袭。每张试卷包含:学号(整数类型)、题目1答案(字符串类型)、题目2答案(字符串类型)、题目3答案(字符串类型)在一行中,把发现抄袭的两个学号和题目号输出,只输出第一次发现抄袭的题号,数据之间用单个空格隔开。原创 2023-03-29 21:00:29 · 809 阅读 · 0 评论 -
【id:20】【20分】D. 谁是老二(结构体)
题目描述定义一个结构体,包含年月日,表示一个学生的出生日期。然后在一群学生的出生日期中找出谁的出生日期排行第二要求:出生日期的存储必须使用结构体,不能使用其他类型的数据结构。要求程序全过程对出生日期的输入、访问、输出都必须使用结构。输入第一行输入t表示有t个出生日期每行输入三个整数,分别表示年、月、日依次输入t个实例输出输出排行第二老的出生日期,按照年-月-日的格式输出输入样例161980 5 61981 8 31980 3 191980 5 31983 9 12。原创 2023-03-29 20:54:15 · 540 阅读 · 0 评论 -
【id:203】【20分】C. 职工信息 (结构体)
程序实现初始化5名职工的信息,并对工作年限大于等于30年的职工每人加100元工资,分别输出工资变化之前和之后的所有职工的信息。编写程序,定义一个职工信息结构包括职工姓名、工作年限、工资总额。定义一个存放职工信息的结构数组。输出两部分,第一部分输出工资变化之前所有职工的信息,第二部分输出工资变化之后的所有职工的信息。输入5个员工的职工姓名、工作年限、工资总额,姓名的最大长度不超过20。创建一个结构体数组 每个数组都是一个结构体。原创 2023-03-29 20:02:39 · 388 阅读 · 0 评论 -
【id:134】【20分】B. 求最大值最小值(引用)
题目描述编写函数void find(int *num,int n,int &minIndex,int &maxIndex),求数组num(元素为num[0],num[1],...,num[n-1])中取最小值、最大值的元素下标minIndex,maxIndex(若有相同最值,取第一个出现的下标。输入n,动态分配n个整数空间,输入n个整数,调用该函数求数组的最小值、最大值下标。改变函数find功能不计分。要求:在main函数中按样例格式输出结果,不能直接在find函数中输出。输入测试次数。原创 2023-03-29 19:54:40 · 275 阅读 · 0 评论 -
【id:19】【20分】A. 三数论大小(引用)
题目描述输入三个整数,然后按照从大到小的顺序输出数值。要求:定义一个函数,无返回值,函数参数是三个整数参数的引用,例如int &a, int &b, int &c。在函数内对三个参数进行排序。主函数调用这个函数进行排序。要求:不能直接对三个整数进行排序,必须通过函数而且是引用的方法。要求:输出必须在主函数进行。输入第一行输入t表示有t个测试实例第二行起,每行输入三个整数输入t行输出每行按照从大到小的顺序输出每个实例,三个整数之间用单个空格隔开输入样例132 4 6。原创 2023-03-29 19:48:20 · 296 阅读 · 0 评论 -
【id:9】【25分】D. 动态数组(指针与数组)
第二行先输入一个大写字母表示数组类型,I表示整数类型,C表示字符类型,F表示浮点数类型;然后输入n表示数组长度。一开始未知数组长度,根据要求创建不同类型的指针,并且使用指针创建相应长度的数组,然后再完成不同的要求。要求程序整个过程不能使用数组下标,从数组创建、输入到搜索、比较、计算,到输出都必须使用指针。若要求创建整数数组,计算数组内所有数据的平均值。若要求创建字符数组,找出数组内的最大字母。若要求创建浮点数数组,找出数组的最小值。每个根据不同的数组类型输出相应的结果。第一行输入t表示有t个测试实例。原创 2023-03-16 16:27:05 · 367 阅读 · 0 评论 -
【id:16】【20分】E. 动态矩阵(指针与堆内存分配)
题目描述未知一个整数矩阵的大小,在程序运行时才会输入矩阵的行数m和列数n要求使用指针,结合new方法,动态创建一个二维数组,并求出该矩阵的最小值和最大值,可以使用数组下标法。不能先创建一个超大矩阵,然后只使用矩阵的一部分空间来进行数据访问、创建的矩阵大小必须和输入的行数m和列数n一样输入第一行输入t表示t个测试实例第二行输入两个数字m和n,表示第一个矩阵的行数和列数第三行起,连续输入m行,每行n个数字,表示输入第一个矩阵的数值依次输入t个实例输出每行输出一个实例的最小值和最大值。原创 2023-03-22 19:59:11 · 288 阅读 · 0 评论 -
【id:11】【20分】D. 矩阵左转(指针与数组)
要求:除了矩阵创建和数据输入可以使用数组和数组下标的方法,其他过程对矩阵的任何访问都必须使用指针。提示:m行n列的二维矩阵,第i行第j列的元素与首元素的距离为i*n+j,序号从0开始计算。m行n列的二维矩阵,第i行第j列的元素与首元素的距离为i*n+j,序号从0开始计算。在输出的每行中,每个数据之间都用空格隔开,最后一个数据后面也带有空格。a[j][i] 等价于 *(p + i + j * 3)输入一个2*3的矩阵,将这个矩阵向左旋转90度后输出。连续两行输入一个2*3的矩阵的数据。原创 2023-03-21 11:37:12 · 524 阅读 · 0 评论 -
【id:14】【20分】C. 字符串比较(指针与字符)
题目描述编写一个函数比较两个字符串,参数是两个字符指针(要求显式定义,例如char *S, char *T),比较字符串S和T的大小。如果S大于T,则返回1,如果S小于T则返回-1,如果S与T相等则返回0。比较规则:1.把两个字符串的相同位置上的字符进行比较,字符的大小比较以ASCII值为准2.在比较中,如果字符串S的字符大于字符串T的字符的数量超过小于的数量,则认为S大于T,如果等于则S等于T,如果小于则S小于T。原创 2023-03-21 10:45:43 · 552 阅读 · 2 评论 -
【id:10】【20分】B. 三串合一(指针与字符数组)
题目描述输入三个字符串,通过指针读取各个字符串的子串(子串是指字符串中连续的一小部分),把它们合并成一个新字符串要求:1. 三个字符串的创建和输入可以使用数组,也可以不用2. 输入后,根据三个字符串的子串的长度,计算出新字符串的长度3. 使用动态数组的方法创建新的字符串,并且使用指针读取三个字符串的不同部分,并且复制到新字符串中,要求整个过程都不能使用数组下标4. 使用指针输出新的字符串输入第一行输入t表示有t个测试实例连续三行输入三个字符串,每个字符串都包含10个字符。原创 2023-03-20 20:54:03 · 422 阅读 · 0 评论 -
【id:13】【20分】A. 月份查询(指针数组)
已知每个月份的英文单词如下,要求创建一个指针数组,数组中的每个指针指向一个月份的英文字符串,要求根据输入的月份数字输出相应的英文单词。每行输出相应的月份的字符串,若没有这个月份的单词,输出error。第一行输入t表示t个测试实例。接着每行输入一个月份的数字。9月 September。11月 November。12月 December。1月 January。2月 February。10月 October。原创 2023-03-20 20:40:56 · 191 阅读 · 0 评论 -
【id:15】【25分】C. 成绩查询(指针运算)
题目描述已知一组学生成绩,然后根据输入的序号查询成绩要求:1. 使用一个整数数组存储学生成绩2. 使用一个指针指向数组中间元素3. 使用++和--运算符,求出数组中间元素的前一个成绩和后一个成绩4. 输入一个序号,然后计算这个序号的元素和中间元素的距离,然后使用指针去访问例如有11个学生,指针指向中间的学生也就是第6个学生,若输入序号3,即查询第3个学生的成绩,第3和第6之间距离为3,那么指针应该怎么运算呢???5. 整个程序除了输入时可以使用数组下标,其他部分尽量使用使用指针进行访问。原创 2023-03-15 15:17:02 · 249 阅读 · 0 评论 -
【id:8】【25分】B. 货币兑换(指针与常量)
题目描述设定以下汇率常量美元汇率为6.2619,表示1美元兑换6.2619元人民币欧元汇率为6.6744,表示1欧元兑换6.6744元人民币日元汇率为0.0516,表示1元日元兑换0.0516元人民币港币汇率为0.8065,表示1元港币币兑换0.8065元人民币定义一个常量指针,根据需求指针指向不同的汇率,然后计算出各种货币兑换为人民币的数量要求:不能直接使用汇率常量进行计算,必须使用常量指针,只能使用一个指针输入输入一个t表示有t个测试实例。原创 2023-03-15 14:57:04 · 376 阅读 · 0 评论 -
【id:7】【25分】A. 三数论大小(指针)
本题主要理解:自定义函数带有指针的情况下 传给函数的是地址(带有&符号),函数接收是 x去接收(&a),而不是* p接收。要求:用三个指针分别指向这三个整数,排序过程必须通过这三个指针来操作,不能直接访问这三个整数。输出时,必须使用这三个指针,不能使用存储三个整数的变量。int * x -->* (&a)输入三个整数,然后按照从大到小的顺序输出数值。每行按照从大到小的顺序输出每个实例。第一行输入t表示有t个测试实例。第二行起,每行输入三个整数。原创 2023-03-14 23:55:57 · 182 阅读 · 0 评论