随着物流业的快速发展缺货与爆仓以及物流仓储信息不及时等问题不断涌现,传统的仓储技术与现代物流业的发展已出现脱节现象。在“互联网+”战略的带动下我国仓储管理发展将突破瓶颈紧接着仓储物流体系将逐步与云计算、大数据等新一代互联网技术深度融合朝着数字化、智能化的方向迈进。 因而在研究智能仓储管理物流系统方面具有重要的意义和价值。

       智能仓储管理系统可以在Dev-C++上运行,是能够实现仓库自动化运营,将传统的仓储货架技术与自动化科学技术相结合,实现仓库智能化工作,智能化技术与自动化设备和人工相结合,有效提升仓库内的工作效率,降低仓库所需的人工成本,为企业带来更大的效益。该系统可以实现信息化管理,出/进库、原材料库存量等业务可保证时实查询与监控;提高库房储位利用率;减少工作人员体力劳动;提高仓储物流管理的工作效率;降低仓库仓储内的执行设备;持续改善订单准确率;提升客户订单履行率以及提升库房作业的灵活性等方面的优势。

主页面部分

#include<iostream>
#include<cstring>
#include<time.h>
using namespace std; 
struct cargo
{
	char num[100];
	char name[100];
	float weight;	//重量 
	char destin;	//郑州:1 洛阳:2 商丘:3 濮阳:4 新乡:5 周口:6 信阳:7
	char way;	    //航运:s 铁路:r 管道:p 水运:w 公路:h
	char people;    // 人员甲:1 人员乙:2 人员丙:3 人员丁:4
}stu[1000];    //结构体 
struct node{
	int tm_year,tm_mon,tm_mday,tm_hour,tm_min,tm_sec;
}tt[1100];
void prtime(int index){
	printf("%d/%d/%d", tt[index].tm_year,tt[index].tm_mon, tt[index].tm_mday);
    printf(" %d:%d:%d\n", tt[index].tm_hour,tt[index].tm_min, tt[index].tm_sec);
	//中国东八区,比世界时间早8小时
}
void timeinsert(int index){
	time_t timep;
    time(&timep);
    struct tm *p = gmtime(&timep);
    tt[index].tm_year = (1900+p->tm_year);
    tt[index].tm_mon = (1+p->tm_mon);
    tt[index].tm_mday = p->tm_mday;
    tt[index].tm_hour = (8+p->tm_hour);
    tt[index].tm_min =  p->tm_min;
    tt[index].tm_sec = p->tm_sec;
}
int main()
{
	void welcome();
	void input(struct cargo stu[]); 
	void sort(struct cargo stu[]); 
	void output(struct cargo stu[]); 
	void lookall(struct cargo stu[]); 
	void search(struct cargo stu[]); 
	welcome(); 
	return 0;	
}     

void welcome()     //主界面部分 
{
	system("color f1"); 
	system("cls");
    printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t-----------------------------\n");	
    printf("\t\t\t\t\t\t| 欢迎使用物流仓储管理系统  |\n");	
    printf("\t\t\t\t\t\t|      请选择以下操作:     |\n");	
    printf("\t\t\t\t\t\t|	1.货物入库	    |\n");	
    printf("\t\t\t\t\t\t|	2.货物信息	    |\n");	
    printf("\t\t\t\t\t\t|	3.货物查询	    |\n");
	printf("\t\t\t\t\t\t|	4.货物出库          |\n");	
    printf("\t\t\t\t\t\t|	5.货物盘点	    |\n");	
    printf("\t\t\t\t\t\t-----------------------------\n");	
    void input(struct cargo stu[]); 
	void output(struct cargo stu[]); 
	void sort(struct cargo stu[]);
    void lookall(struct cargo stu[]); 
	void search(struct cargo stu[]); 
	int choose;
    scanf("%d",&choose); 
	switch(choose)
	{
		case 1:input(stu);
		break;
        case 2:lookall(stu);
        break;
        case 3:search(stu);
        break;
        case 4:output(stu);
        break;
        case 5:sort(stu);
        break;
    }
}             

入库功能

