C超市商品信息查询系统
一、系统界面介绍
1. 超市商品信息查询系统
1、显示商品信息,包括:商品名称、商品种类(休闲食品、奶品水饮、生鲜水果)、商品价格、商品保质期、商品生产日期;
2、从文件中导入数据、显示、排序、查询的功能。(由于顾客没有更改信息的需要所以没设置修改、添加等功能,注:必须先导入数据);
3、系统提供按照不同方式查询的功能,如按照商品名称或类型查询;
4、系统能将商品信息排序之后顺序输出(排序可以有多种选择);
2.超市商品信息管理系统
1、显示商品信息(同查询系统)
2、首先输入密码,若输入错误3次则退出系统。密码存储在文件中并可在进入系统后修改密码(密码为字符串)
3、从文件中导入数据、显示、添加、修改、删除、查询、排序、导出、修改密码;(注:必须先导入)
4.信息显示
5.信息添加:
6.信息删除:
7.信息修改(按名称):
8.信息查询(可根据不同需要进行不同查询):
9.信息排序(可按需要排序):
10.修改登录密码(若两次输入新密码不相同则返回主界面,修改成功后密码保存至文件中):
11.退出系统
二、程序源代码介绍:
1.源代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
typedef struct _goods//商品结构体{char name[20];int category;float prize;int shelf_life;char time[15];}goods;goods b[20];int N;
int switch_num;
int return_num;
char password1[20];
int num_star;int input(goods b[],int N);//从系统中导入数据void display(goods b[],int N);//显示信息void change(goods b[],int N);//修改信息void _search(goods b[],int N);//查找信息int _insert(goods b[],int N);//添加信息int _delete(goods b[],int N);//删除信息void _sort(goods b[],int N);//排序信息void save(goods b[],int N);//保存信息void menu_customer();//顾客系统界面void menu_manager();//管理员系统界面void system_manager();//顾客系统void password();//密码函数void modify_password();//更改密码函数//导入函数已完善int input(goods b[],int N){N=0;FILE *fp;//打开文件fp=fopen("data.txt","r+");if(fp==NULL)//判断文件是否为空{printf("can't open this file");exit(0);}while(!feof(fp))//导入{fscanf(fp,"%s%d%f%d%s",b[N].name,&b[N].category,&b[N].prize,&b[N].shelf_life,b[N].time);N++;}Sleep(100);printf("恭");Sleep(50);printf("喜");Sleep(50);printf("您");Sleep(50);printf("导");Sleep(50);printf("入");Sleep(50);printf("成");Sleep(50);printf("功");Sleep(50);fclose(fp);return N-1;//商品数目}//显示函数已完善void display(goods b[],int N){int i;for(num_star=0;num_star<18;num_star++)//显示*符号{printf("*");Sleep(5);}printf("商");Sleep(50);printf("品");Sleep(50);printf("信");Sleep(50);printf("息");Sleep(50);printf("如");Sleep(50);printf("下");Sleep(50);for(num_star=0;num_star<18;num_star++){printf("*");Sleep(5);}printf("\n\n");printf("商品名称 类别 价格 保质期 生产日期\n");for(i=0;i<N;i++){printf("%-8s\t%4d\t%.2f\t%4d\t%4s\n",b[i].name,b[i].category,b[i].prize,b[i].shelf_life,b[i].time);//显示信息}printf("\n【注;类别1.休闲食品 2.奶品水饮 3.生鲜水果】\n\n");for(num_star=0;num_star<48;num_star++)//显示*符号{printf("*");Sleep(5);}printf("\n\n");printf("按1后回车返回");scanf("%d",&return_num);if(return_num==1)//返回主界面{system("cls");return;}}//修改函数已完善void change(goods b[],int N){int i,n;char a[10];for(num_star=0;num_star<18;num_star++){printf("*");Sleep(10);}printf("欢");Sleep(50);printf("迎");Sleep(50);printf("进");Sleep(50);printf("入");Sleep(50);printf("修");Sleep(50);printf("改");Sleep(50);printf("系");Sleep(50);printf("统");Sleep(50);for(num_star=0;num_star<18;num_star++){printf("*");Sleep(5);}printf("\n\n");printf("-1-请输入需要修改的商品的名称\n ");//需要修改的名称loop:scanf("%s",a);for(i=0;i<N;i++)//比较是哪个商品{if(!strcmp(b[i].name,a))break;}if(i==N){printf("\n-1-对不起找不到该商品,请重新输入\n ");goto loop;}elseprintf("\n-2-您需要的修改的商品信息如下:\n (1)商品名称(2)类别 (3)价格 (4)保质期 (5)生产日期\n %-9s\t%-3d\t%.2f\t%5d\t%10s\n",b[i].name,b[i].category,b[i].prize,b[i].shelf_life,b[i].time);//输出并左右对齐printf("\n-3-请输入需要修改的商品信息编号\n ");loop2:scanf("%d",&n);switch(n)//选择修改什么信息{case 1:printf("\n-4-请输入该商品的名称\n ");scanf("%s",b[i].name);break;case 2:printf("\n-4-请选择商品类别*1.休闲食品2.奶品水饮3.生鲜水果\n ");scanf("%d",&b[i].category);break;case 3:printf("\n-4-请输入该商品的价格\n ");scanf("%f",&b[i].prize);break;case 4:printf("\n-4-请输入该商品的保质期*按月计(即输入1-12之间的整数)\n ");scanf("%d",&b[i].shelf_life);break;case 5:printf("\n-4-请输入该商品的生产日期*例如20170920\n ");scanf("%s",b[i].time);break;default:printf("\n-3-你输入的信息有误请重新输入:\n ");goto loop2;}printf("\n-5-修改成功\n\n");for(num_star=0;num_star<52;num_star++){printf("*");Sleep(5);}printf("\n\n");printf("按1后回车返回");scanf("%d",&return_num);//返回主界面if(return_num==1){system("cls");return;}}//搜索程序已完善void _search(goods b[],int N){int i,n;for(num_star=0;num_star<17;num_star++){printf("*");Sleep(5);}printf("欢");Sleep(50);printf("迎");Sleep(50);printf("进");Sleep(50);printf("入");Sleep(50);printf("搜");Sleep(50);printf("索");Sleep(50);printf("系");Sleep(50);printf("统");Sleep(50);for(num_star=0;num_star<17;num_star++){printf("*");Sleep(5);}printf("\n\n");printf("-1-请输入需要查询的内容*1.按名称查询2.按类型查询\n ");scanf("%d",&switch_num);switch(switch_num)//查询内容{case 1:char a[10];loop:printf("\n-2-请输入需要查询的商品的名称:\n ");scanf("%s",a);for(i=0;i<N;i++)//逐个比较商品名称{if(!strcmp(b[i].name,a)){break;}}if(i==N){printf("\n-2-对不起找不到该商品*1.返回主菜单2.继续查询\n ");scanf("%d",&switch_num);if(switch_num==1){goto loop7;}else goto loop;}else{printf("\n-3-您查询的商品信息如下:\n 商品名称 类别 价格 保质期 生产日期\n %-7s\t%4d\t%.2f\t%4d\t%4s\n",b[i].name,b[i].category,b[i].prize,b[i].shelf_life,b[i].time);break;}case 2:int kind,_count=0;printf("\n-2-请输入商品的类别*1.休闲食品2.奶品水饮3.生鲜水果\n ");loop3:scanf("%d",&kind);printf("\n-3-您查询的商品信息如下:\n 商品名称 类别 价格 保质期 生产日期\n");for(i=0;i<N;i++){if(b[i].category==kind){printf(" %-7s\t%4d\t%.2f\t%4d\t%4s\n",b[i].name,b[i].category,b[i].prize,b[i].shelf_life,b[i].time);_count++;}}if(_count==0)//记录类别商品的数量{Sleep(100);printf("\n-3-对不起找不到该类别信息请重新输入\n ");goto loop3;}}loop7:printf("\n");for(num_star=0;num_star<50;num_star++){printf("*");Sleep(5);}printf("\n\n");printf("按1后回车返回");scanf("%d",&return_num);if(return_num==1){system("cls");return;}}//添加函数已完善int _insert(goods b[],int N){int n,i=1,t;for(num_star=0;num_star<17;num_star++){printf("*");Sleep(5);}printf("欢");Sleep(50);printf("迎");Sleep(50);printf("进");Sleep(50);printf("入");Sleep(50);printf("添");Sleep(50);printf("加");Sleep(50);printf("系");Sleep(50);printf("统");Sleep(50);for(num_star=0;num_star<17;num_star++){printf("*");Sleep(5);}printf("\n\n-1-请输入需要添加的商品的个数:\n ");scanf("%d",&n);t=n;while(n){printf("\n-%d-输入第%d条商品信息:\n",i+1,i);printf(" 1.名称:");scanf("%s",b[N+i-1].name);printf("\n 2.类别*1.休闲食品2.奶品水饮3.生鲜水果:");scanf("%d",&b[N+i-1].category);printf("\n 3.价格:");scanf("%f",&b[N+i-1].prize);printf("\n 4.保质期*按月计(即输入1-12之间的整数):");scanf("%d",&b[N+i-1].shelf_life);printf("\n 5.生产日期*例如20170920:");scanf("%s",b[N+i-1].time);n--;i++;}printf("\n-%d-添加成功\n\n",i+1);for(num_star=0;num_star<50;num_star++){printf("*");Sleep(10);}printf("\n\n");printf("按1后回车返回");scanf("%d",&return_num);if(return_num==1){system("cls");return N+t;}}//删除函数已完善int _delete(goods b[],int N){int i,q;char c[10];for(num_star=0;num_star<16;num_star++){printf("*");Sleep(5);}printf("欢");Sleep(50);printf("迎");Sleep(50);printf("进");Sleep(50);printf("入");Sleep(50);printf("删");Sleep(50);printf("除");Sleep(50);printf("系");Sleep(50);printf("统");Sleep(50);for(num_star=0;num_star<16;num_star++){printf("*");Sleep(10);}printf("\n\n-1-请输入需要删除的商品的名称\n ");loop4:scanf("%s",c);for(i=0;i<N;i++)//寻找商品信息{if(!strcmp(b[i].name,c))break;}if(i==N){printf("\n-1-对不起找不到该商品,请重新输入\n ");goto loop4;}elseprintf("\n-1-您删除的商品信息如下:\n 商品名称 类别 价格 保质期 生产日期\n %-7s\t%4d\t%.2f\t%4d\t%4s\n",b[i].name,b[i].category,b[i].prize,b[i].shelf_life,b[i].time);printf("\n-2-确认删除?*1.确认2.取消\n ");loop5:scanf("%d",&q);if(q!=2&&q!=1){printf("错误请重新输入");goto loop5;}else if(q==1){while(i<N-1){b[i]=b[i+1];i++;}printf("\n-3-删除成功\n\n");for(num_star=0;num_star<48;num_star++){printf("*");Sleep(5);}printf("\n\n");printf("按1后回车返回");scanf("%d",&return_num);if(return_num==1){system("cls");return N-1;}}elseprintf("\n");for(num_star=0;num_star<50;num_star++){printf("*");Sleep(5);}printf("\n\n\n");printf("按1后回车返回");scanf("%d",&return_num);if(return_num==1){system("cls");return N;}}//保存信息已完善void save(goods b[],int N){int i;FILE *point;point=fopen("data.txt","w");if(point==NULL){printf("can't find the file");exit(0);}for(i=0;i<N;i++)fprintf(point,"%-8s\t%4d\t%.2f\t%4d\t%4s\n",b[i].name,b[i].category,b[i].prize,b[i].shelf_life,b[i].time);printf("恭");Sleep(50);printf("喜");Sleep(50);printf("您");Sleep(50);printf("导");Sleep(50);printf("入");Sleep(50);printf("成");Sleep(50);printf("功");Sleep(50);fclose(point);}//排序函数已完善void _sort(goods b[],int N){goods temp;int n,i,j;for(num_star=0;num_star<16;num_star++){printf("*");Sleep(5);}printf("欢");Sleep(50);printf("迎");Sleep(50);printf("进");Sleep(50);printf("入");Sleep(50);printf("排");Sleep(50);printf("序");Sleep(50);printf("系");Sleep(50);printf("统");Sleep(50);for(num_star=0;num_star<16;num_star++){printf("*");Sleep(5);}printf("\n\n-1-请问您需要按什么排序【1价格 2生产日期】\n ");//选择排序类型scanf("%d",&switch_num);switch(switch_num){case 1:printf("\n-2-请选择排序类型【1.价格从高到低排序2.从低到高】\n ");loop5:scanf("%d",&switch_num);if(switch_num==1)//降序排列{for(i=0;i<N-1;i++){for(j=0;j<N-1-i;j++){if(b[j].prize<b[j+1].prize){temp=b[j];b[j]=b[j+1];b[j+1]=temp;}}}}else if(switch_num==2)//升序排列{for(i=0;i<N-1;i++){for(j=0;j<N-1-i;j++){if(b[j].prize>b[j+1].prize){temp=b[j];b[j]=b[j+1];b[j+1]=temp;}}}}else{printf("输入错误请重新输入:\n");goto loop5;}break;case 2:{printf("\n-2-请选择排序类型【1.生产日期从早到晚2.从晚到早】\n ");loop6:scanf("%d",&switch_num);if(switch_num==1)//升序排列{for(i=0;i<N-1;i++){for(j=0;j<N-1-i;j++){if(strcmp(b[j].time,b[j+1].time)>0){temp=b[j];b[j]=b[j+1];b[j+1]=temp;}}}}
2.修改密码系统功能
我们参照日常生活中密码功能,密码为字符串,保存在password的文件中,若修改密码在管理员系统的修改密码程序下进行,修改过程中两次输入的新密码需一致才能成功,修改完成的密码保存在文件中。另外,我们将输入密码错误上限设为三次,输错三次自动退出系统,和现实生活很相似。
3.进入系统的渐进画面
简单的静态界面十分枯燥,所以我们用Sleep和system(“cls”)完成了进入系统的渐进画面。
Sleep(1000);
system(“cls”);
printf(“请稍等.”);
Sleep(200);
system(“cls”);
printf(“请稍等…”);
Sleep(200);
system(“cls”);
printf(“请稍等…”);
Sleep(700);
system(“cls”);
printf(“欢”);
Sleep(50);
printf(“迎”);
Sleep(50);
printf(“进”);
Sleep(50);
printf(“入”);
Sleep(50);
printf(“密”);
Sleep(50);
printf(“码”);
Sleep(50);
printf(“修”);
Sleep(50);
printf(“改”);
Sleep(50);
printf(“系”);
Sleep(50);
printf(“统”);
Sleep(50);
4.简洁明了的交互画面
我们在每个单独的功能界面通过序号的使用使界面更加简洁
我们在界面的顶部和底部都使用了大量的*使得界面凸显出强烈的层次感,也给使用者更加舒适的使用环境。
五、联系与交流
q:969060742 文档、完整代码、程序资源
相关文章:

