在 Dev-C++中编译运行GUI 程序介绍(三)有趣示例一组

在 Dev-C++中编译运行GUI程序介绍(三)有趣示例一组

前期见
在 Dev-C++中编译运行GUI 程序介绍(一)基础 https://blog.csdn.net/cnds123/article/details/147019078

在 Dev-C++中编译运行GUI 程序介绍(二)示例:祝福程序 https://blog.csdn.net/cnds123/article/details/147019350

本文给出一组可以在 Dev-C++中编译运行的GUI 应用程序。

示例2、简单的猜数字游戏

下面是一个简单的猜数字游戏源码,您可以在 Dev-C++ 中编译和运行它。这个程序创建了一个基本的 GUI 界面,用户可以通过输入数字来进行猜测,程序会提示用户猜的数字是太高、太低还是猜对了。并有猜中计数和“重玩”按钮功能。

运行效果:

源码如下:

#include <windows.h>
#include <string>
#include <cstdlib>
#include <ctime>using namespace std;// 全局变量
HWND hwndInput, hwndButton, hwndOutput, hwndCountLabel;
int randomNumber;
int guessCount = 0; // 猜中计数// 生成随机数
void generateRandomNumber() {randomNumber = rand() % 100 + 1; // 生成 1 到 100 之间的随机数guessCount = 0; // 重置猜中计数
}// 消息处理函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {switch (msg) {case WM_CREATE: {// 创建说明标签CreateWindow("STATIC", "请输入1到100之间的数字:", WS_CHILD | WS_VISIBLE,50, 20, 200, 25, hwnd, NULL, NULL, NULL);// 创建输入框hwndInput = CreateWindow("EDIT", "", WS_CHILD | WS_VISIBLE | WS_BORDER | ES_NUMBER,50, 50, 100, 25, hwnd, NULL, NULL, NULL);// 创建猜测按钮hwndButton = CreateWindow("BUTTON", "猜测", WS_CHILD | WS_VISIBLE,50, 100, 100, 30, hwnd, (HMENU)1, NULL, NULL);// 创建重玩按钮CreateWindow("BUTTON", "重玩", WS_CHILD | WS_VISIBLE,160, 100, 100, 30, hwnd, (HMENU)2, NULL, NULL);// 创建输出框hwndOutput = CreateWindow("STATIC", "", WS_CHILD | WS_VISIBLE,50, 150, 200, 25, hwnd, NULL, NULL, NULL);// 创建猜中计数标签hwndCountLabel = CreateWindow("STATIC", "猜测次数: 0", WS_CHILD | WS_VISIBLE,50, 180, 200, 25, hwnd, NULL, NULL, NULL);generateRandomNumber(); // 生成第一个随机数// 设置光标焦点到输入框SetFocus(hwndInput);break;}case WM_COMMAND: {if (LOWORD(wParam) == 1) { // 按钮被点击char buffer[10];GetWindowText(hwndInput, buffer, sizeof(buffer)); // 获取输入的文本int guess = atoi(buffer); // 将字符串转换为整数// 进行猜测判断string message;guessCount++; // 增加猜测次数if (guess < randomNumber) {message = "太低了!";} else if (guess > randomNumber) {message = "太高了!";} else {message = "恭喜你,猜对了!";// 不重置猜测次数,直到用户选择“重玩”}// 更新输出框和猜中计数标签SetWindowText(hwndOutput, message.c_str());SetWindowText(hwndCountLabel, ("猜测次数: " + to_string(guessCount)).c_str());// 设置光标焦点到输入框SetFocus(hwndInput);}else if (LOWORD(wParam) == 2) { // 重玩按钮被点击generateRandomNumber(); // 生成新的随机数SetWindowText(hwndOutput, ""); // 清空输出框SetWindowText(hwndCountLabel, "猜测次数: 0"); // 重置猜中计数SetWindowText(hwndInput, ""); // 清空输入框SetFocus(hwndInput); // 设置光标焦点到输入框}break;}case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd, msg, wParam, lParam);}return 0;
}int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {srand(static_cast<unsigned int>(time(0))); // 设置随机种子// 注册窗口类const char CLASS_NAME[] = "GuessNumberWindow";WNDCLASS wc = {};wc.lpfnWndProc = WndProc;wc.hInstance = hInstance;wc.lpszClassName = CLASS_NAME;RegisterClass(&wc);// 创建窗口HWND hwnd = CreateWindowEx(0, CLASS_NAME, "猜数字游戏", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, 300, 300, NULL, NULL, hInstance, NULL);ShowWindow(hwnd, nCmdShow);UpdateWindow(hwnd);// 消息循环MSG msg;while (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessage(&msg);}return 0;
}