void input(struct cargo stu[])	//入库	
{
	system("cls"); 
	FILE *fp;
	if((fp=fopen("C:\\Users\\29752\\Desktop\\cargo.txt","r"))==NULL)
	{
		fp=fopen("C:\\Users\\29752\\Desktop\\cargo.txt","w"); 
		fclose(fp);
	}
	fp=fopen("C:\\Users\\29752\\Desktop\\cargo.txt","a"); 
	int i,j,n;
    printf("请输入您要入库的货物数:"); 
	scanf("%d",&n);
    printf("请输入货物的数据:\n"); 
	for(i=0;i<n;i++)
	{
		printf("订单编号:"); 
			scanf("%s",stu[i].num);
        fprintf(fp,"订单编号:%s\n",stu[i].num); 
        printf("货物名称:");
			scanf("%s",stu[i].name); 
		fprintf(fp,"商品名称:%s\n",stu[i].name);
		printf("请选择运输人员:\n");
		printf("请注意:下述英文编号代表不同人员,您仅需要键入编号即可。\n"); 
		printf("人员甲:1 人员乙:2 人员丙:3 人员丁:4\n");
			cin>>stu[i].people;
        fprintf(fp,"%c\n",stu[i].people); 
        int retu3(char a);
        int e=retu3(stu[i].people);
		while(e!=1)
		{
			printf("输入有误,请重新输入人员编号!:\n"); 
				cin>>stu[i].people;
			e=retu3(stu[i].people);
		} 
		printf("货物重量(以kg为单位):"); 
			cin>>stu[i].weight;
        fprintf(fp,"货物重量:%f kg\n",stu[i].weight); 
		printf("运送目的地:\n");
		printf("请注意:下述英文编号代表不同地区,您仅需要键入编号即可。\n"); 
		printf("郑州:1 洛阳:2 商丘:3 濮阳:4 新乡:5 周口:6 信阳:7\n"); 
			cin>>stu[i].destin;
        fprintf(fp,"%c\n",stu[i].destin); 
		int c;
        int retu1(char a);
        c=retu1(stu[i].destin); 
		while(c!=1)
		{
			printf("输入有误,请重新输入地区编号:\n"); 
			cin>>stu[i].destin;
			c=retu1(stu[i].destin);
		}
		printf("运送方式:\n");
        printf("请注意:下述英文编号代表不同运输方式,您仅需要键入编号即可。\n"); 
		printf("航运:s 铁路:r 管道:p 水运:w公路:h\n"); 
			cin>>stu[i].way;
        fprintf(fp,"%c\n",stu[i].way); 
		int d;
        int retu2(char a); 
		d=retu2(stu[i].way);
		while(d!=1)
		{
			printf("输入有误,请重新输入运输方式编号:\n"); 
			cin>>stu[i].way;
			d=retu2(stu[i].way);
		}
        printf("\n");
        
        timeinsert(i);
    }
    
    printf("您的全部入库货物数据为:\n"); 
	for(j=0;j<n;j++)
	{
		printf("订单编号:%s 货物名称:%s 货物重量:%.2f",stu[j].num,stu[j].name,stu[j].weight,stu[j].way); 
		switch(stu[j].people)
        {
        	case '1':printf("运输人员:人员甲\n");
			break;
			case '2':printf("运输人员:人员乙\n");
			break;
			case '3':printf("运输人员:人员丙\n");
			break;
			case '4':printf("运输人员:人员丁\n");
			break;
		}
		switch(stu[j].destin)
		{
			case '1':printf("运送目的地:郑州 ");
			break;
			case '2':printf("运送目的地:洛阳 ");
			break;
			case '3':printf("运送目的地:商丘 ");
			break;
			case '4':printf("运送目的地:濮阳 ");
			break;
			case '5':printf("运送目的地:新乡 ");
			break;
			case '6':printf("运送目的地:周口 ");
			break;
			case '7':printf("运送目的地:信阳 ");
			break;	
		}
        switch(stu[j].way)
        {
        	case 's':printf("运送方式:航运\n");
			break;
			case 'r':printf("运送方式:铁路\n");
			break;
			case 'p':printf("运送方式:管道\n");
			break;
			case 'w':printf("运送方式:水运\n");
			break;
			case 'h':printf("运送方式:公路\n");
			break;
		}

		cout<<"时间是:";
		prtime(j);
    }
	fclose(fp);
	printf("货物入库成功!\n");
	printf("\n【返回主页面请按1,退出本系统请按2】\n"); 
	int h;
	scanf("%d",&h);
	switch(h)
	{ case 2:break;
		default:welcome();
       
	}
}

