基于C/C++的easyx图形库教程

文章目录:

一:前言 

二:窗口(宽高 背景颜色 窗口标题 弹出对话框)

三:图形绘制(点 线 矩形 圆 椭圆)

四:文字(颜色 大小 背景 位置 打印 文字居中)

五:事件消息

1.键盘事件消息(按键交互 按键异步交互 双缓冲贴图)

demo1 

demo2

2.鼠标事件消息

2.1  利用MOUSEMSG的方法

2.2  利用ExMessage的方法 

3.定时器事件消息

六:图片/贴图(原样贴图 透明贴图 精灵图 双缓冲贴图)

七:背景音乐

八:项目

贪吃蛇 


一:前言 

官网:EasyX Graphics Library for C++

参考

官方:EasyX 文档 - 基本说明

51:easyx保姆级教程

第三方:EasyX基础入门、番外篇:入门EasyX图形库

下载

安装easyx环境:EasyX Graphics Library for C++——>右上侧点击下载安装在

安装程序会自动检测您已经安装的 VC 版本,并根据您的选择将对应的 .h 和 .lib 文件安装至 VC 的 include 和 lib 文件夹内

编译器 VS或者VC:编译环境:Visual C++ 6.0,Visual Studio 2008 至 Visual Studio 2022 (x86 & x64)

使用

启动 Visual C++,创建一个空的控制台项目(Win32 Console Application),然后添加一个新的代码文件(.cpp),并引用 graphics.h 头文件

// 引用图形库头文件
#include<easyx.h>        //这个是只包含最新的API(函数接口)
#include<graphics.h>     //这个头文件包含了上面的,还包含了已经不推荐使用的函数	#include <conio.h>int main()	//画圆的例子
{initgraph(640, 480);	// 创建绘图窗口,大小为 640x480 像素circle(200, 200, 100);	// 画圆,圆心(200, 200),半径 100_getch();				// 按任意键继续closegraph();			// 关闭绘图窗口return 0;
}

二:窗口(宽高 背景颜色 窗口标题 弹出对话框)

#define _CRT_SECURE_NO_WARNINGS 1    //用来消除由于函数的安全性导致的的报错
// 引用图形库头文件
#include<easyx.h>					//这个是只包含最新的API(函数接口)
#include<graphics.h>				//这个头文件包含了上面的,还包含了已经不推荐使用的函数	
#include<stdio.h>                   //getchar的头文件void change()
{//设置图形窗口//窗口定义HWND hand	 函数GetHWnd()获取窗口信息HWND hnd = GetHWnd();//设置窗口标题内容SetWindowTex(类型变量名,修改内容)SetWindowText(hnd,"很高兴认识你");//设置提示窗口:MessageBox(类型变量名,提示内容)int is_ok = MessageBox(hnd,"我是消息框","要不要关闭我",MB_OKCANCEL);if(is_ok == IDOK){printf("你点击了OK\n");}else if(is_ok == IDCANCEL){printf("你点击了cancel\n");}
}int main()
{/*创建窗口函数:initgraph(宽度,高度)*//*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/initgraph(520, 520);//宽520,高520//initgraph(520, 520,SHOWCONSOLE);//宽520,高520/*设置背景颜色:默认为黑色*/setbkcolor(WHITE);/*清除系统之前默认的黑色背景*/cleardevice();change();//调用/*缓冲函数getchar()让窗口得以持续显示*/getchar();/*关闭窗口函数:closegraph()*/closegraph();return 0;
}

三:图形绘制(点 线 矩形 圆 椭圆)