示例3、剪子、包袱、锤游戏

剪子、包袱、锤(又称石头剪刀布)游戏规则

胜负关系:

剪子 胜 包袱(剪刀剪开布)。

包袱 胜 锤(布包裹石头)。

锤 胜 剪子(石头砸坏剪刀)。

手势相同:平局,重新对决。

界面如下

源码如下:

//剪子、包袱、锤游戏
#include <windows.h>
#include <string>
#include <cstdlib>
#include <ctime>
#include <sstream>using namespace std;// 全局变量
HWND hwndOutput, hwndComputerChoice;
int computerChoice;// 生成计算机的选择
void generateComputerChoice() {computerChoice = rand() % 3; // 0 = 剪子, 1 = 包袱, 2 = 锤
}// 消息处理函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {switch (msg) {case WM_CREATE: {// 创建剪子按钮CreateWindow("BUTTON", "剪子 (X)", WS_CHILD | WS_VISIBLE,50, 50, 100, 30, hwnd, (HMENU)1, NULL, NULL);// 创建包袱按钮CreateWindow("BUTTON", "包袱 (Q)", WS_CHILD | WS_VISIBLE,50, 100, 100, 30, hwnd, (HMENU)2, NULL, NULL);// 创建锤按钮CreateWindow("BUTTON", "锤 (P)", WS_CHILD | WS_VISIBLE,50, 150, 100, 30, hwnd, (HMENU)3, NULL, NULL);// 创建新局按钮CreateWindow("BUTTON", "新局", WS_CHILD | WS_VISIBLE,50, 200, 100, 30, hwnd, (HMENU)4, NULL, NULL);// 创建输出框hwndOutput = CreateWindow("STATIC", "", WS_CHILD | WS_VISIBLE,200, 50, 200, 100, hwnd, NULL, NULL, NULL);// 创建计算机选择显示框hwndComputerChoice = CreateWindow("STATIC", "", WS_CHILD | WS_VISIBLE,200, 150, 200, 25, hwnd, NULL, NULL, NULL);// 设置随机种子srand(static_cast<unsigned int>(time(0)));break;}case WM_COMMAND: {if (LOWORD(wParam) >= 1 && LOWORD(wParam) <= 3) { // 剪子、包袱或锤按钮被点击int userChoice = LOWORD(wParam) - 1; // 0 = 剪子, 1 = 包袱, 2 = 锤generateComputerChoice(); // 生成计算机选择// 计算机选择对应的输出来显示string computerChoiceStr;if (computerChoice == 0) computerChoiceStr = "剪子 (X)";else if (computerChoice == 1) computerChoiceStr = "包袱 (Q)";else if (computerChoice == 2) computerChoiceStr = "锤 (P)";// 判断输赢string result;if (userChoice == computerChoice) {result = "平局!";} else if ((userChoice == 0 && computerChoice == 1) || (userChoice == 1 && computerChoice == 2) || (userChoice == 2 && computerChoice == 0)) {result = "你输了!";} else {result = "你赢了!";}// 更新输出框和计算机选择框SetWindowText(hwndOutput, result.c_str());SetWindowText(hwndComputerChoice, ("计算机选择: " + computerChoiceStr).c_str());} else if (LOWORD(wParam) == 4) { // 新局按钮被点击SetWindowText(hwndOutput, ""); // 清空输出框SetWindowText(hwndComputerChoice, ""); // 清空计算机选择框}break;}case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd, msg, wParam, lParam);}return 0;
}int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {// 注册窗口类const char CLASS_NAME[] = "RockPaperScissorsWindow";WNDCLASS wc = {};wc.lpfnWndProc = WndProc;wc.hInstance = hInstance;wc.lpszClassName = CLASS_NAME;RegisterClass(&wc);// 创建窗口HWND hwnd = CreateWindowEx(0, CLASS_NAME, "剪子、包袱、锤游戏", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, 420, 300, NULL, NULL, hInstance, NULL);ShowWindow(hwnd, nCmdShow);UpdateWindow(hwnd);// 消息循环MSG msg;while (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessage(&msg);}return 0;
}

