C++商品库存管理系统

news/2024/4/29 6:10:57/文章来源:https://blog.csdn.net/m0_58065010/article/details/137076706

第一章 需求分析

1.1程序设计任务

1.1.1总体要求
运用面向对象程序设计知识,利用C++语言设计和实现一个“库存管理系统设计”,主要完成对商品的销售、统计和简单管理。在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C++语言关于类、继承和封装等核心概念,每一个类应包含数据成员和成员函数。

1.1.2具体要求
超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称、价格、库存量和品牌等信息。本系统要求具备如下主要功能:
(1)商品简单管理功能
 添加功能:主要完成商品基本信息的添加。
 查询功能:可按商品类别、商品名称、生产厂家、进货日期进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。
 修改功能:可根据查询结果对相应的记录进行修改。
 删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。
(2)进货功能
按要求添加相应商品的信息到库存中。添加进货日期、生产厂家、进货价等信息。
(3)出货功能
出货时,先输入商品类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入出货的数量、出货日期,计算销售额和利润。如果库存量不够,给出提示信息,结束出货。
(4)统计功能
输出当前库存中所有商品的总数及详细信息;能统计每种商品一周时间内的销售额和利润;能统计每类商品的一周时间内的销售额和利润。输出统计信息时,要按从大到小进行排序。(根据个人能力,至少实现一种统计功能)

1.2本程序可实现功能

1.2.1商品管理功能
1.添加商品信息功能
可添加商品基本信息。
2.查找商品信息功能
可分别按照商品编号,商品名称,商品类别,商品品牌查找相应商品信息。
3.编辑商品信息功能
可按照商品编号查找商品,从而编辑商品信息。
4.删除商品信息功能
可根据商品名称查找商品,从而删除商品信息
5.保存商品信息功能
可将商品信息保存到名为“货物信息”的txt文件中。

1.2.2商品进货功能
可按要求输入商品编号,商品名称,生产厂家,商品价格,商品数量,商品类别,入库时间等商品基本信息。

1.2.3商品出货功能
出货时可按照商品名称查找相应商品,显示相关商品库存量等基本信息。若有库存量则输入出售数量,出售价格以及出库时间,计算销售额,利润。如果库存量不足则提示出货失败,结束出货。

1.2.4商品统计功能
可显示当前所有商品数量及基本信息。

第二章 程序设计

2.1概要设计

2.1.1类的关系

在定义商品的类别时采用了枚举类型,并定义Food=1,因此在程序中阿拉伯数字1,2,3,4即分别代表食品,化妆品,日用品,饮料这四种商品。
在这里插入图片描述

2.1.2系统的类层次

在定义商品基本信息时采用了结构体类型,即定义了一个struct Goods,其中包含类别,名称,品牌,价格,数量等信息,同时包含struct Date表示入库时间,包含enum GoodsType表示商品类别。
定义class GoodsManage包含各成员函数进行对商品信息的管理,其中包含DisplayMainMenu(),AddGoodsInfo(),DisplayGoodsInfo(),SearchByCode()等成员函数。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.3主程序流程

在这里插入图片描述
在这里插入图片描述

2.2详细设计

2.2.1各类的描述

1.商品类别

enum GoodsType//商品类别
{Food=1,//食品Cosmetic,//化妆品Commodity,//日用品Drink//饮料
};2.入库时间
struct Date//入库时间
{int year;int month;int day;
};

3.商品基本信息

struct Goods//商品基本信息
{string code;//商品编号string name;//商品名称string brand;//生产厂家double price;//商品价格int num;//商品数量GoodsType type;//商品类别Date date;//入库时间Goods *next;
};

4.商品售出信息

struct SellRecord//商品售出信息
{ Goods sellGoods;//已出售的商品int sellNum;//出售数量double sellPrice;//出售价格Date date;//出库日期SellRecord *next;
};

5.商品管理

