4.24
Posted liubingyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.24相关的知识,希望对你有一定的参考价值。
这里需要设计一个捐款人类Donator及一个相关函数getMaxName( ),Donator类中包含捐款人的姓名及其捐款额,其部分代码如下:
class Donator
private:
string name; //捐款人姓名
float money; //捐款金额,单位:元
public:
void setName(string _name);
void setMoney(float _money);
string getName()return name;
float getMoney()return money;
请根据题意将代码补充完整,以输出一批捐款人来到前后的捐款总金额,以及本批次捐款人中捐款最高者的姓名,题目保证捐款人数不少于1人。
#include <iostream> using namespace std; class Donator private: string name; float money; //单位:元 public: void setName(string _name); void setMoney(float _money); string getName()return name; float getMoney()return money; static float totalMoney; static void printTotal() cout<<"total"<<":"<<Donator::totalMoney<<endl; ; float Donator::totalMoney=0.0; void Donator::setName(string _name) name=_name; void Donator::setMoney(float _money) totalMoney+=_money; money= _money; string getMaxName(Donator d[],int n) float maxmoney=0; int a=n; string maxname; for(int i=0;i<a;i++) if (d[i].getMoney()>maxmoney) maxmoney=d[i].getMoney(); maxname=d[i].getName(); return maxname; //读取n个捐款人的姓名和捐款额 void read(Donator dt[],int n) string name; float money; for(int i=0;i<n;i++) cin>>name>>money; dt[i].setName(name); dt[i].setMoney(money); int main() int n; cin>>n; ////输入本批次将参与的捐款人数 cin>>Donator::totalMoney; //输入目前已有的捐款总额 Donator::printTotal(); Donator d[n]; read(d,n); Donator::printTotal(); cout<<getMaxName(d,n)<<endl;//输出本批次中捐款最高者姓名 return 0;
ICMP:Internet控制报文协议
ICMP:Internet控制报文协议。
是IP层的组成部分,传递差错报文或其他信息。
ICMP报文被封装在IP数据报内部:
详细格式例如以下所看到的:
个字段含义例如以下:
- 8位类型。表示该ICMP报文的含义。如目的不可达、超时、请求回显等。
- 8为代码。
进一步描写叙述该ICMP报文。ICMP报文的类型由类型字段和代码字段共同决定。
- 16位检验和。和IP首部检验和的算法同样。
我们常常使用的ping程序就是基于ICMP报文进行的传输。pingclient发送一个ICMP回显请求报文,server收到此报文后返回一个ICMP回显应答报文作为应答。client和server都是在内核层发送和接受该报文的,而不是通过用户进程。
回显请求和回显应答报文格式例如以下:
类型0 + 代码0 = 回显应答
类型8 + 代码0 = 回显请求
ICMP回显请求和回显应答报文多出了几个特有的字段:
- 标识符。表示发送进程的ID号。
- 序号。
从0開始,每发送一个新的回显请求就加1.
- 选项数据。实际载荷,比如保存发送时间。接收端用当前时间减去发送时间就能计算出往返时间。
以下是抓包的结果:
client一共向server发送了4个回显请求。TTL字段是在IP首部中的。因为ICMP属于IP层协议,而IP层又是不可靠、无连接、尽力而为式的传输,所以ping偶尔会出现传输出错的情况。
參考:
《TCP/IP具体解释》第6章、第7章。
以上是关于4.24的主要内容,如果未能解决你的问题,请参考以下文章