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 学习之接口
接口:对值所具有的结构进行类型检查,称为“鸭式变型法”或“结构性子类型化” 基本使用 interface LabelledValue {label: string; }function printLabel(labelledObj: LabelledValue) {console.log(labelledObj.label); }let myObj {size: 10, label:…...
原码反码补码
在计算机中,负数都是以补码的形式存放的, 正数的原码、反码、补码完全一致。 原码:指的是正数的二进制或负数的二进制, 负数的二进制(原码),其实就是在正数的二进制的最高位前面加一个符号位 1。…...
大数据选股智能推荐系统V1.0-1
很长时间没有发布博客了,这段时间个人确实有点忙。另外一方面在这段时间我也没有闲着。自己研发了一套大数据选股的智能推荐系统。废话不说,我们先来看这套系统:登录页面:(技术点:验证码的生成)…...
调研生成GIF表情包之路
调研阶段 gifshot.js合成GIF 可以从媒体流、视频或图像创建动画 GIF 的 JavaScript 库。 csdn地址:https://blog.csdn.net/qq_16494241/article/details/125717405 分解GIF图片、合成GIF图片 两步走: 1、分解GIF图片 libgif-js:JavaScrip…...
【RocketMQ】源码详解:生产者启动与消息发送流程
消息发送 生产者启动 入口 : org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl#start(boolean) 生产者在调用send()方法发送消息之前,需要调用start进行启动, 生产者启动过程中会启动一些服务和线程 启动过程中会启动MQClientInstance, 这个实例是针对一个项…...
信息安全(一)
思维导图 一、AES加解密 1.概述 1.1 概念 AES: 高级加密标准(Advanced Encryption Standard)是一种对称加密的区块加密标准。 (1)替代DES的新一代分组加密算法 (2)支持三种长度密钥&#x…...
企业多会场视频直播(主会场、分会场直播)实例效果
阿酷TONY 2023-2-16 长沙 活动直播做多会场切换功能(主会场、分会场、会场一、会场二、会场三自由切换) 企业多会场视频直播(主会场、分会场直播)实例效果 特点:支持PC端,也支持移动端观看,会…...
线性代数速览(一)行列式
文章目录行列式🌻 行列式的定义🌼 行列式的性质🌷 一些定理🥀 行列式的计算🌺 克莱姆法则行列式 行列式的本质,就是一个数值。 🌻 行列式的定义 有三种定义:1、按行展开ÿ…...
恭喜山东翰林“智慧园区管理系统”获易知微可视化设计大赛二等奖
数字化经济发展是全球经济发展的重中之重,“数字孪生(Digital Twin)”这一词汇正在成为学术界和产业界的一个热点。数字孪生作为近年来的新兴技术,其与国民经济各产业融合不断深化,推动着各大产业数字化、网络化、智能…...
gulp简单使用
gulp gulp的核心理念是task runner 可以定义自己的一系列任务 等待任务被执行 基于文件stream的构建流 我们可以使用gulp的插件体系来完成某些任务 webpack的核心理念是module bundler webpack是一个模块化的打包工具 可以使用各种各样的loader来加载不同的模块 可以使用各种…...
ce认证机构如何选择?
CE认证想必大家都已经有所了解,它是产品进入欧盟销售的通行证,那么我们在办理CE认证时该怎么进行选择?带大家了解一下CE认证机构,以及该怎么去进行选择? 以下信息由证果果编辑整理,更多认证机构信息请到证果果网站查看。找机构…...
全网招募P图高手!阿里巴巴持续训练鉴假AI
P过的证件如何鉴定为真?三千万网友都晒出了与梅西的合影?图像编辑技术的普及让人人都能P图,但也带来“假图”识别难题,甚至是欺诈问题。 为此,阿里安全联合华中科技大学国家防伪工程中心、国际文档分析识别方向的唯一顶…...
webrtc QOS笔记一 Neteq直方图算法浅读
webrtc QOS笔记一 Neteq直方图算法浅读 文章目录webrtc QOS笔记一 Neteq直方图算法浅读Histogram Algorithm获取目标延迟遗忘因子曲线Histogram Algorithm DelayManager::Update()->Histogram::Add() 会根据计算的iat_packet(inter arrival times, 实际包间间隔 / 打包时长…...
细分和切入点
本文重点介绍做SEO网站细分和切入点的方法:当我们的行业和关键词竞争性比较大的时候,我们可以考虑对行业或者产品做细分,从而找到切入点。可以按照以下三个方面进行细分。1、按城市细分例如:A:餐饮培训,当前…...
iOS创建Universal Link
iOS 9之前,一直使用的是URL Schemes技术来从外部对App进行跳转,但是iOS系统中进行URL Schemes跳转的时候如果没有安装App,会提示无法打开页面的提示。 iOS 9之后起可以使用Universal Links技术进行跳转页面,这是一种体验更加完美的…...
RuoYi-Vue搭建(若依)
项目简介 RuoYi-Vue基于SpringBootVue前后端分离的Java快速开发框架1.前端采用Vue、Element UI2.后端采用Spring Boot、Spring Security、Redis & Jwt3.权限认证使用Jwt,支持多终端认证系统4.支持加载动态权限菜单,多方式轻松权限控制5.高效率开发&a…...
进程组和用处
进程组:一个或多个进程的集合,进程组id是一个正整数。组长进程:进程组id 进程id组长进程可以创建一个进程组,创建该进程组的进程,终止了,只要进程组有一个进程存在,进程组就存在,与…...
Nacos集群+Nginx负载均衡
搭建Nacos集群 注意: 3个或3个以上Nacos节点才能构成集群。要求服务器内存分配最好大于6G以上(如果不够则需修改nacos启动脚本中的默认内存配置)根据nacos自带的mysql建库脚本建立对应数据库(/conf/nacos-mysql.sql)如果是三台服…...
TypeScript 学习之类型兼容
TypeScript 的类型兼容性是基于结构子类型的。 结构类型是一种只使用其成员来描述类型的方式。 interface Named {name: string; }class Person {name: string; }let p: Named; p new Person();// 赋值成功,因为都是结构类型,只要Person 类型的包含 Nam…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
