当前位置: 首页 > news >正文

C语言程序设计之小系统


🌟 嗨,我是LucianaiB!

🌍 总有人间一两风,填我十万八千梦。

🚀 路漫漫其修远兮,吾将上下而求索。


目录

  1. 系统说明
    1.1 系统概述
    1.2 功能模块
  2. 总体设计
  3. 详细设计
    3.1 程序中使用的函数
    3.2各类问题的详细设计
    3.3.1可逆素数
    3.3.2计算数字总和
    3.3.3各位数字之和排序
    3.3.4字符串中的最大整数
    3.3.5字符串解压
    3.3.6输出指定图形
    3.3.7计算学生信息操作之最高分
    3.3.8字符串反转
  4. 系统测试
    4.1 菜单显示
    4.2计算数字总和
    4.3 各位数字之和排序
    4.4字符串中的最大整数
    4.5字符串解压
    4.6输出指定图形
    4.7计算学生信息操作之最高分
    4.8字符串反转
  5. 总结
  6. 附录

1系统说明

1.1系统概述

本系统是一个综合管理系统,旨在将本学期学习的各类小程序整合在一起,提供一个用户友好的界面,方便用户选择并解决不同类别的问题。系统通过菜单展示可用的功能,用户可以根据自己的需求选择相应的类别,系统将显示具体的问题内容并提供解答。

1.2功能模块

系统主要包括以下功能模块:
可逆素数: 功能:计算指定区间内的可逆素数的个数。 输入:用户输入两个正整数,表示区间的起始值和结束值。 输出:显示该区间内可逆素数的数量。
计算数字总和: 功能:计算给定非负整数N的所有数字的总和,并以英语输出每个数字。 输入:用户输入一个非负整数。 输出:以英语单词形式输出数字总和的每个数字。
各位数字之和排序: 功能:根据各位数字之和对输入的正整数进行排序。 输入:用户输入一组正整数。 输出:显示排序后的结果。
字符串中的最大整数: 功能:从输入的字符串中找出最大的正整数。 输入:用户输入一个字符串,以#结束。 输出:显示字符串中包含的最大正整数,若没有则输出“none”。
字符串解压: 功能:将压缩后的字符串解压为原始字符串。 输入:用户输入压缩后的字符串。 输出:显示解压后的字符串。
输出指定图形: 功能:根据用户输入的行数输出一个直角三角形。 输入:用户输入一个正整数n。 输出:显示按规律变化的n行直角三角形。
计算学生信息操作之最高分: 功能:计算每个学生的总分,并输出总分最高的学生的信息。 输入:用户输入学生人数及每个学生的学号、姓名和三门课程成绩。 输出:显示总分最高的学生的详细信息。
字符串反转: 功能:将输入的字符串进行反转。 输入:用户输入一个字符串。

2总体设计

本系统有以下8个功能模块,其调用关系如下:

在这里插入图片描述

旨在提供一个综合管理平台,方便用户选择并解决不同类别的问题。各模块之间的调用关系如下:

  1. 可逆素数模块:该模块负责计算指定区间内的可逆素数的个数。用户输入两个正整数作为区间的起始值和结束值,系统将遍历该区间内的所有整数,判断其是否为素数,并检查其反转数是否也是素数。此模块的输出为可逆素数的数量。
  2. 计算数字总和模块:此模块用于计算给定非负整数N的所有数字的总和,并以英语单词形式输出每个数字。用户输入一个非负整数,系统将逐位提取数字并累加,最后将结果转换为英文形式输出。
  3. 各位数字之和排序模块:该模块根据各位数字之和对输入的正整数进行排序。用户输入一组正整数,系统将计算每个数字的各位数字之和,并根据该和进行排序,最终输出排序后的结果。
  4. 字符串中的最大整数模块:此模块从用户输入的字符串中找出最大的正整数。用户输入一个字符串,系统将遍历字符串,提取其中的数字并找出最大值,若没有数字则输出“none”。
  5. 字符串解压模块:该模块负责将压缩后的字符串解压为原始字符串。用户输入一个压缩格式的字符串,系统将解析该字符串并输出解压后的结果。
  6. 输出指定图形模块:此模块根据用户输入的行数输出一个直角三角形。用户输入一个正整数n,系统将根据该值输出n行的直角三角形,形成特定的图形结构。
  7. 计算学生信息操作之最高分模块:该模块用于计算每个学生的总分,并输出总分最高的学生的信息。用户输入学生人数及每个学生的学号、姓名和三门课程成绩,系统将计算每个学生的总分并找出最高分的学生。
  8. 字符串反转模块:此模块负责将输入的字符串进行反转。用户输入一个字符串,系统将输出该字符串的反转结果。

3详细设计

3.1程序中使用的函数