int retu1(char a)
{
	if(a=='1') return 1; 
	if(a=='2') return 1; 
	if(a=='3') return 1; 
	if(a=='4') return 1; 
	if(a=='5') return 1;
	if(a=='6') return 1;
	if(a=='7') return 1;
	else return 0;
}
int retu2(char a)
{
	if(a=='s') return 1; 
	if(a=='r') return 1; 
	if(a=='p') return 1; 
	if(a=='w') return 1; 
	if(a=='h') return 1;
	else return 0;
}
int retu3(char a)
{
	if(a=='1') return 1; 
	if(a=='2') return 1; 
	if(a=='3') return 1; 
	if(a=='4') return 1; 
	else return 0;
}

(P:输入的货物信息可以保存在文本文档里)

全览功能

void lookall(struct cargo stu[])	//全览
{
	system("cls"); 
	int j;
	printf("您的全部货物数据为:\n"); 
	for(j=0;stu[j].weight!=0;j++)
	{
		printf("订单编号:%s 货物名称:%s 货物重量:%.2f",stu[j].num,stu[j].name,stu[j].weight,stu[j].way); 
		switch(stu[j].destin)
		{
			case'1':printf("运送目的地:郑州 ");
			break;
			case'2':printf("运送目的地:洛阳 ");
			break;
			case'3':printf("运送目的地:商丘 ");
			break;
			case'4':printf("运送目的地:濮阳 ");
			break;
			case'5':printf("运送目的地:新乡 ");
			break;
			case'6':printf("运送目的地:周口 ");
			break;
			case'7':printf("运送目的地:信阳 ");
			break;	
		}
		switch(stu[j].way)
		{
			case's':printf("运送方式:航运\n");
			break;
			case'r':printf("运送方式:铁路\n");
			break;
			case'p':printf("运送方式:管道\n");
			break;
			case'w':printf("运送方式:水运\n");
			break;
			case'h':printf("运送方式:公路\n");
			break;
		}
		cout<<"时间是:";
		prtime(j);
	}
	printf("\n【返回主页面请按1,退出本系统请按2】\n"); 
	int h;
	scanf("%d",&h); 
	switch(h)
	{
		default:welcome();
		case 2:break;
	}
}

查询功能

void search(struct cargo stu[])	 //按订单编号查询
{
	system("cls");	
    char s[30]; 
	int j; 
	int y=0;
    printf("请输入货物订单编号:"); 
	scanf("%s",s);
    for(j=0;stu[j].weight!=0;j++)
    {
    	if(strcmp(stu[j].num,s)==0)
		{
			y=1;
            printf("订单编号:%s 货物名称:%s 货物重量:%.2f",stu[j].num,stu[j].name,stu[j].weight,stu[j].way); 
			switch(stu[j].destin)
			{
				case'1':printf("运送目的地:郑州 ");break; 
				case'2':printf("运送目的地:洛阳 ");break; 
				case'3':printf("运送目的地:商丘 ");break; 
				case'4':printf("运送目的地:濮阳 ");break; 
				case'5':printf("运送目的地:新乡 ");break; 
				case'6':printf("运送目的地:周口 ");break; 
				case'7':printf("运送目的地:信阳 ");break;
			}
			switch(stu[j].way)
			{
				case's':printf("运送方式:航运\n");break;
				case'r':printf("运送方式:铁路\n");break;
		    	case'p':printf("运送方式:管道\n");break;
			    case'w':printf("运送方式:水运\n");break;
			    case'h':printf("运送方式:公路\n");break;
			}
		}
		cout<<"时间是:";
		prtime(j);
	}
	if(!y)
    printf("未找到该货物!\n");
    printf("\n【返回主页面请按1,退出本系统请按2】\n");
    int h;	
	scanf("%d",&h);	
    switch(h)
    {
    	case 1:welcome();break; 
		case 2:break;
	}
}

