C++入门练习题目解析(第二讲)

1.设计一个表示点的类point,内含私有成员变量x,y表示点的坐标。再设计一个独立函数double distance(point m,point n); 来计算两点距离。

#include<iostream>
#include<math.h>
using namespace std;
class point
{
private:int x, y;
public:void setpoint(int a, int b){x = a;y = b;}int getx(){return x;}int gety(){return y;}
};
double distance(point m,point n)
{return sqrt((m.getx() - n.getx()) * (m.getx() - n.getx()) + (m.gety() - n.gety()) * (m.gety() - n.gety()));
}
void main()
{point p1, p2;p1.setpoint(2, 3);p2.setpoint(3, 4);cout << distance(p1, p2) << endl;
}

(1)我们首先要知道两点之间的距离的计算公式,这个就要用到我们的sqrt函数,这个库函数的使用就要包含到对应的头文件;

(2)我们一般是把变量设置为私有的,函数定义为共有的,私有的变量我们无法直接进行使用,因此我们要借助对应的函数进行间接使用;

(3)我们定义distance函数用来求两点之间的距离,它的参数是两个类,我们需要借助函数调用对应的横坐标和纵坐标;

(4)我们通过自定义函数setpoint函数,把我们输入的坐标值赋值给对应的私有变量x,y;

(5)因为我们无法直接使用x,y这些私有的变量,我们需要自定义函数getX,getY返回对应的横坐标和纵坐标;

(6)最后我们依然是通过distance函数打印输出对应的距离;

2.建立一个对象数组,内放5个学生的(姓名,成绩)。设立一个函数max,在max函数中找出5个学生的最高成绩者,并输出其姓名和成绩。

#include<iostream>
#include<string>
using namespace std;
class student
{
private:string name;double mark;
public:void setstudent(string name,double mark){this->name = name;this->mark = mark;}string getname(){return name;}double getmark(){return mark;}
};
void max(student ss[], int n)
{double maxmark = -1;string maxname = "";int i = 0;for (i = 0; i < n; i++){if (ss[i].getmark() > maxmark){maxmark = ss[i].getmark();maxname = ss[i].getname();}}cout << maxname << "获得最高分:" << maxmark << endl;
}
void main()
{student ss[5];ss[0].setstudent("jack", 90);ss[1].setstudent("helen", 91);ss[2].setstudent("wangming", 92);ss[3].setstudent("Micle", 94);ss[4].setstudent("Aric", 98);max(ss, 5);
}

(1)这个地方,我们需要定义一个数组,而且是我们创建的student类型的,为每一个类的成员设置名字和分数;

(2)我们的变量设置为私有的,函数设置为公有的,我们定义了setstudeny函数,又来接受传递的名称和分数,然后就定义getx,gety函数得到对应的名称和分数的返回值;

(3)我们在类的外面定义求距离的函数,利用sqrt函数求两个点之间的距离,这样我们需要包含对应的头文件;

(4)我们定义的setstudent函数的参数和我们定义的变量一样,所以我们使用this指针;

(5)我们定义一个max函数,用来计算最高分和对应的名字,首先初始化姓名(空字符)和分数的初始值-1,利用循环,找出最大值,最后打印最大值和对应的名字。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小赢科技公布2023年业绩:业绩稳健增长,服务“触角”有效延伸

近日&#xff0c;金融科技公司小赢科技&#xff08;NYSE:XYF&#xff09;发布了2023年第四季度及全年未经审计的财务业绩。 财报显示&#xff0c;小赢科技2023年全年总净营收约为48.15亿元&#xff0c;同比增长35.1%&#xff1b;净利润约为11.87亿元&#xff0c;同比增长46.2%…

平价的挂耳式耳机有哪些?五大高口碑品牌,深度测评严选!

随着技术的发展&#xff0c;市面上的一些高端开放式耳机已经在音质上有了显著的提升&#xff0c;甚至可以媲美一些入耳式耳机。与传统入耳式耳机相比&#xff0c;开放式耳机不会对耳道造成压迫&#xff0c;这减少了耳朵的疲劳感&#xff0c;使得长时间聆听音乐变得更加舒适。由…

FastAPI+React全栈开发08 安装MongoDB

Chapter02 Setting Up the Document Store with MongoDB 08 Installing MongoDB and friends FastAPIReact全栈开发08 安装MongoDB The MongoDB ecosystem is composed of different pieces of software, and I remember that when I was starting to play with it, there w…

