C++期末综合练习

id:159 A. 音像制品(类与对象)

题目描述

某商店出租音像制品,制品信息包括:类型、名称、租金单价、状态。
其中类型用单个数字表示,对应关系为:1-黑胶片,2-CD,3-VCD,4-DVD
名称是字符串,存储制品的名称信息
租金单价表示每天租金价格
状态用单个数字表示,0是未出租,1是已出租

商店提供业务操作包括

  1. 初始化(使用构造方法),从键盘输入音像制品的信息,并设置到对象中
  2. 查询print,输出音像制品的信息
  3. 计算租金fee,参数是租借的天数,输出租金总价,如果未出租则提示,具体输出信息看示范

请定义音像制品类,并创建相应的对象来完成操作
题目涉及的数值均用整数处理

输入

第一行输入n表示有n个音像制品
每个音像制品对应两行输入
一行输入一个音像制品的多个参数,具体为:类型、名称、租金单价(正整数)、状态
一行输入操作命令,如果输入为0表示查询操作,非0则表示查询并且计算租金费用,租用天数就是这个非0值
依次输入2n行

输出

根据每个音像制品的操作命令,调用相应的操作,然后输出相关结果
输出样式看示范。

输入样例

4
1 AAA 43 1
0
2 BBB 19 0
3
3 CCC 27 1
5
4 DDD 32 1
7

输出样例

黑胶片[AAA]已出租
CD[BBB]未出租
未产生租金
VCD[CCC]已出租
当前租金为135
DVD[DDD]已出租
当前租金为224

题解

  • 使用到的知识点是类,较简单

代码实现

