自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T16 智能指针操作媒体资源类(C++新标准)

在main函数中,分别通过shared_ptr和new两种方式构建不同派生类对象,然后依次调用所有对象的Show函数实现输出,最后输出Photo类所有对象的Show函数实现输出,比较两种动态分配方式处理对象的差异性。(3)照片类Photo继承于MediaAsset类,新增string类型数据成员date、location和subject,并调用其构造函数实现初始化,覆盖基类Show函数并输出其新增数据成员。新建对象方式选择,或者选择shared_ptr,或者选择new。所有对象Show函数调用输出结果。

2024-05-22 22:30:48 1015

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T15 英文文本单词统计(STL)

读入一篇英文文章,基于STL中的容器和算法(建议包含<map>、<algorithm>、<string>和<sstream>),删除所有标点符号,主要包括英文逗号“,”、句号“.”、分号“;”、双引号“"”和单引号“'”等,并将所有英文单词转化为小写,然后统计每个单词出现的频率并按“a-z”从小到大顺序输出结果。按从小到大顺序输出除标点外的小写单词及出现频率。一段以exit为结束词的英文文本。

2024-05-22 22:28:45 1004

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T14 安全数组类模板

(4)重载输出流运算符ostream &operator<<(ostream& out, const Array<T>& arr)输出n个T类型数据;(3)重载输入流运算符istream &operator>>(istream& in, Array<T>& arr)读入n个T类型数据;(7)设计成员函数int Array<T>::search(T e)const,若查找成功返回非负索引值,否则返回-1;(1)设计构造函数Array<T>::Array(int n),可动态分配n个T类型的存储空间;

2024-05-22 22:27:12 860

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T13 形状类的设计与实现(虚函数与抽象类)

添加公有成员函数void Show(),用于显示形状的宽度、高度和面积,输出格式为“W =宽度, H =高度, Area =面积”;最后将所有形状对象按面积从大到小排序(要求使用重载的运算符“>”来判断对象的面积大小关系),并输出排序后的对象信息。重载比较操作符:==、>和<,用于比较两个形状面积的大小关系,返回值类型为bool,可以定义为成员函数或友元函数。R 23 17 //对象类型、形状宽度、形状高度,R表示矩形对象。D 17 29 //对象类型、形状宽度、形状高度,D表示菱形对象。

2024-05-22 22:24:14 757

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T12 有理数类的设计与实现

再定义几个有理数对象分别用于表示a和b的加、减、乘、除、前置自增a、前置自减a、后置自增a、后置自减a,并依次各个对象的结果。最后依次用<、<=、>、>=比较a和b的大小关系,并依次输出比较结果(true或false)。有理数a和b的加、减、乘、除以及前置自增a、前置自减a、后置自增a、后置自减a、有理数a和b比较大小的结果。(6)将前置++、前置--、后置++、后置--重载为公有成员函数,实现有理数自增1或自减1。分母int iDown。(7)将+、-、*、/重载为友员函数,实现有理数的加减乘除。

2024-05-22 22:21:39 1059

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T11 动物类的继承与派生

(2)CHorse类虚继承于CAnimal类,新增int类型数据成员马力power并调用其构造函数实现初始化,输出格式为:cout<<"Horse constructor: "<< power<<endl,新增成员函数Talk(),输出格式为:cout << "Whinny..." << endl,析构函数输出格式为:cout<< "Horse destructor" << endl;",然后输入对应数据成员信息构造相应对象,最后依次调用n个对象的Talk成员函数实现输出。

2024-05-22 22:19:50 770 1

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T10 单链表类的继承与派生

若为"Push",则压栈;(4)由LinkedList派生LinkedQueue类,基于单链表类的功能实现入队和出队的成员函数:void EnQueue(const StudentRecord &record)和bool DeQueue(StudentRecord &record)。(1)设计学生信息类StudentRecord,要求包含公有数据成员:string stuName和int stuNo,设计用于输出学生信息的公有成员函数:void Print(),输出格式为: stuName stuNo。

2024-05-05 18:00:23 830

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T9 三角形类的设计与实现

(1)CPoint类中包含两个用于表示点的X和Y坐标分量的double型私有数据成员,能够根据指定的X和Y坐标构建点对象,且能够根据指定的另一点计算两点间的距离(要求参数为常引用)。(2)CTriangle类中包含三个用于表示三角形顶点的私有对象成员,能够根据指定的三点构造三角形对象(要求构造函数的参数为常引用),且有计算三角形周长和面积的公有成员函数。输出精度为10(采用setprecision(10)设置输出精度)的三角形的周长和面积。输入的三个点的坐标构建三角形对象。

2024-05-05 17:58:11 396

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T8 简易扑克牌类的设计与实现