#define _CRT_SECURE_NO_WARNINGS 1    //用来消除由于函数的安全性导致的的报错
// 引用图形库头文件
#include<easyx.h>					//这个是只包含最新的API(函数接口)
#include<graphics.h>				//这个头文件包含了上面的,还包含了已经不推荐使用的函数	
#include<stdio.h>                   //getchar的头文件
int main()
{/*创建窗口函数:initgraph(宽度,高度)*//*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/initgraph(520, 520);//宽520,高520/*设置背景颜色:默认为黑色*/setbkcolor(WHITE);/*清除系统之前默认的黑色背景*/cleardevice();//设置线条的函数setlinecolor(颜色):线条颜色默认为白色setlinecolor(BLACK);//画圆形//画一个圆(圆心的横坐标,圆心的纵坐标,圆的半径)circle(50, 50, 50);//填充背景颜色setfillcolor(颜色):默认为白色setfillcolor(BLUE);//有边框实心圆fillcircle(圆心的横坐标,圆心的纵坐标,圆的半径)fillcircle(50, 150, 50);//有边框//无边框的实心圆solidcircle(圆心的横坐标,圆心的纵坐标,圆的半径)solidcircle(50, 250, 50);//无边框//点:putpixel(x,y,color);putpixel(100,100,BLUE);//线//line(x1,y1,x2,y2); //起始坐标,终止坐标//可以使用getwidth() gethight()获取窗口的宽度和高度line(10,10,80,80);//设置线条颜色setlinecolor()setlinecolor(BLUE);//样式setlinestyle(样式,宽度);/*样式#define	PS SOLID			0#define	PS DASH				1#define	PS DOT				2#define	PS DASHDOT			3#define	PS DASHDOTDOT		4#define	PS NULL				5#define	PS INSIDEFRAME		6#define	PS USERSTYLE		7	#define	PS ALTERNATE		8#define PS STYLE MASK		0x0000000F*/setlinestyle(8,8);//正矩形//左上角坐标,右下角坐标---->无填充矩形rectangle(x1,y1,x2,y2);   rectangle(150,150,250,250); //颜色填充setfillcolor(); setfillcolor(BROWN); //填充矩形//fillrectangle();  //无边框填充矩形solidrectangle(); //solidrectangle();    //圆角矩形//roundrect(x1,y1,x2,y2,宽度,高度);roundrect(200,200,300,300,10,10);//fillroundrect()和solidroundrect()//椭圆ellipse(x1,y1,x2,y2);矩形左上角和右下角坐标,椭圆就是该矩形的内切ellipse(150,150,250,450);//fillellipse()和solidellipse()/*缓冲函数getchar()让窗口得以持续显示*/getchar();/*关闭窗口函数:closegraph()*/closegraph();return 0;
}

四:文字(颜色 大小 背景 位置 打印 文字居中)

#define _CRT_SECURE_NO_WARNINGS 1    //用来消除由于函数的安全性导致的的报错
// 引用图形库头文件
#include<easyx.h>					//这个是只包含最新的API(函数接口)
#include<graphics.h>				//这个头文件包含了上面的,还包含了已经不推荐使用的函数	
#include<stdio.h>                   //getchar的头文件
int main()
{/*创建窗口函数:initgraph(宽度,高度)*//*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/initgraph(520, 520);//宽520,高520/*设置背景颜色:默认为黑色*/setbkcolor(WHITE);/*清除系统之前默认的黑色背景*/cleardevice();//设置文字颜色settextcolor(颜色):文字的颜色默认为白色settextcolor(RED);//文字格式为红色//设置文字大小settextstyle(高度,宽度 如果为0则自动匹配,字符的形式比如楷体宋体)settextstyle(20, 0, "楷体");//文字的大小,紧凑程度,字体的样式//设置当前字体的颜色setcolor(颜色)setcolor(GREEN);//设置字体的背景setbkmode(颜色):背景默认为白色会掩盖其他物体setbkmode(TRANSPARENT);		//透明//显示位置:fillrectangle(矩形左部 x 坐标,矩形顶部 y 坐标,矩形右部 x 坐标,矩形底部 y 坐标);//打印文字outtextxy(文字的横坐标,文字的纵坐标,文字的内容)outtextxy(100, 100, "文字在图形的居中显示1");//文字在图形的居中显示//initgraph(520, 520)	fillrectangle(100, 100, 500, 500)//求字体的宽度与高度char arr[] = "文字在图形的居中显示1";int width = textwidth(arr);int height = textheight(arr);//求所加坐标的值//所加x坐标的值int x = (520 - width) / 2;//所加y坐标的值int y = (520 - height) / 2;outtextxy(x, y, "文字在图形的居中显示2");/*缓冲函数getchar()让窗口得以持续显示*/getchar();/*关闭窗口函数:closegraph()*/closegraph();return 0;
}

五:事件消息

1.键盘事件消息(按键交互 按键异步交互 双缓冲贴图)

demo1 

