超市库存管理信息系统的系统分析

超市库存管理信息系统的系统分析

班级: 工程管理10

姓名:     刘洋

         学号:   02611A09

一、现行系统概况:

1.现行系统现状调查说明:

①      功能结构调查:

②      业务流程调查:

库存系统概述:

1.仓库需要进行货物检查,若货物充足,则进行发货,存档。

2.若货物不充足,则需要填写缺货通知单,通知采购部门。

③数据流程调查:

第一层数据流程图:

第二层数据流程图:

销售部对销售商品信息进行统计,更新销售信息,销售信息传至库存信息,进行更新。同时销售部将每日的销售量信息数据传至库存部进行库存处理,同时提交商品需求计划。库存部对库存信息进行整理统计查询,库存充足,则无须进货,直接发货至销售部;库存不足将信息反馈给负责商品采购的采购部,采购部综合商品库存信息初步确定所需补充的商品。采购部提交采购信息,传至供应商,供应商接收采购信息,提交商品,采购部接收商品,将商品信息更新,同时移交库存部,库存部根据采购部采购信息更新库存信息,同时将信息传交给销售部,并满足其商品需求计划。具体过程如下图。

第三层数据流程图:

库存部根据采购部传送的采购的商品的采购清单,进行入库管理,对商品清单进行整理,生成入库单后,对商品库存信息进行更新;库存部根据销售部传送的提货清单,对所需要的商品进行统计整理,生产出库单后,对库存信息进行更新;库存部每日进行商品维护,根据每日入库出库统计整理,对商品库存信息进行每日盘点。具体流程见下图:

2系统需求说明:

主要存在问题分析:

问题1:管理方式落后,缺乏信息化支持

经过我们的调查发现,超市在管理方面,仍未能实现完全信息化,有的环节甚至依旧是人工化,这样浪费人力资源,效率低,准确率低。虽然各部门均配置有电脑,而且建立了互联的局域网络,但是在业务管理上却没有发挥作用,计算机只是被当作计算工具甚至是娱乐工具使用。各部门之间存在严重的信息沟通问题,销售部,库存部,采购部往往很难及时了解对方的当前状况,因而造成运行和管理上的脱节。

问题2:业务流程复杂,难以顺畅有效运行

调查发现,库存部当需要与其他部门进行业务往来时,往往需要经理审批,这种流程造成的状况是,库存部出现问题需要解决时,往往不能有效及时得到回应。超市是以零售为前导,以商品进销,存配,流转管理为基础。如果没有一个强大的信息系统来支持,那么就会造成一部分商品大量积压,而另一些商品供不应求的局面,这种局面必然会给超市带来巨大的经济损失。

问题3:商品库存管理混乱,透明度低

由于没有完善的库存管理体系,超市商品库存管理极其混乱,商品信息往往是不完善的,造成对商品库存的维护的困难,而且无法与销售部,采购部及时共享信息,造成销售部,采购部的决策问题。更由于无法明细库存商品信息,造成采购部采购的困难,而且存在严重的虚报库存,挪用库存资金行为。

三、新系统逻辑方案:

1.新系统目标分析:

通过新系统的实施,有效解决目前系统存在的信息沟通不顺畅问题,通过完全信息网络的建设,达到完全信息共享,各部门能实时共享互相的信息。使整个系统业务流程实现信息自动化,不再需要过多人工参与,能有效地对销售信息进行统计记录,能有效地完整管理商品库存信息,能有效地根据库存信息编制采购计划。通过新系统的实施,使系统更好地统一整体地运行,同时达到系统更安全,稳定地运行。

2.新系统功能需求分析:

   新系统功能需求分析从库存部需要完成的任务着手。对库存部而言,要求系统对商品库存的情况进行管理,也就是对商品入库、出库情况进行登记记录,同时能对新增加的商品信息进行管理;能对入库出库记录进行分类统计查询,并且与销售部,采购部门实现信息实时传递。

 

第二篇:超市库存货品信息管理系统设计