(1)用数组表示除大小王外的一幅纸牌共52张,每张纸牌有花色和点数,花色分为4种,分别对应黑桃(Spade: S)、红桃(Heart: H)、方片(Diamond: D)和梅花(Club: C),如黑桃A简记为SA,梅花6简记为C6;(4)支持计算每张纸牌分数的操作getScore(),其中每张牌的分数定义如下:“J”、“Q”、“K”、“A”分别对应分值10、10、10、11,其它“2~10”分值对应其字面点数。随机洗好的52张牌花色及点数,玩家1抽取牌的序号,玩家2抽取牌的序号。

2024-05-05 17:56:22 475

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T7 动态堆栈类及括号匹配

编码完善上述动态字符堆栈类,基于此堆栈类,判断一个字符串中的括号是否正确匹配。如输入"{[(1+2)/(3+4)*5-3]*2}/3-4",则字符串中的括号匹配,若输入"[(])",则字符串中的括号不匹配。判断输入字符串中的括号是否正确匹配,若正确匹配,输出"Balanced",否则输出"Not balanced"。采用getline(cin, string)读入一个可能包含"()[]{}"三种括号的字符串。动态堆栈类及括号匹配(考察类的构建与应用)

2024-05-05 17:32:39 451

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T6 椭球类

(4) 设计成员函数double GetVolume()用于计算椭球的体积(注:椭球的体积公式为4*PI*r1*r2*r3/3)。(3) 设计成员函数bool IsEqual()判断两个椭球是否完全相同,返回值为布尔类型(true或false);(2) 构造函数:给椭球中的数据成员赋初值。第一个椭球的体积,第二个椭球的体积,若第一个椭球与第二个椭球完全一样,则输出true,否则输出false。(1) 数据成员包含三个轴的半径r1、r2、r3及圆周率PI=3.1416;第一个椭球的半径和第二个椭球的半径。

2024-05-05 17:21:07 298

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T5 不同形状面积计算

double Area(double a, double b, double c)用于三角形面积的求解(注意采用海伦公式求解)。double Area(double len, double wid)用于长方形面积的求解;double Area(double r)用于圆的面积求解(PI=3.1416);设计重载函数Area,分别实现圆、长方形和三角形面积的求解。输入圆的半径,长方形的长与宽,三角形的三条边长。圆、长方形和三角形的面积。

2024-05-05 17:17:56 320

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T4 字符串子串查找与判断

定义两个string类对象str1和str2,采用getline函数读入两个字符串,检测第二个字符串是否是第一个字符串的子串,若是,输出子串在主串中的位置,否则输出-1。输出第二个字符串在第一个字符串中的位置,若第二个字符串不是第一个字符串的子串,则输出-1。字符串子串查找与判断(考察string类及其成员函数find)

2024-05-05 17:15:22 241

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T3 用函数模板实现数据交换

设计函数模板Swap,能够实现整型数与整型数、浮点型数与浮点型数、字符串与字符串的交换。用函数模板实现数据交换(考察引用和函数模板)分别输出交换后的整型数、浮点型数和字符串。

2024-05-05 17:12:46 330

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T2 动态内存分配

输入n个整型数,包含<algorithm>,采用sort函数对其按从小到大顺序排序后输出。采用cin输入整型数个数n及其对应的n个整数。动态内存分配(new和delete的使用)输出排序后的数据序列。

2024-05-05 17:10:17 234

原创 西北农林科技大学2024学年C++面向对象程序设计OJ——T1 进制转换

输入一个正整数n,要求设计一个带默认参数的函数Print(int n, int base=10, bool bUpper=false),分别实现其对应10进制、8进制和16进制大小写的输出。n对应的10进制数、8进制数和大小写16进制数。进制转换(考察带默认参数的函数)

2024-05-05 17:06:07 351

原创 C语言基础————编译和链接

我们在 test.c 文件中每一次使用 Add 函数和 g_val 的时候必须确切的知道 Add 和 g_val的址,但是由于每个文件是单独编译的,在编译器编译 test.c 的时候并不知道 Add 函数和 g_val变量的地址,所以暂时把调用 Add 的指令的目标地址和 g_va 的地址置。比如: 目标文件的格式elf,链接底层实现中的空间与地址分配,符号解诉和重定位等,如果你有兴趣,可以看《程序的自我修养》一书来详细了解。链接是一个复杂的过程,链接的时候需要把一堆文件链接在一起才生成可执行程序。

2024-01-16 21:15:50 1586 1

原创 结构体——好物推荐!!

首先,一般都是向较小的数取对齐数,例如,int大小为4,系统指定的对齐数为8. 8 > 4,所以取4为对齐数,红色和绿色的是存了的地址,白色的就是浪费的空间,所以说对齐方式很浪费空间,可是按照计算机的访问规则,这种方式提高了效率。对于结构体中的结构体,关键的是把对齐数找到,可以看出SS结构体的大小为8,但是对齐数总大小不是按8为倍数的而是按4的的这就说明,结构体的大小在结构体中不会与指定对齐数进行比较,所以就可以把结构体SS看作是一个char和一个int类型。3.结构体的总大小,必须是最大对齐数的整数倍。