#define _CRT_SECURE_NO_WARNINGS 1    //用来消除由于函数的安全性导致的的报错
// 引用图形库头文件
#include<easyx.h>					//这个是只包含最新的API(函数接口)
#include<graphics.h>				//这个头文件包含了上面的,还包含了已经不推荐使用的函数	
#include<stdio.h>                   //getchar的头文件
#include<conio.h>					//键盘int main()
{/*创建窗口函数:initgraph(宽度,高度)*//*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/initgraph(520, 520,SHOWCONSOLE);//宽520,高520,这里的第三个参数为显示控制台窗口/*设置背景颜色:默认为黑色*/setbkcolor(WHITE);int x = 200, y = 300;//这个函数用于开始批量绘图:执行后,任何绘图操作都将暂时不输出void BeginBatchDraw();while (1){/*清除系统之前默认的黑色背景*/cleardevice();//填充红色背景setfillcolor(RED);//无边框实心圆solidcircle(x, y, 50);//停止闪烁:这个函数用于执行未完成的绘制任务。比EndBatchDraw更稳定FlushBatchDraw();//第一种 按键交互:键盘响应ascll码值//获取键盘信息_kbhit()			头文件:conio.h/*if (_kbhit()){//输出键盘信息:_getch()		头文件:conio.hchar key = _getch();printf("%d %c\n", key, key);//可以获取键的ASCII值switch (key){case 72://上键的ASCII值y -= 5;break;case 80://下键的ASCII值y += 5;break;case 75://左键的ASCII值x -= 5;break;case 77://右键的ASCII值x += 5;break;}}*///第二种 键盘异步交互:方法调用(更加丝滑)if (GetAsyncKeyState(VK_UP)){y--;}if (GetAsyncKeyState(VK_DOWN)){y++;}if (GetAsyncKeyState(VK_LEFT)){x--;}if (GetAsyncKeyState(VK_RIGHT)){x++;}}/*缓冲函数getchar()让窗口得以持续显示*/getchar();/*关闭窗口函数:closegraph()*/closegraph();return 0;
}

demo2

#define _CRT_SECURE_NO_WARNINGS 1    //用来消除由于函数的安全性导致的的报错
// 引用图形库头文件
#include<easyx.h>					//这个是只包含最新的API(函数接口)
#include<graphics.h>				//这个头文件包含了上面的,还包含了已经不推荐使用的函数	
#include<stdio.h>                   //getchar的头文件
#include<time.h> 
#include<conio.h>					//阻塞函数getch()不需要回车确认输入//球定义
struct Ball
{int x;int y;int r;//增量int dx;int dy;
};
struct Ball ball={400,400,15,5,-4};
struct Ball myball={500,500,15,5,5};//画球
void DrawBall(struct Ball ball){setfillcolor(RED);solidcircle(ball.x,ball.y,ball.r);
}
//定时器:去控制自动移动东西			#include<time.h> 
//			时间间隔	id
int Timer(int duration,int id){//开始时间static int startTime[10];//结束时间int endTime=clock();			//clock()统计程序运行到当前代码的时间if (endTime-startTime[id]>duration){startTime[id]=endTime;return 1;}return 0;
}
//移动球(自己动)
void MoveBall(){//相撞		左壁			右壁if(ball.x-ball.r<=0||ball.x+ball.r>=800){ball.dx=-ball.dx;	//反射:增量发生变化}//相撞		上壁			下壁if(ball.y-ball.r<=0||ball.y+ball.r>=800){ball.dy=-ball.dy;}ball.x +=ball.dx;ball.y -=ball.dy;
}
//按键交互:移动球(按键控制)会发生阻塞
void KeyDown(){//获取用户按键int userKey=_getch();switch (userKey){case 'w':case 'W':case 72:myball.y -=5;break;case 's':case 'S':case 80:myball.y +=5;break;case 'a':case 'A':case 75:myball.x -=5;break;case 'd':case 'D':case 77:myball.x +=5;break;}
}
//键盘异步交互:不会发生阻塞
void KeyDown2(){if (GetAsyncKeyState(VK_UP)){myball.y -=5;}if (GetAsyncKeyState(VK_DOWN)){myball.y +=5;}if (GetAsyncKeyState(VK_LEFT)){myball.x -=5;}if (GetAsyncKeyState(VK_RIGHT)){myball.x +=5;}
}int main()
{/*创建窗口函数:initgraph(宽度,高度)*//*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/initgraph(800, 800);/*设置背景颜色:默认为黑色*/setbkcolor(WHITE);/*清除系统之前默认的黑色背景*/cleardevice();//开始双缓冲贴图:解决一闪一闪的问题BeginBatchDraw();//控制移动while (1){//刷新cleardevice();//先画球DrawBall(ball);DrawBall(myball);if(Timer(20,0))//球自己移动球MoveBall();//鼠标控制球移动//if (_kbhit())	//判断阻塞:判断存在按键再去处理//{//	KeyDown();//}//if(Timer(20,1))//键盘异步交互KeyDown2();//Sleep(20);		//休眠一下	也是阻塞函数//显示每一帧FlushBatchDraw();}//结束双缓冲贴图EndBatchDraw();/*缓冲函数getchar()让窗口得以持续显示*/getchar();/*关闭窗口函数:closegraph()*/closegraph();return 0;
}

