深圳大学计软《面向对象的程序设计》实验11 多继承
A. 在职研究生(多重继承)
题目描述
1、建立如下的类继承结构:
1)定义一个人员类CPeople,其属性(保护类型)有:姓名、性别、年龄;
2)从CPeople类派生出学生类CStudent,添加属性:学号和入学成绩;
3)从CPeople类再派生出教师类CTeacher,添加属性:职务、部门;
4)从CStudent和CTeacher类共同派生出在职研究生类CGradOnWork,添加属性:研究方向、导师;
2、分别定义以上类的构造函数、输出函数print及其他函数(如需要)。
3、在主函数中定义各种类的对象,并测试之。
输入
第一行:姓名性别年龄
第二行:学号成绩
第三行:职务部门
第四行:研究方向导师
输出
第一行:People:
第二行及以后各行:格式见Sample
输入样例1
wang-li m 23
2012100365 92.5
assistant computer
robot zhao-jun
输出样例1
People:
Name: wang-li
Sex: m
Age: 23
Student:
Name: wang-li
Sex: m
Age: 23
No.: 2012100365
Score: 92.5
Teacher:
Name: wang-li
Sex: m
Age: 23
Position: assistant
Department: computer
GradOnWork:
Name: wang-li
Sex: m
Age: 23
No.: 2012100365
Score: 92.5
Position: assistant
Department: computer
Direction: robot
Tutor: zhao-jun
AC代码
#include<bits/stdc++.h>
using namespace std;class CPeople {
protected:string name;string sex;int age;
public:CPeople(string n, string s, int a) :name(n), sex(s), age(a) {}void print() {cout << "People:" << endl;cout << "Name: " << name << endl;cout << "Sex: " << sex << endl;cout << "Age: " << age << endl;cout << endl;}
};class CStudent :virtual public CPeople {
protected:string id;double grade;
public:CStudent(string n, string s, int a, string id, double g) :CPeople(n, s, a), id(id), grade(g) {}void print() {cout << "Student:" << endl;cout << "Name: " << name << endl;cout << "Sex: " << sex << endl;cout << "Age: " << age << endl;cout << "No.: " << id << endl;cout << "Score: " << grade << endl;cout << endl;}
};class CTeacher :virtual public CPeople {
protected:string position, department;
public:CTeacher(string n, string s, int a, string p, string d) :CPeople(n, s, a), position(p), department(d) {}void print() {cout << "Teacher:" << endl;cout << "Name: " << name << endl;cout << "Sex: " << sex << endl;cout << "Age: " << age << endl;cout << "Position: " << position << endl;cout << "Department: " << department << endl;cout << endl;}
};class CGradOnWork :public CStudent, public CTeacher {
protected:string direction, tutor;
public:CGradOnWork(string n, string s, int a, string id, double g, string p, string d, string dir, string tu) :CPeople(n, s, a),CStudent(n, s, a, id, g),CTeacher(n, s, a, p, d),direction(dir),tutor(tu){}void print() {cout << "GradOnWork:" << endl;cout << "Name: " << name << endl;cout << "Sex: " << sex << endl;cout << "Age: " << age << endl;cout << "No.: " << id << endl;cout << "Score: " << grade << endl;cout << "Position: " << position << endl;cout << "Department: " << department << endl;cout << "Direction: " << direction << endl;cout << "Tutor: " << tutor << endl;cout << endl;}};int main() {string s1, s2;int s3;string s4;double s5;string s6, s7, s8, s9;cin >> s1 >> s2 >> s3 >> s4 >> s5 >> s6 >> s7 >> s8 >> s9;CPeople(s1, s2, s3).print();CStudent(s1, s2, s3, s4, s5).print();CTeacher(s1, s2, s3, s6, s7).print();CGradOnWork c(s1, s2, s3, s4, s5, s6, s7, s8, s9);c.print();return 0;
}
B. 交通工具(多重继承)
题目描述
1、建立如下的类继承结构:
1)一个车类CVehicle作为基类,具有max_speed、speed、weight等数据成员,display()等成员函数
2)从CVehicle类派生出自行车类CBicycle,添加属性:高度height
3)从CVehicle类派生出汽车类CMotocar,添加属性:座位数seat_num
4)从CBicycle和CMotocar派生出摩托车类CMotocycle
2、分别定义以上类的构造函数、输出函数display及其他函数(如需要)。
3、在主函数中定义各种类的对象,并测试之,通过对象调用display函数产生输出。
输入
第一行:最高速度 速度 重量 第二行:高度 第三行:座位数
输出
第一行:Vehicle: 第二行及以后各行:格式见Sample
输入样例1
100 60 20
28
2
输出样例1
Vehicle:
max_speed:100
speed:60
weight:20
Bicycle:
max_speed:100
speed:60
weight:20
height:28
Motocar:
max_speed:100
speed:60
weight:20
seat_num:2
Motocycle:
max_speed:100
speed:60
weight:20
height:28
seat_num:2
AC代码
#include<bits/stdc++.h>
using namespace std;class CVehicle {
protected:int max_speed, speed, weight;
public:CVehicle(int ms, int sp, int we) :max_speed(ms), speed(sp), weight(we) {}void display() {cout << "Vehicle:" << endl;cout << "max_speed:" << max_speed << endl;cout << "speed:" << speed << endl;cout << "weight:" << weight << endl;cout << endl;}
};class CBicycle :virtual public CVehicle {
protected:int height;
public:CBicycle(int ms, int sp, int we, int h) :CVehicle(ms, sp, we),height(h) {}void display() {cout << "Bicycle:" << endl;cout << "max_speed:" << max_speed << endl;cout << "speed:" << speed << endl;cout << "weight:" << weight << endl;cout << "height:" << height << endl;cout << endl;}
};class CMotocar :virtual public CVehicle {
protected:int seat_num;
public:CMotocar(int ms, int sp, int we, int sn) :CVehicle(ms, sp, we),seat_num(sn) {}void display() {cout << "Motocar:" << endl;cout << "max_speed:" << max_speed << endl;cout << "speed:" << speed << endl;cout << "weight:" << weight << endl;cout << "seat_num:" << seat_num << endl;cout << endl;}
};class CMotocycle :public CBicycle, public CMotocar {
public:CMotocycle(int ms, int sp, int we, int h, int sn) :CVehicle(ms, sp, we),CBicycle(ms, sp, we, h),CMotocar(ms, sp, we, sn) {}void display() {cout << "Motocycle:" << endl;cout << "max_speed:" << max_speed << endl;cout << "speed:" << speed << endl;cout << "weight:" << weight << endl;cout << "height:" << height << endl;cout << "seat_num:" << seat_num << endl;cout << endl;}
};int main() {int a, b, c, d, e;cin >> a >> b >> c >> d >> e;CVehicle(a, b, c).display();CBicycle(a, b, c, d).display();CMotocar(a, b, c, e).display();CMotocycle(a,b,c,d,e).display();return 0;
}
C. 商旅信用卡(多重继承)
题目描述
某旅游网站(假设旅程网)和某银行推出旅游综合服务联名卡—旅程信用卡,兼具旅程会员卡和银行信用卡功能。
旅程会员卡,有会员卡号(int)、旅程积分(int),通过会员卡下订单,按订单金额累计旅程积分。
信用卡,有卡号(int)、姓名(string)、额度(int)、账单金额(float)、信用卡积分(int)。------请注意数据类型。
信用卡消费金额m,若加已有账单金额超额度,则不做操作;否则,账单金额+m,信用卡积分按消费金额累加。
信用卡退款m,账单金额-m,信用卡积分减去退款金额。
通过旅程信用卡在旅程网下单,旅程积分和信用卡积分双重积分(即旅程积分和信用卡积分同时增加)。
旅程信用卡可以按旅程积分:信用卡积分= 1:2 的比例将信用卡积分兑换为旅程积分。
初始假设信用卡积分、旅程积分、账单金额为0。
根据上述内容,定义旅程会员卡类、信用卡类,从两者派生出旅程信用卡类并定义三个类的构造函数和其它所需函数。
生成旅程信用卡对象,输入卡信息,调用对象成员函数完成旅程网下单、信用卡刷卡、信用卡退款、信用卡积分兑换为旅程积分等操作。
输入
第一行:输入旅程会员卡号 信用卡号 姓名 额度
第二行:测试次数n
第三行到第n+2行,每行:操作 金额或积分
o m(旅程网下订单,订单金额m)
c m(信用卡消费,消费金额m)
q m (信用卡退款,退款金额m)
t m(积分兑换,m信用卡积分兑换为旅程积分)
输出
输出所有操作后旅程信用卡的信息:
旅程号 旅程积分
信用卡号 姓名 账单金额 信用卡积分
输入样例1
1000 2002 lili 3000
4
o 212.5
c 300
q 117.4
t 200
输出样例1
1000 312
2002 lili 395.1 195
AC代码
#include<bits/stdc++.h>
using namespace std;class Member {
protected:int id;int score;
public:Member(int i, int s = 0) :id(i), score(s) {}void display() {cout << id << " " << score << endl;}
};class Credit {
protected:int id;string name;int balance;//额度float value;//账单金额int score;
public:Credit(int i, string n, int b) :id(i),name(n),balance(b),value(0),score(0) {}void display() {cout << id << " " << name << " " << value << " " << score << endl;}
};class MyClass :public Member,public Credit
{
public:MyClass(int mid, int cid, string name, int ba) :Member(mid),Credit(cid, name, ba) {}void o() {float m;cin >> m;if (m + value > balance)return;value += m;Member::score += (int)m;Credit::score += (int)m;}void c() {float m;cin >> m;if (m + value > balance)return;value += m;Credit::score += (int)m;}void q() {float m;cin >> m;Credit::score -= (int)m;value -= m;}void t() {float m;cin >> m;Credit::score -= m;Member::score += m / 2.0;}void display() {Member::display();Credit::display();}};int main() {int s1, s2, s4;string s3;cin >> s1 >> s2 >> s3 >> s4;MyClass mm(s1, s2, s3, s4);int n;cin >> n;while (n--) {char c;cin >> c;switch (c){case 'o':mm.o();break;case 'c':mm.c();break;case 'q':mm.q();break;case 't':mm.t();default:break;}}mm.display();
}
D. 日程安排(多继承+友元函数)
题目描述
已有一个日期类Date,包括三个protected成员数据year,month,day;
另有一个时间类Time,包括三个protected成员数据hour,minute,second,12小时制;
现需根据输入的日程的日期时间,安排前后顺序,为此以Date类和Time类为基类,建立一个日程类Schedule,包括以下新增成员:
int ID;//日程的ID
定义友元函数bool before(const Schedule & s1,const Schedule & s2);//判断日程s1时间是否早于日程s2。
编写主函数,根据输入的各项日程信息,建立日程对象,找出需要最早安排的日程(日期和时间相等时,输出较早建立的日程),并输出该日程对象的信息。
输入
测试输入包含若干日程,每个日程占一行(日程ID日程日期日程时间)。
当读入0时输入结束,相应的结果不要输出。
输出
时间最靠前的日程
输入样例1
1 2019 6 27 8 0 1
2 2019 6 28 8 0 1
3 2020 1 1 8 0 0
0
输出样例1
The urgent schedule is No.1: 2019/06/27 08:00:01
AC代码
#include<bits/stdc++.h>
using namespace std;class Date {
protected:int year, month, day;
public:Date(int y,int m,int d) {year = y;month = m;day = d;}void print()const {cout << setfill('0') << setw(2) << year << "/" << setfill('0') << setw(2) << month << "/" << setfill('0') << setw(2) << day;}
};class Time {
protected:int hour, minute, second;
public:Time(int h,int m,int s) {hour = h;minute = m;second = s;}void print()const {cout << setfill('0') << setw(2) << hour << ":" << setfill('0') << setw(2) << minute << ":" << setfill('0') << setw(2) << second;}
};class Schedule :public Date,public Time
{int id;public:Schedule(int id,int y,int m,int d,int h,int min,int s):Date(y,m,d),Time(h,min,s){this->id = id;}void print()const {cout << "The urgent schedule is No." << id << ": ";Date::print();cout << " ";Time::print();cout << endl;}bool operator < (const Schedule& s) const {if (year != s.year)return year < s.year;if (month != s.month)return month < s.month;if (day != s.day)return day < s.day;if (hour != s.hour)return hour < s.hour;if (minute != s.minute)return minute < s.minute;if (second != s.second)return second < s.second;}friend bool before(const Schedule& s1,const Schedule& s2) {return s1 < s2;}
};int main() {string s;set<Schedule>ss;while (getline(cin, s)) {if (s[0] == '0')break;istringstream fin(s);int a, b, c, d, e, f, g;fin >> a >> b >> c >> d >> e >> f >> g;Schedule sss(a, b, c, d, e, f, g);ss.insert(sss);}(*ss.begin()).print();return 0;
}
E. 计算宝宝帐户收益(多重继承)
题目描述
定义一个类CPeople,具有身份号码(id,char[20])和姓名(name,char[10])两个数据成员,从CPeople类中再派生出CInternetUser类和CBankCustomer类,然后再从CInternetUser和CBankCustomer多重继承派生出CInternetBankCustomer类。
CInternetUser类有登录密码(password,char[20])属性和注册register(设置id, name和password),登录login(判断输入的id与password是否与对象注册的相同)成员函数。
CBankCustomer类有余额(balance,double)属性和开户openAccount(设置客户姓名和id),存款deposit,取款withdraw以及缺省的构造函数。
CInternetBankCustomer类包括有余额, 前一日余额, 当日收益,今日万元收益和上一日万元收益等5个数据成员,成员函数有缺省构造函数,存款和取款,设置万元收益,计算当日收益,登陆login(判断输入的id和密码是否与互联网用户的相同,同时从CBankCustomer继承的用户姓名和id要与从CInternetUser继承的相同)。CInternetBankCustomer类对象当日存款不计算收益,第2天开始才能计算收益,当日取款部分无收益。
可参照如下所示的主函数来测试并设计输入数据:
void main()
{
int t, no_of_days, i;
char i_xm[20], i_id[20], i_mm[20], b_xm[20], b_id[20], ib_id[20], ib_mm[20];
double money, interest;
char op_code;
//输入测试案例数t
cin >> t;
while (t–)
{
//输入互联网用户注册时的用户名,id,登陆密码
cin >> i_xm >> i_id >> i_mm;
//输入银行开户用户名,id
cin >> b_xm >> b_id;
//输入互联网用户登陆时的id,登陆密码
cin >> ib_id >> ib_mm;
CInternetBankCustomer ib_user;
ib_user.registerUser(i_xm, i_id, i_mm);
ib_user.openAccount(b_xm, b_id);
if (ib_user.login(ib_id, ib_mm) == 0) //互联网用户登陆,若id与密码不符;以及银行开户姓名和id与互联网开户姓名和id不同
{
cout << “Password or ID incorrect” << endl;
continue;
}
//输入天数
cin >> no_of_days;
for (i=0; i < no_of_days; i++)
{
//输入操作代码, 金额, 当日万元收益
cin >> op_code >> money >> interest;
switch (op_code)
{
case ‘S’: //从银行向互联网金融帐户存入
case ‘s’:
if (ib_user.deposit(money) == 0)
{
cout << “Bank balance not enough” << endl;
continue;
}
break;
case ‘T’: //从互联网金融转入银行帐户
case ‘t’:
if (ib_user.withdraw(money) == 0)
{
cout << “Internet bank balance not enough” << endl;
continue;
}
break;
case ‘D’: //直接向银行帐户存款
case ‘d’:
ib_user.CBankCustomer::deposit(money);
break;
case ‘W’: //直接从银行帐户取款
case ‘w’:
if (ib_user.CBankCustomer::withdraw(money) == 0)
{
cout << “Bank balance not enough” << endl;
continue;
}
break;
default:
cout << “Illegal input” << endl;
continue;
}
ib_user.setInterest(interest);
ib_user.calculateProfit();
//输出用户名,id
//输出银行余额
//输出互联网金融账户余额
ib_user.print();
}
}
}
输入
输入用户例数
输入第1个互联网用户注册时的用户名,id,登陆密码
输入第1个用户银行开户用户名,id
输入第1个互联网用户登陆时的id,登陆密码
输入第1个用户操作天数
循环输入操作代码(S,T,D,W) 金额 当日万元收益
…
输出
输出第1个用户名,id
输出第1个用户银行余额
输出第1个互联网金融账户余额
…
输入样例1
2
zhangsan 1234567890 222222
zhangsan 1234567890
1234567890 222222
4
D 15000 0
s 8000 1.5
T 3000 1.55
w 2000 0
lisi 2014150000 abcdef
lisi 2014150000
2014150000 123456
输出样例1
Name: zhangsan ID: 1234567890
Bank balance: 15000
Internet bank balance: 0
Name: zhangsan ID: 1234567890
Bank balance: 7000
Internet bank balance: 8000
Name: zhangsan ID: 1234567890
Bank balance: 10000
Internet bank balance: 5001.2
Name: zhangsan ID: 1234567890
Bank balance: 8000
Internet bank balance: 5001.98
Password or ID incorrect
AC代码
#include<bits/stdc++.h>
using namespace std;class CPeople {
protected:string id, name;
public:CPeople() {}CPeople(string id, string name) :id(id),name(name){}};class CInternetUser :virtual public CPeople
{
protected:string password;
public:CInternetUser() {}CInternetUser(string name, string id, string password) :CPeople(id, name),password(password){}bool login(string id, string passward) {return this->id == id && this->password == passward;}void registerUser(string name, string id, string password) {this->name = name;this->id = id;this->password = password;}};class CBankCustomer :virtual public CPeople
{
protected:double balance;
public:CBankCustomer() {balance = 0;}CBankCustomer(string name, string id, double balance) :CPeople(name, id),balance(balance){}void openAccount(string name, string id) {this->name = name;this->id = id;}void deposit(double v) {balance += v;}bool withdraw(double v) {//这里需要判断?if (v > balance)return false;balance -= v;return true;}};class CInternetBankCustomer :public CInternetUser,public CBankCustomer
{double _balance;double yesBalance;//前一日余额double profit;//当日收益double profitW;//今日万元收益double yesprofitW;//上一日万元收益double vain;
public:CInternetBankCustomer() {vain = profit = yesBalance = _balance = 0;}//设置万元收益void setInterest(double interest) {profitW = interest / 10000.0;}void calculateProfit() {profit = yesBalance * yesprofitW;_balance += profit;}void print() {cout << "Name: " << name << " ID: " << id << endl;cout << "Bank balance: " << balance << endl;cout << "Internet bank balance: " << _balance << endl;cout << endl;yesBalance = _balance;yesprofitW = profitW;}// 银行 -> 互联网bool deposit(double v) {if (v > balance)return false;balance -= v;_balance += v;return true;}//互联网 -> 银行bool withdraw(double v) {if (v > _balance)return false;_balance -= v;balance += v;return true;}};int main()
{int t, no_of_days, i;string i_xm, i_id, i_mm, b_xm, b_id, ib_id, ib_mm;double money, interest;char op_code;//输入测试案例数tcin >> t;while (t--){//输入互联网用户注册时的用户名,id,登陆密码cin >> i_xm >> i_id >> i_mm;//输入银行开户用户名,idcin >> b_xm >> b_id;//输入互联网用户登陆时的id,登陆密码cin >> ib_id >> ib_mm;CInternetBankCustomer ib_user;ib_user.registerUser(i_xm, i_id, i_mm);ib_user.openAccount(b_xm, b_id);if (ib_user.login(ib_id, ib_mm) == 0) //互联网用户登陆,若id与密码不符;以及银行开户姓名和id与互联网开户姓名和id不同{cout << "Password or ID incorrect" << endl;continue;}//输入天数cin >> no_of_days;for (i = 0; i < no_of_days; i++){//输入操作代码, 金额, 当日万元收益cin >> op_code >> money >> interest;switch (op_code){case 'S': //从银行向互联网金融帐户存入case 's':if (ib_user.deposit(money) == 0){cout << "Bank balance not enough" << endl;continue;}break;case 'T': //从互联网金融转入银行帐户case 't':if (ib_user.withdraw(money) == 0){cout << "Internet bank balance not enough" << endl;continue;}break;case 'D': //直接向银行帐户存款case 'd':ib_user.CBankCustomer::deposit(money);break;case 'W': //直接从银行帐户取款case 'w':if (ib_user.CBankCustomer::withdraw(money) == 0){cout << "Bank balance not enough" << endl;continue;}break;default:cout << "Illegal input" << endl;continue;}ib_user.setInterest(interest);ib_user.calculateProfit();//输出用户名,id//输出银行余额//输出互联网金融账户余额ib_user.print();}}
}
相关文章:
深圳大学计软《面向对象的程序设计》实验11 多继承
A. 在职研究生(多重继承) 题目描述 1、建立如下的类继承结构: 1)定义一个人员类CPeople,其属性(保护类型)有:姓名、性别、年龄; 2)从CPeople类派生出学生类CStudent,…...
并发变成实战-原子变量与非阻塞同步机制
文章目录1.锁的劣势2.硬件对并发的支持2.1 比较并交换2.2 非阻塞的计数器3.原子变量类3.1 原子变量是一种“更好的volatile”3.2 性能比较:锁与原子变量4.非阻塞算法4.1 非阻塞的栈4.2 非阻塞的链表4.3 ABA问题非阻塞算法设计和实现上要复杂的多,但在可伸…...
sql数据库常用操作指令
一、操作库-- 创建库create database db1;-- 创建库是否存在,不存在则创建create database if not exists db1;-- 查看所有数据库show databases;-- 查看某个数据库的定义信息 show create database db1; -- 修改数据库字符信息alter database db1 character set ut…...
4-1 定时任务的示例10个
文章目录前言基本命令与格式示例前言 Linux crontab 是用来定期执行程序的命令。当安装完成操作系统之后,默认都已经安装,并启动此任务调度命令。 crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 基…...
外贸建站多少钱才能达到预期效果?
外贸建站多少钱才能达到预期效果?这是每个外贸企业都会问的问题。作为一个做外贸建站多年的人,我有一些个人的操盘感想。 首先,我认为外贸建站的投资是非常必要的。 因为在现代社会,网站已经成为外贸企业开展业务的必要工具之一…...
【Java学习笔记】5.Java 基本数据类型
Java 基本数据类型 变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。 因此,通过定义不同类型的变量…...
InnoDB 死锁和问题排查
文章目录死锁(dead lock)示例 1问题排查查看连接的线程查看相关的表查看最近一次的死锁信息查看服务器的锁信息查看正在使用的表如何尽可能地避免死锁死锁(dead lock) 两个及以上的事务各自持有对方需要的锁,导致双方…...
tensorflow07——使用tf.keras搭建神经网络(Sequential顺序神经网络)——六步法——鸢尾花数据集分类
使用tf.keras搭建顺序神经网络 六步法——鸢尾花数据集分类 01 导入相关包 02 导入数据集,打乱顺序 03 建立Sequential模型 04 编译——确定优化器,损失函数,评测指标(用哪一种准确率) 05 训练模型——把各项参入填入…...
关于Java连接Hive,Spark等服务的Kerberos工具类封装
关于Java连接Hive,Spark等服务的Kerberos工具类封装 idea连接服务器的hive等相关服务的kerberos认证注意事项 idea 本地配置,连接服务器;进行kerberos认证,连接hive、HDFS、Spark等服务注意事项: 本地idea连接Hadoo…...
大数据框架之Hadoop:MapReduce(五)Yarn资源调度器
Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统。用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。 简言之,Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源&…...
uniapp实现地图点聚合功能
前言 在工作中接到的一个任务,在app端实现如下功能: 地图点聚合地图页面支持tab切换(设备、劳务、人员)支持人员搜索显示分布 但是uniapp原有的map标签不支持点聚合功能(最新的版本支持了点聚合功能)&am…...
经典分类模型回顾2—GoogleNet实现图像分类(matlab版)
GoogleNet是深度学习领域的一种经典的卷积神经网络,其在ImageNet图像分类任务上的表现十分优秀。下面是使用Matlab实现GoogleNet的图像分类示例。 1. 数据准备 在开始之前,需要准备一些图像数据用来训练和测试模型,可以从ImageNet等数据集中…...
Java经典面试题——谈谈 final、finally、finalize 有什么不同?
典型回答 final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以继承扩展, final 的变量是不可以修改的,而 final 的方法也是不可以重写的(override)。 finally 则是 Java 保…...
C#的Version类型值与SQL Server中二进制binary类型转换
使用C#语言编写的应用程序可以通过.NET Framework框架提供的Version类来控制每次发布的版本号,以便更好控制每次版本更新迭代。 版本号由两到四个组件组成:主要、次要、内部版本和修订。 版本号的格式如下所示, 可选组件显示在方括号 ([ 和…...
软测入门(五)接口测试Postman
Postman 一款Http接口收工测试工具。如果做自动化测试会使用jemter做。 安装 去官网下载即可。 https://www.postman.com/downloads/?utm_sourcepostman-home 功能介绍 页面上的单词基本上都能了解,不多介绍。 转代码&注释 可将接口的访问转为其他语言的…...
UWB通道选择、信号阻挡和反射对UWB定位范围和定位精度的影响
(一)介绍检查NLOS操作时需要考虑三个方面:(1)由于整体信号衰减,通信范围减小。(2)由于直接路径信号的衰减,导致直接路径检测范围的减小。(3)由于阻…...
linux基本功之列之wget命令实战
文章目录前言一. wget命令介绍二. 语法格式及常用选项三. 参考案例3.1 下载单个文件3.2 使用wget -o 下载文件并改名3.3 -c 参数,下载断开链接时,可以恢复下载3.4 wget后台下载3.5 使用wget下载整个网站四. 补充与汇总常见用法总结前言 大家好ÿ…...
学习ROS时针对gazebo相关的问题(重装与卸载是永远的神)
ResourceNotFound:gazebo_ros 错误解决 参考:https://blog.csdn.net/weixin_42591529/article/details/123869969 当将机器人加载到gazebo时,运行launch文件出现如下错误 这是由于缺少gazebo包所导致的。 解决办法:...
几个C语言容易忽略的问题
1 取模符号自增问题 我们不妨尝试写这样的程序 #include<stdio.h> int main(){int n,t5;printf("%d\n",7%(-3));//1printf("%d\n",(-7)%3);//-1while(--t)printf("%d\n",t);t5;while(t--)printf("%d\n",t);return 0; } 运行…...
CentOS 7.9安装Zabbix 4.4《保姆级教程》
CentOS 7.9安装Zabbix 4.4一、配置一览二、环境准备设置Selinux和firewalld设置软件源1.配置ustc CentOS-Base源2.安装zabbix 4.4官方源3.安装并更换epel源4.清除并生成缓存三、安装并配置Zabbix Server安装zabbix组件安装php安装mariadb并创建数据库修改zabbix_server.conf设置…...
路由器与交换机的区别(基础知识)
文章目录交换机路由器路由器和交换机的区别(1)工作层次不同(2)数据转发所依据的对象不同(3)传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域(4&#…...
Python基础学习9——函数
基本概念 函数是一种能够完成某项任务的封装工具。在数学中,函数是自变量到因变量的一种映射,通过某种方式能够使自变量的值变成因变量的值。其实本质上也是实现了某种值的转换的任务。 函数的定义 在python中,函数是利用def来进行定义&am…...
项目中的MD5、盐值加密
首先介绍一下MD5,而项目中用的是MD5和盐值来确保密码的安全性; 1. md5简介 md5的全称是md5信息摘要算法(英文:MD5 Message-Digest Algorithm ),一种被广泛使用的密码散列函数,可以产生一个128位…...
电商项目后端框架SpringBoot、MybatisPlus
后端框架基础 1.代码自动生成工具 mybatis-plus (1)首先需要添加依赖文件 <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.2</version></dependency><de…...
2023年03月IDE流行度最新排名
点击查看最新IDE流行度最新排名(每月更新) 2023年03月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多,这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…...
华为校招机试 - 数组取最小值(Java JS Python)
目录 题目描述 输入描述 输出描述 用例 题目解析 JavaScript算法源码 Java算法源码...
20 客户端服务订阅的事件机制剖析
Nacos客户端服务订阅的事件机制剖析 我们已经分析了Nacos客户端订阅的核心流程:Nacos客户端通过一个定时任务,每6秒从注册中心获取实例列表,当发现实例发生变化时,发布变更事件,订阅者进行业务处理,然后更…...
ThreadPoolExecutor中的addWorker方法
在看线程池源码的时候看到了这么一段代码 private boolean addWorker(Runnable firstTask, boolean core) {retry:for (int c ctl.get();;) {// Check if queue empty only if necessary.if (xxx)return false;for (;;) {if (xxx)return false;if (xxx)break retry;if (xxx)c…...
9 有线网络的封装
概述 IPC设备一般都带有网口,支持以有线网络方式接入NVR和其他平台。有线网络的使用比较简单,主要操作有:设置IP地址、子网掩码、网关、DHCP等。在封装有线网络前,我们需要先封装DHCP客户端管理类,用于管理各种网络的DHCP功能。 DHCP客户端管理类 DHCP客户端管理类的头文件…...
Linux----网络基础(2)--应用层的序列化与反序列化--守护进程--0226
文章中有使用封装好的头文件,可以在下面连接处查询。 Linux相关博文中使用的头文件_Gosolo!的博客-CSDN博客 1. 应用层 我们程序员写的一个个解决我们实际问题, 满足我们日常需求的网络程序, 都是在应用层 1.2 协议 我们在之前的套接字编程中使用的是…...
如何给网站添加音乐/seo技术分享博客
对一个dynamic工程,一般都是手动添加服务器,然后进行开发。有时候也可以利用eclipse的tomcat插件,使用起来还是挺方便的,只是配置的时候需要注意一些项目的配置,否则tomcat插件找不见运行时需要的classes文件等&#x…...
香港网站怎么做QQ第三方登录/写手接单平台
有种很方便的写法。typedef int *p;p pointer;这时直接把pointer带入原式中,取代p然后去掉typedef,得到的结果就是int * pointer;哈哈,这样直接替换就很直观多了。C语言语法简单,但内涵却博大精…...
福州官网网站建设/搜狗收录入口
在HTML界面开发中,经常会遇见JS对TABLE表格的操作,下面针对几种经常性的操作进行汇总: 第一:JS动态增加表格行数据 在body中定义一个空的Table <div id"detail" class"sub-title4" align"left"…...
天津电商网站建设/市场营销网络
在此示例中,您可以获取网页上所有出现的电子邮件地址。 如果您必须更改站点的特定页面或子部分的电子邮件地址,则很有用。 也可能对从网页上筛选爬网电子邮件地址有用,尽管这不是我在这里要实现的目标。 查看更多jQuery .each示例 。 i 不敏感…...
网站设计中 查询怎么做/手机优化器
1准备工作 , 加载apicloud 海康视频模块。 引入 SDK 重新生成项目测试 再config.xml写入appid 话不多说直接上代码 videoapi.require("haikangVideo");video.open({ip:ip,port:port,channel:1,user:name,pwd:pwd,fixedOn: api.frameName,fixed: true,rect : {x : …...
网站建设公司 北京/哪里注册域名最便宜
1、什么是 Maven 插件? 上一篇博客我们讲了 Maven 的生命周期,我们知道 Maven 的核心是生命周期,生命周期指定了 Maven 命令执行的流程顺序。但是真正实现流程的工程是由插件来完成的。 我们也可以说 Maven 是一个执行插件的框架,…...