2023-12-01 22:20:58 351 1

原创 整型和浮点型在内存中的储存

该标准将浮点数分为三部分:符号位(1位)、指数位(8位)和尾数位(23位或52位)。对于单精度浮点数,其存储格式为:1位符号位 + 8位指数位 + 23位尾数位;对于双精度浮点数,其存储格式为:1位符号位 + 11位指数位 + 52位尾数位。浮点数采用IEEE 754标准表示,包括符号位、指数位和尾数位。例如,8位二进制数可以表示0255之间的整数,16位二进制数可以表示065535之间的整数。例如,单精度浮点数的小数部分采用23位二进制数表示,双精度浮点数的小数部分采用52位二进制数表示。

2023-11-27 23:50:52 676

原创 指针————又爱又恨的玩意

经过前面的学习,我们知道变量的开辟会伴随着地址的重新开辟,这就意味着每一个变量在内存中都有着属于自己的地址。很明显,当我们获取到一个地址的时候,我们不能单纯的使用地址,因为我们可能会使用里面的值,所以我们引入解引用操作符‘*’。注:指针变量的大小只与机器自身有关,与变量的种类无关(比如说,x64上是8个字节大小,x32是4个字节大小)当一个指针变量加上解引用操作符的时候,我们就访问到了这个地址指向的具体的值。*是在说明p是指针变量,而前面的int是在说明p指向的是int型的对象。

2023-11-26 21:25:41 330 1

原创 c语言内存函数的应用与模拟实现

1.和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。1.函数memcpy从src的位置向后复制num个字节到dest指向的内存位置。memset是用来设置内存的,将内存中的值以字节为单位设置成想要的内容。2.如果源空间和目标空间出现重叠,就得使用memmove函数处理。3.如果dest与src有任何的重叠,复制的结果都是未定义的。三.memset函数的使用和模拟实现。二.memmove的使用和模拟实现。一.memcpy的使用和模拟实现。四.memcmp的使用和模拟实现。

2023-11-26 19:52:11 485 1

原创 扫雷--数组与函数的应用

但是呢,还有一个隐患就是,我们用的数字来表示雷的话,当我们想储存排查出来的雷的信息的时候,都设置为数字的话,会使得信息出现混淆。所以,聪明的我们能想到利用字符来表示雷,用数字来表示探测出的信息,这样不就能一山容得下二虎了吗?很明显,我们肯定选择用两个数组来表示,一个mine(雷)数组来存放布置好的雷的信息,将排查出的信息存放到show(展示)数组中打印出来给游玩者提示。但是呢,当我们选中一块没有雷的区域,我们会进行以该方块为中心的3*3大小的数据的访问(如红色区域所示)写到这,你的程序大概就完成了。

2023-11-01 22:22:21 71

原创 循环语句的理解

for循环先进行表达式2的基础条件(可定义数据类型,可赋值),在之后进行表达式2的判断,进入循环体后,进入表达式3进行运算,再进行表达式2的判断,如此循环往复。在我们的日常生过中,我们会有很多时候要将一个动作重复成百上千次,代码的运算按也是如此。其实这个循环用的比较少,符合先做在判断的算法,所以这个循环会比for多进行一次运算。while后的小括号里面不要打1,要不然就会让循环进入死循环当中。1.break:跳出当前循环,但是不能在条件语句中使用。1.表达形式:while(表达式)}while(表达式)

2023-10-23 18:58:34 26

原创 分支语句的理解

else的表达形式跟if类似,但是它并不会在else后面加表达式,因为当if不成立的时候,就会进入到else语句当中去。其实,分支语句的理解非常简单,就是一个类似判断的句子,就像如果还是,因为所以等等。if和else可以嵌套使用,出现if里面有if,else if的语句,虽说长得不一样,但是条件的提出和使用时相似的,没有太大的区别。其实这就是switch语句里面的“免疫系统”,用来查找输入错误的条件,让错误的条件进入到default语句中进行判别。首先,我们先来了解一下最简单的一种条件语句--if。

2023-10-23 18:23:16 29

原创 IT人生————我的未来

在这个信息发达的时代,编程和代码是必不可少的,比如游戏、网上支付、视频会等等等等,都离不开计算机。作为一名喜欢玩游戏青年,我喜欢编程,是因为我想设计一款属于自己的游戏,既能够让大家了解中国,也能玩的快乐,这正是我编程的目标。我非常兴奋,作为一名大一新生,我很高兴能与大家在CSDN这个地方相遇,作为有几年写代码经验的小朋友,我会是不是分享我大学生活中的代码,也会向各个大佬学习的。大学生活刚刚起步,我的梦想很简单,我想进入腾讯公司,做一名游戏开发者,或者是成为一个策划,做大家都喜欢玩的游戏。

2023-10-11 15:30:00 66

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除