C++语言题库(三)—— PAT

目录

1. 打印点、圆、圆柱信息

2. 国际贸易统计

3. 设计一个类CRectangle

4. 定义一个时间类

5. 定义一个Date类

6. 定义一个Time类

7. 设计一个People类

8. 平均成绩

9. 计算若干个学生的总成绩及平均成绩

11. 使用面向对象的方法求长方形的周长


1. 打印点、圆、圆柱信息

定义平面二维点类CPoint,有数据成员x坐标,y坐标,函数成员(构造函数、虚函数求面积GetArea, 虚函数求体积函数GetVolume、输出点信息函数print。
由CPoint类派生出圆类Cirle类(新增数据成员半径radius),函数成员(构造函数、求面积GetArea,虚函数求体积函数GetVolume、输出圆面积信息函数print。
再由Ccirle类派生出圆柱体Ccylinder类(新增数据成员高度height),函数成员(构造函数、求表面积GetArea ,求体积函数GetVolume、输出圆柱体体积信息函数print。在主函数测试这个这三个类。
打印数据保留小数点后2位。

答案:

#include<iostream>
#define PI 3.14
using namespace std;

class CPoint{
    private:
        double x,y;
    public:
        void print();
        CPoint(double,double);
};
CPoint::CPoint(double x,double y){
    this->x=x;
    this->y=y;
}
void CPoint::print(){
    cout<<"CPoint:"<<x<<","<<y<<endl;
}
class Circle:public CPoint{
    private:
        double r;
    public:
        Circle(double,double,double);
        double GetR();
        double GetArea();
        void print() ;
};
Circle::Circle(double x,double y,double r):CPoint(x,y){
    this->r=r;
}
double Circle::GetArea(){
    return PI*r*r;
}
double Circle::GetR(){
    return r;
} 
void Circle::print(){
    printf("CirleArea:%.2lf\n",GetArea());
}
class Ccylinder:public Circle{
    private:
        double h;
    public:
        Ccylinder(double,double,double,double);
        double GetArea();
        double GetVolume();
        void print();
};
Ccylinder::Ccylinder(double x,double y,double r,double h):Circle(x,y,r){
    this->h=h;
}
double Ccylinder::GetArea(){
    return PI*GetR()*GetR();
}
double Ccylinder::GetVolume(){
    return GetArea()*h;
}
void Ccylinder::print(){
    printf("CcylinderVolume:%.2lf\n",GetVolume());
}
int main(){
    double x,y,r,h;
    cin>>x>>y>>r>>h;
    CPoint c(x,y);
    Circle c1(x,y,r);
    Ccylinder c2(x,y,r,h);
    c.print();
    c1.print();
    c2.print();
    return 0;
}

2. 国际贸易统计

给出N个国家之间进行国际贸易的记录,请你统计这些国家进行国际贸易的收益。

答案:

#include<iostream>
using namespace std;
class country
{
    public:
    int num;
    int getings;
    int counts;
};
int main()
{
    int n;
    cin>>n;
    country cty[n+1];
    for(int i=1;i<n+1;i++)
    {
        cty[i].counts=0;
        cty[i].getings=0;
        cty[i].num=i;
    }
    for(int i=1;i<n+1;i++)
    {
        int *in=new int;
        cin>>*in;
        cty[i].counts+=*in;
        for(int j=0;j<*in;j++)
        {
            int *id=new int;
            cin>>*id;
            cty[*id].counts++;
            int *inin=new int;
            cin>>*inin;
            cty[i].getings+=*inin;
            cty[*id].getings-=*inin;
            delete id;
            delete inin;
        }
        delete in;
    }
    for(int i=1;i<n+1;i++)
    {
        for(int j=1;j<n;j++)
        {
            if(cty[j].getings==cty[j+1].getings&&cty[j].counts==cty[j+1].counts&&cty[j].num>cty[j+1].num)
            {
                country *p=new country;
                *p=cty[j];
                cty[j]=cty[j+1];
                cty[j+1]=*p;
                delete p;
            }
            else if(cty[j].getings==cty[j+1].getings&&cty[j].counts<cty[j+1].counts)
            {
                country *p=new country;
                *p=cty[j];
                cty[j]=cty[j+1];
                cty[j+1]=*p;
                delete p;
            }   
            else if(cty[j].getings<cty[j+1].getings)
            {
                country *p=new country;
                *p=cty[j];
                cty[j]=cty[j+1];
                cty[j+1]=*p;
                delete p;
            }    
        }
    }
    for(int i=1;i<n+1;i++)
    {
        cout<<cty[i].num<<" "<<cty[i].getings<<endl;
    }
    return 0;
}

3. 设计一个类CRectangle

设计一个类CRectangle,要求如下所述:
(1) 该类中的私有成员变量存放CRectangle的长和宽,并且设置它们的默认值为1.
(2) 通过成员函数设置其长和宽,并确保长和宽都在(0,50)范围之内。
(3) 求周长Perimeter

答案:

#include<iostream>
using namespace std;
 
class CRectangle{
public:
    void setlw();
    float getper();
private:
    float l, w;
};

void CRectangle::setlw(){
    cin >> l;
    if (l > 50)l = 1;
    cin >> w;
    if (w > 50)w = 1;
}

float CRectangle::getper(){
    return 2*(l+w);
}
 
int main(){
    CRectangle a;
    a.setlw();
    cout << a.getper();
}

4. 定义一个时间类

定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编写应用程序,定义时间对象,设置时间和输出该对象提供的时间。

答案:

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
 
class Time{
public:
    void timing();
    void output();
private:
    int h, m, s;
};

void Time::timing(){
    cin>>h>>m>>s;
    if (m > 60){
        h+=1;
        m=m-60;}
    if (s > 60){
        m+=1;
        s=s-60;}
}

void Time::output()
{
cout<<setw(2)<<setfill('0')<<h<<"-"<<setw(2)<<setfill('0')<<m<<"-"<<setw(2)<<setfill('0')<<s<<endl; 
}

int main(){
    Time a;
    a.timing();
    a.output();
    return 0;
}

5. 定义一个Date类

定义一个满足如下要求的Date类
用下列的数据输出数据
年-月-日

答案:

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
 
class Date{
public:
    void timing();
    void output();
private:
    int n, y, r;
};

void Date::timing(){
    cin>>n>>y>>r;
}

void Date::output()
{
cout<<setw(2)<<setfill('0')<<n<<"-"<<setw(2)<<setfill('0')<<y<<"-"<<setw(2)<<setfill('0')<<r<<endl; 
}

int main(){
    Date a;
    a.timing();
    a.output();
    return 0;
}

6. 定义一个Time类

定义一个时间类,能够提供和设置由时、分、秒组成的时间,并按照如下的格式输出时间:
08-09-24
12-23-59

答案:

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
 
class TIME{
public:
    void timing();
    void output();
private:
    int n, y, r;
};

void TIME::timing(){
    cin>>n>>y>>r;
}

void TIME::output()
{
cout<<setw(2)<<setfill('0')<<n<<"-"<<setw(2)<<setfill('0')<<y<<"-"<<setw(2)<<setfill('0')<<r<<endl; 
}

int main(){
    TIME a;
    a.timing();
    a.output();
    return 0;
}

7. 设计一个People类

设计一个People 类,该类的数据成员有姓名、年龄、身高、体重和人数,其中人数为静态数据成员,成员函数有构造函数、显示和显示人数。其中构造函数由参数姓名、年龄、身高和体重来构造对象;显示函数用于显示人的姓名、年龄、身高和体重;显示人数函数为静态成员函数,用于显示总的人数。

答案:

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
class people{
private:
    string name;
    int age;
    int height;
    int weight;
    static int number;
public:
    people(string name, int age, int height, int weight){
        this->name = name;
        this->age = age;
        this->height = height;
        this->weight = weight;
    }
    void num_add()const{
        number++;
    }
    static void get_num(){
        cout << number << endl;
    }
};
int people::number = 0;
int main()
{
    string str;
    while (1){
        cin >> str;
        if (str == "exit")
            break;
        int age, height, weight;
        cin >> age >> height >> weight;
        people peo(str, age, height, weight);
        peo.num_add();
    }
    people::get_num();
    return 0;
}

8. 平均成绩

输入n个学生的姓名及其3门功课成绩,要求按输入的逆序逐行输出每个学生的姓名、3门课成绩和平均成绩。若有学生平均成绩低于60分,则不输出该学生信息。

答案:

#include<iostream>
#include<cstdio>
using namespace std;
struct student
{
    char name[20];
    int a;
    int b;
    int c;
    float avg;
};
int main()
{
    int n;
    while(1){
        cin>>n;
        student stu[n];
        for(int i = 0; i < n; i++){
        scanf("%s %d %d %d",stu[i].name, &stu[i].a,&stu[i].b,&stu[i].c);
            stu[i].avg = (stu[i].a+stu[i].b+stu[i].c)/3.0;
        }
        for(int i=n-1; i >= 0; i--){
            if(stu[i].avg >= 60){
                printf("%s %d %d %d %.2f\n",stu[i].name, stu[i].a,stu[i].b,stu[i].c,stu[i].avg);
            }
        }
        break;
    }
    return 0;
}

9. 计算若干个学生的总成绩及平均成绩

定义一个类Student,记录学生C++课程的成绩。要求使用静态数据成员或静态成员函数计算若干个学生C++课程的总成绩和平均成绩。

答案:

#include <iostream>
using namespace std;
class Student{
    protected:
    int studentscore;
    static int sum;
    static double avg;
    public:
    Student(){};
    Student(int a):studentscore(a){
        sum+=a;
        avg=sum/5;
    };
    void disp(){
        cout<<sum<<endl;
        cout<<avg;
    }
};
int Student::sum=0;
double Student::avg=0;
int main(){
    int score,count;cin>>count;
    Student *p;
    for(int i=0;i<count;i++){
        cin>>score;
        p=new Student(score);
    }
    p->disp();
    return 0;
}

11. 使用面向对象的方法求长方形的周长

本题目要求读入2个实数A和B,作为长方形的长和宽,计算并输出长方形的周长。

面向对象的方法,先要定义你要处理的数据类型——类,类就是现实中一个事物的抽象,在本题中就是长方形。

接着抽象长方形的属性和方法。

属性就是长方形用哪些数据来描述,要结合具体的应用场景,在本题中长方形有长和宽两个属性。属性就是类中的成员变量。

方法就是长方形具有哪些行为或者说可以对长方形进行哪些操作,要结合具体的应用场景,在本题中就是求长方形的周长。方法就是类中的成员函数。

类体现了面向对象的抽象和封装,将数据(成员变量)和对数据进行操作的函数(成员函数)封装在一起。

成员变量和成员函数统称为类的成员,成员需要指定访问权限,如果未指定访问权限,默认为私有权限。一般成员变量设为私有,成员函数设为共有。

类定义好之后,在主函数中就可以使用类定义一个具体的长方形,称为对象,定义对象的时候会自动调用构造函数完成初始化,即给该对象的长和宽赋值,接着就可以调用该对象的求周长函数求其周长。

答案:

#include<iostream>
#include<cstdio>
using namespace std;
class REC{
    double a;
    double b;
public:
    REC(double a1, double b1){
    a=a1;
    b=b1;
    }
    void circum(){
        double arr=2*(a+b);
        printf("%.2lf\n",arr);
    }
};

int main(){
    double a,b;
    cin>>a>>b;
    REC stu(a, b);
    stu.circum ();
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

回溯算法精讲

原理 回溯&#xff0c;就和深度优先遍历&#xff08;DFS&#xff09;类似&#xff0c;属于先一层到底直至到终点&#xff0c;如果这条路径不对&#xff0c;则回退一下&#xff0c;再继续往下搜索。 抽象地说&#xff0c;解决一个回溯问题&#xff0c;实际上就是遍历一棵决策树…

【神经网络】输出层的设计

文章目录 前言一、恒等函数和softmax函数恒等函数softmax 函数python实现softmax函数 二、实现softmax函数时的注意事项函数优化python实现 三、softmax函数的特征计算神经网络的输出输出层的softmax函数可以省略“学习”和“推理”阶段 四、输出层的神经元数量 前言 神经网络…

Disk Map for Mac,让您的Mac更“轻”松

还在为Mac磁盘空间不足而烦恼吗&#xff1f;Disk Map for Mac来帮您轻松解决&#xff01;通过独特的TreeMap视觉显示技术&#xff0c;让您一眼就能看出哪些文件和文件夹占用了大量空间。只需简单几步操作&#xff0c;即可快速释放磁盘空间&#xff0c;让您的Mac更“轻”松。快来…

el-checkbox选中后的值为id,组件显示为label中文

直接上代码 方法一 <el-checkbox v-for"item in list" :key"item.id" :label"item.id">{{中文}} </el-checkbox> 方法二 <el-checkbox-group class"flex_check" v-model"rkStatusList" v-for"item…

prometheus、mysqld_exporter、node_export、Grafana安装配置

工具简介 Prometheus&#xff08;普罗米修斯&#xff09;&#xff1a;是一个开源的服务监控系统和时间序列数据库 mysqld_exporter&#xff1a; 用于监控 mysql 服务器的开源工具&#xff0c;它是由 Prometheus 社区维护的一个官方 Exporter。该工具通过连接到mysql 服务器并执…

EasyNmon服务器性能监控工具环境搭建

一、安装jdk环境 1、看我这篇博客 https://blog.csdn.net/weixin_54542209/article/details/138704468 二、下载最新easyNmon包 1、下载地址 https://github.com/mzky/easyNmon/releases wget https://github.com/mzky/easyNmon/releases/download/v1.9/easyNmon_AMD64.tar.…

openssl 生成证书步骤

本地测试RSA非对称加密功能时&#xff0c;需要用到签名证书。本文记录作者使用openssl本地生成证书的步骤&#xff0c;并没有深入研究openssl&#xff0c;难免会有错误&#xff0c;欢迎指出&#xff01;&#xff01;&#xff01; 生成证书标准流程&#xff1a; 1、生成私钥&am…

单位学校FM调频电台直放站系统

随着教育技术的不断发展&#xff0c;校园广播系统的建设已成为现代学校必不可少的一部分。作为传统有线广播的有效补充&#xff0c;基于无线电信号传输的 FM 调频电台在学校的使用日益广泛&#xff0c;尤其是在紧急通知、日常信息传播及教学辅助等方面发挥着重要作用。为了增强…

msvcp140dll怎么修复,分享5种有效的解决方法

MSVCP140.dll文件丢失这一现象究竟是何缘由&#xff0c;又会引发哪些令人头疼的问题呢&#xff1f;在探索这个问题的答案之前&#xff0c;我们先来深入了解这个神秘的DLL文件。MSVCP140.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;它扮演着至关重要的…

IP地址定位技术在网络安全中的作用

在当今数字化时代&#xff0c;网络安全已经成为企业、政府和个人面临的重要挑战之一。随着互联网的普及和网络攻击的增加&#xff0c;保护个人隐私和防止网络犯罪变得尤为重要。在这一背景下&#xff0c;IP地址定位技术作为网络安全的重要组成部分之一&#xff0c;发挥着关键作…

【Shell】shell编程之循环语句

目录 1.for循环 例题 2.while循环 例题 3.until循环 1.for循环 读取不同的变量值&#xff0c;用来逐个执行同一组命令 for 变量 in 取值列表 do 命令序列 done [rootlocalhost ~]# for i in 1 2 3 > do > echo "第 $i 次跳舞" > done 第 1 次跳舞 第 …

Redis经典问题:数据不一致

大家好,我是小米,今天我想和大家聊一聊Redis的一个经典问题——数据不一致。在使用Redis的过程中,你是否曾遇到过这样的问题?缓存和数据库中的数据不一致,可能导致应用程序的功能异常。下面,我将详细介绍数据不一致的原因,以及一些有效的解决方案。 什么是数据不一致 …

WordPress插件Plus WebP,可将jpg、png、bmp、gif图片转为WebP

现在很多浏览器和CDN都支持WebP格式的图片了&#xff0c;不过我们以前的WordPress网站使用的图片都是jpg、png、bmp、gif&#xff0c;那么应该如何将它们转换为WebP格式的图片呢&#xff1f;推荐安装这款Plus WebP插件&#xff0c;可以将上传到媒体库的图片转为WebP格式图片&am…

picoCTF-Web Exploitation-Trickster

Description I found a web app that can help process images: PNG images only! 这应该是个上传漏洞了&#xff0c;十几年没用过了&#xff0c;不知道思路是不是一样的&#xff0c;以前的思路是通过上传漏洞想办法上传一个木马&#xff0c;拿到webshell&#xff0c;今天试试看…

多线程-线程安全

目录 线程安全问题 加锁(synchronized) synchronized 使用方法 synchronized的其他使用方法 synchronized 重要特性(可重入的) 死锁的问题 对 2> 提出问题 对 3> 提出问题 解决死锁 对 2> 进行解答 对4> 进行解答 volatile 关键字 wait 和 notify (重要…

如何在沉浸式翻译浏览器插件中使用免费的DEEPLX和配置API接口

如何在浏览器插件沉浸式翻译中使用DEEPLX 如何配置免费的DEEPLX翻译功能如何打开PDF翻译功能如何解除翻译额度限制 如何配置免费的DEEPLX翻译功能 假设你已经在浏览器上安装了沉浸式翻译插件&#xff0c;但是不知道如何使用免费的DEEPLX功能 这里以EDGE浏览器为例&#xff0c;…

JVM从1%到99%【精选】-类加载子系统

目录 1.类的生命周期 1.加载 2.连接 3.初始化 2.类的加载器 1.类加载器的分类 2.双亲委派机制 3.面试题&#xff1a;类的双亲委派机制是什么&#xff1f; 4.打破双亲委派机制 1.类的生命周期 类加载过程&#xff1a;加载、链接&#xff08;验证、准备、解析&a…

# 从浅入深 学习 SpringCloud 微服务架构(十七)--Spring Cloud config(1)

从浅入深 学习 SpringCloud 微服务架构&#xff08;十七&#xff09;–Spring Cloud config&#xff08;1&#xff09; 一、配置中心的 概述 1、配置中心概述 对于传统的单体应用而言&#xff0c;常使用配置文件来管理所有配置&#xff0c;比如 SpringBoot 的 application.y…

解决 Content type ‘application/json;charset=UTF-8‘ not supported

文章目录 问题描述原因分析解决方案参考资料 问题描述 我项目前端采用vue-elementUi-admin框架进行开发&#xff0c;后端使用SpringBoot&#xff0c;但在前后端登录接口交互时&#xff0c;前端报了如下错误 完整报错信息如下 前端登录接口JS代码如下 export function login(…

商业数据分析--时间序列图及趋势分析

绘制时间序列图,并指出存在什么样的状态如上两图: 可见状态:从时间序列图可以看出,这些数据存在明显的季节性波动,每年的第4季度值都最高,而第2季度值最低。同时也存在一些下降的趋势。 通过引进虚拟变量,建立多元线性回归模型。答: 通过引入虚拟变量,我们可以建立如下的…