主函数:void main()
菜单函数:int displayMenu()
可逆素数函数:int reversiblePrimeCount(int start, int end)
数字求和函数:int sumOfDigits(const string& number)
各位数字之和排序函数:void sortByDigitSum()
最大整数查找函数:long long findMaxInteger(const string& input)
字符串解压函数:string decompressString(const string& compressed)
图形输出函数:void outputTriangle(int n)
最高分学生信息函数:void highestScoreStudent()

3.2 各类问题的详细设计

3.2.1 可逆素数

算法
1.初始化:
创建一个计数器 count,用于记录可逆素数的个数。
输入两个正整数 start 和 end,表示要检查的区间。
2.遍历区间:
对于每个整数 i 从 start 到 end:
检查 i 是否为素数。
如果 i 是素数,计算其反转数 reversedNum。
检查 reversedNum 是否为素数。
如果 reversedNum 也是素数,则:
增加 count。
3.输出结果:
输出可逆素数的数量。
流程图

在这里插入图片描述

3.2.2计算数字总和

算法
1.初始化:
创建一个变量 sum,用于记录数字的总和,初始值为 0。
输入一个非负整数 N。
2.遍历数字的每一位:
将 N 转换为字符串,以便逐位访问。
对于字符串中的每个字符 digit:
如果 digit 是数字,将其转换为整数并加到 sum 上。
3.输出结果:
输出 sum 的值。
流程图

在这里插入图片描述

3.2.3各位数字之和排序

算法
1.输入数据:
输入一个整数 n,表示要排序的数字个数。
输入 n 个正整数,存储在数组 arr 中。
2.计算各位数字之和:
创建一个数组 digitSums,用于存储每个数字的各位数字之和。
对于数组中的每个数字 num:
计算 num 的各位数字之和,并将结果存储在 digitSums 中。
3.排序:
使用选择排序法或其他排序算法,根据 digitSums 对 arr 进行排序。
4.输出结果:
输出排序后的数组 arr。
流程图
在这里插入图片描述

3.2.4字符串中的最大整数