《AIGC重塑金融:AI大模型驱动的金融变革与实践》

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-oBSlqt4Vga1he7DL {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

亚信安全联合人保财险推出数字安全保障险方案,双重保障企业数字化转型

数字化发展&#xff0c;新兴技术的应用与落地带来网络攻击的进一步演进升级&#xff0c;同时全球产业链供应链融合协同的不断加深&#xff0c;更让网络威胁的影响范围与危害程度不断加剧。 企业单纯依靠自身安全能力建设&#xff0c;能否跟上网络威胁的进化速度&#xff1f;能否…

《算法笔记》系列----质数的判断(埃氏筛法)

目录 一、朴素算法 二、埃氏筛法 1、与朴素算法对比 2、算法介绍 3、例题即代码实现 一、朴素算法 从素数的定义中可以知道&#xff0c;一个整数n要被判断为素数&#xff0c;需要判断n是否能被2.3.n- 1中的一个整除。只2&#xff0c;3..n- 1都不能整除n&#xff0c;n才能…

基于el-table实现行内增删改

实现效果&#xff1a; 核心代码&#xff1a; <el-table :data"items"style"width: 100%;margin-top: 16px"border:key"randomKey"><el-table-column label"计划名称"property"name"><template slot-scope&q…

【LAMMPS学习】五、LAMMPS命令(9-12) (Bond\Angle\Dihedral\Improper)势

5. 命令 本部分描述了 LAMMPS 输入脚本的格式以及其中的命令如何用于定义 LAMMPS 模拟。主要包括以下内容。 5.1. LAMMPS 输入脚本 5.2.输入脚本的解析规则 5.3.输入脚本结构 5.4. 按类别划分的命令 5.5.通用命令 5.6.Fix命令 5.7.compute命令 5.8.Pair_style 势 5.…

SpringMVC源码分析(六)--参数名称解析器

默认情况下编译时&#xff0c;不会带上方法参数名称&#xff0c;例如通过javac ./ParamNameResolverTest.java编译如下类 public class ParamNameResolverTest {public void test(String name, int age) {} } 编译的结果如下&#xff1a; public class ParamNameResolverTes…

JavaScript笔记 08

目录 01数组的遍历方法 02 清空数组的三种方式 03 Date 日期对象的创建和使用 04 Math数学对象 05 String字符串的常用方法 06 包装类的概述 01数组的遍历方法 数组有五中功能不同的遍历方法: 针对数组的每一个元素进行参数的回调函数 把当前元素作为第一实参 当前元素的…

java获取Date类型的年份

java获取Date类型的年份 Java获取Date类型的年份 在Java编程中&#xff0c;我们经常会涉及到日期和时间的操作。而获取一个Date类型对象的年份是其中的一个常见需求。本文将介绍如何使用Java获取Date类型的年份&#xff0c;并提供相应的代码示例。 Date类简介 在Java中&…

XSS 简述及解决

参考文章&#xff1a;https://www.writesoftwarewell.com/content-security-policy/ 什么是XSS XSS(Cross Site Scripting)即跨站脚本攻击&#xff0c;即当前站点加载并执行了来自其他站点的js&#xff0c;导致Cookie泄漏等安全问题。 怎么产生 多发生在允许用户填写并展示…

PHP定时任务框架taskPHP3.0的学习记录1(TaskPHP、执行任务类的实操代码实例)

TaskPHP是一个基于PHP的定时任务框架&#xff0c;它提供了一个简单、灵活且易于使用的解决方案&#xff0c;用于在PHP环境中执行定时任务。下面是对TaskPHP框架的简要介绍&#xff1a; 简单易用&#xff1a;TaskPHP的设计目标是让定时任务的创建和管理变得简单。通过简单的配置…

Learning To Count Everything

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;学习数一切东西1、研究背景2、提出方法3、模块详细3.1、多尺度特征提取模块3.2、密度预测模块 4、损失函数5、性能对比6、贡献 二…

城管智慧执法系统源码,基于微服务+java+springboot+vue开发

城管智慧执法系统源码&#xff0c;基于微服务javaspringbootvue开发 城管智慧执法系统源码有演示&#xff0c;自主研发&#xff0c;功能完善&#xff0c;正版授权&#xff0c;可商用上项目。 一套数字化的城管综合执法办案系统源码&#xff0c;提供了案件在线办理、当事人信用…

Platypus 一种集中式的央行数字货币方案

集中式的CBDC&#xff0c;混合使用账户模型和UTXO模型。 角色分类 中央银行&#xff1a;发行货币&#xff0c;交易验证&#xff0c;公开交易日志&#xff0c;防止双花。 不是完全受信任的&#xff0c;假定为会遵守监管要求&#xff0c;但可能会破坏交易隐私&#xff0c;即获…

正弦实时数据库(SinRTDB)的使用(9)-有损压缩

前文已经将正弦实时数据库的使用进行了介绍&#xff0c;需要了解的可以先看下面的博客&#xff1a; 正弦实时数据库(SinRTDB)的安装 正弦实时数据库(SinRTDB)的使用(1)-使用数据发生器写入数据 正弦实时数据库(SinRTDB)的使用(2)-接入OPC DA的数据 正弦实时数据库(SinRTDB)…

Kafka学习之:mac 上基础使用 python 来使用 kafka 的生产者和消费者进行数据处理

文章目录 前提python 环境配置Kafka 生产消费者模型生产者 producer检查当前存在的所有 topic / 是否自动创建 topic为什么 producer 要通过 key, value 来发布数据键&#xff08;Key&#xff09;值&#xff08;Value&#xff09; 消费者 consumerconsumer 得到的 message 有哪…

MES系统怎么解决车间生产调度难的问题?

MES系统三个层次 1、MES决定了生产什么&#xff0c;何时生产&#xff0c;也就是说它使公司保证按照订单规定日期交付准确的产品&#xff1b; 2、MES决定谁通过什么方式&#xff08;流程&#xff09;生产&#xff0c;即通过优化资源配置&#xff0c;最有效运用资源&#xff1b; …

关于SVG格式图片实现室内地图

SVG格式图片 可缩放矢量图形(Scalable Vector Graphics,SVG)基于 XML 标记语言,用于描述二维的矢量图形。 作为一个基于文本的开放网络标准,SVG 能够优雅而简洁地渲染不同大小的图形,并和 CSS、DOM、JavaScript 和 SMIL 等其他网络标准无缝衔接。本质上,SVG 相对于图像…