C超市商品信息查询系统
一、系统界面介绍 1. 超市商品信息查询系统 1、显示商品信息,包括:商品名称、商品种类(休闲食品、奶品水饮、生鲜水果)、商品价格、商品保质期、商品生产日期; 2、从文件中导入数据、显示、排序、查询的功能。&…...

黑马JVM总结(二十七)
(1)synchronized代码块 synchronized代码块的底层原理,它是给一个对象进行一个加锁操作,它是如何保证如果你出现了synchronized代码块中出现了问题,它需要给这个对象有一个正确的解锁操作呢,加锁解锁是成对…...
软件测试/测试开发丨Python异常处理 学习笔记
点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27722 异常处理 编写程序时,即使语句或表达式使用了正确的语法,执行时仍可能触发错误。执行时检测到的错误称为异常,大…...

026 - STM32学习笔记 - 液晶屏控制(三) - DMA2D快速绘制矩形、直线
026- STM32学习笔记 - 液晶屏控制(三) - DMA2D快速绘制矩形、直线等 上节直接操作LTDC在先视频上直接显示,我们直接操作显存地址空间中的内容,用来显示图形,但是相对来说,这种方法费时费力,这节…...

【牛客网】OR59 字符串中找出连续最长的数字串
题目 思路 创建两个字符串 temp 和 ret 创建指针i用来遍历字符串通过i遍历字符串,如果遇到数字则将这个数组加到字符串temp中 i,如果遇到字母,则判断temp字符串的长度和ret字符串的长度,如果temp<ret则说明这个字符串不是要的字符串,如果temp>ret则说明此时temp字符串是…...