算法
1.初始化:
创建一个变量 maxNum,用于记录最大整数,初始值为 -1。
创建一个变量 currentNum,用于记录当前数字的字符串。
2.输入字符串:
输入一个字符串,直到遇到特定的结束符(例如 #)。
3.遍历字符串:
对字符串中的每个字符进行遍历:
如果字符是数字,将其添加到 currentNum。
如果字符不是数字且 currentNum 不为空:
将 currentNum 转换为整数,更新 maxNum(如果 currentNum 大于 maxNum)。
清空 currentNum。
4.处理最后一个数字:
如果 currentNum 不为空,进行最后一次检查并更新 maxNum。
5.输出结果:
如果 maxNum 仍为 -1,输出 “none”;否则输出 maxNum。
流程图
在这里插入图片描述

3.2.5字符串解压

算法
1.初始化:
创建一个空字符串 result,用于存储解压后的结果。创建一个变量 i,用于遍历输入字符串。
2.输入字符串:
输入一个压缩格式的字符串,格式为 number[string],表示 string 重复 number 次。
3.遍历字符串:
对字符串中的每个字符进行遍历:
如果字符是数字,解析出完整的数字 count。
如果字符是左括号 [,记录当前的 result 和 count,并开始新的子字符串。
如果字符是右括号 ],将当前子字符串重复 count 次并添加到 result 中。
如果字符是字母,将其添加到当前的子字符串中。
流程图

在这里插入图片描述

3.2.6输出指定图形

算法
1.输入参数:
输入一个整数 n,表示图形的边长。
2.绘制图形:
使用嵌套循环:
外层循环控制行数,从 1 到 n。
内层循环控制列数,从 1 到 n。
在每一行中输出 *,形成正方形的边。
3.输出结果:
输出绘制的图形。
流程图

在这里插入图片描述

3.2.7计算学生信息操作之最高分

算法
1.初始化:
创建一个变量 maxScore,用于记录最高分,初始值为 -1。
创建一个变量 n,表示学生人数。
2.输入学生人数:
输入一个整数 n,表示学生的数量。
3.输入学生分数:
使用循环遍历每个学生:
输入每个学生的分数 score。
如果 score 大于 maxScore,则更新 maxScore。
4.输出结果:
输出最高分 maxScore。
流程图
在这里插入图片描述

3.2.8字符串反转

算法
1.初始化:
创建一个空字符串 reversedString,用于存储反转后的结果。
获取输入字符串的长度 n。
2.遍历字符串:
从字符串的最后一个字符开始,逐个向前遍历到第一个字符。
在每次遍历中,将当前字符添加到 reversedString。
3.输出结果:
输出反转后的字符串 reversedString。
流程图
在这里插入图片描述

4系统测试

4.1菜单显示

在这里插入图片描述

以上是菜单功能的介绍,您可以根据需要选择相应的功能

4.2计算数字总和在这里插入图片描述

成功在范围 1001 到 9999 内,可逆素数的数量为 204。

4.3各位数字之和排序

在这里插入图片描述

数字总和:9 数字总和的英文表示:nine 计算成功。

4.4. 字符串中的最大整数

在这里插入图片描述

• 123 的各位数字之和为 1 + 2 + 3 = 6
• 423 的各位数字之和为 4 + 2 + 3 = 9
• 485 的各位数字之和为 4 + 8 + 5 = 17
根据各位数字之和进行排序,结果为: 排序后的数字: 123 423 485

4.5字符串解压

在这里插入图片描述

选择了“字符串解压”功能,并成功输入了压缩字符串 3a5bx。

4.6输出指定图形

在这里插入图片描述

• 第一行输出 1
• 第二行输出 2 和 4
• 第三行输出 3、6 和 9
成功符合要求。

4.7计算学生信息操作之最高分

在这里插入图片描述

  1. 计算每个学生的总分:
    • Zhangling: 89 + 78 + 95 = 262
    • Wangli: 85 + 87 + 99 = 271
    • Fangfang: 85 + 68 + 76 = 229
  2. 找出最高分:
    • 最高分为 271,对应的学生为 Wangli。
    并且成功输出。

4.8字符串反转在这里插入图片描述

选择了“字符串反转”功能,并输入了要反转的字符串 fasdfasdfsadfsdaf。

5 总 结

在进行课程设计的过程中,我深刻体会到系统思维的重要性。设计一个完整的系统不仅仅是编写代码,更是对需求分析、用户体验和功能实现的全面考虑。在项目初期,我花费了大量时间进行需求调研,确保系统能够满足用户的实际需求。
在开发过程中,遇到了一些技术难题,比如数据结构的选择和算法的优化。这让我意识到,扎实的基础知识是解决问题的关键。同时,团队协作也至关重要,及时的沟通和反馈能够有效提高工作效率。
通过这次课程设计,我学会了如何将理论知识应用于实践,积累了宝贵的项目经验。未来,我会更加注重项目管理和时间规划,以提高整体开发效率。总之,这次经历让我对软件开发有了更深刻的理解,也为我今后的学习和工作打下了良好的基础。

附录:

 #include <stdio.h>
#include <math.h>
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <iomanip>
#include <sstream> 
using namespace std;// 学生信息结构体
struct student {char xh[13]; // 学号char name[21]; // 姓名int a, b, c; // 三门课程成绩
} stu[100];// 函数声明
int isPrime(int n);
int reverseNum(int n);
void fun1();
string digitToWord(int digit);
void fun2();
long long stringToLongLong(const string& str);
void fun4();
void fun5();
void fun6();
void fun7();
void fun8();
void fun3();// 判断是否为素数
int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) return 0;}return 1;
}// 翻转数字
int reverseNum(int n) {int reversed = 0;while (n > 0) {reversed = reversed * 10 + n % 10;n /= 10;}return reversed;
}// Fun1: 可逆素数
void fun1() {int start, end;printf("请输入范围的起始值和结束值(以空格分隔): ");scanf("%d %d", &start, &end);int count = 0;for (int i = start; i <= end; i++) {if (isPrime(i) && isPrime(reverseNum(i))) {count++;}}printf("可逆素数的数量: %d\n", count);
}// Fun2: 计算数字总和
string digitToWord(int digit) {switch (digit) {case 0: return "zero";case 1: return "one";case 2: return "two";case 3: return "three";case 4: return "four";case 5: return "five";case 6: return "six";case 7: return "seven";case 8: return "eight";case 9: return "nine";default: return "";}
}void fun2() {string n;printf("请输入一个数字串: ");cin >> n;long long sum = 0;for (int i = 0; i < n.length(); i++) {char c = n[i];if (isdigit(c)) {sum += c - '0';}}stringstream ss;ss << sum;string sumStr = ss.str();printf("数字总和的英文表示: ");for (int i = 0; i < sumStr.length(); i++) {cout << digitToWord(sumStr[i] - '0') << (i == sumStr.length() - 1 ? "" : " ");}cout << endl;
}// 字符串转长整型辅助函数
long long stringToLongLong(const string& str) {long long result = 0;stringstream ss(str);ss >> result;return result;
}// Fun3: 各位数字之和排序
void fun3() {int sum[10], a[10];int n, i, j, temp;printf("请输入数字的个数(输入0结束): ");while (~scanf("%d", &n) && n) {for (i = 0; i < n; i++) {sum[i] = 0;}printf("请输入数字: ");for (i = 0; i < n; i++) {scanf("%d", &a[i]);temp = a[i];for (j = 0;; j++) {sum[i] += temp % 10;temp = temp / 10;if (temp == 0) break;}}for (i = 0; i < n - 1; i++) {for (j = i + 1; j < n; j++) {if (sum[i] > sum[j]) {temp = sum[i];sum[i] = sum[j];sum[j] = temp;temp = a[i];a[i] = a[j];a[j] = temp;}}}printf("排序后的数字: ");for (i = 0; i < n; i++) {if (i == 0)printf("%d", a[i]);elseprintf(" %d", a[i]);}printf("\n");printf("请输入数字的个数(输入0结束): ");}
}// Fun4: 字符串中的最大整数
void fun4() {string s;printf("请输入字符串(以#结束): ");getline(cin, s, '#');long long max_num = -1;bool found = false;string num;for (int i = 0; i < s.length(); i++) {char c = s[i];if (isdigit(c)) {num += c;found = true;} else {if (!num.empty()) {max_num = max(max_num, stringToLongLong(num));num = "";}}}if (!num.empty()) {max_num = max(max_num, stringToLongLong(num));}if (found) {printf("字符串中的最大整数: %lld\n", max_num);} else {printf("none\n");}
}// Fun5: 字符串解压
void fun5() {string compressed;printf("请输入压缩字符串: ");cin >> compressed;string decompressed = "";for (int i = 0; i < compressed.length(); i++) {if (isdigit(compressed[i])) {int count = 0;while (i < compressed.length() && isdigit(compressed[i])) {count = count * 10 + (compressed[i] - '0');i++;}i--;decompressed += string(count, compressed[++i]);} else {decompressed += compressed[i];}}printf("解压后的字符串: %s\n", decompressed.c_str());
}// Fun6: 输出指定图形
void fun6() {int n;printf("请输入图形的行数: ");cin >> n;for (int i = 1; i <= n; i++) {for (int j = 1; j <= i; j++) {cout << setw(6) << left << i * j;}cout << endl;}
}// Fun7: 计算学生信息操作之最高分
void fun7() {int n;printf("请输入学生人数: ");scanf("%d", &n); // 输入学生人数int totalScores[100]; // 存储每个学生的总分// 输入学生信息printf("请输入每个学生的学号、姓名和三门课程成绩:\n");for (int i = 0; i < n; i++) {scanf("%s %s %d %d %d", stu[i].xh, stu[i].name, &stu[i].a, &stu[i].b, &stu[i].c);}// 计算每个学生的总分for (int i = 0; i < n; i++) {totalScores[i] = stu[i].a + stu[i].b + stu[i].c;}// 找到总分最高的学生int maxScore = totalScores[0];int topStudentIndex = 0;for (int i = 1; i < n; i++) {if (totalScores[i] > maxScore) {maxScore = totalScores[i];topStudentIndex = i;}}// 输出总分最高的学生的信息printf("总分最高的学生信息: %s %s %d %d %d\n", stu[topStudentIndex].xh, stu[topStudentIndex].name, stu[topStudentIndex].a, stu[topStudentIndex].b, stu[topStudentIndex].c);
}// Fun8: 字符串反转
void fun8() {string s;printf("请输入要反转的字符串: ");cin >> s; // 使用 cin 读取字符串printf("原字符串: '%s' =>\n", s.c_str()); // 输出原字符串// 反转字符串int len = s.length();int i, j;char temp;for (i = 0, j = len - 1; i < j; i++, j--) {temp = s[i];s[i] = s[j];s[j] = temp;}printf("反转后的字符串: '%s'\n", s.c_str()); // 输出反转后的字符串
}// 主函数,选择题目
int main() {int choice;while (true) {printf("请选择功能:\n");printf("1. 可逆素数\n");printf("2. 计算数字总和\n");printf("3. 各位数字之和排序\n");printf("4. 字符串中的最大整数\n");printf("5. 字符串解压\n");printf("6. 输出指定图形\n");printf("7. 计算学生信息操作之最高分\n");printf("8. 字符串反转\n");printf("9. 退出\n");printf("请输入您的选择: ");scanf("%d", &choice);if (choice == 1) {fun1();} else if (choice == 2) {fun2();} else if (choice == 3) {fun3();} else if (choice == 4) {fun4();} else if (choice == 5) {fun5();} else if (choice == 6) {fun6();} else if (choice == 7) {fun7();} else if (choice == 8) {fun8();} else if (choice == 9) {break;} else {printf("无效输入,请重新选择。\n");}}return 0;
}