class GoodsManage//商品管理
{
public:GoodsManage();~GoodsManage(){}void DisplayMainMenu();//主菜单显示void AddGoodsInfo();//添加商品信息void DisplayGoodsInfo();//浏览商品信息void SearchByCode();//按照商品编号搜索商品信息void SearchByName();//按照商品名称搜索商品信息void SearchByType();//按照商品类别搜索商品信息void SearchByBrand();//按照商品品牌搜索商品信息void EditGoodsInfo();//编辑商品信息void DeleteGoodsInfo();//删除商品信息void SellGoodsInfo();//出售商品信息void SaveGoodsInfo();//保存商品信息
private:int amount;//商品量int DeleteAmount;Goods *head;Goods *DeleteHead;
};

2.2.2各成员函数定义

1.构造函数

GoodsManage::GoodsManage()//定义构造函数
{amount=0;DeleteAmount=0;head=new Goods;head->next=NULL;DeleteHead=new Goods;DeleteHead->next=NULL;
}

2.主菜单显示函数

void GoodsManage::DisplayMainMenu()//定义主菜单函数
{cout<<" ━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆━═☆\n";cout<<" ┋                                                                ┋\n";cout<<" ┋                   欢迎使用商品库存管理系统                     ┋\n";cout<<" ┋                                                                ┋\n";cout<<" ┋                                                                ┋\n";cout<<" ┋                        【商品进货】…(a)                       ┋\n";cout<<" ┋                                                                ┋\n";cout<<" ┋                        【商品编辑】…(b)                       ┋\n";cout<<" ┋                                                                ┋\n";cout<<" ┋                        【商品删除】…(c)                       ┋\n";cout<<" ┋                                                                ┋\n";cout<<" ┋                     ┋ 【按照编号查询】…(d)                   ┋\n";cout<<" ┋                     ┋                                         ┋\n";cout<<" ┋                     ┋ 【按照名称查询】…(e)                   ┋\n";cout<<" ┋         【商品查询】┋                                         ┋\n";cout<<" ┋                     ┋ 【按照类别查询】…(f)                   ┋\n";cout<<" ┋                     ┋                                         ┋\n";cout<<" ┋                     ┋ 【按照品牌查询】…(g)                   ┋\n";cout<<" ┋                                                                ┋\n";cout<<" ┋                        【商品出货】…(h)                       ┋\n";cout<<" ┋                                                                ┋\n";cout<<" ┋                        【商品统计】…(i)                       ┋\n";cout<<" ┋                                                                ┋\n";cout<<" ┋                        【信息保存】…(j)                       ┋\n";cout<<" ┋                                                                ┋\n";cout<<" ┋                                                                ┋\n";cout<<" ┋                          退出系统…(k)                         ┋\n";cout<<" ┋                                                                ┋\n";cout<<" ━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆━═☆\n";cout<<"\n                      请输入你要进行的操作编号:";           
}

3.添加商品信息函数