示例4、简单计算器

可以在 Dev-C++ 中编译和运行简单计算器(通过计算机键盘输入数)。

界面如下:

代码如下:

#include <windows.h>
#include <string>
#include <sstream>using namespace std;// 全局变量
HWND hwndInput1, hwndInput2, hwndOutput, hwndButtonAdd, hwndButtonSub, hwndButtonMul, hwndButtonDiv;// 计算结果并显示
void Calculate(char operation) {char buffer1[100], buffer2[100];GetWindowText(hwndInput1, buffer1, sizeof(buffer1)); // 获取第一个输入框的文本GetWindowText(hwndInput2, buffer2, sizeof(buffer2)); // 获取第二个输入框的文本double num1 = atof(buffer1); // 转换为 doubledouble num2 = atof(buffer2); // 转换为 doubledouble result = 0.0;// 根据操作符进行计算switch (operation) {case '+': result = num1 + num2; break;case '-': result = num1 - num2; break;case '*': result = num1 * num2; break;case '/':if (num2 != 0) {result = num1 / num2;} else {SetWindowText(hwndOutput, "错误:除以零");return;}break;}// 显示结果stringstream ss;ss << result;SetWindowText(hwndOutput, ss.str().c_str());
}// 消息处理函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {switch (msg) {case WM_CREATE: {// 创建输入框1hwndInput1 = CreateWindow("EDIT", "", WS_CHILD | WS_VISIBLE | WS_BORDER | ES_NUMBER,50, 20, 100, 30, hwnd, NULL, NULL, NULL);// 创建输入框2hwndInput2 = CreateWindow("EDIT", "", WS_CHILD | WS_VISIBLE | WS_BORDER | ES_NUMBER,50, 60, 100, 30, hwnd, NULL, NULL, NULL);// 创建输出框hwndOutput = CreateWindow("STATIC", "", WS_CHILD | WS_VISIBLE,50, 100, 200, 30, hwnd, NULL, NULL, NULL);// 创建加法按钮hwndButtonAdd = CreateWindow("BUTTON", "+", WS_CHILD | WS_VISIBLE,200, 20, 30, 30, hwnd, (HMENU)1, NULL, NULL);// 创建减法按钮hwndButtonSub = CreateWindow("BUTTON", "-", WS_CHILD | WS_VISIBLE,200, 60, 30, 30, hwnd, (HMENU)2, NULL, NULL);// 创建乘法按钮hwndButtonMul = CreateWindow("BUTTON", "*", WS_CHILD | WS_VISIBLE,250, 20, 30, 30, hwnd, (HMENU)3, NULL, NULL);// 创建除法按钮hwndButtonDiv = CreateWindow("BUTTON", "/", WS_CHILD | WS_VISIBLE,250, 60, 30, 30, hwnd, (HMENU)4, NULL, NULL);break;}case WM_COMMAND: {if (LOWORD(wParam) == 1) { // 加法按钮被点击Calculate('+');} else if (LOWORD(wParam) == 2) { // 减法按钮被点击Calculate('-');} else if (LOWORD(wParam) == 3) { // 乘法按钮被点击Calculate('*');} else if (LOWORD(wParam) == 4) { // 除法按钮被点击Calculate('/');}break;}case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd, msg, wParam, lParam);}return 0;
}int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {// 注册窗口类const char CLASS_NAME[] = "SimpleCalculator";WNDCLASS wc = {};wc.lpfnWndProc = WndProc;wc.hInstance = hInstance;wc.lpszClassName = CLASS_NAME;RegisterClass(&wc);// 创建窗口HWND hwnd = CreateWindowEx(0, CLASS_NAME, "简单计算器", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, 400, 200, NULL, NULL, hInstance, NULL);ShowWindow(hwnd, nCmdShow);UpdateWindow(hwnd);// 消息循环MSG msg;while (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessage(&msg);}return 0;
}

示例5、改进版的简单计算器

下面是一个改进版的简单计算器,界面上包含数字按键(0-9)和基本的运算按键(加、减、乘、除)。用户可以通过点击数字按键和运算符按键来输入数字和运算,然后按下“=”按钮来计算结果。

界面如下:

代码如下:

#include <windows.h>
#include <string>
#include <cstdlib>
#include <sstream>using namespace std;// 全局变量
HWND hwndDisplay;
string currentInput = ""; // 当前输入// 更新显示框
void UpdateDisplay() {SetWindowText(hwndDisplay, currentInput.c_str());
}// 处理数字和操作符的按钮点击
void ButtonClick(char value) {currentInput += value; // 追加输入UpdateDisplay();
}// 计算结果并显示
void Calculate() {double num1 = 0.0, num2 = 0.0;char operation = '+';size_t pos = 0;// 解析输入for (char c : currentInput) {if (c == '+' || c == '-' || c == '*' || c == '/') {num1 = atof(currentInput.substr(0, pos).c_str());operation = c;pos++;break;}pos++;}if (pos < currentInput.length()) {num2 = atof(currentInput.substr(pos).c_str());} else {return; // 没有足够的输入进行计算}double result = 0.0;// 根据操作符进行计算switch (operation) {case '+': result = num1 + num2; break;case '-': result = num1 - num2; break;case '*': result = num1 * num2; break;case '/':if (num2 != 0) {result = num1 / num2;} else {currentInput = "错误:除以零";UpdateDisplay();return;}break;}// 显示结果stringstream ss;ss << result;currentInput = ss.str(); // 更新为结果UpdateDisplay();
}// 消息处理函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {switch (msg) {case WM_CREATE: {// 创建显示框hwndDisplay = CreateWindow("EDIT", "", WS_CHILD | WS_VISIBLE | ES_RIGHT | ES_READONLY,10, 10, 280, 30, hwnd, NULL, NULL, NULL);// 创建按钮const char* buttons[] = {"7", "8", "9", "+","4", "5", "6", "-","1", "2", "3", "*","0", ".", "=", "/"};int x = 10, y = 50;for (int i = 0; i < 16; ++i) {CreateWindow("BUTTON", buttons[i], WS_CHILD | WS_VISIBLE,x, y, 65, 40, hwnd, (HMENU)(INT_PTR)(i + 1), NULL, NULL);x += 70;if ((i + 1) % 4 == 0) {x = 10;y += 45;}}// 创建"清空"按钮CreateWindow("BUTTON", "清空", WS_CHILD | WS_VISIBLE,10, 230, 280, 30, hwnd, (HMENU)17, NULL, NULL);break;}case WM_COMMAND: {int id = LOWORD(wParam);if (id >= 1 && id <= 16) {const char* buttonValues[] = {"7", "8", "9", "+","4", "5", "6", "-","1", "2", "3", "*","0", ".", "=", "/"};if (buttonValues[id - 1][0] == '=') {Calculate();} else {ButtonClick(buttonValues[id - 1][0]);}} else if (id == 17) { // 清空按钮currentInput = "";UpdateDisplay();}break;}case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd, msg, wParam, lParam);}return 0;
}int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {// 注册窗口类const char CLASS_NAME[] = "SimpleCalculator";WNDCLASS wc = {};wc.lpfnWndProc = WndProc;wc.hInstance = hInstance;wc.lpszClassName = CLASS_NAME;RegisterClass(&wc);// 创建窗口HWND hwnd = CreateWindowEx(0, CLASS_NAME, "手持计算器", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, 315, 310, NULL, NULL, hInstance, NULL);if (hwnd == NULL) {return 0;}ShowWindow(hwnd, nCmdShow);UpdateWindow(hwnd);// 消息循环MSG msg = {};while (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessage(&msg);}return 0;
}

示例6、绘制直线、圆和三角形

Windows API中的GDI(Graphics Device Interface,图形设备接口)是一个用于处理图形和图像输出的子系统。它允许程序与各种输出设备(如显示器、打印机等设备无关性)进行交互,绘制图形、文本和图像。