嗨,我是LucianaiB。如果你觉得我的分享有价值,不妨通过以下方式表达你的支持:👍 点赞来表达你的喜爱,📁 关注以获取我的最新消息,💬 评论与我交流你的见解。我会继续努力,为你带来更多精彩和实用的内容。

点击这里👉LucianaiB ,获取最新动态,⚡️ 让信息传递更加迅速。

相关文章:

C语言程序设计之小系统

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 目录 系统说明 1.1 系统概述 1.2 功能模块总体设计详细设计 3.1 程序中使用的函数 3.2各类问…...

pyinstaller : 无法将“pyinstaller”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

pyinstaller : 无法将“pyinstaller”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c;然后再试一次。 所在位置 行:1 字符: 1pyinstaller --onefile --windowed 过年烟花.py~~~~~~~~~~~ …...

接口传参 data格式和json格式区别是什么

接口传参 data格式和json格式区别是什么 以下是接口传参 data 格式和 JSON 格式的区别&#xff1a; 定义和范围 Data 格式&#xff1a; 是一个较为宽泛的概念&#xff0c;它可以指代接口传递参数时所使用的任何数据的组织形式。包括但不限于 JSON、XML、Form 数据、纯文本、二进…...

ClickHouse 入门

简介 ClickHouse 是一个列式数据库&#xff0c;传统的数据库一般是按行存储&#xff0c;而ClickHouse则是按列存储&#xff0c;每一列都有自己的存储空间&#xff0c;并且只存储该列的数值&#xff0c;而不是存储整行的数据。这样做主要有几个好处&#xff0c;压缩率高&#x…...

