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

期末模拟题题解汇总

期末模拟题题解

练习1

T1

考察了虚函数、派生类

#include<bits/stdc++.h>
using namespace std;
//基类
class Member{protected:int id;string name;int score;public:Member(int id,string name,int score){this->id=id;this->name=name;this->score=score;}virtual void Add(int money){score+=money;}virtual int Exchange(int exchangeScore){int money=exchangeScore/100;score-=money*100;return money;}virtual void Print(){cout<<"普通会员"<<id<<"--"<<name<<"--"<<score<<endl;}// virtual ~Member()// {
// 			// }
};
//派生类
class VIP:public Member
{private:int addr,exr;public:VIP(int id,string name,int score,int addr,int exr):Member(id,name,score){this->addr=addr,this->exr=exr;}void Add(int money) override{score+=money*addr;}int Exchange(int exchangeScore)override{int money=exchangeScore/exr;score-=money*exr;return money;}void Print()override{cout<<"贵宾会员"<<id<<"--"<<name<<"--"<<score<<endl;}
};
int main()
{Member *pm;int id;string name;int score;cin>>id>>name>>score;Member mm{id,name,score};int money,exchange;cin>>money>>exchange;pm=&mm;pm->Add(money);pm->Exchange(exchange);pm->Print();//VIPcin>>id>>name>>score;int addr,exr;cin>>addr>>exr;VIP vv{id,name,score,addr,exr};cin>>money>>exchange;pm=&vv;pm->Add(money);pm->Exchange(exchange);pm->Print();return 0;
}

T2

#include<bits/stdc++.h>
using namespace std;
class Metal{private:int hardness,weight,volume;public:Metal(int h=0,int w=0,int v=0):hardness(h),weight(w),volume(v){} //合并friend Metal operator+(const Metal& a,const Metal& b){return Metal(a.hardness+b.hardness,a.weight+b.weight,a.volume+b.volume);}//巨化friend Metal operator*(const Metal& a,int n){return Metal(a.hardness,a.weight,a.volume*n);	} //硬化 Metal& operator++(){hardness++,weight*=1.1,volume*=1.1;return *this;}//软化 Metal& operator--(){hardness--;weight*=0.9;volume*=0.9;return *this;}void Print(){cout<<"硬度"<<hardness<<"--重量"<<weight<<"--体积"<<volume<<endl;}
};
int main()
{int h,w,v;cin>>h>>w>>v;Metal m1(h,w,v);cin>>h>>w>>v;Metal m2(h,w,v);Metal result=m1+m2;result.Print();int n;cin>>n;result=m1*n;result.Print();++m1;m1.Print();--m2;m2.Print();  return 0;
}

T3

#include<bits/stdc++.h>
using namespace std;
class Appliance{protected:int id,power;public:Appliance(int id,int power):id(id),power(power){}virtual void Print(){cout<<"编号"<<id<<"--功率"<<power<<"W"<<endl;}
};
class Fan:virtual public Appliance{protected:int direction,strength;public:Fan(int id,int power,int direction,int strength):Appliance(id,power),direction(direction),strength(strength){}void DirectionControl(int d){direction=d;}void PowerControl(int p){strength=p;}void Print() override{Appliance::Print();if(direction==0) cout<<"定向吹风";else cout<<"旋转吹风";cout<<"--风力"<<strength<<"级"<<endl; }
};
class Humidifier
:
virtual public Appliance
{protected:double water;double maxWater;public:Humidifier(int id,int power,double water,double maxWater):Appliance(id,power),water(water),maxWater(maxWater){}int Warning(){if(water>=maxWater*0.5){return 1;}else if(water>=maxWater*0.1){return 2;}else{return 3;}}void Print()override{Appliance::Print();int result=Warning();if(result==1) cout<<"水量正常"<<endl;else if(result==2) cout<<"水量偏低"<<endl;else cout<<"水量不足"<<endl;}
};
class HumidfyingFan
:
public Fan,
public Humidifier{private:int level;public:HumidfyingFan(int id,int power,int direction,int strength,double water,double maxWater,int level):Appliance(id,power),Fan(id,power,direction,strength),Humidifier(id,power,water,maxWater),level(level){}void Adjust(int l){level=l;if(level==0) return;if(level==1){DirectionControl(0);PowerControl(1);}else if(level==2){DirectionControl(1);PowerControl(2);}else if(level==3){DirectionControl(1);PowerControl(3);}}void Print()override{cout<<"加湿风扇--档位"<<level<<endl;cout<<"编号"<<id<<"--功率"<<power<<"W"<<endl;if(direction==0)cout<<"定向吹风";elsecout<<"旋转吹风";cout<<"--风力"<<strength<<"级"<<endl;int result=Warning();if(result==1)cout<<"水量正常"<<endl;else if(result==2)cout<<"水量偏低"<<endl;elsecout<<"水量不足"<<endl;}
};
int main()
{int n;cin>>n;while(n--){int id,power,direction,strength;double water,maxWater;int level;cin>>id>>power>>direction>>strength>>water>>maxWater>>level;HumidfyingFan fan(id,power,direction,strength,water,maxWater,level);int change;cin>>change;fan.Adjust(change);fan.Print();}return 0;
}