GDI的作用

  1. 绘制图形:GDI提供了一系列函数,用于绘制基本形状(如线条、矩形、圆形、多边形等)。程序员可以使用这些函数在窗口上绘制想要的图形。
  2. 文本处理:GDI也可以用于绘制文本。它支持多种字体和文本格式,程序员可以选择字体、大小和颜色来显示文本。
  3. 图像处理:GDI能够加载并显示位图(BMP)、图标等图像格式。程序员可以将图像绘制到窗口或打印机上。
  4. 设备无关性:GDI使得程序可以不依赖于特定的硬件设备。无论是在显示器上绘制,还是在打印机上输出,GDI提供的接口都是一致的。这意味着,程序可以在不同的输出设备上运行,而不需要进行太多修改。
  5. 设备上下文(DC:在GDI中,设备上下文是一种数据结构,表示绘图设备的状态。程序在绘图时需要获取设备上下文,以便使用它来进行绘图操作。

GDI的基本操作

  1. 创建窗口:在窗口上绘制图形的第一步是创建一个窗口。这可以通过Windows API中的函数来实现。
  2. 获取设备上下文:在绘制之前,程序需要获取窗口的设备上下文(HDC),这样才能在窗口上进行绘制。
  3. 绘制操作
    • 使用GDI函数绘制图形(如MoveToEx和LineTo绘制直线)。
    • 使用TextOut函数绘制文本。
    • 使用BitBlt函数复制图像。
  4. 释放资源:绘制完成后,程序需要释放获取的设备上下文,以避免资源泄露。

先看效果图:

源码如下:

#include <windows.h>LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {switch (msg) {case WM_PAINT: {PAINTSTRUCT ps;HDC hdc = BeginPaint(hwnd, &ps);// 设置颜色HPEN hPen = CreatePen(PS_SOLID, 2, RGB(0, 0, 255)); // 蓝色SelectObject(hdc, hPen);// 画直线MoveToEx(hdc, 50, 50, NULL); // 起点LineTo(hdc, 200, 50); // 终点// 画圆Ellipse(hdc, 50, 70, 150, 170); // x1, y1, x2, y2// 画三角形POINT vertices[] = { {200, 70}, {250, 170}, {150, 170} };Polygon(hdc, vertices, 3);// 释放资源DeleteObject(hPen);EndPaint(hwnd, &ps);break;}case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd, msg, wParam, lParam);}return 0;
}int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {const char CLASS_NAME[] = "SampleWindowClass";WNDCLASS wc = {};wc.lpfnWndProc = WndProc; // 设置窗口过程wc.hInstance = hInstance;wc.lpszClassName = CLASS_NAME;RegisterClass(&wc);// 创建窗口HWND hwnd = CreateWindowEx(0, CLASS_NAME, "绘图示例", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, 400, 400, NULL, NULL, hInstance, NULL);if (hwnd == NULL) {return 0;}ShowWindow(hwnd, nCmdShow);UpdateWindow(hwnd);// 消息循环MSG msg;while (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessage(&msg);}return 0;
}

示例7、绘制红五角星

使用Windows API中的GDI (图形设备接口)。

先看效果图:

源码如下:

#include <windows.h>
#include <math.h>#define M_PI 3.14159265358979323846 // 定义π(如未定义)// 计算五角星顶点的函数
void DrawStar(HDC hdc, int centerX, int centerY, int size) {POINT points[10];double angle;int i;// 计算五角星的顶点for (i = 0; i < 10; i++) {angle = (i * 36.0) * (M_PI / 180.0); // 角度转换为弧度// 外部顶点if (i % 2 == 0) {points[i].x = centerX + (int)(size * cos(angle));points[i].y = centerY - (int)(size * sin(angle));}// 内部顶点else {points[i].x = centerX + (int)(size * 0.5 * cos(angle));points[i].y = centerY - (int)(size * 0.5 * sin(angle));}}// 绘制五角星HPEN hPen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0)); // 红色SelectObject(hdc, hPen);SelectObject(hdc, GetStockObject(NULL_BRUSH)); // 无填充Polygon(hdc, points, 10); // 绘制五角星// 释放资源DeleteObject(hPen);
}// 消息处理函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {switch (msg) {case WM_PAINT: {PAINTSTRUCT ps;HDC hdc = BeginPaint(hwnd, &ps);// 设置背景颜色FillRect(hdc, &ps.rcPaint, (HBRUSH)(COLOR_WINDOW + 1));// 绘制红五角星DrawStar(hdc, 200, 150, 100);EndPaint(hwnd, &ps);break;}case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd, msg, wParam, lParam);}return 0;
}int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {const char CLASS_NAME[] = "StarDrawingWindow";WNDCLASS wc = {};wc.lpfnWndProc = WndProc; // 设置窗口过程wc.hInstance = hInstance;wc.lpszClassName = CLASS_NAME;RegisterClass(&wc);// 创建窗口HWND hwnd = CreateWindowEx(0, CLASS_NAME, "绘制红五角星", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, 400, 300, NULL, NULL, hInstance, NULL);if (hwnd == NULL) {return 0;}ShowWindow(hwnd, nCmdShow);UpdateWindow(hwnd);// 消息循环MSG msg;while (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessage(&msg);}return 0;
}

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

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