Python自动化:基于faker批量生成模拟数据(以电商行业销售数据为例)

引言&#xff1a;个人认为&#xff0c;“造数据”是一个数据分析师的一项基本技能&#xff0c;当然啦&#xff0c;“造数据”不是说胡编乱造&#xff0c;而是根据自己的需求去构造一些模拟数据集&#xff0c;用于测试等用途&#xff0c;而且使用虚拟数据不用担心数据隐私和安全…...

3.3 OpenAI GPT-4, GPT-3.5, GPT-3 模型调用:开发者指南

OpenAI GPT-4, GPT-3.5, GPT-3 模型调用:开发者指南 OpenAI 的 GPT 系列语言模型,包括 GPT-4、GPT-3.5 和 GPT-3,已经成为自然语言处理领域的标杆。无论是文本生成、对话系统,还是自动化任务,开发者都可以通过 API 调用这些强大的模型来增强他们的应用。本文将为您详细介…...

【Spring Boot】掌握 Spring 事务:隔离级别与传播机制解读与应用

前言 &#x1f31f;&#x1f31f;本期讲解关于spring 事务传播机制介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话…...

力扣203题—— 移除链表元素

题目 递归法使用 if(headnull){return null; }//假设remove返回后面已经去掉val值的链表 我们用head.next去存放他&#xff0c;接着我们要判断此时head head值是否等于val&#xff0c;如果等于我们就返回后继元素即可 head.nextremove(head.next,val); if(head.valval){return…...

Express中间件

目录 Express中间件 中间件的概念 next函数 全局中间与局部中间件 多个中间件 中间的5个注意事项 中间的分类 应用级中间件 路由级中间件 错误级中间件 Express内置中间件 express.json express.urlencoded 第三方中间件​编辑 自定义中间件 Express中间件 中间…...

【AIGC】SYNCAMMASTER:多视角多像机的视频生成

标题&#xff1a;SYNCAMMASTER: SYNCHRONIZING MULTI-CAMERA VIDEO GENERATION FROM DIVERSE VIEWPOINTS 主页&#xff1a;https://jianhongbai.github.io/SynCamMaster/ 代码&#xff1a;https://github.com/KwaiVGI/SynCamMaster 文章目录 摘要一、引言二、使用步骤2.1 TextT…...

模块化架构与微服务架构,哪种更适合桌面软件开发?

前言 在现代软件开发中&#xff0c;架构设计扮演着至关重要的角色。两种常见的架构设计方法是模块化架构与微服务架构。它们各自有独特的优势和适用场景&#xff0c;尤其在C#桌面软件开发领域&#xff0c;模块化架构往往更加具有实践性。本文将对这两种架构进行对比&#xff0…...

Ubuntu 24.04 LTS 安装 tailscale 并访问 SMB共享文件夹

Ubuntu 24.04 LTS 安装 tailscale 安装 Tailscale 官方仓库 首先&#xff0c;确保系统包列表是最新的&#xff1a; sudo apt update接下来&#xff0c;安装 Tailscale 所需的仓库和密钥&#xff1a; curl -fsSL https://tailscale.com/install.sh | sh这会自动下载并安装 …...

fgets、scanf存字符串应用

题目1 夺旗&#xff08;英语&#xff1a;Capture the flag&#xff0c;简称 CTF&#xff09;在计算机安全中是一种活动&#xff0c;当中会将“旗子”秘密地埋藏于有目的的易受攻击的程序或网站。参赛者从其他参赛者或主办方偷去旗子。 非常崇拜探姬的小学妹最近迷上了 CTF&am…...

C#高级:用Csharp操作鼠标和键盘

