当前位置: 首页 > news >正文

PTA复习

函数

6-1 学生类的构造与析构


#include<bits/stdc++.h>
using namespace std;
class Student
{int num;string name;char sex;
public:Student(int n,string nam,char s):num(n),name(nam),sex(s){cout<<"Constructor called."<<endl;}void display(){cout<<"num:"<<num<<endl;cout<<"name:"<<name<<endl;cout<<"sex:"<<sex<<endl;cout<<endl;}~Student(){cout<<"Destructor called."<<endl;}
};

6-2 体育俱乐部I(构造函数)

Club::Club(string n1, int y, string n2, int wr):name(n1),year(y),c(n2,wr)
{}
void Coach::show(){cout<<name<<" "<<winRate<<"%"<<endl;
}
void Club::show(){cout<<name<<" "<<year<<endl;c.show();
}

6-3 学生成绩的快速录入(构造函数)

class Student
{int no,score;
public:static int count;Student(int n,int s):no(n),score(s){count++;}Student(const Student& s):no(s.no+1),score(s.score){count++;}void display(){cout<<no<<" ";if(score==1)cout<<"Pass"<<endl;else cout<<"Fail"<<endl;}
};
int Student::count=0;

6-4 客户机类

#include<iostream>
using namespace std;
class Client
{static char ServerName;static int ClientNum;
public:Client(){ClientNum++;};static void changeServerName(char a);//注意没有大括号!!!,只是声明static void show();
};
char Client::ServerName='A';
int Client::ClientNum=0;
void Client::changeServerName(char a){ServerName=a;
}
void Client::show(){cout<<"server name:"<<ServerName<<endl;cout<<"num of clients:"<<ClientNum<<endl;
}
//注意都是静态成员函数,在类外定义;

6-5 学生成绩的输入和输出(运算符重载)

class Student
{string name;int score;static int num;//因为需要输出学生序号,可以在输出时++
public:friend istream& operator>>(istream& is,Student& s);friend ostream& operator<<(ostream& os,Student& s);
};
int Student::num=1;
istream& operator>>(istream& is,Student& s){is>>s.name>>s.score;return is;
}
ostream& operator<<(ostream& os,Student& s){os<<Student::num++<<". "<<s.name<<" ";//num注意前面加上Student::if(s.score>=60)cout<<"PASS";else cout<<"FAIL";
}

6-6 时钟模拟

#include<bits/stdc++.h>
using namespace std;
class MyTime
{int h,m,s;
public:MyTime(int h=0,int m=0,int s=0):h(h),m(m),s(s){}friend istream& operator>>(istream& is,MyTime& s);friend ostream& operator<<(ostream& os,MyTime& s);MyTime operator++();
};
istream& operator>>(istream& is,MyTime& s)
{is>>s.h>>s.m>>s.s;return is;
}
ostream& operator<<(ostream& os,MyTime& s)
{os<<s.h<<":"<<s.m<<":"<<s.s;return os;
}
MyTime MyTime::operator++()
{s++;if(s==60){m++,s=0;}if(m==60){h++,m=0;}h%=24;return *this;
}

6-7 使用成员函数重载复数类的运算符+

Complex& Complex::operator+(Complex& com)
{com.realPart+=this->realPart;//com.realPart+=realPartcom.imgPart+=this->imgPart;//com.imgPart+=imgPart;return com;
}
// 因为有引用所以错误(指针错误,即段错误)
// Complex& Complex::operator+(Complex& com)
// {
//     Complex c3;
//     c3.realPart=com.realPart+this->realPart;
//     c3.imgPart=com.imgPart+this->imgPart;
//     return c3;
// }

6-8 多重继承派生类构造函数