//主程序#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>typedef struct com{long int num;char name[10];int count;struct com *next;}COM;#define LEN sizeof(COM)#define PRINT "%-15ld%-15s%-15ld\n",ptr1->num,ptr1->name,ptr1->count#define CHECK_COUNT ptr1->count<0#define CHECK_COUNT2 ptr3->count<0COM *input();void print_perf();COM *openfile();COM *insert_perf();COM *del_perf();void search();COM *revise_perf();COM *pass();vid save(COM *head);FILE *fp;COM *head=NULL;COM *ptr1=NULL,*ptr2=NULL;char filename1[20];char filename2[]={".dat"};void main(){char message[]={"超市货品库存管理系统使用说明 \n","本系统是一个超市货品库存信息管理系统,您可以在本 \n","系统中输入多类货品信息,系统将以您输入的货品类名作为 \n","文件名保存. \n","本系统对已保存的货品信息可调出后进行插入,删除,修改 \n","等操作,然后重新保存,同时系统还具有分别按货品号和货品名 \n","进行排序和查找功能. \n","欢迎您使用货品库存管理系统!"};char menu[]= {"*1.输入货品信息 \n","*2.输出全部货品信息 \n","*3.插入货品信息 \n","*4.删除货品信息 \n","*5.修改货品信息 \n","*6.综合排序 \n","*7.综合查找 \n","*8.存盘 \n", "*9.退出 \n"};int sel;textbackground(BLUE);textcolor(YELLOW);clrscr();gotoxy(4,9);printf("%s",message);gotoxy(10,22);printf("按任意键进入主菜单:");getch();do{clrscr();gotoxy(1,9);printf("%s",menu);gotoxy(10,20);printf("请在0-8中选择:");scanf("%d",&sel); switch(sel){case 1: head=input();break;case 2: print_perf();break;case 3: head=insert_perf();break;case 4: head=del_perf();break;case 5: /*head=revise_perf();*/printf("省略编写,按任意键返回\n");getch();break;case 6: /*head=pass();*/printf("省略编写,按任意键返回\n");getch();break;case 7: search(); break;case 8: save(head);break;case 0: break;}}while(sel!=0); }//输入模块COM *input(){char string1[]={"货品号"}; char string2[]={"货品名"};char string3[]={"货品量"};int n=1,i=0;if((ptr1=(COM *)malloc(LEN))==NULL){printf("内存不足,链表创建失败!"); getch();}clrscr();printf("请依次按提示输入(货品号为0结束输入):\n");do{printf("请输入第%d个货品的货品号%s:\n",n,string1);scanf("%ld",&ptr1->num);flushall();if(ptr1->num==0){printf("按任意键回上层菜单:"); getch();free(ptr1);return(0);}printf("请输入第%d个货品的货品名%s:\n",n,string2);scanf("%s",ptr1->name);flushall();printf("请输入第%d个货品的货品量%s:\n",n,string3);sca

nf("%s",&ptr1->count);flushall();if(CHECK_COUNT) printf("请输入有效的货品量!\n");}while(CHECK_COUNT);while(ptr1!=NULL){if(n==1)head=ptr1;else ptr2->next=ptr1;n++;ptr2=ptr1;if((ptr1=(COM *)malloc(LEN))==NULL){printf("内存不足,链表创建失败!"); getch();}do{printf("请输入第%d个货品的货品号%s:\n",n,string1);scanf("%ld",&ptr1->num);flushall();if(ptr1->num==0){ptr1=NULL;break;}printf("请输入第%d个货品的货品名%s:\n",n,string2);scanf("%s",ptr1->name);flushall();printf("请输入第%d个货品的货品量%s:\n",n,string3);scanf("%s",&ptr1->count);flushall();if(CHECK_COUNT) printf("请输入有效的货品量!\n");}while(CHECK_COUNT);}ptr2->next=NULL;gotoxy(10,24);printf("已完成货品信息输入,按任意键回上层菜单,请存盘:"); getch();return head;}//插入模块COM * insert_perf(){COM *ptr3=NULL;char string1[]={"货品号"}; char string2[]={"货品名"};char string3[]={"货品量"};char sell[10]; clrscr();gotoxy(25,10);printf("请输入要插入的货品类名称:");head=openfile();if(head==NULL) return NULL;else{do{clrscr();printf("请输入插入货品的信息:\n");if((ptr3=(COM *)malloc(LEN))==NULL){printf("内存不足,链表创建失败!"); getch();}do{printf("请依次按提示输入:\n");printf("请输入货品的货品号%s(大于0):\n",string1);scanf("%ld",&ptr3->num);flushall();if(ptr3->num<=0){printf("输入错误,请重新选择插入选项\n");getch();return ;}printf("请输入货品的货品名%s:\n",string2);scanf("%s",ptr3->name);flushall();printf("请输入货品的货品量%s:\n",string3);scanf("%s",&ptr3->count);flushall();if(CHECK_COUNT2) printf("请输入有效的货品量(大于0)!\n");}while("CHECK_COUNT2");ptr1=head;while(ptr1!=NULL){ptr2=ptr1;ptr1=ptr1->next;}ptr2->next=ptr3;ptr3->next=NULL;printf("\n插入成功,是否继续请键入yes 或 no: ");scanf("%s",sell);clrscr();}while(!strcmp(sell,"yes"));gotoxy(10,10);printf("已插入成功,按任意键返回上层菜单后,请存盘:");getch(); return head;}//删除模块COM *del_perf(){char name[10];char sell[10]; int sel;int del_num;clrscr();gotoxy(25,10);printf("请输入要删除的货品类名称:");head=openfile();clrscr();if(head==NULL) return NULL;elsedo{do{clrscr();gotoxy(5,4);printf("请选择输入货品信息:"); gotoxy(1,9);printf(" *1.按货品号删除\n"); gotoxy(1,10);printf(" *2.按货品名删除\n");gotoxy(10,22);printf("请在1-2中选择:"); scanf("%d",&sel);