一、winform 1.实时获取鼠标位置 public Form1() {InitializeComponent();InitialTime(); }private void InitialTime() {// 初始化 Timer 控件var timer new System.Windows.Forms.Timer();timer.Interval 100; // 设置为 100 毫秒&#xff0c;即每 0.1 秒更新一次timer.…...

关于AI agent的学术论文实验部分:准确率,响应时间,用户满意度

关于AI agent的学术论文实验部分 在撰写关于AI agent的学术论文时,实验设计和实施是关键部分,仅搭建完成AI agent通常是不够的,需要通过严谨的实验来验证其性能、效果和创新性。以下以一个在智能客服场景中应用AI agent的例子,说明如何完成实验: 明确实验目的:确定通过实…...

消息队列实战指南:三大MQ 与 Kafka 适用场景全解析

前言&#xff1a;在当今数字化时代&#xff0c;分布式系统和大数据处理变得愈发普遍&#xff0c;消息队列作为其中的关键组件&#xff0c;承担着系统解耦、异步通信、流量削峰等重要职责。ActiveMQ、RabbitMQ、RocketMQ 和 Kafka 作为市场上极具代表性的消息队列产品&#xff0…...

postgresql表分区及测试

本文主要采用list类型实现表分区&#xff0c;并对表分区数据进行查询对比&#xff0c;数据量6000万条以上&#xff0c;速度相差10倍以上。 一、创建表&#xff0c;以substationcode字段为ist类型表分区 CREATE TABLE "public"."d_population_partition" …...

VUE学习笔记(入门)1__创建VUE实例

核心步骤 <div id"app"><!-- 这里存放渲染逻辑代码 --><h1>{{ msg }}</h1><a href"#">{{count}}</a> </div><!-- 引入在线的开发版本核心包 --> <!-- 引入核心包后全局可使用VUE构造函数 --> <…...

STL—stack与queue

目录 Stack stack的使用 stack的模拟实现 queue queue的使用 queue的模拟实现 priority_queue priority_queue的用法 priority_queue的模拟实现 容器适配器 种类 Stack http://www.cplusplus.com/reference/stack/stack/?kwstack stack是栈&#xff0c;后入先出 stack的…...

pthread_create函数

函数原型 pthread_create 是 POSIX 线程&#xff08;pthread&#xff09;库中的一个函数&#xff0c;用于在程序中创建一个新线程。 #include <pthread.h>int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *a…...

suctf2025

Suctf2025 --2标识为看的wp&#xff0c;没环境复现了 所有参考资料将在文本末尾标明 WEB SU_photogallery 思路&#x1f447; 构造一个压缩包&#xff0c;解压出我们想解压的部分&#xff0c;然后其他部分是损坏的&#xff0c;这样是不是就可以让整个解压过程是出错的从而…...

二、点灯基础实验

嵌入式基础实验第一个就是点灯&#xff0c;地位相当于编程界的hello world。 如下为LED原理图&#xff0c;要让相应LED发光&#xff0c;需要给I/O口设置输出引脚&#xff0c;低电平&#xff0c;二极管才会导通 2.1 打开初始工程&#xff0c;编写代码 以下会实现BLINKY常亮&…...

ESP8266-01S、手机、STM32连接

1、ESP8266-01S的工作原理 1.1、AP和STA ESP8266-01S为WIFI的透传模块&#xff0c;主要模式如下图&#xff1a; 上节说到&#xff0c;我们需要用到AT固件进行局域网应用&#xff08;ESP8266连接的STM32和手机进行连接&#xff09;。 ESP8266为一个WiFi透传模块&#xff0c;和…...

微服务学习:基础理论

一、微服务和应用现代化 1、时代的浪潮&#xff0c;企业的机遇和挑战 在互联网化数字化智能化全球化的当今社会&#xff0c;IT行业也面临新的挑战&#xff1a; 【快】业务需求如“滔滔江水连绵不绝”&#xff0c;企业需要更快的交付【变】林子大了&#xff0c;百色用户&…...

【c++继承篇】--继承之道:在C++的世界中编织血脉与传承

目录 引言 一、定义二、继承定义格式2.1定义格式2.2继承关系和访问限定符2.3继承后子类访问权限 三、基类和派生类赋值转换四、继承的作用域4.1同名变量4.2同名函数 五、派生类的默认成员构造函数5.1**构造函数调用顺序&#xff1a;**5.2**析构函数调用顺序&#xff1a;**5.3调…...

Java操作Excel导入导出——POI、Hutool、EasyExcel

目录 一、POI导入导出 1.数据库导出为Excel文件 2.将Excel文件导入到数据库中 二、Hutool导入导出 1.数据库导出为Excel文件——属性名是列名 2.数据库导出为Excel文件——列名起别名 3.从Excel文件导入数据到数据库——属性名是列名 4.从Excel文件导入数据到数据库…...

基于VSCODE+GDB+GDBSERVER远程单步调试设备篇(可视化界面)

目录 说明 配置方法 1&#xff09;VSCODE必备插件 2&#xff09;配置launch.json文件&#xff0c;用于GDB调试 调试步骤 ​​​​​​目标板运行程序 1&#xff09;已启动程序&#xff0c;通过attach方式进入调试 2&#xff09;通过gdbserver启动时加载程序(程序路径根据实际情…...

【设计模式】 单例模式(单例模式哪几种实现,如何保证线程安全,反射破坏单例模式)

单例模式 作用&#xff1a;单例模式的核心是保证一个类只有一个实例&#xff0c;并且提供一个访问实例的全局访问点。 实现方式优缺点饿汉式线程安全&#xff0c;调用效率高 &#xff0c;但是不能延迟加载懒汉式线程安全&#xff0c;调用效率不高&#xff0c;能延迟加载双重检…...

lvm快照备份

前提 数据文件要在逻辑卷上&#xff1b; 此逻辑卷所在卷组必须有足够空间使用快照卷&#xff1b; 数据文件和事务日志要在同一个逻辑卷上&#xff1b; 前提&#xff1a;MySQL数据lv和将要创建的快照要在同一vg&#xff0c;vg要有足够的空间存储 优点 几乎是热备&…...

PHP CRM售后系统小程序

&#x1f4bc; CRM售后系统 &#x1f4fa;这是一款基于PHP和uniapp深度定制的CRM售后管理系统&#xff0c;它犹如企业的智慧核心&#xff0c;精准赋能销售与售后管理的每一个环节&#xff0c;引领企业步入精细化、数字化的全新管理时代。系统集成了客户管理、合同管理、工单调…...

ETL 数据抽取

ETL ETL 数据抽取 ETL&#xff08;Extract, Transform, Load&#xff09;是数据集成和处理的重要过程&#xff0c;其中数据抽取&#xff08;Extract&#xff09;是第一步&#xff0c;负责从各种数据源中提取数据。以下是ETL数据抽取的详细说明和常用工具&#xff1a; 1. 数据…...

FANUC机器人系统镜像备份与恢复的具体步骤(图文)

FANUC机器人系统镜像备份与恢复的具体步骤(图文) 镜像备份: 如下图所示,进入文件—工具—切换设备,找到插入的U盘UT1, 如下图所示,进入U盘目录后,创建目录,这里目录名称为11, 如下图所示࿰...

MindsDB - 构建企业数据源 AI 对话

一、关于 MindsDB MindsDB是世界上最有效的解决方案&#xff0c;用于构建与混乱的企业数据源对话的AI应用程序。把它想象成图书管理员Marie Kondo。 github : https://github.com/mindsdb/mindsdb官网&#xff1a;https://www.mindsdb.com/官方文档&#xff1a;https://docs.…...

正则表达式(python版最全面,最易懂)

正则表达式 正则表达式英文称regular expression 定义&#xff1a;正则表达式是一种文本模式匹配的工具&#xff0c;用于字符串的搜索&#xff0c;匹配和替换。在excel,word以及其他的文本编辑器都可直接适配。 一、基本匹配规则 字面值字符&#xff1a;例如字母、数字、空格…...

QT 使用QTableView读取数据库数据,表格分页,跳转,导出,过滤功能

文章目录 效果图概述功能点代码分析导航栏表格更新视图表格导出表格过滤 总结 效果图 概述 本案例用于对数据库中的数据进行显示等其他操作。数据库的映射&#xff0c;插入等功能看此博客框架&#xff1a;数据模型使用QSqlTableModel&#xff0c;视图使用QTableView&#xff0…...

golang标准库path/filepath使用示例

文章目录 前言一、常用方法示例1.将相对路径转换为绝对路径2.获取路径中最后一个元素3.获取路径中除去最后一个元素的部分4.路径拼接5.将路径拆分为目录和文件名两部分6.返回一个相对路径7.文件路径遍历8.根据文件扩展名过滤文件9.使用正则表达式进行路径匹配 前言 path/filep…...

【日志篇】(7.6) ❀ 01. 在macOS下刷新FortiAnalyzer固件 ❀ FortiAnalyzer 日志分析

【简介】FortiAnalyzer 是 Fortinet Security Fabric 安全架构的基础&#xff0c;提供集中日志记录和分析&#xff0c;以及端到端可见性。因此&#xff0c;分析师可以更有效地管理安全状态&#xff0c;将安全流程自动化&#xff0c;并快速响应威胁。具有分析和自动化功能的集成…...

12 分布式事务

分布式事务产生的原因 我们拿mysql数据库来说&#xff0c;当数据库为单体数据库的时候&#xff0c;我们打开事务&#xff0c;执行sql为预执行阶段&#xff0c;最后commit时通过日志控制最终全部提交后存储到磁盘中&#xff0c;如果commit失败&#xff0c;可以通过日志控制回滚…...

移远通信多模卫星通信模组BG95-S5获得Skylo网络认证,进一步拓展全球卫星物联网市场

近日&#xff0c;全球领先的物联网整体解决方案供应商移远通信正式宣布&#xff0c;其支持“卫星蜂窝”多模式的高集成度NTN卫星通信模组BG95-S5已成功获得NTN网络运营商Skylo的网络认证。BG95-S5也成为了获得该认证的最新款移远卫星通信模组。 BG95-S5模组顺利获得Skylo认证&a…...

51.WPF应用加图标指南 C#例子 WPF例子

完整步骤&#xff1a; 先使用文心一言生成一个图标如左边使用Windows图片编辑器编辑&#xff0c;去除背景使用正方形&#xff0c;放大图片使图标铺满图片使用格式工程转换为ico格式&#xff0c;分辨率为最大 在资源管理器中右键项目添加ico类型图片到项目里图片属性设置为始终…...

OpenEuler学习笔记(三):为什么要搞OpenEuler?

为什么要搞OpenEuler&#xff1f; 技术自主可控需求 在信息技术领域&#xff0c;操作系统是关键的基础软件。过去&#xff0c;很多关键技术被国外厂商掌控&#xff0c;存在技术“卡脖子”的风险。OpenEuler的出现可以为国内提供一个自主可控的操作系统选择。例如&#xff0c;在…...

Apache Hive--排序函数解析

在大数据处理与分析中&#xff0c;Apache Hive是一个至关重要的数据仓库工具。其丰富的函数库为数据处理提供了诸多便利&#xff0c;排序函数便是其中一类非常实用的工具。通过排序函数&#xff0c;我们能够在查询结果集中为每一行数据分配一个排名值&#xff0c;这对于数据分析…...

LLMs之Dataset:中文互联网基础语料2.0的简介、下载和使用方法、案例应用之详细攻略

LLMs之Dataset&#xff1a;中文互联网基础语料2.0的简介、下载和使用方法、案例应用之详细攻略 目录 中文互联网基础语料2.0的简介 1、特点 中文互联网基础语料2.0的下载和使用方法 中文互联网基础语料2.0的案例应用 中文互联网基础语料2.0的简介 2025年1月发布&#xff0…...

深入剖析iOS网络优化策略,提升App性能

一、引言 在当今移动互联网时代&#xff0c;iOS 应用的网络性能直接关系到用户体验。无论是加载速度缓慢、频繁的网络错误&#xff0c;还是高额的流量消耗&#xff0c;都可能导致用户流失。因此&#xff0c;iOS 网络优化成为开发者提升应用质量、增强用户满意度的关键环节。本文…...

unity2022以上导出到AndroidStudio后更新步骤

1、unity里面Export出unityLibrary 2、导出apk&#xff0c;里面才包含libil2cpp(新版unity无法直接导出libil2cpp 3、注释AS项目app下的build.gradle里面包含unityLibrary的代码 4、注释AS项目settings.gradle包含unityLibrary的代码 5、删除AS项目里面的unityLibrary文件夹 6、…...

03JavaWeb——Ajax-Vue-Element(项目实战)

1 Ajax 1.1 Ajax介绍 1.1.1 Ajax概述 我们前端页面中的数据&#xff0c;如下图所示的表格中的学生信息&#xff0c;应该来自于后台&#xff0c;那么我们的后台和前端是互不影响的2个程序&#xff0c;那么我们前端应该如何从后台获取数据呢&#xff1f;因为是2个程序&#xf…...

表单中在不设置required的情况下在label前加*必填标识

参考:https://blog.csdn.net/qq_55798464/article/details/136233718 需求&#xff1a;在发票类型前面添加*必填标识 我最开始直接给发票类型这个表单类型添加了验证规则required:true&#xff0c;问题来了&#xff0c;这个发票类型它是有默认值的&#xff0c;所以我点击保存…...

Mac 使用 GVM 管理多版本 Go 环境

使用 GVM 管理多版本 Go 环境 在本文中&#xff0c;我们将使用 gvm&#xff08;Go Version Manager&#xff09;工具管理本地多个 Go 语言版本。gvm 功能类似于 Python 的 Anaconda&#xff0c;可以方便地切换不同版本的 Go 环境&#xff0c;非常适合需要多版本开发与测试的场…...

3DsMax设置中文界面

按键盘上的“Win”键&#xff0c;直接输入3dsmax&#xff0c;选择Simplified Chinese打开&#xff0c;之后就都是中文了...

【PyCharm】连接 Git

【PyCharm】相关链接 【PyCharm】连接 Git【PyCharm】连接Jupyter Notebook【PyCharm】快捷键使用【PyCharm】远程连接Linux服务器【PyCharm】设置为中文界面 要在 PyCharm 中连接 Git&#xff0c;确保您的开发环境已经安装了 Git&#xff0c;并且 PyCharm 能够访问它。 以下…...