相关文章

【高校主办】2025年第四届信息与通信工程国际会议(JCICE 2025)

重要信息 会议网址&#xff1a;www.jcice.org 会议时间&#xff1a;2025年7月25-27日 召开地点&#xff1a;哈尔滨 截稿时间&#xff1a;2025年6月15日 录用通知&#xff1a;投稿后2周内 收录检索&#xff1a;EI,Scopus 会议简介 JCICE 2022、JCICE 2023、JCICE 2…

【Linux】Linux 操作系统 - 03 ,初步指令结尾 + shell 理解

文章目录 前言一、打包和压缩二、有关体系结构 (考)面试题 三、重要的热键四、shell 命令及运行原理初步理解五、本节命令总结总结 前言 本篇文章 , 笔者记录的笔记内容包含 : 基础指令 、重要热键 、shell 初步理解 、权限用户的部分问题 。 内容皆是重要知识点 , 需要认真理…

Python: sqlite3.OperationalError: no such table: ***解析

出现该错误说明数据库中没有成功创建 reviews 表。以下是完整的解决方案: 步骤 1:创建数据库表 在插入数据前,必须先执行建表语句。请通过以下任一方式创建表: 方式一:使用 SQLite 命令行 bash 复制 # 进入 SQLite 命令行 sqlite3 reviews.db# 执行建表语句 CREATE T…

VSCode CLine 插件自定义配置使用 Claude 3.7 模型进行 AI 开发

一个互联网技术玩家&#xff0c;一个爱聊技术的家伙。在工作和学习中不断思考&#xff0c;把这些思考总结出来&#xff0c;并分享&#xff0c;和大家一起交流进步。 本文介绍如何在 Visual Studio Code (VSCode) 中安装和自定义配置 CLine 插件&#xff0c;并使用 Claude 3.7 模…

【VSCode配置】运行springboot项目和vue项目

目录 安装VSCode安装软件安装插件VSCode配置user的全局设置setting.jsonworkshop的项目自定义设置setting.jsonworkshop的项目启动配置launch.json 安装VSCode 官网下载 安装软件 git安装1.1.12版本&#xff0c;1.2.X高版本无法安装node14以下版本 nvm安装&#xff08;github…

linux shell编程之条件语句(二)

目录 一. 条件测试操作 1. 文件测试 2. 整数值比较 3. 字符串比较 4. 逻辑测试 二. if 条件语句 1. if 语句的结构 (1) 单分支 if 语句 (2) 双分支 if 语句 (3) 多分支 if 语句 2. if 语句应用示例 (1) 单分支 if 语句应用 (2) 双分支 if 语句应用 (3) 多分支 …

榕壹云在线商城系统:基于THinkPHP+ Mysql+UniApp全端适配、高效部署的电商解决方案

项目背景&#xff1a;解决多端电商开发的痛点 随着移动互联网的普及和用户购物习惯的碎片化&#xff0c;传统电商系统面临以下挑战&#xff1a; 1. 多平台适配成本高&#xff1a;需要同时开发App、小程序、H5等多端应用&#xff0c;重复开发导致资源浪费。 2. 技术依赖第三方…

神经动力学系统与计算及AI拓展

大脑&#xff0c;一个蕴藏在我们颅骨之内的宇宙&#xff0c;以活动脉动&#xff0c;如同由电信号和化学信号编织而成的交响乐&#xff0c;精巧地协调着思想、情感和行为。但是&#xff0c;这种复杂的神经元舞蹈是如何产生我们丰富多彩的精神生活的呢&#xff1f;这正是神经动力…

K8s常用基础管理命令(一)

基础管理命令 基础命令kubectl get命令kubectl create命令kubectl apply命令kubectl delete命令kubectl describe命令kubectl explain命令kubectl run命令kubectl cp命令kubectl edit命令kubectl logs命令kubectl exec命令kubectl port-forward命令kubectl patch命令 集群管理命…

本地化部署DeepSeek-R1蒸馏大模型:基于飞桨PaddleNLP 3.0的实战指南