云原生监控系统Prometheus:基于Prometheus构建智能化监控告警系统
目录 一、理论 1.Promethues简介 2.监控告警系统设计思路 3.Prometheus监控体系 4.Prometheus时间序列数据 5.Prometheus的生态组件 6.Prometheus工作原理 7.Prometheus监控内容 8.部署Prometheus 9.部署Exporters 10.部署Grafana进行展示 二、实验 1.部署Prometh…...

C++ 学习系列 -- std::list
一 std::list 介绍 list 是 c 中的序列式容器,其实现是双向链表,每个元素都有两个指针,分别指向前一个节点与后一个节点 链表与数组都是计算机常用的内存数据结构,与数组连续内存空间不一样的地方在于,链表的空间是不…...
YOLOv8血细胞检测(6):多维协作注意模块MCA | 原创独家创新首发
💡💡💡本文改进:多维协作注意模块MCA,效果秒杀ECA、SRM、CBAM,创新性十足,可直接作为创新点使用。 MCA | 亲测在血细胞检测项目中涨点,map@0.5 从原始0.895提升至0.910 收录专栏: 💡💡💡YOLO医学影像检测:http://t.csdnimg.cn/N4zBP ✨✨✨实战医学影…...
FFmpeg横竖版视频互换背景模糊一键生成
视频处理是现代多媒体应用中常见的需求。其中横竖版视频互换和背景模糊是视频编辑中常见的操作。FFmpeg是一个功能强大的工具,适用于这些任务。 本文将详细介绍如何使用FFmpeg进行横竖版视频互换和背景模糊。 文章目录 操作命令与命令说明横版转竖版竖版转横版背景模糊处理横…...