出库功能

void output(struct cargo stu[])	  //出库
{
	system("cls"); 
	int i,flag=0; 
	char a[100];
	printf("请输入需要出库的订单编号:"); 
	scanf("%s",&a);
	for(i=0;stu[i].weight!=0;i++)
	{
		if(strcmp(a,stu[i].num)==0)
		flag=1; 
		if(flag)
		{
			strcpy(stu[i].num,stu[i+1].num); 
			stu[i].weight=stu[i+1].weight; 
			stu[i].destin=stu[i+1].destin; 
			stu[i].way=stu[i+1].way;
	    }
    }
    printf("货物出库成功!\n");
	printf("\n【返回主页面请按1,退出本系统请按2】\n"); 
	int h;
	scanf("%d",&h); 
	switch(h)
	{
		default:welcome();
		break; 
		case 2:break;
	}
}

盘点功能

void sort(struct cargo stu[])	//分类
{
	system("cls");
    void weight(struct cargo stu[]);
    void destination(struct cargo stu[]); 
	void way(struct cargo stu[]); 
	int num;
	printf("根据重量盘点请按	【1】\n");	
    printf("根据目的地盘点请按	【2】\n");	
    printf("根据运输方式盘点请按    【3】\n"); 
	scanf("%d",&num); 
	switch(num)
	{
		case 1:weight(stu);
		break;
        case 2:destination(stu);
		break;
        case 3:way(stu);
		break;
        default:printf("无效数字!请输入正确的数字啦~\n");
	}
	printf("\n【返回主页面请按1,退出本系统请按2】\n"); 
	int h;
    scanf("%d",&h); 
	switch(h)
	{
		case 1:welcome();
		break; 
		case 2:break;
	}
}
void weight(struct cargo stu[])
{
	int i,a=0,b=0,c=0,d=0,e=0,f=0; 
	for(i=0;stu[i].weight!=0;i++)
	{
		if(stu[i].weight>0&&stu[i].weight<1)a++;
		else if(stu[i].weight>=1&&stu[i].weight<5)b++; 
		else if(stu[i].weight>=5&&stu[i].weight<15)c++; 
		else if(stu[i].weight>=15&&stu[i].weight<30)d++; 
		else if(stu[i].weight>=30&&stu[i].weight<50)e++; 
		else if(stu[i].weight>=50)f++;
	}
	printf("重量(0,1)的货物数:%-5d\n",a); 
	printf("重量[1,5)的货物数:%-5d\n",b); 
	printf("重量[5,15)的货物数:%-5d\n",c);
	printf("重量[15,30)的货物数:%-5d\n",d);
	printf("重量[30,50)的货物数:%-5d\n",e);
	printf("重量[50,+∞)的货物数:%-5d\n",f);
}
void destination(struct cargo stu[])
{
	int i,a=0,b=0,c=0,d=0,e=0,f=0,g=0; 
	for(i=0;stu[i].weight!=0;i++)
	{
		if(stu[i].destin=='1')a++;
		else if(stu[i].destin=='2')b++; 
		else if(stu[i].destin=='3')c++; 
		else if(stu[i].destin=='4')d++; 
		else if(stu[i].destin=='5')e++; 
		else if(stu[i].destin=='6')f++; 
		else if(stu[i].destin=='7') g++;
	}
	printf("郑州的货物数:%-5d\n",a); 
	printf("洛阳的货物数:%-5d\n",b); 
	printf("商丘的货物数:%-5d\n",c); 
	printf("濮阳的货物数:%-5d\n",d);
	printf("新乡的货物数:%-5d\n",e); 
	printf("周口的货物数:%-5d\n",f); 
	printf("信阳的货物数:%-5d\n",g);
}
void way(struct cargo stu[])
{
	int i,a=0,b=0,c=0,d=0,e=0;
    for(i=0;stu[i].weight!=0;i++)
    {
    	if(stu[i].way=='s') a++;
		else if(stu[i].way=='r') b++; 
		else if(stu[i].way=='p') c++; 
		else if(stu[i].way=='w') d++; 
		else if(stu[i].way=='h') e++;
	}
	printf("航运的货物数:%-5d\n",a); 
	printf("铁路的货物数:%-5d\n",b); 
	printf("管道的货物数:%-5d\n",c); 
	printf("水运的货物数:%-5d\n",d); 
	printf("公路的货物数:%-5d\n",e);
}

