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…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
 
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
 
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
 
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
 
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
 
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
 
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
 
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