目录 一、飞桨框架3.0&#xff1a;大模型推理新范式的开启1.1 自动并行机制革新&#xff1a;解放多卡推理1.2 推理-训练统一设计&#xff1a;一套代码全流程复用 二、本地部署DeepSeek-R1-Distill-Llama-8B的实战流程2.1 机器环境说明2.2 模型与推理脚本准备2.3 启动 Docker 容…

单片机方案开发 代写程序/烧录芯片 九齐/应广等 电动玩具 小家电 语音开发

在电子产品设计中&#xff0c;单片机&#xff08;MCU&#xff09;无疑是最重要的组成部分之一。无论是消费电子、智能家居、工业控制&#xff0c;还是可穿戴设备&#xff0c;小家电等&#xff0c;单片机的应用无处不在。 单片机&#xff0c;简而言之&#xff0c;就是将计算机…

【位运算】两整数之和

文章目录 371. 两整数之和解题思路&#xff1a;位运算 371. 两整数之和 371. 两整数之和 ​ 给你两个整数 a 和 b &#xff0c;不使用 运算符 和 - &#xff0c;计算并返回两整数之和。 示例 1&#xff1a; 输入&#xff1a;a 1, b 2 输出&#xff1a;3示例 2&#xff1…

使用Python从零实现一个端到端多模态 Transformer大模型

嘿&#xff0c;各位&#xff01;今天咱们要来一场超级酷炫的多模态 Transformer 冒险之旅&#xff01;想象一下&#xff0c;让一个模型既能看懂图片&#xff0c;又能理解文字&#xff0c;然后还能生成有趣的回答。听起来是不是很像超级英雄的超能力&#xff1f;别急&#xff0c…

新闻推荐系统(springboot+vue+mysql)含万字文档+运行说明文档

新闻推荐系统(springbootvuemysql)含万字文档运行说明文档 该系统是一个新闻推荐系统&#xff0c;分为管理员和用户两个角色。管理员模块包括个人中心、用户管理、排行榜管理、新闻管理、我的收藏管理和系统管理等功能。管理员可以通过这些功能进行用户信息管理、查看和编辑用…

游戏引擎学习第218天

构建并运行&#xff0c;注意一下在调试系统关闭前人物的移动速度 现在我准备开始构建项目。如果我没记错的话&#xff0c;我们之前关闭了调试系统&#xff0c;主要是为了避免大家在运行过程中遇到问题。现在调试系统没有开启&#xff0c;一切运行得很顺利&#xff0c;看到那个…

基于混合编码器和边缘引导的拉普拉斯金字塔网络用于遥感变化检测

Laplacian Pyramid Network With HybridEncoder and Edge Guidance for RemoteSensing Change Detection 0、摘要 遥感变化检测&#xff08;CD&#xff09;是观测和分析动态土地覆盖变化的一项关键任务。许多基于深度学习的CD方法表现出强大的性能&#xff0c;但它们的有效性…

Go语言从零构建SQL数据库(6) - sql解析器(番外)- *号的处理

番外&#xff1a;处理SQL通配符查询 在SQL中&#xff0c;SELECT * FROM table是最基础的查询之一&#xff0c;星号&#xff08;*&#xff09;是一个通配符&#xff0c;表示"选择所有列"。虽然通配符查询看起来简单&#xff0c;但在解析器中需要特殊处理。下面详细介…

浅析Centos7安装Oracle12数据库

Linux下的Oracle数据库实在是太难安装了&#xff0c;事贼多&#xff0c;我都怀疑能安装成功是不是运气的成分更高一些。这里操作系统是Centos7&#xff0c;Oracle版本是Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production。 Oracle下载链接: https…

02-redis-源码下载

1、进入到官网 redis官网地址https://redis.io/ 2 进入到download页面 官网页面往最底下滑动&#xff0c;找到如下页面 点击【download】跳转如下页面&#xff0c;直接访问&#xff1a;【https://redis.io/downloads/#stack】到如下页面 ​ 3 找到对应版本的源码 https…

2024年博客之星的省域空间分布展示-以全网Top300为例

目录 前言 一、2024博客之星 1、所有排名数据 2、空间属性管理 二、数据抓取与处理 1、相关业务表的设计 2、数据抓取处理 3、空间查询分析实践 三、数据成果挖掘 1、省域分布解读 2、技术开发活跃 四、总结 前言 2024年博客之星的评选活动已经过去了一个月&#xf…