网络工程18级《C++程序设计II》实践作业1
| A.类的应用1 | |||||
|
|||||
| Description | |||||
| 利用面向对象程序设计的方法,通过长方体的长、宽、高求长方体的体积与表面积。 | |||||
| Input | |||||
| 多组测试数据。第一行输入测试数据的组数t(0<t<10);以下t行每行输入长方体的长a、宽b、高c,(0<a,b,c<10,且为int型,a、b、c之间由空格分隔)。 | |||||
| Output | |||||
| 每组输出数据为2个,分别为长方体的体积和表面积,数据之间由空格分隔。 | |||||
| Sample Input | |||||
| 6 7 5 6 4 6 8 5 9 4 1 10 1 5 4 5 10 7 7 |
|||||
| Sample Output | |||||
| 214 210 208 192 202 180 42 10 130 100 378 490 |
code:
#include<iostream>
using namespace std;
class rectangle{
float length;
float width;
float height;
public:
rectangle(){};
rectangle(float l,float w,float h){
length = l;
width = w;
height = h;
}
~rectangle(){};
void setDimension(float l,float w,float h){
length = l;
width = w;
height = h;
}
float getLength(){return length;}
float getWidth(){return width;}
float getHeight(){return height;}
float getVolum(){return length*width*height;}
float getArea(){return *(length*width+length*height+width*height);;}
};
int main(){
int T;
cin>>T;
while(T--){
int a,b,c;
cin>>a>>b>>c;
rectangle myrectangle(a,b,c);
cout<<myrectangle.getArea()<<" "<<myrectangle.getVolum()<<endl;
} return ;
}
| B.类的应用2 | |||||
|
|||||
| Description | |||||
| 利用面向对象程序设计的方法,通过三角形的三边求三角形的周长。 | |||||
| Input | |||||
| 多组测试数据。第一行输入测试数据的组数t(0<t<10);以下t行每行输入三角形的三边a、b、c,(0<a,b,c<10,且为int型,a、b、c之间由空格分隔)。 | |||||
| Output | |||||
| 每组输出数据为1个。当输入的三边能够构成三角形时,输出周长;当输入的三边不能构成三角形时输出“error”。 | |||||
| Sample Input | |||||
| 2 1 10 1 5 4 5 |
|||||
| Sample Output | |||||
| error 14 |
#include<iostream>
using namespace std;
class triangle{
int a,b,c;
public:
void set(int a, int b, int c){
this->a = a;
this->b = b;
this->c = c;
}
bool istri(){
return a+b>c && a+c>b && b+c>a;
}
int getl(){
return a+b+c;
} };
int main(){
int a,b,c,N=;
triangle T;
cin>>N;
while(N--){
cin >> a >> b >> c;
T.set(a,b,c);
if(T.istri()){
cout <<T.getl()<< endl;
}else{
cout <<"error"<< endl;
}
}
}
| C.类的应用3 | |||||
|
|||||
| Description | |||||
| 利用面向对象程序设计的方法解决问题。行走江湖,靠的是脑力和武器。脑瓜灵光,武器平平免不了输给或愚钝但手握屠龙的无名之辈,脑力与武器按照四六比例决定一个人的江湖地位。适逢Apple新店开业,当街擂台比武海选晋级选手赢取Apple X。比武之前要登记选手:选手名(长度不大于10的字符串)、脑力值(不大于100的整数)、武器名(长度不大于10的字符串)、武器攻击力(不大于100的整数)。比武方式:两两一组,对打。 | |||||
| Input | |||||
| 多组测试数据。第一行输入测试数据的组数t(0<t<10);以下2t行每2行输入2名比武者的信息:选手名、脑力值、武器名、武器攻击力,数据之间由空格分隔。 | |||||
| Output | |||||
| 针对每2行选手的输入,输出比武结果。 当前者打败了后者,会输出:前者名 win 后者名 当前者输给了后者,会输出:前者名 lost 后者名 当前者与后者不分胜负,会输出:前者名 tie 后者名 |
|||||
| Sample Input | |||||
| 3 Sunwk 100 Jingb 100 Niumw 0 Bajs 100 Tangsz 100 Chanzhang 0 Honghe 80 Huolongqiang 60 ZHUba 60 JCdp 60 SHAwj 30 FTc 80 |
|||||
| Sample Output | |||||
| Sunwk win Niumw Tangsz lost Honghe ZHUba tie SHAwj |
|||||
| Hint | |||||
| Honghe 80 Huolongqiang 60:此人江湖能力为80*0.4+60*0.6=68 |
#include<iostream>
using namespace std;
class people{
string name;
int wind;
string gun;
int power;
public:
void set(string name,int wind, string gun, int power){
this->name = name;
this->wind = wind;
this->gun = gun;
this->power = power;
}
int getTolPower(){
return wind*0.4+power*0.6;
}
};
int main(){
int t;
cin>>t;
people p1,p2;
while(t--){
string name,name2,gun;
int wind,power;
cin>>name>>wind>>gun>>power;
p1.set(name,wind,gun,power);
cin>>name2>>wind>>gun>>power;
p2.set(name,wind,gun,power);
if(p1.getTolPower()==p2.getTolPower()){
cout<<name <<" tie "<< name2<<endl;
}else if(p1.getTolPower()>p2.getTolPower()){
cout<<name <<" win "<< name2<<endl;
}else{
cout<<name <<" lost "<< name2<<endl;
}
}
}
| D.类的应用4 | |||||
|
|||||
| Description | |||||
| 利用面向对象程序设计的方法解决问题。 神魔争斗一直延续着...,是集智慧兵器威力一体(智慧与兵器威力权重比为4:6)的神与仅凭兵器威力的魔的较量。进入新的时代,要举办一场神魔擂台预选赛。现场注册登记,要记录神的名号(长度不大于10的字符串)、神的智慧值(不大于100的整数)、神使用兵器的名字(长度不大于10的字符串)以及威力值(不大于100的整数)。魔要记录魔的名字(长度不大于10的字符串)、魔使用兵器的名字(长度不大于10的字符串)以及威力值(不大于100的整数)。 |
|||||
| Input | |||||
| 多组测试数据。第一行输入测试数据的组数t(0<t<10);以下2t行每2行的第一行输入神的名号、神的智慧值、神使用的兵器名字以及威力值,数据之间由空格分隔;第二行输入魔的名字、魔使用的兵器以及威力值,数据之间由空格分隔。 | |||||
| Output | |||||
| 针对每2行神魔比武的输入,输出比武结果。 当神打败了魔,会输出:神名 win 魔名 当神败给了魔,会输出:神名 lost 魔名 当神魔不分胜负,会输出:神名 tie 魔名 |
|||||
| Sample Input | |||||
| 3 Tangsz 100 Chanzhang 0 Honghe Huolongqiang 60 Sunwk 100 Jingb 100 Niumw Bajs 100 Zhubj 20 Jiucdp 80 Xiaoy Pud 20 |
|||||
| Sample Output | |||||
| Tangsz lost Honghe Sunwk tie Niumw Zhubj win Xiaoy |
|||||
| Hint | |||||
| Tangsz 100 Chanzhang 0:此神战斗力为100*0.4+0*0.6=40 Honghe Huolongqiang 60:此魔战斗力为60 |
#include<iostream>
#include<cstdlib>
using namespace std;
class people{
string name;
int wind;
string gun;
int power;
public:
void set(string name,int wind, string gun, int power){
this->name = name;
if(wind!=){
this->wind = wind;
}else{
this->wind = ;
}
this->gun = gun;
this->power = power;
}
int getTolPower(){
if(this->wind==){
return power;
}
return wind*0.4+power*0.6;
}
};
int main(){
int t;
cin>>t;
people p1,p2;
while(t--){
string name,name2,gun;
int wind,power;
cin>>name>>wind>>gun>>power;
p1.set(name,wind,gun,power);
cin>>name2>>gun>>power;
p2.set(name2,,gun,power);
if(p1.getTolPower()==p2.getTolPower()){
cout<<name <<" tie "<< name2<<endl;
}else if(p1.getTolPower()>p2.getTolPower()){
cout<<name <<" win "<< name2<<endl;
}else{
cout<<name <<" lost "<< name2<<endl;
}
}
}
| E.类的应用5 | |||||
|
|||||
| Description | |||||
|
利用面向对象设计方法解决问题。根据主函数main()的内容、输入与输出数据,完成类的设计。 主函数如下: cin>>x1>>y1>>x2>>y2; Line L1(0,0,1,1); return 0; |
|||||
| Input | |||||
| 第一行输入的是:A、B两点坐标在x和y方向上的偏移量,数据以空格分隔。 第二行输入的是:线段L两端点的坐标x1,y1,x2,y2,数据以空格分隔。 第三行输入的是:线段L1两端点在x和y方向上的偏移量,数据以空格分隔。 |
|||||
| Output | |||||
| 第一、二行输出的是点A与点B的坐标(按格式)。 第三、四行输出的是在平移后的点A与点B的坐标(按格式)。 第五行输出的是线段L两端点的坐标及长度(按格式)。 第六行输出的是线段L1在平移后两端点的坐标及长度(按格式)。 |
|||||
| Sample Input | |||||
| 5 5 0 0 10 10 1 1 5 5 |
|||||
| Sample Output | |||||
| PointA:[0,0] PointB:[10,10] PointA:[5,5] PointB:[15,15] (0,0)--(10,10):14.14 (1,1)--(6,6):7.07 |
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
class Point{
int X,Y;
public:
Point(){
X=;
Y=;
}
Point(int x,int y):X(x),Y(y){}
int getX(){
return X;
}
int getY(){
return Y;
}
void setP(int x,int y){
this->X+=x;
this->Y+=y;
}
};
class Line{
int X1,Y1,X2,Y2;
public:
Line(){
X2=;
Y2=;
}
Line(int x1,int y1,int x2,int y2):X1(x1),Y1(y1),X2(x2),Y2(y2){}
void setL(int x1,int y1,int x2,int y2){
this->X1=x1;
this->Y1=y1;
this->X2+=x2;
this->Y2+=y2;
}
int getP(){
cout<<"("<<X1<<","<<Y1<<")"<<"--"<<"("<<X2<<","<<Y2<<")"<<endl;
}
float dis(){
return sqrt((X2-X1)*(X2-X1)+(Y2-Y1)*(Y2-Y1));
}
};
int main()
{
int n,x1,x2,y1,y2;
Point A,B(,);
cout<<"PointA:["<<A.getX()<<","<<A.getY()<<"]\n";
cout<<"PointB:["<<B.getX()<<","<<B.getY()<<"]\n";
cin>>x1>>y1;
A.setP(x1,y1); B.setP(x1,y1);
cout<<"PointA:["<<A.getX()<<","<<A.getY()<<"]\n";
cout<<"PointB:["<<B.getX()<<","<<B.getY()<<"]\n"; cin>>x1>>y1>>x2>>y2;
Line L(x1,y1,x2,y2);
L.getP();printf("%.2lf\n",L.dis()); Line L1(,,,);
cin>>x1>>y1>>x2>>y2;
L1.setL(x1,y1,x2,y2);
L1.getP();printf("%.2lf\n",L1.dis()); return ;
}
网络工程18级《C++程序设计II》实践作业1的更多相关文章
- 复旦大学2018--2019学年第二学期(18级)高等代数II期末考试第六大题解答
六.(本题10分) 设 $A$ 为 $n$ 阶实对称阵, 证明: $A$ 有 $n$ 个不同的特征值当且仅当对 $A$ 的任一特征值 $\lambda_0$ 及对应的特征向量 $\alpha$, 矩 ...
- 复旦高等代数II(18级)每周一题
本学期将继续进行高等代数每周一题的活动.计划从第一教学周开始,到第十五教学周结束,每周的周末公布一道思考题(预计15道),供大家思考和解答.每周一题将通过“高等代数官方博客”(以博文的形式)和“高等代 ...
- 2019年春季学期《C语言程序设计II》助教注意事项
本学期<C语言程序设计II>课程安排 理论课时24(1-12周),实验课时8(13周),课程设计课时16(14-15周) 理论课教学内容 附:教学进度表 本学期实验课和课程设计参考教材 & ...
- 【云+社区极客说】新一代大数据技术:构建PB级云端数仓实践
本文来自腾讯云技术沙龙,本次沙龙主题为构建PB级云端数仓实践 在现代社会中,随着4G和光纤网络的普及.智能终端更清晰的摄像头和更灵敏的传感器.物联网设备入网等等而产生的数据,导致了PB级储存的需求加大 ...
- 20145236《网络对抗》Exp2 后门原理与实践
20145236<网络对抗>Exp2 后门原理与实践 目录: 一.基础问题回答 二.常用后门工具实践 2.1 Windows获得Linux Shell 2.2 Linux获得Windows ...
- 20155232《网络对抗》Exp2 后门原理与实践
20155232<网络对抗>Exp2 后门原理与实践 问题回答 1.例举你能想到的一个后门进入到你系统中的可能方式? 通过网页上弹出来的软件自动安装 2.例举你知道的后门如何启动起来(wi ...
- 20155317王新玮《网络对抗》Exp2 后门原理与实践
20155317王新玮<网络对抗>Exp2 后门原理与实践 一.实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划 ...
- 20145317彭垚《网络对抗》Exp2 后门原理与实践
20145317彭垚<网络对抗>Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 在网上下载软件的时候,后门很有可能被捆绑在下载的软件当中: 例举你 ...
- 软件架构自学笔记-- 转载“虎牙在全球 DNS 秒级生效上的实践”
虎牙在全球 DNS 秒级生效上的实践 这次分享的是全球 DNS 秒级生效在虎牙的实践,以及由此产生的一些思考,整体上,分为以下 5 各部分: 背景介绍: 方案设计和对比: 高可用: 具体实践和落地: ...
随机推荐
- 问题:Custom tool error: Failed to generate code for the service reference 'AppVot;结果:添加Service Reference, 无法为服务生成代码错误的解决办法
添加Service Reference, 无法为服务生成代码错误的解决办法 我的解决方案是Silverlight+WCF的应用,Done Cretiria定义了需要在做完Service端的代码后首先运 ...
- 【Android异常】The specified child already has a parent. You must call removeView() on the child's parent first.
错误信息: Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must ...
- 理解configure,make,make install(笔记整理)
在Linux系统里有时候需要自己编译安装一些提供了源文件的软件,比如Nginx.一般编译的步骤是:configure -> make -> make install. 1. configu ...
- MySQL数据库引擎简介
简单说,当你访问数据库时,不管是手工访问,还是程序访问,都不是直接读写数据库文件,而是通过数据库引擎去访问数据库文件.以关系型数据库为例,你发SQL语句给数据库引擎,数据库引擎解释SQL语句,提取出你 ...
- MyBatis总结七:动态sql和sql片段
开发中,sql拼接很常见,所以说一下动态sql: 1 if 2 chose,when,otherwise 3 where,set 4 foreach 用法解析(现有一张users表 内有id user ...
- ActionbarActivity和普通的Activity的区别
ActionbarActivity用于支持API11以下的程序支持ActionBar的功能,但是需要加入支持库 不这样做的话只有API11以上的才能支持ActionBar
- 2018网络预选赛 徐州H 线段树+树状数组
设读入的数组是a,树状数组用来维护a数组区间和sum,线段树用来维护一个另一个数组ssum的区间和,区间每个点a[i]*(n-i+1),那么l-r的答案是l-r的ssum-(n-r)*(sum[r]- ...
- phper 需要学习js
- return()函数
在函数中,执行完return()函数后,下面的语句就不会再执行了.例子: <?php function fn() { echo "you are awsome"; retur ...
- EZOJ #78
传送门 分析 AC自动机板子题qwq 不过似乎可以哈希(因为所有模式串的长度相同,所以哈希乱搞就可以) 代码 #include<iostream> #include<cstdio&g ...