#include <iostream>
using namespace std;class CVideo
{
private:int price, state, type;string name;
public:CVideo(int p, int s, int t, string n);void print();void count(int d); // 计算租金fee
};CVideo::CVideo(int p, int s, int t, string n): price(p), state(s), type(t), name(n)
{
}void CVideo::print()
{if (type == 1){cout << "黑胶片";}else if (type == 2){cout << "CD";}else if (type == 3){cout << "VCD";}else{cout << "DVD";}cout << "[" << name << "]";if (state == 0){cout << "未出租" << endl;}else{cout << "已出租" << endl;}
}void CVideo::count(int d)
{if (state == 0) // 未出租{cout << "未产生租金" << endl;}else{cout << "当前租金为" << price * d << endl;}
}int main()
{int n, i, type, price, state, order;string name;cin >> n;for (i = 0; i < n; i++){cin >> type >> name >> price >> state >> order;CVideo v1(price, state, type, name);if (order == 0) // 查询{v1.print();}else{v1.print();v1.count(order);}}return 0;
}

id:300 B. OOP双人决斗(多重继承)

题目描述

写一个Node2D基类,属性有位置location(String)
一个Body子类继承自Node2D,属性初始生命值maxHealth,当前生命值health,防御力defense
一个Weapon子类也继承自Node2D,属性有武器名w_name,武器伤害damage
一个Player多继承自Body和Weapon,属性有名字name,方法有attack,对目标造成伤害
在主函数创建两个Player,p1、p2,判断在p1首先开始攻击的情况下谁会获胜
我们规定,每次造成的伤害等于damage减去defense

输入

输入:地点location,玩家1的名字、生命值、防御力、武器名、武器伤害,玩家2的名字、生命值、防御力、武器名、武器伤害

输出

输出:获胜信息

输入样例

palace
p1 30 5 bow 30
p2 50 10 sword 20

输出样例

p1 deal 20 damage to p2
p2 still have 30 health

p2 deal 15 damage to p1
p1 still have 15 health

p1 deal 20 damage to p2
p2 still have 10 health

p2 deal 15 damage to p1
p2 defeated p1 by sword in palace

题解

  • 本题使用到的知识点是菱形继承,虚继承
  • 首先看父类Node2D,属性是地点,实现的方法是构造
  • Body类虚继承父类,属性有最大生命值,当前生命值与防御力,实现的方法有构造,获取当前生命值与计算被攻击后的生命值
  • Weapon类虚继承父类,属性有武器伤害值和武器名字,实现的方法有构造
  • Player类继承上面两个子类,属性有人的名字,实现的方法有构造,对目标进行伤害,能造成的伤害是武器的攻击值减去另一个人的防御值得到的值,如果得到的值小于零,则不造成伤害,则将得到的伤害作为参数传进计算另一个人剩余的生命值的函数中计算剩余的生命值,然后输出
  • 在主函数,如果被攻击的人的生命值大于零就一直进行相互攻击的循环

代码实现

#include <iostream>
using namespace std;class Node2D
{
protected:string location;
public:Node2D(string l);
};Node2D::Node2D(string l)
{location = l;
}class Body : virtual public Node2D
{
protected:int maxHealth, health, defense;
public:Body(string l, int mh, int h, int d);int getH();void cntH(int x);
};Body::Body(string l, int mh, int h, int d): Node2D(l), maxHealth(mh), health(h), defense(d)
{
}int Body::getH()
{return health;
}void Body::cntH(int x)
{health = health - x;if (health < 0){health = 0;}
}class Weapon : virtual public Node2D
{
protected:int damage;string w_name;
public:Weapon(string l, int d, string w);
};Weapon::Weapon(string l, int d, string w): Node2D(l), damage(d), w_name(w)
{
}class Player : public Body, public Weapon
{
private:string name;
public:Player(string l, string n, int h, int de, string w, int da);void attack(Player& pp); // 对目标造成伤害
};Player::Player(string l, string n, int h, int de, string w, int da): Node2D(l), Body(l, h, h, de), Weapon(l, da, w)
{name = n;
}void Player::attack(Player& pp)
{int da = damage - pp.defense;if (da < 0){da = 0;}cout << name << " deal " << da << " damage to " << pp.name << endl;pp.cntH(da);if (pp.health > 0){cout << pp.name << " still have " << pp.health << " health" << endl << endl;}else{cout << name << " defeated " << pp.name << " by sword in " << location << endl;}
}int main()
{int h1, h2, defense1, defense2, damage1, damage2;string l, n1, n2, w_n1, w_n2;cin >> l >> n1 >> h1 >> defense1 >> w_n1 >> damage1;cin >> n2 >> h2 >> defense2 >> w_n2 >> damage2;Player p1(l, n1, h1, defense1, w_n1, damage1);Player p2(l, n2, h2, defense2, w_n2, damage2);while (p1.getH() > 0 && p2.getH() > 0){p1.attack(p2);if (p2.getH() == 0){break;}p2.attack(p1);}return 0;
}

id:181 C. 宠物的生长(虚函数和多态)

题目描述

需要开发一个系统,对宠物的生长状态进行管理。给出下面的基类框架:

class Pet{ protected:string name;//姓名float length;//身长float weight;//体重CDate current;//开始记录时间(日期类CDate包含年、月、日三个私有数据,其他方法根据需要自拟。)public:virtual void display(CDate day)=0;//输出目标日期时宠物的身长和体重}

以Pet为基类,构建出Cat和Dog两个类:

Cat一天身长加0.1,体重加0.2。

Dog一天身长加0.2,体重加0.1。

生成上述类并编写主函数,要求主函数中有一个基类指针Pet *pt,用于测试子类数据。

主函数根据输入的信息,相应建立Cat类对象或Dog类对象,并给出测量日期时宠物的身长和体重。

输入

第一行为测试次数

第二行是开始记录日期

从第三行起,每个测试用例占一行,每行给出宠物的基本信息:宠物的类型(1为Cat,2为Dog)、名字、身长、体重、最后测量的日期。

输出

要求输出目标日期宠物姓名、身长和体重(结果要求保留小数点后2位)。若测量日期小于开始日期,输出”error”。

输入样例

3
2019 5 5
1 tony 10 10 2018 12 30
2 jerry 5 6 2019 5 10
1 tom 3 4 2019 6 1

输出样例

error
jerry after 5 day: length=6.00,weight=6.50
tom after 27 day: length=5.70,weight=9.40

题解

  • 用到的知识点是虚函数与多态,计算日期也是一个点

代码实现

#include <iostream>
#include <iomanip>
using namespace std;class CDate
{
private:int year, month, day;
public:CDate(int y, int m, int d);bool isLeapYear();int getY();int getM();int getD();int getDayofYear();
};CDate::CDate(int y, int m, int d)
{year = y, month = m, day = d;
}bool CDate::isLeapYear()
{return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}int CDate::getY()
{return year;
}int CDate::getM()
{return month;
}int CDate::getD()
{return day;
}int CDate::getDayofYear()
{int i, sum = day;int a[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };if (isLeapYear()){a[2]++;}// 求日期的天数for (i = 0; i < month; i++){sum += a[i];}return sum;
}class Pet
{
protected:string name;//姓名float length, weight;CDate current; // 开始记录时间
public:Pet(string n1, float l, float w, int y, int m, int d);virtual void display(CDate day) = 0; // 输出目标日期时宠物的身长和体重~Pet() {} // 虚析构函数
};Pet::Pet(string n1, float l, float w, int y, int m, int d): current(y, m, d)
{name = n1;length = l;weight = w;
}class Cat : public Pet
{
public:Cat(string n1, float l, float w, int y, int m, int d);void display(CDate day);
};Cat::Cat(string n1, float l, float w, int y, int m, int d): Pet(n1, l, w, y, m, d)
{
}void Cat::display(CDate day)
{int date = day.getDayofYear() - current.getDayofYear();length += date * 0.1;weight += date * 0.2;cout << name << " after " << date << " day: length=" << fixed << setprecision(2) << length << ",weight=" << fixed << setprecision(2) << weight << endl;
}class Dog : public Pet
{
public:Dog(string n1, float l, float w, int y, int m, int d);void display(CDate day);
};Dog::Dog(string n1, float l, float w, int y, int m, int d): Pet(n1, l, w, y, m, d)
{
}void Dog::display(CDate day)
{int date = day.getDayofYear() - current.getDayofYear();length += date * 0.2;weight += date * 0.1;cout << name << " after " << date << " day: length=" << fixed << setprecision(2) << length << ",weight=" << fixed << setprecision(2) << weight << endl;
}int main()
{int t, i, y1, m1, d1, type, y2, m2, d2, cnt1, cnt2;float l, w;string name;Pet* pt;cin >> t >> y1 >> m1 >> d1;CDate dd1(y1, m1, d1);cnt1 = y1 * 10000 + m1 * 100 + d1;for (i = 0; i < t; i++){cin >> type >> name >> l >> w >> y2 >> m2 >> d2;CDate dd2(y2, m2, d2);cnt2 = y2 * 10000 + m2 * 100 + d2;if (cnt2 < cnt1){cout << "error" << endl;continue;}if (type == 1) // Cat{pt = new Cat(name, l, w, y1, m1, d1);}else{pt = new Dog(name, l, w, y1, m1, d1);}pt->display(dd2);}return 0;
}

id:187 D. 集合(运算符重载)

题目描述

集合是由一个或多个确定的元素所构成的整体。集合的运算有并、交、相对补等。

集合A和集合B的交集:由属于A且属于B的相同元素组成的集合。

集合A和集合B的并集:由所有属于集合A或属于集合B的元素所组成的集合。

集合B关于集合A的相对补集,记做A-B:由属于A而不属于B的元素组成的集合。

假设集合A={10,20,30},集合B={1,10,50,8}。则A与B的并是{10,20,30,1,50,8},A与B的交是{10},B关于A的相对补集是{20,30}。

定义整数集合类CSet,属性包括:集合中的元素个数n,整型指针data存储集合中的元素。

方法有:重载输出,按样例格式输出集合中的元素。
重载+运算符,求集合A和集合B的并集,并返回结果集合。
重载-运算符,求集合B关于集合A的相对补集,并返回结果集合。
重载*运算符,求集合A和集合B的交集,并返回结果集合。

主函数输入集合A、B的数据,计算集合的并、交、相对补。

可根据题目,为CSet类添加需要的成员函数。

输入

测试次数

每组测试数据两行,格式如下:

第一行:集合A的元素个数和元素

第二行:集合B的元素个数和元素

输出

每组测试数据输出如下:

第一行:集合A

第二行:集合B

第三行:A和B的并

第四行:A和B的交

第五行:B关于A的相对补集 与 A关于B的相对补集的并,即(A-B)+(B-A)

每组测试数据间以空行分隔。

输入样例

2
3 10 20 30
4 10 1 2 3
5 100 2 3 4 -10
6 -34 12 2 4 90 100

输出样例

A:10 20 30
B:10 1 2 3
A+B:10 20 30 1 2 3
A*B:10
(A-B)+(B-A):20 30 1 2 3

A:100 2 3 4 -10
B:-34 12 2 4 90 100
A+B:100 2 3 4 -10 -34 12 90
A*B:100 2 4
(A-B)+(B-A):3 -10 -34 12 90

题解

  • 运用到的知识点是运算符重载和输出重载
  • 求并集方法,首先定义一个类的数组让他等于第一个数组,然后遍历另一个数组,如果这个数组中的某个元素与新定义的数组中都找不到相同的元素,则赋值,要注意的是,要记录新定义的数组中放进去了多少个元素,然后重新作为这个数组的大小
  • 求相对补集的方法,在运算符重载函数中我只求了一个数组对另一个数组的相对补集,并没有将两个数组的相互补集都求出来,而是分别求出来后在主函数进行输出拼接,在重载函数中,用冒泡方法遍历其中一个数组,如果在另一个数组中都找不到跟这个元素相同的元素则赋值,也要记录新定义的数组存储了多少个元素,更新这个新定义的数组的大小
  • 求交集就是找两个数组都存在的元素
  • 还需要一个赋值号运算符重载
  • 记得析构和主函数删除地址

代码实现

#include <iostream>
#include <algorithm>
using namespace std;class CSet
{
private:int n, * data;
public:CSet(int n1);CSet(int n1, int a[]);CSet(const CSet& s1);~CSet();friend ostream& operator<<(ostream&, const CSet&); // 重载输出CSet operator+(const CSet& s1); // 并集CSet operator-(const CSet& s1); // 相对补集CSet operator*(const CSet& s1); // 交集CSet& operator=(const CSet& s1);
};CSet::CSet(int n1): n(n1)
{int i;data = new int[n];for (i = 0; i < n; i++){data[i] = 0;}
}CSet::CSet(int n1, int a[]): n(n1)
{int i;data = new int[n];for (i = 0; i < n; i++){*(data + i) = *(a + i);}
}CSet::CSet(const CSet& s1): n(s1.n), data(s1.data)
{
}CSet::~CSet()
{delete[] data;
}ostream& operator<<(ostream& o, const CSet& s1)
{int i;for (i = 0; i < s1.n; i++){if (i == 0){o << s1.data[i];}else{o << " " << s1.data[i];}}return o;
}CSet CSet::operator+(const CSet& s1)
{int i, k, j, f;CSet s2(n + s1.n);for (i = 0; i < n; i++){s2.data[i] = data[i];}j = n;for (i = 0; i < s1.n; i++){f = 0; // 无相同for (k = 0; k < j; k++){if (data[k] == s1.data[i]){f = 1;break;}}if (f == 0){s2.data[j] = s1.data[i];j++;}}s2.n = j;return s2;
}CSet CSet::operator-(const CSet& s1)
{int i, j, f, k;CSet s2(n);k = 0;for (i = 0; i < n; i++){f = 0;for (j = 0; j < s1.n; j++){if (data[i] == s1.data[j]){f = 1;break;}}if (f == 0){s2.data[k] = data[i];k++;}}s2.n = k;return s2;
}CSet CSet::operator*(const CSet& s1)
{int i, j, k;CSet s2(n);k = 0;for (i = 0; i < n; i++){for (j = 0; j < s1.n; j++){if (data[i] == s1.data[j]){s2.data[k] = data[i];k++;break;}}}s2.n = k;return s2;
}CSet& CSet::operator=(const CSet& s1)
{int i;n = s1.n;for (i = 0; i < s1.n; i++){data[i] = s1.data[i];}return *this;
}int main()
{int t, i, n1, n2, * a, * b, j;cin >> t;for (i = 0; i < t; i++){cin >> n1;a = new int[n1];for (j = 0; j < n1; j++){cin >> *(a + j);}cin >> n2;b = new int[n2];for (j = 0; j < n2; j++){cin >> *(b + j);}CSet s1(n1, a);CSet s2(n2, b);cout << "A:" << s1 << endl;cout << "B:" << s2 << endl;CSet s3(n1 + n2);s3 = (n1 + n2);s3 = s1 + s2; // 并cout << "A+B:" << s3 << endl;s3 = s1 * s2; // 交cout << "A*B:" << s3 << endl;s3 = s1 - s2; // 相对补集cout << "(A-B)+(B-A):" << s3 << " ";s3 = s2 - s1;cout << s3 << endl;delete[] a;delete[] b;cout << endl;}return 0;
}

id:192 E. 最贵的书(重载+友元+引用)

题目描述

定义CBook,属性包含书名(string),编者(string)、售价(double),出版社(string)。方法有:重载输入、输出。

定义友元函数find(CBook *book, int n, int &max1index,int &max2index)查找n本书中售价最高、次高的两本书,并通过引用返回其下标。若有相同售价最高、次高的两本书,按输入顺序输出第一本、第二本。

输入n,输入n本书的信息,调用上述友元函数,求价格最高的两本书下标,并按样例格式输出书信息。

输入

测试次数

每组测试数据格式如下:

n

n行书信息(书名,编者,售价,出版社)

输出

每组测试数据输出两行:

第一行:售价最高的书信息。

第二行:售价次高的书信息。

具体输出格式见样例,售价保留两位小数。书中间以空格分隔。

输入样例

1
5
python从入门到精通,艾里克.马瑟斯,62.00,人民邮电出版社
Java并发编程实战,盖茨,54.5,机械工业出版社
Effective Java中文版,约书亚.布洛克,94,机械工业出版社
重构 改善既有代码的设计,马丁.福勒,122.6,人民邮电出版社
活用数据:驱动业务的数据分析实战,陈哲,61.4,电子工业出版社

输出样例

重构 改善既有代码的设计
马丁.福勒
122.60
人民邮电出版社

Effective Java中文版
约书亚.布洛克
94.00
机械工业出版社

提示

读取‘,’前的字符用 getline进行输入,如下所示

#include <string>string  name;getline(cin, name, ',');

题解

  • 运用到的知识点是重载有元和引用
  • 查找最大最小值的方法我是使用了冒泡排序的方法,但是实际上最好不好改变题目给出的数组顺序

代码实现

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;class CBook
{
private:double price;string name, person, press;
public:friend istream& operator>>(istream& i, CBook& c);friend ostream& operator<<(ostream& o, const CBook& c);friend void find(CBook* book, int n, int& max1index, int& max2index);CBook& operator=(const CBook& b1);
};istream& operator>>(istream& i, CBook& c)
{char ch;getline(i, c.name, ','); // 书名getline(i, c.person, ','); // 编者i >> c.price >> ch;getline(i, c.press, '\n');return i;
}ostream& operator<<(ostream& o, const CBook& c)
{o << c.name << endl;o << c.person << endl;o << fixed << setprecision(2) << c.price << endl;o << c.press << endl << endl;return o;
}void find(CBook* book, int n, int& max1index, int& max2index)
{int i, j;CBook c;for (i = 0; i < n; i++){for (j = i + 1; j < n; j++){if (book[i].price < book[j].price){c = book[i];book[i] = book[j];book[j] = c;}}}max1index = 0;max2index = 1;
}CBook& CBook::operator=(const CBook& b1)
{name = b1.name;person = b1.person;press = b1.press;price = b1.price;return *this;
}int main()
{int t, n, i, j, ans1, ans2;char ch;CBook* cc;cin >> t;ans1 = 0;ans2 = 0;for (i = 0; i < t; i++){cin >> n;cc = new CBook[n];ch = getchar();for (j = 0; j < n; j++){cin >> cc[j];}find(cc, n, ans1, ans2);cout << cc[ans1];cout << cc[ans2];delete[] cc;}return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

孩子很内向,是不是自闭症?

作为星启帆寄宿制自闭症学校的老师&#xff0c;我深知内向与自闭症之间存在着本质的区别&#xff0c;尽管两者在社交表现上可能有一定的相似性。 首先&#xff0c;内向是一种性格特质&#xff0c;表现为个体在社交场合中相对安静、羞涩&#xff0c;更喜欢独处或与小范围的人交往…

Webpack: Loader开发 (1)

概述 如何扩展 Webpack&#xff1f;有两种主流方式&#xff0c;一是 Loader —— 主要负责将资源内容翻译成 Webpack 能够理解、处理的 JavaScript 代码&#xff1b;二是 Plugin —— 深度介入 Webpack 构建过程&#xff0c;重塑 构建逻辑。 相对而言&#xff0c;Loader 的职责…

Zookeeper分布式锁原理说明【简单易理解】

Zookeeper 非公平锁/公平锁/共享锁 。 1.zookeeper分布式锁加锁原理 如上实现方式在并发问题比较严重的情况下&#xff0c;性能会下降的比较厉害&#xff0c;主要原因是&#xff0c;所有的连接都在对同一个节点进行监听&#xff0c;当服务器检测到删除事件时&#xff0c;要通知…

人脸识别课堂签到系统【PyQt5实现】

人脸识别签到系统 1、运用场景 课堂签到,上班打卡,进出门身份验证。 2、功能类别 人脸录入,打卡签到,声音提醒,打卡信息导出,打包成exe可执行文件 3、技术栈 python3.8,sqlite3,opencv,face_recognition,PyQt5,csv 4、流程图 1、导入库 2、编写UI界面 3、打…

HackTheBox----Editorial

Editorial 测试过程 1 信息收集 NMAP端口扫描 nmap -sC -sV 10.10.11.20服务器开启了 22、80 端口 80 端口测试 服务器只开启了 22 和 80 端口&#xff0c;先从 80 端口开始进行测试 echo "10.10.11.20 editorial.htb" | sudo tee -a /etc/hostspublish with us…

SwiftData 模型对象的多个实例在 SwiftUI 中不能及时同步的解决

概览 我们已经知道,用 CoreData 在背后默默支持的 SwiftUI 视图在使用 @FetchRequest 来查询托管对象集合时,若查询结果中的托管对象在别处被改变将不会在 FetchedResults 中得到及时的刷新。 那么这一“囧境”在 SwiftData 里是否也会“卷土重来”呢?空说无益,就让我们在…

RK3588编译rkmpp,拉取海康威视网络摄像头264码流并运行yolo

硬件&#xff1a;EVB评估版 SOC&#xff1a;Rockchip RK3588 背景&#xff1a; 由于项目需要&#xff0c;需要拉取264码流&#xff0c;并通过将yolov5s.pt将模型转化为rknn模型&#xff0c;获取模型分析结果。取流可以通过软件解码或者硬件解码&#xff0c;硬件解码速度更快&…

Java版Flink使用指南——安装Flink和使用IntelliJ制作任务包

大纲 安装Flink操作系统安装JDK安装Flink修改配置启动Flink测试 使用IntelliJ制作任务包新建工程Archetype 编写测试代码打包测试 参考资料 在《0基础学习PyFlink》专题中&#xff0c;我们熟悉了Flink的相关知识以及Python编码方案。这个系列我们将使用相对主流的Java语言&…

LabVIEW在自动化测试项目中的推荐架构

在自动化测试项目中&#xff0c;推荐使用LabVIEW的生产者-消费者&#xff08;Producer-Consumer&#xff09;架构。这种架构利用队列实现数据的异步传输和处理&#xff0c;提供了高效、稳定和可扩展的解决方案。其主要优点包括&#xff1a;实现数据采集与处理的解耦、提高系统响…

中国IDC圈探访北京•光子1号金融算力中心

今天&#xff0c;“AI”、“大模型”是最炙手可热的话题&#xff0c;全球有海量人群在工作生活中使用大模型&#xff0c;大模型产品涉及多模态&#xff0c;应用范围已涵盖电商、传媒、金融、短视频、制造等众多行业。 而回看2003年的互联网记忆&#xff0c; “上网”“在线”是…

【C语言】C语言可以做什么?

C语言作为一种高效、灵活且具有底层控制能力的编程语言&#xff0c;在软件开发的多个领域中得到了广泛应用。以下是C语言在主要应用领域中的总结&#xff1a; 1. 操作系统开发 1.1 操作系统内核 C语言因其高效性和底层硬件控制能力&#xff0c;被广泛用于编写操作系统内核。…

【LVGL-SquareLine Studio】

LVGL-SquareLine Studio ■ SquareLine Studio-官网下载地址■ SquareLine Studio-参考博客■ SquareLine Studio-安装■ SquareLine Studio-汉化■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio- ■ SquareLine S…

C++基础(十一):STL简介

从今天开始&#xff0c;我们正式步入STL的学习&#xff0c;STL&#xff08;标准模板库&#xff0c;Standard Template Library&#xff09;是C标准库的重要组成部分&#xff0c;提供了一系列通用的类和函数模板&#xff0c;包括容器、算法、迭代器等。它的设计极大地提高了代码…

[leetcode hot 150]第一百三十题,被围绕的区域

题目&#xff1a; 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 X 和 O 组成&#xff0c;捕获 所有 被围绕的区域&#xff1a; 连接&#xff1a;一个单元格与水平或垂直方向上相邻的单元格连接。区域&#xff1a;连接所有 0 的单元格来形成一个区域。围绕&#xff1a…

linux,docker,k8s常见命令

Linux 日志被删除查询日志 找到进程jps cd/proc/{pid}/fd su admin ls -lh|grep 文件名 在日期前的为id 然后tail -f id 后台运行 nohup & 删除文件 rm -f /opt/kibana-7.6.0-linux-x86_64.tar.gz 删除文件夹 rm -rf /opt/kibana-7.6.0-linux-x86_64 复制文件…

C++第一弹 -- C++基础语法上(命名空间 输入输出 缺省参数 函数重载 引用)

目录 前言一. C关键字(C98)二. 命名空间1.命名空间的定义2.命名空间的使用3.其它部分 三. C输入&输出四. 缺省参数1. 缺省参数的概念2.缺省参数的分类 五. 函数重载1.函数重载的概念2. 为什么C支持函数重载, 而C语言不支持重载呢? 六. 引用1.引用的概念2.引用的特性3.常引…

通过AIS实现船舶追踪与照射

前些天突然接到个紧急的项目&#xff1a;某处需要实现对夜航船只进行追踪并用激光灯照射以保障夜航安全。这个项目紧急到什么程度呢&#xff1f;&#xff01;现场激光灯都安装好了&#xff0c;还有三个星期就要验收了&#xff0c;但上家没搞定就甩给我们了:( 从技术上看&#…

mysql5.6写定时备份脚本

文章目录 设置脚本创建备份脚本配置执行权限配置定时任务打开crontab编辑器配置定时任务和执行脚本 查看路径下备份出来的数据内容20240706130701_test.sql文件内容 设置脚本 创建备份脚本 #!/bin/bash# 定义数据库连接参数 DB_USER"root" DB_PASSWORD"root&q…

Java应用系统设计与实现--学生信息管理系统(附解决方案源码)

一、实验目的及要求 1.1实验目的 掌握Java GUI编程技术&#xff0c;了解Swing框架的使用。 掌握MySQL数据库的基本操作&#xff0c;了解如何在Java中连接和操作数据库。 掌握用户权限管理的基本概念和实现方法。 提升综合运用所学知识设计和实现一个完整应用系统的能力…

windows机器免密登录linux主机

1. 正常连接需要输入密码 ssh root1.1.1.1 2. 在Windows上生成SSH密钥对&#xff08;如果你还没有的话&#xff09;&#xff1a; ssh-keygen 3. scp将id_rsa.pub传输到对应的主机 4.对应机器上查看 5.从windows上免密登录