C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计((一、二、三、四)的综合文章)

news2024/9/22 13:38:08

C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计((一、二、三、四)的综合文章)

  • 一、实验目的
  • 二、 实验内容
    • 2.1、实验内容1:通过下面的程序掌握各种格式转换符的正确使用方法
    • 2.2、实验内容2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积
    • 2.3、计算存款利息
    • 2.4、将"China”译成密码
  • 三、 实验步骤
  • 3.1、顺序程序设计实验题目1:通过下面的程序掌握各种格式转换符的正确使用方法的实验步骤
  • 3.2、顺序程序设计实验题目2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积的实验步骤
    • 3.2.1、定义宏
    • 3.2.2、定义变量
    • 3.2.3、输入圆的半径、高
    • 3.2.4、计算圆的周长、面积等参数
    • 3.2.5、输出圆的周长、面积等参数
    • 3.2.6、程序运行结果
  • 3.3、顺序程序设计实验题目3:计算存款利息的实验步骤
    • 3.3.1、变量的声明
    • 3.3.2、变量的赋值
    • 3.3.3、计算五种方案得到的本息和
    • 3.3.4、输出五种方案得到的本息和
    • 3.3.5、程序运行结果
  • 3.4、顺序程序设计实验题目4:将"China”译成密码的实验步骤
    • 3.4.1、变量的定义与赋初值
    • 3.4.2、将字符译成密码
    • 3.4.3、putchar与printf方式输出密码
    • 3.4.4、程序运行结果
  • 四、 实验总结
  • 五、 实验完整程序
    • 5.1、顺序程序设计实验题目1:通过下面的程序掌握各种格式转换符的正确使用方法的完整程序
    • 5.2、顺序程序设计实验题目2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积的完整程序
    • 5.3、顺序程序设计实验题目3:计算存款利息的实验完整程序
    • 5.4、顺序程序设计实验题目4:将"China”译成密码的实验步骤的完整程序

在这里插入图片描述

一、实验目的

(1) 掌握c语言中使用最多的一种语句一赋值语句的使用方法。
(2) 掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
(3) 进一步掌握编写程序和调试程序的方法。

二、 实验内容

在这里插入图片描述

2.1、实验内容1:通过下面的程序掌握各种格式转换符的正确使用方法

(1)通过下面的程序掌握各种格式转换符的正确使用方法。

① 输入以下程序:

#include <stdio.h>
int main()
{
	int a, b;
	float d, e;
	char cl, c2;
	double f, g;
	long m, n;
	unsigned int p, q;
	a = 61; b = 62;
	cl = 'a'; c2 = 'b';
	d = 3.56; e = -6.87;
	f = 3157.890121; g = 0.123456789;
	m = 50000; n = -60000;
	p = 32768; q = 40000;
	printf("a=%d,b=%d\ncl=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a, b, cl, c2, d, e);
	printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n", f, q, m, n, p, q);

}

② 运行此程序并分析结果。
③ 在此基础上,将程序第10〜14行改为

	cl = a; c2 = b;
	f = 3157.890121; g = 0.123456789;
	d = f; e = g;
	p = a = m = 50000; q = b = n = -60000;

运行程序,分析结果。
④ 用sizeof运算符分别检测程序中各类型的数据占多少字节。
例如,int型变量a的字节数为sizeof(a)或sizeof(int),用printf函数语句输出各类型变量的长度(字节数)。

2.2、实验内容2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积

(2)设圆半径r=l. 5,圆柱高九=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体 积。编程序,用scanf输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。

2.3、计算存款利息

(3)计算存款利息
有1000元,想存5年,可按以下5种办法存:
① 一次存5年期。
② 先存2年期,到期后将本息再存3年期。
③ 先存3年期,到期后将本息再存2年期。
④ 存1年期,到期后将本息存再存1年期,连续存5次。
⑤ 存活期存款。活期利息每一季度结算一次。
银行存款利率:请去银行査当日利率。
计算利息的公式如下
1年期定期存款利息为4.14%;
2年期定期存款利息为4.68%,
3年期定期存款利息为5.4%;
5年期定期存款利息为5.85%;
活期存款利息为0.72%(活期存款每一季度结算一次利息)。

如果r为年利率,n为存款年数,则计算本息和公式
1年期本息和:p=1000×(l + r);
n年期本息和:p=1000×(l + n×r);
存n次1年期的本息和:p=1000×(1+r)^n
活期存款本息和:p=1000× (1+r/4)^4n
说明:1000×(1+r/4)是一个季度的本息和。

2.4、将"China”译成密码

(4)编程序将"China"译成密码,密码规律是:用原来的字母后面第4个字母代替原来 的字母。例如,字母’A’后面第4个字母是’E’,用’E’代替’A’。因此,"China"应译为"Glmre"。 请编一程序,用赋初值的方法使cl,c2,c3,c4,c5这5个变量的值分别为'C','h','i','n','a', 经过运算,使 cl ,c2,c3 ,c4, c5 分别变为'G','l','m','r','e'。分别用 putchar 函数和 printf 函数输出这5个字符。
① 输入事先已编好的程序,并运行该程序。分析是否符合要求。
② 改变cl,c2,c3,c4,c5的初值为:'T'、'o'、'd'、'a'、'y',对译码规律做如下补充:'W''A'替,'X''B'代替,'Y''C'代替,'Z''D'代替。修改程序并运行。
③ 将译码规律修改为:将一个字母被它前面第4个字母代替,例如'E''A'代替,'Z''U'代替,'D''Z'代替,'C''Y'代替,'B''X'代替,'A''V'代替。修改程序并运行。

三、 实验步骤

在这里插入图片描述

3.1、顺序程序设计实验题目1:通过下面的程序掌握各种格式转换符的正确使用方法的实验步骤

(1)通过下面的程序掌握各种格式转换符的正确使用方法。

① 输入以下程序:

#include <stdio.h>
int main()
{
	int a, b;
	float d, e;
	char cl, c2;
	double f, g;
	long m, n;
	unsigned int p, q;
	a = 61; b = 62;
	cl = 'a'; c2 = 'b';
	d = 3.56; e = -6.87;
	f = 3157.890121; g = 0.123456789;
	m = 50000; n = -60000;
	p = 32768; q = 40000;
	printf("a=%d,b=%d\ncl=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a, b, cl, c2, d, e);
	printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n", f, q, m, n, p, q);

}

② 运行此程序并分析结果。

运行结果如下

在这里插入图片描述

  • 可以看到g、m、n、q、p的值输出不对,原因在于printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n", f, q, m, n, p, q);输出的f,后面应该为g,所以应该该为如下所示
	printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n\n", f, g, m, n, p, q);

运行结果如下

在这里插入图片描述

  • 可以看到,现在输出变量的数值完全正确。

③ 在此基础上,将程序第10〜14行改为

	cl = a; c2 = b;
	f = 3157.890121; g = 0.123456789;
	d = f; e = g;
	p = a = m = 50000; q = b = n = -60000;

运行程序,分析结果。

在此基础上,将程序第10〜14行改为如上的代码,运行结果为

a=50000,b=-60000
cl==,c2=>
d=3157.89,e=  0.12
f=    3157.890121,g= 0.123456789000
m=50000,n=-60000
p=50000,q=4294907296

在这里插入图片描述

④ 用sizeof运算符分别检测程序中各类型的数据占多少字节。
例如,int型变量a的字节数为sizeof(a)或sizeof(int),用printf函数语句输出各类型变量的长度(字节数)。

sizeof运算符检测程序中各类型的数据占多少字节的代码如下所示

	printf("sizeof(a)=%d字节,sizeof(b)=%d字节\n", sizeof(a), sizeof(b));
	printf("sizeof(c1)=%d字节,sizeof(c2)=%d字节\n", sizeof(cl), sizeof(c2));
	printf("sizeof(f)=%d字节,sizeof(g)=%d字节\n", sizeof(f), sizeof(g));
	printf("sizeof(m)=%d字节,sizeof(n)=%d字节\n", sizeof(m), sizeof(n));
	printf("sizeof(p)=%d字节,sizeof(q)=%d字节\n", sizeof(p), sizeof(q));

sizeof运算符检测程序中各类型的数据占多少字节的运行结果如下所示

在这里插入图片描述

3.2、顺序程序设计实验题目2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积的实验步骤

(2)设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体 积。编程序,用scanf输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。

3.2.1、定义宏

定义宏的代码如下所示

#define PI 3.1415926		// π

3.2.2、定义变量

定义变量的代码如下所示

	float R;				// 定义半径变量
	float Height;			// 定义高变量

	float CP;				// 定义圆周长变量
	float CA;				// 定义圆面积变量

	float BSA;				// 定义圆球表面积变量
	float BV;				// 定义圆球体积变量

	float CCV;				// 定义圆柱体变量

3.2.3、输入圆的半径、高

输入圆的半径、高的代码如下所示

	printf("输入圆的半径,圆柱的高: ");
	scanf("%f%f", &R, &Height);			// 输入圆的半径、高

3.2.4、计算圆的周长、面积等参数

计算圆的周长、面积等参数的代码如下所示

	CP = 2 * PI * R;				// 计算圆周长
	CA = PI * R * R;				// 计算圆面积

	BSA = 4 * PI * R * R;				// 计算圆球表面积
	BV = 3.0 / 4.0 * PI * R * R * R;		// 计算圆球体积

	CCV = PI * R * R * Height;			// 计算圆柱体积

3.2.5、输出圆的周长、面积等参数

输出圆的周长、面积等参数的代码如下所示

	// 输出数据
	printf("圆周长 =        %.2f\n", CP);
	printf("圆面积 =        %.2f\n", CA);

	printf("圆球表面积 =    %.2f\n", BSA);
	printf("圆球体积 =      %.2f\n", BV);

	printf("圆柱体积 =      %.2f\n", CCV);

3.2.6、程序运行结果

求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积的实验运行结果如下所示

在这里插入图片描述

3.3、顺序程序设计实验题目3:计算存款利息的实验步骤

(3)计算存款利息
有1000元,想存5年,可按以下5种办法存:
① 一次存5年期。
② 先存2年期,到期后将本息再存3年期。
③ 先存3年期,到期后将本息再存2年期。
④ 存1年期,到期后将本息存再存1年期,连续存5次。
⑤ 存活期存款。活期利息每一季度结算一次。
银行存款利率:请去银行査当日利率。

计算利息的公式如下

1年期定期存款利息为4.14%;
2年期定期存款利息为4.68%,
3年期定期存款利息为5.4%;
5年期定期存款利息为5.85%;
活期存款利息为0.72%(活期存款每一季度结算一次利息)。

如果r为年利率,n为存款年数。

则计算本息和公式

1年期本息和:p=1000×(l + r);
n年期本息和:p=1000×(l + n×r);
存n次1年期的本息和:p=1000×(1+r)^n
活期存款本息和:p=1000× (1+r/4)^4n
说明:1000×(1+r/4)是一个季度的本息和。

3.3.1、变量的声明

变量的声明 代码如下所示

// 变量的声明
float r5, r3, r2, r1, r0;		// 定期存款利息
float p, p1, p2, p3, p4, p5;	// 本息和

3.3.2、变量的赋值

变量的赋值 代码如下所示

// 变量的赋值
p = 1000;
r5 = 0.03;
r3 = 0.0275;
r2 = 0.021;
r1 = 0.015;
r0 = 0.0035;

3.3.3、计算五种方案得到的本息和

计算五种方案得到的本息和 代码如下所示

	// 计算五种方案得到的本息和
	p1 = p * (1 + r5 * 5);				  //一次存5年期
	p2 = p * (1 + 2 * r2) * (1 + 3 * r3); //先存2年期,到期后将本息再存3年期
	p3 = p * (1 + 3 * r3) * (1 + 2 * r2); //先存3年期,到期后将本息再存2年期
	p4 = p * pow(1 + r1, 5);			  //存1年期,到期后将本息再存1年期,连续存5次
	p5 = p * pow(1 + r0 / 4, 4 * 5);	  //存活期存款,活期利息每一季度结算一次

3.3.4、输出五种方案得到的本息和

输出五种方案得到的本息和 代码如下所示

	// 输出五种方案得到的本息和
	printf("p1= %f\n", p1);				  //输出按第1种方案得到的本息和
	printf("p2= %f\n", p2);				  //输出按第2种方案得到的本息和
	printf("p3= %f\n", p3);				  //输出按第3种方案得到的本息和
	printf("p4= %f\n", p4);				  //输出按第4种方案得到的本息和
	printf("p5= %f\n", p5);				  //输出按第5种方案得到的本息和

3.3.5、程序运行结果

计算存款利息的实验运行结果如下所示

在这里插入图片描述

  • 可以看到第一种方案的本息和是最高的。
    输出运行结果时,得到6位小数,连同整数部分有10 位数字,而一个float 型变量只能保证6位有效数字,后面几位是无意义的。而且在输出款额时,入们一般只要求精确到两位小数(角、分),因此可以在printf 函数中用%10.2格式符输出。

最后5个语句可改为如下所示

	// 输出五种方案得到的本息和
	printf("p1=%10.2f\n", p1); //输出按第1种方案得到的本息和
	printf("p2=%10.2f\n", p2); //输出按第2种方案得到的本息和
	printf("p3=%10.2f\n", p3); //输出按第3种方案得到的本息和
	printf("p4=%10.2f\n", p4); //输出按第4种方案得到的本息和
	printf("p5=%10.2f\n", p5); //输出按第5种方案得到的本息和

运行结果如下所示

在这里插入图片描述

3.4、顺序程序设计实验题目4:将"China”译成密码的实验步骤

(4)编程序将"China"译成密码,密码规律是:用原来的字母后面第4个字母代替原来 的字母。例如,字母’A’后面第4个字母是’E’,用’E’代替’A’。因此,"China"应译为"Glmre"。 请编一程序,用赋初值的方法使cl,c2,c3,c4,c5这5个变量的值分别为'C','h','i','n','a', 经过运算,使 cl ,c2,c3 ,c4, c5 分别变为'G','l','m','r','e'。分别用 putchar 函数和 printf 函数输出这5个字符。
① 输入事先已编好的程序,并运行该程序。分析是否符合要求。

3.4.1、变量的定义与赋初值

// 变量的定义与赋初值
	char c1 = 'C', c2 = 'h', c3 = 'i', c4 = 'n', c5 = 'a';

3.4.2、将字符译成密码

	// 将字符译成密码
	c1 = c1 + 4;
	c2 = c2 + 4;
	c3 = c3 + 4;
	c4 = c4 + 4;
	c5 = c5 + 4;

3.4.3、putchar与printf方式输出密码

	// putchar与printf方式输出密码
	printf("putchar方式输出China的密码是:");
	putchar(c1); 
	putchar(c2);
	putchar(c3);
	putchar(c4);
	putchar(c5);
	
	printf("\nprintf方式输出China的密码是: %c%c%c%c%c\n", c1, c2, c3, c4, c5);

3.4.4、程序运行结果

将"China”译成密码的实验运行结果如下

在这里插入图片描述

② 改变cl,c2,c3,c4,c5的初值为:'T'、'o'、'd'、'a'、'y',对译码规律做如下补充:'W''A'替,'X''B'代替,'Y''C'代替,'Z''D'代替。修改程序并运行。

  • 程序修改如下
	// 将字符译成密码
	c1 = c1 + 4;
	c2 = c2 + 4;
	c3 = c3 + 4;
	c4 = c4 + 4;
	c5 = c5 + 4 - 26;

运行结果

在这里插入图片描述

③ 将译码规律修改为:将一个字母被它前面第4个字母代替,例如'E''A'代替,'Z''U'代替,'D''Z'代替,'C''Y'代替,'B''X'代替,'A''V'代替。修改程序并运行。

  • 程序修改如下
	// 将字符译成密码
	c1 = c1 - 4;
	c2 = c2 - 4;
	c3 = c3 - 4 + 26;
	c4 = c4 - 4 + 25;
	c5 = c5 - 4;

运行结果

在这里插入图片描述

四、 实验总结

在这里插入图片描述

通过本次的实验:C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计的4个题目,掌握了如下的几点。

-(1)掌握c语言中使用最多的一种语句一赋值语句的使用方法。
-(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
-(3)进一步掌握编写程序和调试程序的方法。

五、 实验完整程序

在这里插入图片描述

5.1、顺序程序设计实验题目1:通过下面的程序掌握各种格式转换符的正确使用方法的完整程序

完整程序如下所示

#include <stdio.h>
int main()
{
	int a, b;
	float d, e;
	char cl, c2;
	double f, g;
	long m, n;
	unsigned int p, q;
	a = 61; b = 62;

	cl = 'a'; c2 = 'b';
	d = 3.56; e = -6.87;
	f = 3157.890121; g = 0.123456789;
	m = 50000; n = -60000;
	p = 32768; q = 40000;

	//cl = a; c2 = b;
	//f = 3157.890121; g = 0.123456789;
	//d = f; e = g;
	//p = a = m = 50000; q = b = n = -60000;

	printf("a=%d,b=%d\ncl=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a, b, cl, c2, d, e);
	/*printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n", f, q, m, n, p, q);*/

	printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n\n", f, g, m, n, p, q);

	printf("sizeof(a)=%d字节,sizeof(b)=%d字节\n", sizeof(a), sizeof(b));
	printf("sizeof(c1)=%d字节,sizeof(c2)=%d字节\n", sizeof(cl), sizeof(c2));
	printf("sizeof(f)=%d字节,sizeof(g)=%d字节\n", sizeof(f), sizeof(g));
	printf("sizeof(m)=%d字节,sizeof(n)=%d字节\n", sizeof(m), sizeof(n));
	printf("sizeof(p)=%d字节,sizeof(q)=%d字节\n", sizeof(p), sizeof(q));
}

5.2、顺序程序设计实验题目2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积的完整程序

完整程序如下所示

#define _CRT_SECURE_NO_WARNINGS

#define PI 3.1415926		// π

#include <stdio.h>
int main()
{
	float R;				// 定义半径变量
	float Height;			// 定义高变量

	float CP;				// 定义圆周长变量
	float CA;				// 定义圆面积变量

	float BSA;				// 定义圆球表面积变量
	float BV;				// 定义圆球体积变量

	float CCV;				// 定义圆柱体变量

	printf("输入圆的半径,圆柱的高: ");
	scanf("%f%f", &R, &Height);			// 输入圆的半径、高

	CP = 2 * PI * R;				// 计算圆周长
	CA = PI * R * R;				// 计算圆面积

	BSA = 4 * PI * R * R;				// 计算圆球表面积
	BV = 3.0 / 4.0 * PI * R * R * R;		// 计算圆球体积

	CCV = PI * R * R * Height;			// 计算圆柱体积

	// 输出数据
	printf("圆周长 =        %.2f\n", CP);
	printf("圆面积 =        %.2f\n", CA);

	printf("圆球表面积 =    %.2f\n", BSA);
	printf("圆球体积 =      %.2f\n", BV);

	printf("圆柱体积 =      %.2f\n", CCV);
	return 0;
}

5.3、顺序程序设计实验题目3:计算存款利息的实验完整程序

完整程序如下所示

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <math.h>

int main()
{
	// 变量的声明
	float r5, r3, r2, r1, r0;		// 定期存款利息
	float p, p1, p2, p3, p4, p5;	// 本息和

	// 变量的赋值
	p = 1000;
	r5 = 0.03;
	r3 = 0.0275;
	r2 = 0.021;
	r1 = 0.015;
	r0 = 0.0035;

	// 计算五种方案得到的本息和
	p1 = p * (1 + r5 * 5);				  //一次存5年期
	p2 = p * (1 + 2 * r2) * (1 + 3 * r3); //先存2年期,到期后将本息再存3年期
	p3 = p * (1 + 3 * r3) * (1 + 2 * r2); //先存3年期,到期后将本息再存2年期
	p4 = p * pow(1 + r1, 5);			  //存1年期,到期后将本息再存1年期,连续存5次
	p5 = p * pow(1 + r0 / 4, 4 * 5);	  //存活期存款,活期利息每一季度结算一次

	// 输出五种方案得到的本息和
	//printf("p1= %f\n", p1);				  //输出按第1种方案得到的本息和
	//printf("p2= %f\n", p2);				  //输出按第2种方案得到的本息和
	//printf("p3= %f\n", p3);				  //输出按第3种方案得到的本息和
	//printf("p4= %f\n", p4);				  //输出按第4种方案得到的本息和
	//printf("p5= %f\n", p5);				  //输出按第5种方案得到的本息和

	// 输出五种方案得到的本息和
	printf("p1=%10.2f\n", p1); //输出按第1种方案得到的本息和
	printf("p2=%10.2f\n", p2); //输出按第2种方案得到的本息和
	printf("p3=%10.2f\n", p3); //输出按第3种方案得到的本息和
	printf("p4=%10.2f\n", p4); //输出按第4种方案得到的本息和
	printf("p5=%10.2f\n", p5); //输出按第5种方案得到的本息和

	return 0;
}

5.4、顺序程序设计实验题目4:将"China”译成密码的实验步骤的完整程序

完整程序如下所示

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main()
{
	// 变量的定义与赋初值
	/*char c1 = 'C', c2 = 'h', c3 = 'i', c4 = 'n', c5 = 'a';*/

	// 变量的定义与赋初值
	char c1 = 'T', c2 = 'o', c3 = 'd', c4 = 'a', c5 = 'y';

	// 将字符译成密码
	//c1 = c1 + 4;
	//c2 = c2 + 4;
	//c3 = c3 + 4;
	//c4 = c4 + 4;
	//c5 = c5 + 4;

	// 将字符译成密码
	//c1 = c1 + 4;
	//c2 = c2 + 4;
	//c3 = c3 + 4;
	//c4 = c4 + 4;
	//c5 = c5 + 4 - 26;

	// 将字符译成密码
	c1 = c1 - 4;
	c2 = c2 - 4;
	c3 = c3 - 4 + 26;
	c4 = c4 - 4 + 25;
	c5 = c5 - 4;

	// putchar与printf方式输出密码
	printf("putchar方式输出Today的密码是:");
	putchar(c1); 
	putchar(c2);
	putchar(c3);
	putchar(c4);
	putchar(c5);

	printf("\nprintf方式输出Today的密码是: %c%c%c%c%c\n", c1, c2, c3, c4, c5);

	return 0;
}

在这里插入图片描述

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

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

相关文章

十年聚焦,巨杉数据库再获毕马威2022领先金融科技50企业殊荣

巨杉数据库凭借在金融科技与分布式数据库领域出色的市场表现与过硬的技术实力&#xff0c;成功入选“2022中国领先金融科技50企业”&#xff0c;成为本次榜单唯一入选的分布式数据库厂商。 1月16日&#xff0c;「2022毕马威中国金融科技企业双50榜单」&#xff08;下简称榜单&a…

数组扁平化,操作方法

数组扁平化是指将一个多维数组变成一维数组。 [1, [[2, 3], 4]] --> [1, 2, 3, 4] 目录 方法1&#xff1a; Array.prototype.flat() 方法2&#xff1a;Array.prototype.toString() 和 Array.prototype.join() 方法3&#xff1a;递归 方法4&#xff1a;扩展运算符 方法5…

Centos下安装ActiveMQ消息中间件

记录一下在centos7.x下面安装activeMQ消息中间件在安装ActiveMQ之前必须保证服务器安装了java环境安装java环境的地址:安装java环境找到activeMQ的官网下载安装包https://activemq.apache.org/components/classic/download/java版本是java8从官网下载后(apache-activemq-5.16.5…

【Linux】题解:生产者与消费者模型(附源代码)

【Linux】题解&#xff1a;生产者与消费者模型&#xff08;附源代码&#xff09; 摘要&#xff1a;本文主要介绍生产者与消费者模型&#xff0c;其中主要内容分为对该模型的介绍及分析&#xff0c;阻塞队列实现该模型&#xff0c;并对其升级实现多生产者多消费者并行执行。其中…

Day14 基于AOP的声明式事务控制

1 Spring 事务编程概述PlatformTransactionManager TransactionDefinition TransactionStatus2 搭建环境数据库准备一个账户表tb account;dao层准备一个AccountMapper&#xff0c;包括incrMoney和decrMoney两个方法;service层准备一个transferMoney方法&#xff0c;分别调用in…

18行列式及其性质

从此课开始&#xff0c;就进入了这门课的第二部分。迄今为止&#xff0c;已经学习了很多关于长方矩阵的知识&#xff0c;现在&#xff0c;把注意力转向方阵&#xff0c;探讨两个大的话题&#xff1a;行列式和特征值&#xff0c;需要行列式的重要原因是求特征值。 行列式是跟每…

U3772频谱分析仪

18320918653 U3772 新的便携式频谱分析仪具有体积小&#xff0c;重量轻的特点&#xff0c;可以在微波和毫米波范围内测量无线信号日本株式会社爱德万测试是全球半导体测试系统的领先企业&#xff0c;于2005年7月6日发布了一种新的便携式频谱分析仪U3771&#xff08;频率达到3…

[Java-多线程] 锁原理(轻量级锁、锁膨胀、自旋锁、偏向锁)

1.Java对象头 我们平时使用的对象都是由两部分组成, 第一部分是对象头, 第二部分是对象的成员变量, 这里我么主要讲解对象头, 以32为虚拟机为例 : Object Header (64 bits)Mark Word (32 bits)Klass Word (32 bits)Klass Word : 每个对象都有类型 通过Klass Word就可以找到对应…

离散数学与组合数学-07命题逻辑

文章目录离散数学与组合数学-07命题逻辑7.1 命题逻辑-什么是命题7.1.1 数理逻辑发展7.1.2 什么是命题7.1.3 复合命题7.2 命题逻辑-命题联结词7.2.1 否定联结词7.2.2 合取联结词7.2.3 析取联结词7.2.4 蕴涵联结词7.2.5 等价联结词7.3 命题逻辑-命题符号化及应用7.3.1 联结词总结…

什么是JMM模型

什么是JMM模型&#xff1f;Java内存模型(Java Memory Model简称JMM)是一种抽象的概念&#xff0c;并不真实存在&#xff0c;它描述的是一组规则或规范&#xff0c;通过这组规范定义了程序中各个变量&#xff08;包括实例字段&#xff0c;静态字段和构成数组对象的元素&#xff…

11. 线程本地变量ThreadLocal的使用

1. 对ThreadLocal的理解 ThreadLocal&#xff0c;有人称它为线程本地变量&#xff0c;也有人称它为线程本地存储&#xff0c;其实表达的意思是一样的。ThreadLocal在每一个变量中都会创建一个副本&#xff0c;每个线程都可以访问自己内部的副本变量。 在多线程环境下&#xff…

tomcat 的并发能力分析

tomcat 参考&#xff1a;Tomcat的3个参数acceptCount、maxConnections、maxThreads Tomcat 的核心组件 Tomcat 由 2 大核心组件组成&#xff1a;Connector、Container Tomcat 处理请求的过程 请求在 tomcat 服务器的处理过程&#xff08;BIO 模式&#xff09; 客户端与服务…

嵌入式串行通信协议

嵌入式系统中&#xff0c;不同芯片之间通常使用串行总线的方式进行连接&#xff0c;根据器件行业规范、应用场景&#xff0c;不同芯片通常选择不同的串行通信接口进行通信。常用的串行通信接口有&#xff1a;1-Wire、I2C、SPI、UART。 一、1-Wire 1-wire单总线是Maxim的全资子…

bodgeito通关教程

6.bodgeito通关教程 进入网站整体浏览网页 点击页面评分进入关卡 一般搭建之后这里都是红色的&#xff0c;黄色是代表接近&#xff0c;绿色代表过关 首先来到搜索处本着见框就插的原则 构造payload输入 <script> alert(/xss/)</script>成功弹窗xss&#xff0c;发…

Redis数据库

1.Redis简介 1.1Redis简介 Redis 是当前互联网世界最为流行的 NoSQL&#xff08;Not Only SQL&#xff09;数据库。NoSQL 在互联网系统中的作用很大&#xff0c;因为它可以在很大程度上提高互联网系统的性能。 Redis 具备一定持久层的功能&#xff0c;也可以作为一种缓存工具…

c++实现堆排序

看了一下优先队列&#xff0c;查了一下堆排序。堆排序主要就是建最大堆&#xff08;最小堆&#xff09;和交换2个操作。如果建的是最大堆&#xff0c;那么交换的时候&#xff0c;父节点就和最大的子节点比较&#xff0c;如果它比最大的子节点还大&#xff0c;那就不用比了。因为…

STM32MP157开发板Linux+Qt项目实战:智能猫眼

stm32mp157开发板FS-MP1A是华清远见自主研发的一款高品质、高性价比的Linux单片机二合一的嵌入式教学级开发板。开发板搭载ST的STM32MP157高性能微处理器&#xff0c;集成2Cortex-A7核和1个Cortex-M4 核&#xff0c;A7核上可以跑Linux操作系统&#xff0c;M4核上可以跑FreeRTOS…

docker 搭建postgres 主从 pgadmin

准备工作 创建一个docker bridge 网路用于测试 docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 pgnetwork # 查看 docker network ls 设置了网段为 192.168.0.0&#xff0c;规划主从库IP端口如下&#xff1a; 主库 192.168.0.101:5432 从库…

Ubuntu16.04安装深度学习环境(CUDA9.2+PyTorch0.4.1+Python2.7)

之前已经安装好了显卡驱动&#xff0c;接着就可以安装CUDA了于是又找了好几篇文章进行参考&#xff1a;https://zhuanlan.zhihu.com/p/361190040https://blog.csdn.net/qq_43665602/article/details/125752433https://blog.csdn.net/myg22/article/details/84029924https://blo…

二、数据缓存

文章目录数据缓存1.标准缓存流程2.缓存更新一致性3.缓存穿透解决方案缓存空对象布隆过滤器4.缓存雪崩解决方案5.缓存击穿解决方案互斥锁逻辑过期6.使用函数式接口封装工具类学习 黑马点评项目整理总结: https://www.bilibili.com/video/BV1cr4y1671t/?vd_source5f3396d3af2c39…