void GoodsManage::AddGoodsInfo()//定义添加商品信息函数
{char c,c1;Goods *tail=head,*p;bool flag;cout<<"          ☆☆☆☆☆☆现在进行商品信息的添加☆☆☆☆☆☆          "<<endl;while(tail->next!=NULL)tail=tail->next;do{flag=0;p=new Goods;cout<<"请选择商品类别:"<<endl;cout<<"1.食品 2.化妆品 3.日用品 4.饮料"<<endl;cout<<"请输入相应编号:";do{cin>>c1;if(c1>='1'&&c1<='4')//判断用户输入编号是否存在flag=1;else{cout<<"您输入的编号不存在!"<<endl;cout<<"请选择正确的商品类别:"<<endl;}}while(flag==0);//输入编号存在时跳出循环if(c1=='1')p->type=Food;if(c1=='2')p->type=Cosmetic;if(c1=='3')p->type=Commodity;if(c1=='4')p->type=Drink;cout<<"商品类别("<<p->type<<")"<<endl;//表示商品类别cout<<"请输入商品编号: ";cin>>p->code;do{Goods *q=head->next;while(q!=NULL&&q->code!=p->code)q=q->next;if(q==NULL)flag=1;else{cout<<"存在该编号的货物!!!请重新输入编号:";cin>>p->code;}}while(flag==0);cout<<"请输入商品名称:";cin>>p->name;cout<<"请输入生产厂家:"; cin>>p->brand;cout<<"请输入商品价格:";cin>>p->price;cout<<"请输入商品数量:";cin>>p->num;cout<<"请输入入库时间(年/月/日):";cin>>p->date.year>>p->date.month>>p->date.day;tail->next=p;p->next=NULL;tail=p;amount++;//商品量加一cout<<"数据输入成功!!!想继续添加吗(y/n):";cin>>c;while(c!='y'&&c!='n'){cout<<"指令错误!!!!!<请输入y/n>"<<endl;cout<<"数据添加成功!!!想继续输入吗(y/n):";cin>>c;}}while(c=='y');cout<<endl;cout<<"……信息处理完毕……"<<endl;cout<<"……按任意键返回主菜单……"<<endl;getchar();getchar();
}

4.统计商品信息函数

void GoodsManage::DisplayGoodsInfo()//定义商品信息浏览函数
{Goods *p=head;cout<<"          ☆☆☆☆☆☆现在进行商品信息的浏览☆☆☆☆☆☆          "<<endl;cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;while(p->next!=NULL){p=p->next;cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;}cout<<endl;cout<<"……信息统计完毕……"<<endl;cout<<"……按任意键返回主菜单……"<<endl;getchar();getchar();
}

5.按照编号查找商品信息函数

void GoodsManage::SearchByCode()//按照商品编号查找商品信息
{char c;Goods *p;bool flag;string FoundCode;cout<<"          ☆☆☆☆☆☆现在进行商品信息的查找☆☆☆☆☆☆          "<<endl;do{p=head;flag=0;cout<<"请输入您要查找的商品编号:";cin>>FoundCode;while(p->next!=NULL){p=p->next;if(p->code==FoundCode){flag=1;cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;break;}if(flag==0){cout<<"对不起,您查询的商品不存在!!!"<<endl;cout<<"您想要继续查找吗(y/n):";cin>>c;while(c!='y'&&c!='n'){cout<<"指令错误!!!<请输入y/n>:"<<endl;cout<<"您想要继续查找吗(y/n):";cin>>c;}}}}while(c=='y');cout<<endl;cout<<"……信息查找完毕……"<<endl;cout<<"……按任意键返回主菜单……"<<endl;getchar();getchar();
}

6.按照名称查找商品信息函数

void GoodsManage::SearchByName()//按照商品名称查找商品信息
{char c;Goods *p;bool flag;string FoundName;cout<<"          ☆☆☆☆☆☆现在进行商品信息的查找☆☆☆☆☆☆          "<<endl;do{p=head;flag=0;cout<<"请输入您要查找的商品名称:";cin>>FoundName;while(p->next!=NULL){p=p->next;if(p->name==FoundName){flag=1;cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;break;}if(flag==0){cout<<"对不起,您查询的商品不存在!!!"<<endl;cout<<"您想要继续查找吗(y/n):";cin>>c;while(c!='y'&&c!='n'){cout<<"指令错误!!!<请输入y/n>:"<<endl;cout<<"您想要继续查找吗(y/n):";cin>>c;}}}}while(c=='y');cout<<endl;cout<<"……信息查找完毕……"<<endl;cout<<"……按任意键返回主菜单……"<<endl;getchar();getchar();
}

7.按照类别查找商品信息函数

void GoodsManage::SearchByType()//按照商品类别查找商品信息
{char c;Goods *p;bool flag;int FoundType;cout<<"          ☆☆☆☆☆☆现在进行商品信息的查找☆☆☆☆☆☆          "<<endl;do{p=head;flag=0;cout<<"请输入您要查找的商品类别:";cin>>FoundType;while(p->next!=NULL){p=p->next;if(FoundType==1&&p->type==Food){flag=1;cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;}else if(FoundType==2&&p->type==Cosmetic){flag=1;cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;}else if(FoundType==3&&p->type==Commodity){flag=1;cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;}else if(FoundType==4&&p->type==Drink){flag=1;cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;}if(flag==0){cout<<"对不起,您查询的商品不存在!!!"<<endl;cout<<"您想要继续查找吗(y/n):";cin>>c;while(c!='y'&&c!='n'){cout<<"指令错误!!!<请输入y/n>:"<<endl;cout<<"您想要继续查找吗(y/n):";cin>>c;}}}}while(c=='y');cout<<endl;cout<<"……信息查找完毕……"<<endl;cout<<"……按任意键返回主菜单……"<<endl;getchar();getchar();
}

8.按照品牌查找商品信息函数

void GoodsManage::SearchByBrand()//按照品牌查找商品信息
{char c;Goods *p;bool flag;string FoundBrand;cout<<"          ☆☆☆☆☆☆现在进行商品信息的查找☆☆☆☆☆☆          "<<endl;do{p=head;flag=0;cout<<"请输入您要查找的商品品牌:";cin>>FoundBrand;while(p->next!=NULL){p=p->next;if(p->brand==FoundBrand){flag=1;cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;break;}if(flag==0){cout<<"对不起,您查询的商品不存在!!!"<<endl;cout<<"您想要继续查找吗(y/n):";cin>>c;while(c!='y'&&c!='n'){cout<<"指令错误!!!<请输入y/n>:"<<endl;cout<<"您想要继续查找吗(y/n):";cin>>c;}}}}while(c=='y');cout<<endl;cout<<"……信息查找完毕……"<<endl;cout<<"……按任意键返回主菜单……"<<endl;getchar();getchar();
}	

9.编辑商品信息函数

void GoodsManage::EditGoodsInfo()//定义编辑商品信息函数
{char c;Goods *p;bool flag=0;string EditCode;cout<<"          ☆☆☆☆☆☆现在进行商品信息的编辑☆☆☆☆☆☆          "<<endl;do{p=head->next;flag=0;cout<<"请输入您要修改的货物编号:";cin>>EditCode;while(p->next!=NULL&&p->code!=EditCode)p=p->next;if(p->code==EditCode){flag=1;cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;cout<<"确认修改吗?<y/n>";cin>>c;while(c!='y'&&c!='n'){cout<<"指令错误!!!!<请输入y/n>:";cin>>c;}if(c=='y'){cout<<"请输入商品名称:";cin>>p->name;cout<<"请输入生产厂家:"; cin>>p->brand;cout<<"请输入商品价格:";cin>>p->price;cout<<"请输入商品数量:";cin>>p->num;cout<<"请输入入库时间(年/月/日):";cin>>p->date.year>>p->date.month>>p->date.day;cout<<"修改成功!"<<endl;	}else cout<<"取消成功!"<<endl;}if(flag==0){cout<<"对不起,您修改的货物不存在!!"<<endl;}cout<<"您想要继续修改吗?(y/n):";cin>>c;while(c!='y'&&c!='n'){cout<<"指令错误!!!<请输入y/n>:"<<endl;cout<<"您想要继续修改吗?(y/n):";cin>>c;}}while(c=='y');cout<<endl;cout<<"……信息编辑完毕……"<<endl;cout<<"……按任意键返回主菜单……"<<endl;getchar();getchar();
}

10.删除商品信息函数

void GoodsManage::DeleteGoodsInfo()//定义商品信息删除函数
{Goods *q=head,*p,*tail=DeleteHead;p=new Goods;char c;string Dename;bool flag=0;while(tail->next!=NULL)tail=tail->next;cout<<"          ☆☆☆☆☆☆现在进行商品信息的删除☆☆☆☆☆☆          "<<endl;do{cout<<"请输入您要删除的商品名称:";cin>>Dename;while(q->next!=NULL&&q->next->name!=Dename)q=q->next;if(q->next!=NULL){flag=1;cout<<"确认删除吗?<y/n>";cin>>c;while(c!='y'&&c!='n'){cout<<"指令错误!!!!<请输入y/n>:";cin>>c;}if(c=='y'){  p=q->next;q->next=q->next->next;tail->next=p;tail=p;tail->next=NULL;DeleteAmount++;amount--;cout<<"删除成功!!"<<endl;}else cout<<"取消成功!!!"<<endl;}if(flag==0){cout<<"对不起,您删除的商品不存在!!!"<<endl;}cout<<"您想要继续删除吗?(y/n):";cin>>c;while(c!='y'&&c!='n'){cout<<"指令错误!!!<请输入y/n>:"<<endl;cout<<"您想要继续删除吗?(y/n):";cin>>c;}flag=0;q=head;}while(c=='y');cout<<endl;cout<<"……信息删除完毕……"<<endl;cout<<"……按任意键返回主菜单……"<<endl;getchar();getchar();
}

2.2.4算法流程图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第三章 程序截图

3.1主菜单界面

在这里插入图片描述

3.2各项操作界面

在这里插入图片描述

3.2.2编辑商品信息

在这里插入图片描述

3.2.3删除商品信息

在这里插入图片描述

3.2.4按照编号搜索商品信息

在这里插入图片描述

3.2.5按照类别搜索商品信息

在这里插入图片描述

3.2.6按照名称搜索商品信息

在这里插入图片描述

3.2.7按照品牌搜索商品信息

在这里插入图片描述

3.2.8出售商品信息

在这里插入图片描述

3.2.9保存商品信息

在这里插入图片描述

四、联系与交流

q:969060742 完整代码、sql、报告

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

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

相关文章

Webpack常见插件和模式

目录 目录 目录认识 PluginCleanWebpackPluginHtmlWebpackPlugin自定义模版 DefinePlugin的介绍 ( 持续更新 )Mode 配置 认识 Plugin Loader是用于特定的模块类型进行转换&#xff1b; Plugin可以用于执行更加广泛的任务&#xff0c;比如打包优化、资源管理、环境变量注入等 …

【zlm】问题记录:chrome更新引起的拉不出webrtc; 证书校验引起的放几秒中断

目录 chrome更新引起的拉不出webrtc 证书校验引起的放几秒中断 chrome更新引起的拉不出webrtc 【zlm】最新的chrome版本中的报错&#xff1a; 我有个问题event.js:8 [RTCPusherPlayer] DOMException: Failed to execute setRemoteDescription on RTCPeerConnection: Failed …

Java前端控制器模式

文章目录 以下是Java前端控制器模式的主要组成部分和工作原理&#xff1a;组件与角色&#xff1a;工作流程&#xff1a;应用场景与优势&#xff1a; Java Web应用程序示例 Java前端控制器模式是一种软件设计模式&#xff0c;它在构建基于Java的Web应用程序时特别有用&#xff0…

如何使用 ArcGIS Pro 制作三维建筑

三维地图已经逐渐成为未来地图的趋势&#xff0c;对于大范围应用&#xff0c;只需要普通的建筑体块就行&#xff0c;如果有高程数据&#xff0c;还可以结合地形进行显示&#xff0c;这里为大家介绍一下 ArcGIS Pro 制作三维建筑的方法&#xff0c;希望能对你有所帮助。 数据来…

使用seldom编写http接口用例

在编写接口用例的过程中&#xff0c;针对一个接口&#xff0c;往往只是参数不同&#xff0c;那么参数化就非常有必要了。 seldom 中参数化的用法非常灵活&#xff0c;这里仅介绍file_data() 的N种玩法。 二维列表 当参数比较简单时可以试试下面的方式。 参数化数据 {"…

老阳推荐的视频号项目是真的吗?能赚钱吗?

在当下数字化、信息化的社会背景下&#xff0c;视频号项目如雨后春笋般涌现&#xff0c;成为许多人关注的焦点。特别是在一些知名人士&#xff0c;如老阳的推荐下&#xff0c;这些项目更是受到了广泛的关注和讨论。那么&#xff0c;老阳推荐的视频号项目是否真实存在?它能否真…

uni-app(使用阿里图标)

1.注册阿里矢量图标库 注册阿里图标库账号并登录&#xff0c;https://www.iconfont.cn/ 2.加入购物车 搜索适合自己的图标&#xff0c;加入购物车&#xff0c;如下图&#xff1a; 3.加入项目 我的->资源管理->我的项目->创建项目&#xff0c;然后返回购物车&#…

cesium vue 绘制标记实体(撒点),监听鼠标左击事件

添加实体 const viewer new Cesium.Viewer(cesiumContainer, {})viewer.entities.add()查看实体 const viewer new Cesium.Viewer(cesiumContainer, {}) const billboard viewer.entities.add({...})viewer.zoomTo(billboard)删除实体 根据实体删除 if (billboard.value…

快速上手Spring Cloud 六:容器化与微服务化

快速上手Spring Cloud 一&#xff1a;Spring Cloud 简介 快速上手Spring Cloud 二&#xff1a;核心组件解析 快速上手Spring Cloud 三&#xff1a;API网关深入探索与实战应用 快速上手Spring Cloud 四&#xff1a;微服务治理与安全 快速上手Spring Cloud 五&#xff1a;Spring …

目标检测+车道线识别+追踪

一种方法&#xff1a; 车道线检测-canny边缘检测-霍夫变换 一、什么是霍夫变换 霍夫变换&#xff08;Hough Transform&#xff09;是一种在图像处理和计算机视觉中广泛使用的特征检测技术&#xff0c;主要用于识别图像中的几何形状&#xff0c;尤其是直线、圆和椭圆等常见形状…

C++从入门到精通——函数重载

函数重载 前言一、函数重载概念二、函数重载的分类参数类型不同的函数重载参数个数不同的函数重载参数类型顺序不同的函数重载 三、函数重载的具体代码展示main.cpp 四、为什么为什么C支持函数重载&#xff0c;而C语言不支持函数重载呢 前言 函数重载是指在同一个作用域内&…

argo rollout使用

一、前言 argorollout是比argocd更高级的发布工具&#xff0c;其中包含自动化金丝雀发布、自动化蓝绿发布、还可以通过argo命令或者dashboard查看发布的过程 二、使用 需要先部署argo rollout服务 参考&#xff1a;https://github.com/argoproj/argo-rollouts/tree/master/m…

微信小程序的页面制作---常用组件及其属性2

一、标签栏taBar 在全局配置文件app.json中添加taBar配置&#xff0c;可实现标签栏配置。标签栏最少2个&#xff0c;最多5个 &#xff08;1&#xff09;如何配置标签栏&#xff1f; 1》先建多个文件&#xff0c;&#xff08;以我的index&#xff0c;list&#xff0c;myform文…

RelayAttention:让大型语言模型更高效地处理长提示符

一、前言 虽然大型语言模型 (LLM) 近年来取得了非常显著的进展&#xff0c;也在各种自然语言处理任务中展现出强大的能力。然而&#xff0c;LLM 的在实际的应用落地层面也面临着一些实际挑战&#xff0c;其中之一就是效率和成本问题&#xff0c;导致了在垂直行业实际落地的应用…

CE-Net:用于2D医学图像分割的上下文编码器网络

CE-Net&#xff1a;用于2D医学图像分割的上下文编码器网络 摘要引言方法 【2019】CE-NetContext Encoder Network for 2D Medical Image Segmentation 摘要 医学图像分割是医学图像分析中的重要步骤。随着卷积神经网络在图像处理中的快速发展&#xff0c;深度学习已经被用于医…

服务器被攻击有什么表现?

引言 在现今高度互联的网络环境中&#xff0c;服务器安全已成为每个企业和个人站长不容忽视的重要议题。服务器作为承载关键业务和数据的核心设施&#xff0c;一旦遭受攻击&#xff0c;不仅可能导致服务中断、数据泄露&#xff0c;还可能带来严重的经济损失和声誉损害。本文旨…

【二叉树】Leetcode 98. 验证二叉搜索树【中等】

验证二叉搜索树 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例1&a…

fpga 通过axi master读写PS侧DDR的仿真和上板测试

FPGA和ARM数据交互是ZYNQ系统中非常重要的内容。PS提供了供FPGA读写的AXI-HP接口用于两者的高速通信和数据交互。一般的&#xff0c;我们会采用AXI DMA的方式去传输数据&#xff0c;DMA代码基本是是C编写&#xff0c;对于FPGA开发者来说不利于维护和debug。本文提供一种手写AXI…

6、鸿蒙学习-Stage模型应用程序包结构

基于Stage模型开发的应用&#xff0c;经编译打包后&#xff0c;其应用程序的结构如下图应用程序包结构&#xff08;Stage模型&#xff09;所示。开发者需要熟悉应用程序包结构相关的基本概念。 一、在开发态&#xff0c;一个应用包含一个或者多个Module&#xff0c;可以在DevE…

“免密支付”出事了?看看背后的安全隐患

#免密支付# 的安全问题近日冲上热搜&#xff0c;大家来看看怎么一回事。 “我不知道什么时候开通的‘免密支付’功能&#xff0c;直到手机频繁收到账单提醒&#xff0c;才发现平台账号被盗&#xff0c;对方通过‘免密支付’消费了5000多元。这种事关会员安全的操作提示应该设置…