switch(sel){case 1:clrscr();gotoxy(6,6);printf("请输入货品号:");scanf("%d",&del_num);break;case 2:clrscr();gotoxy(6,6);printf("请输入货品名:");scanf("%d",&name);break;}}while(sel!=1&&sel!=2);ptr1=head;if(ptr1->num==del_num||(strcmp(ptr1->name,name)==0){head=ptr1->next;printf("删除货品信息成功!\n");}else{while(ptr1!=NULL&&ptr1->num!=del_num&&strcmp(ptr1->name,name)!=0){ptr2=ptr1;ptr1=ptr1->next;}if(ptr1->num==del_num||(strcmp(ptr1->name,name)==0){ptr2->next=ptr1->next;free(ptr1); printf("删除货品信息成功!\n");}else printf("\n未找到这个货品的信息!\n\n");}printf("是否继续进行删除,请键入yes 或no : ");scanf("%s",sell);}while(!strcmp(sell,"yes"));clrscr();gotoxy(10,10);printf("已删除成功,按任意键回上层菜单后,请存盘:"); getch();return head;} //查找模块void search(){char name[10];char sell[10];int sel;long int sel_num;clrscr();gotoxy(30,10);printf("请输入要查找的货品类名称:"); head=openfile();if(head==NULL)return;elsedo{do{clrscr();gotoxy(5,4); printf("请选择查找方式:"); gotoxy(1,9);printf(" *1.按货品号查找\n"); gotoxy(1,10);printf(" *2.按货品名查找\n");gotoxy(10,22);printf("请在1-2中选择:"); scanf("%d",&sel);switch(sel){case 1:clrscr();gotoxy(6,6);printf("请输入货品号:");scanf("%d",&del_num);break;case 2:clrscr();gotoxy(6,6);printf("请输入货品名:");scanf("%d",&name);break;}}while(sel!=1&&sel!=2); ptr1=head;while(ptr1!=NULL && ptr1->num!=sel_num && strcmp(ptr1->name,name)!=0)ptr1=ptr1->next;if(ptr1->num==del_num||(strcmp(ptr1->name,name)==0){printf("\n查找货品信息成功!\n\n");printf("货品号 货品名 货品量\n");printf(PRINT); }elseprintf("\n未找到这个货品的信息!\n\n");printf("\n是否继续查找,请键入yes 或no :");scanf("%s",sell);}while(!strcmp(sell,"yes"));gotoxy(10,24);printf("按任意键回上层菜单:");getch();}//输出模块void print_perf(){int i=1;clrscr();gotoxy(25,10);printf("请输入要输出的货品类名称:"); head=openfile();if(head==NULL) return ;else clrscr();printf("输出结果如下:\n");printf("货品号 货品名 货品量\n\n");ptr1=head;do{printf(PRINT);ptr1=ptr1->next;if(i/10==1){i=0;printf("按任意键换页:"); getch();clrscr();gotoxy(0,6);printf("货品号 货品名 货品量\n\n");}i++;}while(ptr1!=NULL);gotoxy(10,24);printf("按任意键回上层菜单:"); getch();}

//保存模块void save(COM *head){clrscr();gotoxy(13,13);printf("请输入将要存盘的货品类名称(仅限字母与数字):");scanf("%s",filename1);if((fp=fopen(strcat(filename1,filename2),"wb"))==NULL){printf("创建文件失败!");getch();return;}ptr1=ptr2=head;while(ptr1!=NULL){if(fwrite(ptr1,sizeof(COM),1,fp)!=1) {printf("向文件输出数据失败!");getch();return ;}ptr1=ptr1->next;}fclose(fp);gotoxy(10,24);printf("已存盘,按任意键回上层菜单:");getch();}//截入模块COM *openfile(){int n=1;clrscr();scanf("%s",filename1);if((fp=fopen(strcat(filename1,filename2),"rb"))==NULL){gotoxy(15,13);printf("无此名称的货品类,请检查其是否存在,按任意键返回主菜单");getch();return NULL;} if((ptr1=ptr2=(COM *)malloc(LEN))==NULL){printf("内存不足,链表创建失败! \n按任意键返回主菜单\n");getch();return NULL;}if(fread(ptr1,sizeof(COM),1,fp)!=1){printf("从文件输入数据失败!\n按任意键返回主菜单\n");getch();return NULL;}if(ptr1->next==NULL)head=ptr1;else{do{if(n==1)head=ptr1;else ptr2->next=ptr1;n++;ptr2=ptr1;if( (ptr1=(COM *)malloc(LEN))==NULL){printf("内存不足,链表创建失败! \n按任意键返回主菜单\n");etch();return NULL;}if(fread(ptr1,sizeof(COM),1,fp)!=1){printf("从文件输入数据失败!\n按任意键返回主菜单\n");getch();return NULL;}}while(ptr1->next!=NULL);ptr2->next=ptr1;}fclose(fp);return head;}

相关推荐