Java 华为真题-小朋友分班
需求: 题目描述 幼儿园两个班的小朋友在排队时混在了一起,每位小朋友都知道自己是否与前面一位小朋友同班,请你帮忙把同班的小朋友找出来小朋友的编号是整数,与前一位小朋友同班用Y表示,不同班用N表示学生序号范围(0&…...

机器学习必修课 - 编码分类变量 encoding categorical variables
1. 数据预处理和数据集分割 import pandas as pd from sklearn.model_selection import train_test_split导入所需的Python库 !git clone https://github.com/JeffereyWu/Housing-prices-data.git下载数据集 # Read the data X pd.read_csv(/content/Housing-prices-data/t…...

ClickHouse进阶(二十二):clickhouse管理与运维-服务监控
进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 📌订阅:拥抱独家专题,你的订阅将点燃我的创作热情! 👍点赞:赞同优秀创作,你的点赞是对我创…...

Hadoop使用hdfs指令查看hdfs目录的根目录显示被拒
背景 分布式部署hadoop,服务机只有namenode节点,主机包含其他所有节点 主机关机后,没有停止所有节点,导致服务机namenode继续保存 再次开启主机hadoop,使用hdfs查看hdfs根目录的时候显示访问被拒 解决方案 1.主机再次开启hadoop并继续执行关闭 2.服务器再次开启hadoop并继…...
[Mac] 安装paddle-pipelines出现 ERROR: Failed building wheel for lmdb
今天在mac换了新系统,然后重新安装paddle-piplines的时候出现了下面的问题: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrunerror: comma…...
LED灯亮灭
.text .global _start _start: 设置GPIO寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28LDR R0,0x50000A28LDR R1,[R0] 从R0为起始地址的4个字节数据取出放入R1中ORR R1,R1,#(0x1<<4) 第四位设置为1STR R1,[R0] 写回LDR R0,0x5000…...
Acwing.143 最大异或对(trie树)
题目 在给定的N个整数A1,A2 . …Ax中选出两个进行xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数N。 第二行输入N个整数A1~AN。 输出格式 输出一个整数表示答案。 数据范围 1 ≤N ≤105,0≤A<231 输入样例: 3 1 2 3输出样…...

day10.8ubentu流水灯
流水灯 .text .global _start _start: 1.设置GPIOE寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28LDR R0,0X50000A28LDR R1,[R0] 从r0为起始地址的4字节数据取出放在R1ORR R1,R1,#(0x1<<4) 第4位设置为1STR R1,[R0] 写回2.设置PE10管脚为输出模式 G…...
transformer系列5---transformer显存占用分析
Transformer显存占用分析 1 影响因素概述2 前向计算临时Tensor显存占用2.1 self-attention显存占用2.2 MLP显存占用 3 梯度和优化器显存占用3.1 模型训练过程两者显存占用3.2 模型推理过程两者显存占用 1 影响因素概述 模型训练框架:例如pytorch框架的cuda context…...

Docker项目部署
目录 一、前端项目部署 1、上传文件 2、开启容器 3、测试 二、后端项目部署 1、打包java项目 2、将jar包和Dockerfile文件长传到Linux系统 3、构建镜像 4、开启容器 5、测试 三、DockerCompose快速部署 基本语法 一、前端项目部署 1、上传文件 里面包括页面和配置文…...
vue3实现文本超出鼠标移入的时候文本滚动
判断文本长度是否大于容器长度 鼠标移入的时候判断,此处使用了tailwindcss,注意一下要设置文本不换行。 <divref"functionsItems"mouseenter"enterFunctionsItem($event, index)"><img class"w-5 h-5" :src&quo…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...