系统实施背景:

       大力发展生产性服务业、物流业,统筹规划,合理布局,形成高效快捷的现代物流体系。建设皖江外向型现代物流产业带、合肥物流圈、沿淮物流产业带三大物流区域,将合肥、芜(湖)马(鞍山)建成全国重要的物流枢纽,建设蚌埠、安庆、某等区域性物流中心,支持其他城市建设物流基地。大力发展综合物流中心、专业物流中心和配送分拨中心。积极培育引进第三方物流企业。加快建设公共物流信息平台,促进物流信息资源共享和物流网络互通互联。加速融入长三角物流圈。现代物流企业的发展,是一个地区综合竞争力的重要标志;是促进经济结构调整,转变经济发展方式的重要举措;是解决物流企业粗放型经营的重要途径。某市作为区域性商贸中心,改造和提升传统经营。整合现有物流资源,促进经济和谐发展,加速融入长三角大物流圈。积极培育第三方物流,发展大型的商贸流通集团,打造现代物流基础设施平台,构建开放互通的物流运输、通畅的互动信息和集约发展的现代物流综合服务中心,对配合我市经济跨越式发展具有十分重要意义。

系统需求分析:

1、发展现代仓储物流是我国国民经济发展的需要。

       项目立足本地,辐射皖西北、面向全国。形成与国内、国际市场相衔接的大商业、大流通、大市场格局,必须将商品进入市场前后的运输、仓储、分拣、配送等各个环节有机结合起来,形成一个或者多个强有力的联合体作为支持平台,共同完成同一使命。

2、发展现代智能仓储物流是我国市场供求关系的需要。

       随着改革开放和经济的持续发展,我国市场供求关系发生了重大变化,长期以来形成的商品供不应求的市场格局被打破,初步形成了供求平衡或供大于求的市场格局。市场竞争加剧,商品制造成本的下降空间逐年减少,流通成本在价格中的比例呈上升趋势。制造商和终端商都意识到在制造成本下降空间不大的前提下,降低流通成本是降低商品总体成本价格,增加企业产品竞争的有效途径。现代物流也被普遍认为是企业在降低物质消耗,提高劳动生产率以外的“第三利润源”。国内外的实践都证明,现代化的大生产,需要现代化的大流通,只有现代化的大流通,才能带动现代化的大生产,否则,就没有真正意义。

3、发展现代智能仓储物流是全面改善投资环境的需要。

       改革开放以来,各地区为了加快经济的发展,都在采取各种措施吸引外资发展经济。对于投资者来说,投资地点的选择,不仅要考虑当地的经济条件和优惠政策,还要考虑作为提高企业竞争力的物流环境,即物流基础设施和物流服务质量。物流环境的好坏,已成为投资者评价一个地区投资环境的重要内容。

4、发展现代智能仓储物流是社会就业的需要。

       随着社会经济的发展。我们的社会面临着很大的劳动就业压力。该项目的建设,不仅需要专业技术人员、管理人员,而且也需要普通职工、杂工等。项目达产后可直接带动当地劳动力就业,间接带动上千人,在一定程度上缓解了当地的劳动就业压力。

系统最终测试:

       物流仓储管理系统主要包括货物入库、货物出库、货物信息、货物查询、货物盘点等五大部分。系统可以安全、高效无故障运行,业务人员可以轻松完成设备和业务的监控、管理工作,报表种类齐全,可以满足业务人员各种账务需求。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