class Graduate:public Teacher,public Student
{
public:Graduate(string nam,int a,char s,string t,float sco,float w):Student(nam,s,sco),Teacher(nam,a,t),wages(w){}void show(){cout<<"name:"<<name<<endl;cout<<"age:"<<age<<endl;cout<<"sex:"<<sex<<endl;cout<<"score:"<<score<<endl;cout<<"title:"<<title<<endl;cout<<"wages:"<<wages<<endl;}
private:float wages;
};
//注意不要用在类对象里声明,否则是错误的
//发现上面两个类定义的display()没有用处

6-9 抽象类Shape

class Rectangle:public Shape//对于这道题,不用继承也对,因为源代码中声明基类指针,但是没用到,所以可以不用虚函数
{double w,h;
public:Rectangle(double w,double h):w(w),h(h){}double getArea(){return w*h;}double getPerim(){return 2*(w+h);}
};
class Circle:public Shape
{double r;
public:Circle(double r):r(r){}double getArea(){return 3.14*r*r;}double getPerim(){return 2*3.14*r;}
};

6-10 有序数组(类模板)

template <class T>
class MyArray
{
private:T *data;//数组类型int size;
public:MyArray(int n);~MyArray();bool check();void display();void sort();
};template<class T>
MyArray<T>::MyArray(int n)
{size=n;data=new T[n];for(int i=0; i<n; i++)cin>>data[i];
}template<class T>
void MyArray<T>::sort()
{for(int i=1;i<size;i++){for(int j=0;j<size-i;j++){if(data[j]>data[j+1]){T temp=data[j];data[j]=data[j+1];data[j+1]=temp;}}}
}template<class T>
void MyArray<T>::display()
{for(int i=0; i<size; i++){if(i!=0)cout<<" "<<data[i];//注意格式错误,一行后面没有空格else cout<<data[i];}cout<<endl;
}

编程

7-1 字符串替换

#include<bits/stdc++.h>
using namespace std;
void slove(){string a;getline(cin,a);while(1){//a表示总的,b表示每一行的字符串a+='\n';string b;getline(cin,b);if(b=="end")break;a+=b;}string c1,c2;cin>>c1>>c2;int temp=a.find(c1);//找到的是下标while(temp!=-1){a.replace(temp,c1.size(),c2);//用c2替换指定字符串从起始位置temp开始长度为ca.size()的字符 temp=a.find(c1,temp+1);}cout<<a;
}
int main(){slove();
}

7-2 类的定义和使用

#include<bits/stdc++.h>
using namespace std;
int main()
{int a,b,c,d;cin>>a>>b>>c>>d;cout<<a+c<<" "<<b+d;
}
// class Point
// {
//     int x,y;
//     int x1,y1;
// public:
//     Point(int a,int b)
//     {
//         x=a;
//         y=b;
//     }
//     ~Point(){}
//     void work(Point p2)
//     {
//         x1=x+p2.x;
//         y1=y+p2.y;
//     }
//     int getx1()
//     {
//         return x1;
//     }
//     int gety1()
//     {
//         return y1;
//     }
// };
// int main()
// {
//     int a,b,c,d;
//     cin>>a>>b>>c>>d;
//     Point p1(a,b),p2(c,d);
//     p1.work(p2);
//     cout<<p1.getx1()<<" "<<p1.gety1();
// }

7-5 2017final函数模板

#include<bits/stdc++.h>
using namespace std;
class Complex
{double a,b,c;
public:Complex(double a,double b,double c):a(a),b(b),c(c){}friend double operator - (Complex a, Complex b);
};double operator - (Complex a,Complex b){return sqrt(pow(a.a-b.a,2)+pow(a.b-b.b,2)+pow(a.c-b.c,2));
}template <class T>
double dist(T a,T b){return abs(a-b);
}int main(){int n;while(cin>>n){//如果用switch语句,一个变量名在多个case中不能使用。不能同用变量名!if(n==1){int a,b;cin>>a>>b;cout<<dist(a,b)<<endl;}else if (n==2){double a,b;cin>>a>>b;cout<<dist(a,b)<<endl;}else if (n==3){double a1,a2,a3,b3,b1,b2;cin>>a1>>a2>>a3>>b1>>b2>>b3;Complex a(a1,a2,a3),b(b1,b2,b3);cout<<dist(a,b)<<endl;}}return 0;
}
//下面是switch语句
// #include<bits/stdc++.h>
// using namespace std;
// class Complex
// {
//     double a,b,c;
// public:
//     Complex(double a,double b,double c):a(a),b(b),c(c){}
//     friend double operator - (Complex a, Complex b);
// };
// double operator - (Complex a,Complex b){
//     return sqrt(pow(a.a-b.a,2)+pow(a.b-b.b,2)+pow(a.c-b.c,2));
// }
// template <class T>
// double dist(T a,T b){
//     return abs(a-b);
// }
// int main(){
//     int n;
//     while(cin>>n){
//         switch(n){
//             case 1:
//                 int a,b;
//                 cin>>a>>b;
//                 cout<<dist(a,b)<<endl;
//                 break;
//             case 2:
//                 double c,d;
//                 cin>>c>>d;
//                 cout<<dist(c,d)<<endl;
//                 break;
//             case 3:
//                 double a1,a2,a3,b3,b1,b2;
//                 cin>>a1>>a2>>a3>>b1>>b2>>b3;
//                 Complex e(a1,a2,a3),f(b1,b2,b3);
//                 cout<<dist(e,f)<<endl;
//                 break;
//         }
//     }
//     return 0;
// }

7-6 统计单词的数量并输出单词的最后一个字符

#include<bits/stdc++.h>
using namespace std;
int main()
{string s;getline(cin,s,'\n');int k=0;for(int i=1;i<=s.size();i++){if(s[i]==' '&&s[i-1]!=' '){cout<<s[i-1];k++;}}if(s[s.size()-1]!=' ')//特殊样例,最后输入空空空{cout<<s[s.size()-1];k++;}cout<<endl;cout<<k;
}

7-7 组最大数

#include<bits/stdc++.h>
using namespace std;
bool cmp(const string& a,const string& b)
{return (a+b) > (b+a);
}
int main() 
{int n;while(cin>>n) {string s;vector<string> v;while(n--) {cin>>s;v.push_back(s);}sort(v.begin(),v.end(),cmp);string res="";for(int i=0;i<v.size();i++) res+=v[i];cout<<res<<endl;}
}

7-8 字符串排序--string类的使用

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;while(cin>>n){vector<string> v;string s;getchar();//cin.get()while( (n--) && getline(cin,s) && s!="stop" )v.push_back(s);for(int i=1;i<v.size();i++){for(int j=0;j<v.size()-i;j++){if(v[j].size()>v[j+1].size()){string s=v[j];v[j]=v[j+1];v[j+1]=s;}}}for(int i=0,n=v.size();i<n;++i) cout<<v[i]<<endl;}
}//用cpm部分正确,有原因百度
// #include<bits/stdc++.h>
// using namespace std;
// bool cmp(const string& a,const string& b)
// {
//     if(a.size()==b.size())return a.size()>b.size();//如果存在多个字符串长度相同,则按照原始输入顺序输出。
// 	return a.size()<b.size();
// }
// int main()
// {
//     int n;
//     while(cin>>n)
//     {
//         vector<string> v;
//         string s;
//         getchar();//或者cin.get();
//         while( (n--) && getline(cin,s) && s!="stop" )
//              v.push_back(s);
//         sort(v.begin(),v.end(),cmp);
//         for(int i=0,n=v.size();i<n;++i) cout<<v[i]<<endl;
//     }
// }

相关文章:

PTA复习

函数 6-1 学生类的构造与析构 #include<bits/stdc.h> using namespace std; class Student {int num;string name;char sex; public:Student(int n,string nam,char s):num(n),name(nam),sex(s){cout<<"Constructor called."<<endl;}void display…...

TypeScript 学习之接口

接口&#xff1a;对值所具有的结构进行类型检查&#xff0c;称为“鸭式变型法”或“结构性子类型化” 基本使用 interface LabelledValue {label: string; }function printLabel(labelledObj: LabelledValue) {console.log(labelledObj.label); }let myObj {size: 10, label:…...

原码反码补码

在计算机中&#xff0c;负数都是以补码的形式存放的&#xff0c; 正数的原码、反码、补码完全一致。 原码&#xff1a;指的是正数的二进制或负数的二进制&#xff0c; 负数的二进制&#xff08;原码&#xff09;&#xff0c;其实就是在正数的二进制的最高位前面加一个符号位 1。…...

大数据选股智能推荐系统V1.0-1

很长时间没有发布博客了&#xff0c;这段时间个人确实有点忙。另外一方面在这段时间我也没有闲着。自己研发了一套大数据选股的智能推荐系统。废话不说&#xff0c;我们先来看这套系统&#xff1a;登录页面&#xff1a;&#xff08;技术点&#xff1a;验证码的生成&#xff09;…...

调研生成GIF表情包之路

调研阶段 gifshot.js合成GIF 可以从媒体流、视频或图像创建动画 GIF 的 JavaScript 库。 csdn地址&#xff1a;https://blog.csdn.net/qq_16494241/article/details/125717405 分解GIF图片、合成GIF图片 两步走&#xff1a; 1、分解GIF图片 libgif-js&#xff1a;JavaScrip…...

【RocketMQ】源码详解:生产者启动与消息发送流程

消息发送 生产者启动 入口 : org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl#start(boolean) 生产者在调用send()方法发送消息之前,需要调用start进行启动, 生产者启动过程中会启动一些服务和线程 启动过程中会启动MQClientInstance, 这个实例是针对一个项…...

信息安全(一)

思维导图 一、AES加解密 1.概述 1.1 概念 AES&#xff1a; 高级加密标准&#xff08;Advanced Encryption Standard&#xff09;是一种对称加密的区块加密标准。 &#xff08;1&#xff09;替代DES的新一代分组加密算法 &#xff08;2&#xff09;支持三种长度密钥&#x…...

企业多会场视频直播(主会场、分会场直播)实例效果

阿酷TONY 2023-2-16 长沙 活动直播做多会场切换功能&#xff08;主会场、分会场、会场一、会场二、会场三自由切换&#xff09; 企业多会场视频直播&#xff08;主会场、分会场直播&#xff09;实例效果 特点&#xff1a;支持PC端&#xff0c;也支持移动端观看&#xff0c;会…...

线性代数速览(一)行列式

文章目录行列式&#x1f33b; 行列式的定义&#x1f33c; 行列式的性质&#x1f337; 一些定理&#x1f940; 行列式的计算&#x1f33a; 克莱姆法则行列式 行列式的本质&#xff0c;就是一个数值。 &#x1f33b; 行列式的定义 有三种定义&#xff1a;1、按行展开&#xff…...

恭喜山东翰林“智慧园区管理系统”获易知微可视化设计大赛二等奖

数字化经济发展是全球经济发展的重中之重&#xff0c;“数字孪生&#xff08;Digital Twin&#xff09;”这一词汇正在成为学术界和产业界的一个热点。数字孪生作为近年来的新兴技术&#xff0c;其与国民经济各产业融合不断深化&#xff0c;推动着各大产业数字化、网络化、智能…...

gulp简单使用

gulp gulp的核心理念是task runner 可以定义自己的一系列任务 等待任务被执行 基于文件stream的构建流 我们可以使用gulp的插件体系来完成某些任务 webpack的核心理念是module bundler webpack是一个模块化的打包工具 可以使用各种各样的loader来加载不同的模块 可以使用各种…...

ce认证机构如何选择?

CE认证想必大家都已经有所了解&#xff0c;它是产品进入欧盟销售的通行证&#xff0c;那么我们在办理CE认证时该怎么进行选择?带大家了解一下CE认证机构&#xff0c;以及该怎么去进行选择? 以下信息由证果果编辑整理&#xff0c;更多认证机构信息请到证果果网站查看。找机构…...

全网招募P图高手!阿里巴巴持续训练鉴假AI

P过的证件如何鉴定为真&#xff1f;三千万网友都晒出了与梅西的合影&#xff1f;图像编辑技术的普及让人人都能P图&#xff0c;但也带来“假图”识别难题&#xff0c;甚至是欺诈问题。 为此&#xff0c;阿里安全联合华中科技大学国家防伪工程中心、国际文档分析识别方向的唯一顶…...

webrtc QOS笔记一 Neteq直方图算法浅读

webrtc QOS笔记一 Neteq直方图算法浅读 文章目录webrtc QOS笔记一 Neteq直方图算法浅读Histogram Algorithm获取目标延迟遗忘因子曲线Histogram Algorithm DelayManager::Update()->Histogram::Add() 会根据计算的iat_packet(inter arrival times, 实际包间间隔 / 打包时长…...

细分和切入点

本文重点介绍做SEO网站细分和切入点的方法&#xff1a;当我们的行业和关键词竞争性比较大的时候&#xff0c;我们可以考虑对行业或者产品做细分&#xff0c;从而找到切入点。可以按照以下三个方面进行细分。1、按城市细分例如&#xff1a;A&#xff1a;餐饮培训&#xff0c;当前…...

iOS创建Universal Link

iOS 9之前&#xff0c;一直使用的是URL Schemes技术来从外部对App进行跳转&#xff0c;但是iOS系统中进行URL Schemes跳转的时候如果没有安装App&#xff0c;会提示无法打开页面的提示。 iOS 9之后起可以使用Universal Links技术进行跳转页面&#xff0c;这是一种体验更加完美的…...

RuoYi-Vue搭建(若依)

项目简介 RuoYi-Vue基于SpringBootVue前后端分离的Java快速开发框架1.前端采用Vue、Element UI2.后端采用Spring Boot、Spring Security、Redis & Jwt3.权限认证使用Jwt&#xff0c;支持多终端认证系统4.支持加载动态权限菜单&#xff0c;多方式轻松权限控制5.高效率开发&a…...

进程组和用处

进程组&#xff1a;一个或多个进程的集合&#xff0c;进程组id是一个正整数。组长进程&#xff1a;进程组id 进程id组长进程可以创建一个进程组&#xff0c;创建该进程组的进程&#xff0c;终止了&#xff0c;只要进程组有一个进程存在&#xff0c;进程组就存在&#xff0c;与…...

Nacos集群+Nginx负载均衡

搭建Nacos集群 注意: 3个或3个以上Nacos节点才能构成集群。要求服务器内存分配最好大于6G以上&#xff08;如果不够则需修改nacos启动脚本中的默认内存配置&#xff09;根据nacos自带的mysql建库脚本建立对应数据库&#xff08;/conf/nacos-mysql.sql&#xff09;如果是三台服…...

TypeScript 学习之类型兼容

TypeScript 的类型兼容性是基于结构子类型的。 结构类型是一种只使用其成员来描述类型的方式。 interface Named {name: string; }class Person {name: string; }let p: Named; p new Person();// 赋值成功&#xff0c;因为都是结构类型&#xff0c;只要Person 类型的包含 Nam…...

终极指南:深入解析Material Library架构与模块依赖关系

终极指南&#xff1a;深入解析Material Library架构与模块依赖关系 【免费下载链接】material A library to bring fully animated Material Design components to pre-Lolipop Android. 项目地址: https://gitcode.com/gh_mirrors/mate/material Material Library是一…...

手把手教你用4G Cat.1 bis开发智能硬件:从电路设计到低功耗优化的完整实战

4G Cat.1 bis智能硬件开发实战&#xff1a;从电路设计到低功耗优化的全流程指南 在共享充电宝扫码即用的便利背后&#xff0c;隐藏着一场关于低功耗通信的技术革命。当传统4G模块因高功耗让硬件开发者束手无策时&#xff0c;4G Cat.1 bis以单天线设计、10Mbps传输速率和μA级待…...

AHT20传感器数据漂移?STM32硬件I2C与软件模拟的稳定性对比测试

STM32硬件I2C与软件模拟I2C在AHT20传感器应用中的稳定性深度解析 工业级环境监测系统对温湿度数据的可靠性有着严苛要求。AHT20作为一款高精度温湿度传感器&#xff0c;其数据采集的稳定性直接关系到整个系统的可信度。本文将深入探讨STM32平台下硬件I2C与GPIO模拟I2C两种实现方…...

终极实战指南:在Docker容器中运行Windows系统的完整解决方案

终极实战指南&#xff1a;在Docker容器中运行Windows系统的完整解决方案 【免费下载链接】windows Windows inside a Docker container. 项目地址: https://gitcode.com/GitHub_Trending/wi/windows 还在为Windows虚拟机占用大量系统资源而烦恼吗&#xff1f;想体验在容…...

2026年AI大爆发:DeepSeek、Claude、Gemini三强鼎立,智能体应用成为新战场

进入2026年&#xff0c;AI领域迎来前所未有的激烈竞争格局。DeepSeek凭借极低的训练成本和开源策略强势出圈&#xff0c;R1模型在推理能力上直追GPT-o1&#xff0c;引发全球AI圈震动&#xff1b;Anthropic的Claude 3.7 Sonnet推出了扩展思考模式&#xff0c;在代码和复杂推理任…...

瑞萨RA6E2评估板Keil MDK5开发全攻略:从RA Smart Configurator到烧录调试

瑞萨RA6E2评估板Keil MDK5开发全流程实战指南 对于嵌入式开发者而言&#xff0c;瑞萨RA6E2系列MCU凭借其高性能和丰富外设正成为工业控制、物联网终端设备的优选方案。而Keil MDK5作为Arm生态中最成熟的开发环境之一&#xff0c;与瑞萨官方工具链的深度整合为开发者提供了高效…...

如何用dpkg-architecture解决Debian软件包的多架构依赖问题?

深度解析dpkg-architecture&#xff1a;Debian多架构依赖管理的实战指南 在Debian软件包开发领域&#xff0c;多架构支持一直是开发者面临的复杂挑战之一。随着ARM架构的崛起和异构计算场景的普及&#xff0c;单一架构的软件包已经无法满足现代计算需求。本文将带您深入探索dpk…...

如何在日常渗透中实现通杀漏洞挖掘

如何在日常渗透中实现通杀漏洞挖掘 你是不是天天遇到了edu刷屏&#xff1f;看到了某些漏洞平台&#xff0c;某些人交了一千个公益漏洞&#xff1f;是不是觉得很牛逼&#xff1f;其实不然&#xff0c;都不难&#xff0c;其实如果我要是想刷这玩意&#xff0c;可以交不完的漏洞&a…...

LiuJuan20260223Zimage参数详解:LoRA rank/alpha设置对人像细节影响深度分析

LiuJuan20260223Zimage参数详解&#xff1a;LoRA rank/alpha设置对人像细节影响深度分析 1. 引言&#xff1a;从一张好看到一张传神 你肯定见过很多AI生成的人像&#xff0c;有的乍一看还行&#xff0c;但总觉得哪里不对劲——可能是眼神呆滞&#xff0c;可能是发丝模糊&…...

Qt项目里用dxflib解析CAD图纸,遇到带圆弧的多段线(LWPOLYLINE)怎么画?

Qt项目中利用dxflib解析CAD图纸&#xff1a;带圆弧多段线(LWPOLYLINE)的精确绘制方案 在工业设计、建筑图纸和机械制图领域&#xff0c;DXF文件作为CAD数据交换的标准格式&#xff0c;其精确解析一直是开发者的核心挑战。当使用Qt框架结合dxflib库进行CAD可视化时&#xff0c;优…...