C语言程序设计之小系统
🌟 嗨,我是LucianaiB!
🌍 总有人间一两风,填我十万八千梦。
🚀 路漫漫其修远兮,吾将上下而求索。
目录
- 系统说明
1.1 系统概述
1.2 功能模块 - 总体设计
- 详细设计
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.1 菜单显示
4.2计算数字总和
4.3 各位数字之和排序
4.4字符串中的最大整数
4.5字符串解压
4.6输出指定图形
4.7计算学生信息操作之最高分
4.8字符串反转 - 总结
- 附录
1系统说明
1.1系统概述
本系统是一个综合管理系统,旨在将本学期学习的各类小程序整合在一起,提供一个用户友好的界面,方便用户选择并解决不同类别的问题。系统通过菜单展示可用的功能,用户可以根据自己的需求选择相应的类别,系统将显示具体的问题内容并提供解答。
1.2功能模块
系统主要包括以下功能模块:
可逆素数: 功能:计算指定区间内的可逆素数的个数。 输入:用户输入两个正整数,表示区间的起始值和结束值。 输出:显示该区间内可逆素数的数量。
计算数字总和: 功能:计算给定非负整数N的所有数字的总和,并以英语输出每个数字。 输入:用户输入一个非负整数。 输出:以英语单词形式输出数字总和的每个数字。
各位数字之和排序: 功能:根据各位数字之和对输入的正整数进行排序。 输入:用户输入一组正整数。 输出:显示排序后的结果。
字符串中的最大整数: 功能:从输入的字符串中找出最大的正整数。 输入:用户输入一个字符串,以#结束。 输出:显示字符串中包含的最大正整数,若没有则输出“none”。
字符串解压: 功能:将压缩后的字符串解压为原始字符串。 输入:用户输入压缩后的字符串。 输出:显示解压后的字符串。
输出指定图形: 功能:根据用户输入的行数输出一个直角三角形。 输入:用户输入一个正整数n。 输出:显示按规律变化的n行直角三角形。
计算学生信息操作之最高分: 功能:计算每个学生的总分,并输出总分最高的学生的信息。 输入:用户输入学生人数及每个学生的学号、姓名和三门课程成绩。 输出:显示总分最高的学生的详细信息。
字符串反转: 功能:将输入的字符串进行反转。 输入:用户输入一个字符串。
2总体设计
本系统有以下8个功能模块,其调用关系如下:
旨在提供一个综合管理平台,方便用户选择并解决不同类别的问题。各模块之间的调用关系如下:
- 可逆素数模块:该模块负责计算指定区间内的可逆素数的个数。用户输入两个正整数作为区间的起始值和结束值,系统将遍历该区间内的所有整数,判断其是否为素数,并检查其反转数是否也是素数。此模块的输出为可逆素数的数量。
- 计算数字总和模块:此模块用于计算给定非负整数N的所有数字的总和,并以英语单词形式输出每个数字。用户输入一个非负整数,系统将逐位提取数字并累加,最后将结果转换为英文形式输出。
- 各位数字之和排序模块:该模块根据各位数字之和对输入的正整数进行排序。用户输入一组正整数,系统将计算每个数字的各位数字之和,并根据该和进行排序,最终输出排序后的结果。
- 字符串中的最大整数模块:此模块从用户输入的字符串中找出最大的正整数。用户输入一个字符串,系统将遍历字符串,提取其中的数字并找出最大值,若没有数字则输出“none”。
- 字符串解压模块:该模块负责将压缩后的字符串解压为原始字符串。用户输入一个压缩格式的字符串,系统将解析该字符串并输出解压后的结果。
- 输出指定图形模块:此模块根据用户输入的行数输出一个直角三角形。用户输入一个正整数n,系统将根据该值输出n行的直角三角形,形成特定的图形结构。
- 计算学生信息操作之最高分模块:该模块用于计算每个学生的总分,并输出总分最高的学生的信息。用户输入学生人数及每个学生的学号、姓名和三门课程成绩,系统将计算每个学生的总分并找出最高分的学生。
- 字符串反转模块:此模块负责将输入的字符串进行反转。用户输入一个字符串,系统将输出该字符串的反转结果。
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计算学生信息操作之最高分
- 计算每个学生的总分:
• Zhangling: 89 + 78 + 95 = 262
• Wangli: 85 + 87 + 99 = 271
• Fangfang: 85 + 68 + 76 = 229 - 找出最高分:
• 最高分为 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语言程序设计之小系统
🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 目录 系统说明 1.1 系统概述 1.2 功能模块总体设计详细设计 3.1 程序中使用的函数 3.2各类问…...
pyinstaller : 无法将“pyinstaller”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
pyinstaller : 无法将“pyinstaller”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1pyinstaller --onefile --windowed 过年烟花.py~~~~~~~~~~~ …...
接口传参 data格式和json格式区别是什么
接口传参 data格式和json格式区别是什么 以下是接口传参 data 格式和 JSON 格式的区别: 定义和范围 Data 格式: 是一个较为宽泛的概念,它可以指代接口传递参数时所使用的任何数据的组织形式。包括但不限于 JSON、XML、Form 数据、纯文本、二进…...
ClickHouse 入门
简介 ClickHouse 是一个列式数据库,传统的数据库一般是按行存储,而ClickHouse则是按列存储,每一列都有自己的存储空间,并且只存储该列的数值,而不是存储整行的数据。这样做主要有几个好处,压缩率高&#x…...
Python自动化:基于faker批量生成模拟数据(以电商行业销售数据为例)
引言:个人认为,“造数据”是一个数据分析师的一项基本技能,当然啦,“造数据”不是说胡编乱造,而是根据自己的需求去构造一些模拟数据集,用于测试等用途,而且使用虚拟数据不用担心数据隐私和安全…...
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 事务:隔离级别与传播机制解读与应用
前言 🌟🌟本期讲解关于spring 事务传播机制介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话…...
力扣203题—— 移除链表元素
题目 递归法使用 if(headnull){return null; }//假设remove返回后面已经去掉val值的链表 我们用head.next去存放他,接着我们要判断此时head head值是否等于val,如果等于我们就返回后继元素即可 head.nextremove(head.next,val); if(head.valval){return…...
Express中间件
目录 Express中间件 中间件的概念 next函数 全局中间与局部中间件 多个中间件 中间的5个注意事项 中间的分类 应用级中间件 路由级中间件 错误级中间件 Express内置中间件 express.json express.urlencoded 第三方中间件编辑 自定义中间件 Express中间件 中间…...
【AIGC】SYNCAMMASTER:多视角多像机的视频生成
标题:SYNCAMMASTER: SYNCHRONIZING MULTI-CAMERA VIDEO GENERATION FROM DIVERSE VIEWPOINTS 主页:https://jianhongbai.github.io/SynCamMaster/ 代码:https://github.com/KwaiVGI/SynCamMaster 文章目录 摘要一、引言二、使用步骤2.1 TextT…...
模块化架构与微服务架构,哪种更适合桌面软件开发?
前言 在现代软件开发中,架构设计扮演着至关重要的角色。两种常见的架构设计方法是模块化架构与微服务架构。它们各自有独特的优势和适用场景,尤其在C#桌面软件开发领域,模块化架构往往更加具有实践性。本文将对这两种架构进行对比࿰…...
Ubuntu 24.04 LTS 安装 tailscale 并访问 SMB共享文件夹
Ubuntu 24.04 LTS 安装 tailscale 安装 Tailscale 官方仓库 首先,确保系统包列表是最新的: sudo apt update接下来,安装 Tailscale 所需的仓库和密钥: curl -fsSL https://tailscale.com/install.sh | sh这会自动下载并安装 …...
fgets、scanf存字符串应用
题目1 夺旗(英语:Capture the flag,简称 CTF)在计算机安全中是一种活动,当中会将“旗子”秘密地埋藏于有目的的易受攻击的程序或网站。参赛者从其他参赛者或主办方偷去旗子。 非常崇拜探姬的小学妹最近迷上了 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 毫秒,即每 0.1 秒更新一次timer.…...
关于AI agent的学术论文实验部分:准确率,响应时间,用户满意度
关于AI agent的学术论文实验部分 在撰写关于AI agent的学术论文时,实验设计和实施是关键部分,仅搭建完成AI agent通常是不够的,需要通过严谨的实验来验证其性能、效果和创新性。以下以一个在智能客服场景中应用AI agent的例子,说明如何完成实验: 明确实验目的:确定通过实…...
消息队列实战指南:三大MQ 与 Kafka 适用场景全解析
前言:在当今数字化时代,分布式系统和大数据处理变得愈发普遍,消息队列作为其中的关键组件,承担着系统解耦、异步通信、流量削峰等重要职责。ActiveMQ、RabbitMQ、RocketMQ 和 Kafka 作为市场上极具代表性的消息队列产品࿰…...
postgresql表分区及测试
本文主要采用list类型实现表分区,并对表分区数据进行查询对比,数据量6000万条以上,速度相差10倍以上。 一、创建表,以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是栈,后入先出 stack的…...
pthread_create函数
函数原型 pthread_create 是 POSIX 线程(pthread)库中的一个函数,用于在程序中创建一个新线程。 #include <pthread.h>int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *a…...
suctf2025
Suctf2025 --2标识为看的wp,没环境复现了 所有参考资料将在文本末尾标明 WEB SU_photogallery 思路👇 构造一个压缩包,解压出我们想解压的部分,然后其他部分是损坏的,这样是不是就可以让整个解压过程是出错的从而…...
二、点灯基础实验
嵌入式基础实验第一个就是点灯,地位相当于编程界的hello world。 如下为LED原理图,要让相应LED发光,需要给I/O口设置输出引脚,低电平,二极管才会导通 2.1 打开初始工程,编写代码 以下会实现BLINKY常亮&…...
ESP8266-01S、手机、STM32连接
1、ESP8266-01S的工作原理 1.1、AP和STA ESP8266-01S为WIFI的透传模块,主要模式如下图: 上节说到,我们需要用到AT固件进行局域网应用(ESP8266连接的STM32和手机进行连接)。 ESP8266为一个WiFi透传模块,和…...
微服务学习:基础理论
一、微服务和应用现代化 1、时代的浪潮,企业的机遇和挑战 在互联网化数字化智能化全球化的当今社会,IT行业也面临新的挑战: 【快】业务需求如“滔滔江水连绵不绝”,企业需要更快的交付【变】林子大了,百色用户&…...
【c++继承篇】--继承之道:在C++的世界中编织血脉与传承
目录 引言 一、定义二、继承定义格式2.1定义格式2.2继承关系和访问限定符2.3继承后子类访问权限 三、基类和派生类赋值转换四、继承的作用域4.1同名变量4.2同名函数 五、派生类的默认成员构造函数5.1**构造函数调用顺序:**5.2**析构函数调用顺序:**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)VSCODE必备插件 2)配置launch.json文件,用于GDB调试 调试步骤 目标板运行程序 1)已启动程序,通过attach方式进入调试 2)通过gdbserver启动时加载程序(程序路径根据实际情…...
【设计模式】 单例模式(单例模式哪几种实现,如何保证线程安全,反射破坏单例模式)
单例模式 作用:单例模式的核心是保证一个类只有一个实例,并且提供一个访问实例的全局访问点。 实现方式优缺点饿汉式线程安全,调用效率高 ,但是不能延迟加载懒汉式线程安全,调用效率不高,能延迟加载双重检…...
lvm快照备份
前提 数据文件要在逻辑卷上; 此逻辑卷所在卷组必须有足够空间使用快照卷; 数据文件和事务日志要在同一个逻辑卷上; 前提:MySQL数据lv和将要创建的快照要在同一vg,vg要有足够的空间存储 优点 几乎是热备&…...
PHP CRM售后系统小程序
💼 CRM售后系统 📺这是一款基于PHP和uniapp深度定制的CRM售后管理系统,它犹如企业的智慧核心,精准赋能销售与售后管理的每一个环节,引领企业步入精细化、数字化的全新管理时代。系统集成了客户管理、合同管理、工单调…...
ETL 数据抽取
ETL ETL 数据抽取 ETL(Extract, Transform, Load)是数据集成和处理的重要过程,其中数据抽取(Extract)是第一步,负责从各种数据源中提取数据。以下是ETL数据抽取的详细说明和常用工具: 1. 数据…...
FANUC机器人系统镜像备份与恢复的具体步骤(图文)
FANUC机器人系统镜像备份与恢复的具体步骤(图文) 镜像备份: 如下图所示,进入文件—工具—切换设备,找到插入的U盘UT1, 如下图所示,进入U盘目录后,创建目录,这里目录名称为11, 如下图所示...
MindsDB - 构建企业数据源 AI 对话
一、关于 MindsDB MindsDB是世界上最有效的解决方案,用于构建与混乱的企业数据源对话的AI应用程序。把它想象成图书管理员Marie Kondo。 github : https://github.com/mindsdb/mindsdb官网:https://www.mindsdb.com/官方文档:https://docs.…...
正则表达式(python版最全面,最易懂)
正则表达式 正则表达式英文称regular expression 定义:正则表达式是一种文本模式匹配的工具,用于字符串的搜索,匹配和替换。在excel,word以及其他的文本编辑器都可直接适配。 一、基本匹配规则 字面值字符:例如字母、数字、空格…...
QT 使用QTableView读取数据库数据,表格分页,跳转,导出,过滤功能
文章目录 效果图概述功能点代码分析导航栏表格更新视图表格导出表格过滤 总结 效果图 概述 本案例用于对数据库中的数据进行显示等其他操作。数据库的映射,插入等功能看此博客框架:数据模型使用QSqlTableModel,视图使用QTableView࿰…...
golang标准库path/filepath使用示例
文章目录 前言一、常用方法示例1.将相对路径转换为绝对路径2.获取路径中最后一个元素3.获取路径中除去最后一个元素的部分4.路径拼接5.将路径拆分为目录和文件名两部分6.返回一个相对路径7.文件路径遍历8.根据文件扩展名过滤文件9.使用正则表达式进行路径匹配 前言 path/filep…...
【日志篇】(7.6) ❀ 01. 在macOS下刷新FortiAnalyzer固件 ❀ FortiAnalyzer 日志分析
【简介】FortiAnalyzer 是 Fortinet Security Fabric 安全架构的基础,提供集中日志记录和分析,以及端到端可见性。因此,分析师可以更有效地管理安全状态,将安全流程自动化,并快速响应威胁。具有分析和自动化功能的集成…...
12 分布式事务
分布式事务产生的原因 我们拿mysql数据库来说,当数据库为单体数据库的时候,我们打开事务,执行sql为预执行阶段,最后commit时通过日志控制最终全部提交后存储到磁盘中,如果commit失败,可以通过日志控制回滚…...
移远通信多模卫星通信模组BG95-S5获得Skylo网络认证,进一步拓展全球卫星物联网市场
近日,全球领先的物联网整体解决方案供应商移远通信正式宣布,其支持“卫星蜂窝”多模式的高集成度NTN卫星通信模组BG95-S5已成功获得NTN网络运营商Skylo的网络认证。BG95-S5也成为了获得该认证的最新款移远卫星通信模组。 BG95-S5模组顺利获得Skylo认证&a…...
51.WPF应用加图标指南 C#例子 WPF例子
完整步骤: 先使用文心一言生成一个图标如左边使用Windows图片编辑器编辑,去除背景使用正方形,放大图片使图标铺满图片使用格式工程转换为ico格式,分辨率为最大 在资源管理器中右键项目添加ico类型图片到项目里图片属性设置为始终…...
OpenEuler学习笔记(三):为什么要搞OpenEuler?
为什么要搞OpenEuler? 技术自主可控需求 在信息技术领域,操作系统是关键的基础软件。过去,很多关键技术被国外厂商掌控,存在技术“卡脖子”的风险。OpenEuler的出现可以为国内提供一个自主可控的操作系统选择。例如,在…...
Apache Hive--排序函数解析
在大数据处理与分析中,Apache Hive是一个至关重要的数据仓库工具。其丰富的函数库为数据处理提供了诸多便利,排序函数便是其中一类非常实用的工具。通过排序函数,我们能够在查询结果集中为每一行数据分配一个排名值,这对于数据分析…...
LLMs之Dataset:中文互联网基础语料2.0的简介、下载和使用方法、案例应用之详细攻略
LLMs之Dataset:中文互联网基础语料2.0的简介、下载和使用方法、案例应用之详细攻略 目录 中文互联网基础语料2.0的简介 1、特点 中文互联网基础语料2.0的下载和使用方法 中文互联网基础语料2.0的案例应用 中文互联网基础语料2.0的简介 2025年1月发布࿰…...
深入剖析iOS网络优化策略,提升App性能
一、引言 在当今移动互联网时代,iOS 应用的网络性能直接关系到用户体验。无论是加载速度缓慢、频繁的网络错误,还是高额的流量消耗,都可能导致用户流失。因此,iOS 网络优化成为开发者提升应用质量、增强用户满意度的关键环节。本文…...
unity2022以上导出到AndroidStudio后更新步骤
1、unity里面Export出unityLibrary 2、导出apk,里面才包含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概述 我们前端页面中的数据,如下图所示的表格中的学生信息,应该来自于后台,那么我们的后台和前端是互不影响的2个程序,那么我们前端应该如何从后台获取数据呢?因为是2个程序…...
表单中在不设置required的情况下在label前加*必填标识
参考:https://blog.csdn.net/qq_55798464/article/details/136233718 需求:在发票类型前面添加*必填标识 我最开始直接给发票类型这个表单类型添加了验证规则required:true,问题来了,这个发票类型它是有默认值的,所以我点击保存…...
Mac 使用 GVM 管理多版本 Go 环境
使用 GVM 管理多版本 Go 环境 在本文中,我们将使用 gvm(Go Version Manager)工具管理本地多个 Go 语言版本。gvm 功能类似于 Python 的 Anaconda,可以方便地切换不同版本的 Go 环境,非常适合需要多版本开发与测试的场…...
3DsMax设置中文界面
按键盘上的“Win”键,直接输入3dsmax,选择Simplified Chinese打开,之后就都是中文了...
【PyCharm】连接 Git
【PyCharm】相关链接 【PyCharm】连接 Git【PyCharm】连接Jupyter Notebook【PyCharm】快捷键使用【PyCharm】远程连接Linux服务器【PyCharm】设置为中文界面 要在 PyCharm 中连接 Git,确保您的开发环境已经安装了 Git,并且 PyCharm 能够访问它。 以下…...