Test3 T3

#include<bits/stdc++.h>
using namespace std;class Audio {
private:string title;int length;public:Audio(string title,int length):title(title),length(length) {cout<<"Audio constructor"<<endl;}Audio():title(""),length(0) {cout<<"Audio constructor"<<endl;}virtual void set(string t,int l) {title=t;length=l;}virtual void print() {cout<<title<<" "<<length<<" ";}int getLength() {return length;}virtual ~Audio() {cout<<"Audio destructor"<<endl;}
};class Producer {
private:string name;public:Producer(string name):name(name) {cout<<"Producer constructor"<<endl;}Producer() {cout<<"Producer constructor"<<endl;}void set(string n) {name=n;}void Print() {cout<<name<<" ";}~Producer() {cout<<"Producer destructor"<<endl;}
};class Song:public Audio {
private:string singer;Producer producer;public:
//注意这里的producername Song(string title,int length,string singer,string producerName):Audio(title,length),singer(singer),producer(producerName) {cout<<"Song constructor"<<endl;}//producer也要记得 Song():Audio(),producer() {cout<<"Song constructor"<<endl;}void set(string singer,string title,int length,string producerName) override {this->singer=singer;Audio::set(title,length);producer.set(producerName);}void print() override {cout<<singer<<" ";Audio::print();producer.Print();cout<<endl;}~Song() {cout<<"Song destructor"<<endl;}
};int Select(Song s[],int n) {int index=0;for(int i=1;i<n;i++) {if(s[i].getLength()>s[index].getLength())index=i;}return index;
}int main() {int t;cin>>t;Song s[100];for(int i=0;i<t;i++) {string singer,title,producer;int length;cin>>singer>>title>>length>>producer;s[i].set(singer,title,length,producer);}int id=Select(s,t);s[id].print();return 0;
}
http://www.jsqmd.com/news/1180500/

相关文章:

  • 强化学习------PPO-Clip算法实战与调优
  • 2026散酒加盟合作政策口碑推荐强势出炉,零套路不踩坑,散酒加盟品牌供应商看这篇就够 - mypinpai
  • 计算机毕业设计之基于springboot武当山旅游网站的设计与实现
  • 软考中级 2026 机考指南:从 0 到 45 分的下午案例题 3 步拆解法
  • Spring Cloud 微服务架构的性能瓶颈诊断——线程池、连接池与超时配置
  • 为什么你的文章排名很高,却在ChatGPT/文心一言里查无此人?——从RAG架构看GEO底层逻辑
  • 01背包问题 动态规划:从二维DP到一维滚动数组,空间复杂度 O(mn) 降至 O(m)
  • 西安地区值得关注的代理记账公司盘点与选择指南 - 财税观察网
  • 抖掌柜自动拍单实操全解:适配副业新手,抖店采购发货完整操作流程 - 抖掌柜
  • 十字链表与邻接多重表:3步画法解析与邻接表/逆邻接表对比
  • Palworld存档编辑完全指南:从数据解析到游戏定制的终极教程
  • 微服务可观测性架构演进:从三支柱到Continuous Profiling的完整数据平面设计
  • 2026 年四川区域成人学历提升主流服务主体运营信息盘点参考 - 互联网科技品牌测评
  • 济南长清区家人病逝处理经验分享:2026年top5推荐做法 - GrowthUME
  • C++17 折叠表达式:替代可变参数模板递归的 5 行代码优化
  • 2026年7月水泥厂液压油缸厂家哪家好,大口径油缸/换向阀/工程缸/叠加阀/流量阀/调平油缸,液压油缸定做厂家有哪些 - 品牌推荐师
  • 你的NVIDIA显示器色彩不准?这个免费工具可能是最佳解决方案
  • HarmonyOS7 Dialog 与 ActionSheet:弹窗全家桶对比
  • SourceTree实战指南——Git可视化管理从入门到精通
  • 深耕汽配供应链 16 载,义乌福玉汽车用品商行打造全场景汽车养护综合服务商 - GrowthUME
  • 济南闲置黄金变现口碑红榜多家机构横向测评,收的顶无隐形扣费保值首选 - 小蝶回收测评
  • 打破SPT-AKI存档限制:终极角色编辑器让你的离线塔科夫体验焕然一新
  • 探索Python射频分析:scikit-rf实战进阶指南
  • Fluent电化学模块电解制氢仿真:核心设置与报错排查指南
  • Linux下Tomcat部署与性能调优实战指南
  • Unity游戏实时文本翻译:XUnity.AutoTranslator与BepInEx实战指南
  • AD5593R与PIC18LF45K42的混合信号系统设计实战
  • GEO内容多久需要更新一次?半年前的文章为什么权重下降
  • EulerCopilot无网络环境部署完整教程:离线环境下的操作系统智能问答终极解决方案
  • SystemVerilog Interface 对比传统连接:5个关键优势与3个典型应用场景分析