2.鼠标事件消息

2.1  利用MOUSEMSG的方法

#define _CRT_SECURE_NO_WARNINGS 1
#include<graphics.h>
#include<stdio.h>
#include<conio.h>int main()
{initgraph(520, 520,SHOWCONSOLE);setbkcolor(BLACK);cleardevice();while (1){//判断有无鼠标信息if (MouseHit()){//读取鼠标信息//鼠标信息的类型:MOUSEMSG//定义变量(举例):MOUSEMSG msg;//读取鼠标信息的函数:GetMouseMsg()MOUSEMSG msg = GetMouseMsg();//消息处理switch (msg.uMsg)								//获取当前鼠标消息{case WM_LBUTTONDOWN:							//鼠标左键outtextxy(200, 200, "鼠标左键");			printf("左键坐标(%d,%d)", msg.x, msg.y);			//msg.x获取鼠标的横坐标	msg.y获取鼠标的纵坐标break;case WM_RBUTTONDOWN:							//鼠标右键outtextxy(100, 100, "鼠标右键");		printf("右键坐标(%d,%d)", msg.x, msg.y);break;case WM_MBUTTONDOWN:							//中键按下printf("中键按下\n");break; case WM_MOUSEWHEEL:								//滚轮滑动printf("%d滚轮滑动\n",msg.wheel);   //获取滚轮滑动方向,正朝屏幕,负朝自己break;case WM_MOUSEMOVE:								//鼠标移动printf("鼠标移动\n");break;}}}getchar();closegraph();return 0;
}/*MOUSEMSG结构体struct MOUSEMSG	{		UINT uMsg;				获取当前鼠标消息bool mkCtrl :l;			Ctrl 键是否按下bool mkShift :l;		Shift 键是否按下bool mkLButton :l;		鼠标左键是否按下bool mkMButton :l;		鼠标中键是否按下bool mkRButton :l;		鼠标右键是否按下short x;				当前鼠标 x 坐标short y;				当前鼠标 坐标short wheel;			鼠标滚轮滚动值 (120 的倍数)}*/

2.2  利用ExMessage的方法 

#define _CRT_SECURE_NO_WARNINGS 1    //用来消除由于函数的安全性导致的的报错
// 引用图形库头文件
#include<easyx.h>					//这个是只包含最新的API(函数接口)
#include<graphics.h>				//这个头文件包含了上面的,还包含了已经不推荐使用的函数	
#include<stdio.h>                   //getchar的头文件int main()
{initgraph(800, 600,SHOWCONSOLE);//setbkcolor(WHITE);cleardevice();//定义ExMessage类型的变量去存储鼠标消息ExMessage msg;		 	  while (true){//获取鼠标消息peekmessage(&变量)while (peekmessage(&msg)){//讨论鼠标消息switch (msg.message)	//区分鼠标消息的类型:msg.message{//鼠标的当前坐标:msg.x  msg.ycase WM_LBUTTONDOWN:circle(msg.x,msg.y,10);break;case WM_RBUTTONDOWN:rectangle(msg.x-5,msg.y-5,msg.x+5,msg.y+5);break;}}}getchar();closegraph();return 0;
}

3.定时器事件消息

#include<time.h> //定时器:去控制自动移动东西			#include<time.h> 
//			时间间隔	id
int Timer(int duration,int id){//开始时间static int startTime[10];//结束时间int endTime=clock();			//clock()统计程序运行到当前代码的时间if (endTime-startTime[id]>duration){startTime[id]=endTime;return 1;}return 0;
}int main()
{/*创建窗口函数:initgraph(宽度,高度)*//*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/initgraph(800, 800);/*设置背景颜色:默认为黑色*/setbkcolor(WHITE);/*清除系统之前默认的黑色背景*/cleardevice();//调用if(Timer(20,0))//球自己移动球MoveBall();//这是一个你自己写的方法/*缓冲函数getchar()让窗口得以持续显示*/getchar();/*关闭窗口函数:closegraph()*/closegraph();return 0;
}

六:图片/贴图(原样贴图 透明贴图 精灵图 双缓冲贴图)

图片需要和程序放在一个路径之下 

#define _CRT_SECURE_NO_WARNINGS 1    //用来消除由于函数的安全性导致的的报错
// 引用图形库头文件
#include<easyx.h>					//这个是只包含最新的API(函数接口)
#include<graphics.h>				//这个头文件包含了上面的,还包含了已经不推荐使用的函数	
#include<stdio.h>                   //getchar的头文件int main()
{initgraph(800, 600,SHOWCONSOLE);setbkcolor(WHITE);cleardevice();//原样贴图//定义图片变量去表示图片IMAGE mage;//读取加载图片:loadimage(图片地址,"图片路径 相对 绝对",int nwidth缩放的宽度,int nheight缩放的高度)loadimage(&mage, "./images/bk.png",800,600);//显示图片:putimage(图片的横坐标,图片的纵坐标,图片地址)putimage(0, 0, &mage);//透明贴图(去掉一张图片原本的背景):通过图像的颜色二进制运算达到去背景效果//要处理扣图片:黑白背景IMAGE test[2];//掩码图加载loadimage(test+0,"./images/1.png",800,600);//背景图加载loadimage(test+0,"./images/2.png",800,600);//贴图putimage(100,100,test+0,SRCAND);		//贴掩码图putimage(100,100,test+1,SRCPAINT);		//贴背景图//双缓冲贴图:解决一闪一闪的问题//在BeginBatchDraw();    和     EndBatchDraw();写代码//键盘事件消息demo2中有举例getchar();closegraph();return 0;
}

精灵图(drawImg报错)后面修改

#define _CRT_SECURE_NO_WARNINGS 1
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<mmsystem.h>				//包含多媒体接口,一定放在graphics.h下面
#pragma comment(lib,"winmm.lib")	//预处理指令接口连接库
#include<easyx.h>					//这个是只包含最新的API(函数接口)
#include<graphics.h>				//这个头文件包含了上面的,还包含了已经不推荐使用的函数	
#include<stdio.h>                   //getchar的头文件
#include<time.h> int main()
{initgraph(500, 500,SHOWCONSOLE);setbkcolor(WHITE);cleardevice();//精灵动画:一排有很多照片实现动画IMAGE img_sheet;loadimage(&img_sheet,"./images/wugui.jpg");const int frameDelay=1000/60;int frameStart=0;int frameTime=0;int imgsize=32;		//每帧的尺寸int frames=7;		//精灵的个数int speed=200;		//速度毫秒int index=0;		//下标:贴那一张图片while (true){frameStart=clock();BeginBatchDraw();cleardevice();drawImg(250,250,imgsize,imgsize,&img_sheet,index * imgsize,0);EndBatchDraw();index=(clock()/speed)%frames;frameTime = clock() - frameStart;if (frameDelay-frameTime>0) //16 -10 = 6 >0{Sleep(frameDelay-frameTime);}getchar();closegraph();return 0;
}

七:背景音乐

#define _CRT_SECURE_NO_WARNINGS 1
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<mmsystem.h>				//包含多媒体接口,一定放在graphics.h下面
#pragma comment(lib,"winmm.lib")	//预处理指令接口连接库void BGM()
{//读取音乐:文件为.mp3为后缀才可播放,要把音乐拷贝到项目所在文件夹里//打开音乐	//0,0,0为默认输出控制台mciSendString("open ./images/ha.wav alias bgm", 0, 0, 0);	//mciSendString("open ./images/ha.wav", 0, 0, 0);		//播放音乐	重复播放repeatmciSendString("play bgm repeat", 0, 0, 0);//mciSendString("play ./images/ha.wav", 0, 0, 0);//设置音量大小	0~1000mciSendString("setaudio bgm volume to 10",NULL,0,NULL);	//专门用来播放音效					表示路径是文件名  异步PlaySound("./images/ha.wav",NULL,SND_FILENAME|SND_ASYNC);if (0){mciSendString("test./images/ha.wav",0, 0, 0);}
} int main()
{initgraph(500, 500,SHOWCONSOLE);setbkcolor(WHITE);cleardevice();BGM();//调用getchar();closegraph();return 0;
}

八:项目

贪吃蛇 

基于C/C++的easyx实现贪吃蛇游戏

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

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

相关文章

python渔船出海及海货统计系统的设计与实现flask-django-php-nodejs

该渔船出海及海货统计系统采用B/S架构、前后端分离进行设计&#xff0c;并采用python语言以及django框架进行开发。该系统主要设计并完成了管理过程中的用户注册登录、个人信息修改、用户信息、渔船信息、渔船航班、海货价格、渔船海货、非法举报、渔船黑名单等功能。该系统操作…

【SpringBoot】登录校验之会话技术、统一拦截技术

真正的登录功能应该是&#xff1a; 登陆后才能访问后端系统页面&#xff0c;不登陆则跳转登陆页面进行登陆。 当我们没有设置登录校验&#xff0c;可以直接通过修改地址栏直接进入管理系统内部&#xff0c;跳过登录页。而后端系统的增删改查功能&#xff0c;没有添加判断用户是…

Leetcode 31. 删除无效的括号

心路历程&#xff1a; 一开始看到有点懵&#xff0c;后来发现有点像按照一定规则穷举所有可能情况&#xff0c;想到了排列组合问题&#xff0c;再结合问题长度不固定&#xff0c;无法用已知个for循环表示&#xff0c;从而想到了回溯。这个题相当于需要在一定规则下枚举。 按照…

利用autodl服务器跑模型

1. 租用服务器 本地改模型 服务器 将改进好的、数据集处理好的模型压缩为zip文件上传到阿里云盘打开服务器AUTODL服务器&#xff0c;在主页中选择容器实例 在此位置进行开关机操作&#xff0c;若停止服务器&#xff0c;必须关机&#xff0c;不然会一直扣钱 2. 运行模型 选择…

2024年【安全员-B证】及安全员-B证模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-B证参考答案及安全员-B证考试试题解析是安全生产模拟考试一点通题库老师及安全员-B证操作证已考过的学员汇总&#xff0c;相对有效帮助安全员-B证模拟考试题库学员顺利通过考试。 1、【多选题】《上海市建设工…

搜维尔科技:利用增强现实改进检验和质量控制流程

直接在工作环境中显示数字指令 DELMIA 质量检查增强体验通过工作环境中的数字指令指导操作员完成检查过程&#xff0c;从而有效地识别、鉴定和报告不合格项。使用增强现实可以显着提高质量控制和检查过程的准确性和速度。由于技术人员可以访问实时信息&#xff0c;因此他们会减…

C# 读取二维数组集合输出到Word预设表格

目录 应用场景 设计约定 范例运行环境 配置Office DCOM 实现代码 组件库引入 核心代码 DataSet转二维数组 导出写入WORD表格 调用举例 小结 应用场景 存储或导出个人WORD版简历是招聘应用系统中的常用功能&#xff0c;我们通常会通过应用系统采集用户的个人简历信息…

Java代码基础算法练习-求一个三位数的各位平方之和-2024.03.21

任务描述&#xff1a; 输入一个正整数n&#xff08;取值范围&#xff1a;100<n<1000&#xff09;&#xff0c;然后输出每位数字的平方和。 任务要求&#xff1a; 代码示例&#xff1a; package march0317_0331;import java.util.Scanner;public class m240321 {public …

GESP图形化编程二级认证真题 2024年3月

GESP 图形化二级试卷 &#xff08;满分&#xff1a;100 分 考试时间&#xff1a;120 分钟&#xff09; 一、单选题&#xff08;共 10 题&#xff0c;每题 3 分&#xff0c;共 30 分&#xff09; 1、小杨的父母最近刚刚给他买了一块华为手表&#xff0c;他说手表上跑的是鸿…

第4关:创建工程项目表J,并插入数据

任务描述 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。创建工程项目表J(JNO,JNAME,CITY)&#xff0c;并在J表中插入下图数据。 相关知识 1、MySQL创建表的基本语法如下&#xff1a; 其中&#xff0c;table_name 是要创建的表的名称&…

使用Go语言创建HTTP服务器并展示网页

使用Go语言创建一个简单的服务器时可以先建立一个项目根目录&#xff0c;随后在根目录中建立一个用于存放静态文件&#xff08;HTML/CSS/JavaScript&#xff09;的文件夹 GGboy&#xff0c;接下来输入命令初始化Go模块 go mod init GGboy // 项目名称是 GGboy 在出现 go.mod 文…

【Linux】如何关闭 swappiness ?

1、关闭 swappiness 查看 swappiness 的当前值&#xff1a; sysctl vm.swappiness cat /proc/sys/vm/swappiness cat /sys/fs/cgroup/memory/memory.swappiness永久关闭&#xff1a; echo vm.swappiness 0 >> /etc/sysctl.conf临时关闭&#xff1a; sysctl vm.swapp…