商品库存管理系统需求分析.docx
《商品库存管理系统需求分析.docx》由会员分享,可在线阅读,更多相关《商品库存管理系统需求分析.docx(40页珍藏版)》请在冰豆网上搜索。
商品库存管理系统需求分析
商品库存管理
程序设计报告
课程名称:
C语言课程设计程序设计
班级:
电气1401
组长:
王闯
小组成员:
王闯孟宁夏涵胡琛
谢俊良韩梦成代仁旺
指导老师:
伊芸芸
第1章引言………………………………………………
(1)
第2章总体设计…………………………………………
(2)
2.1系统的需求分析……………………………………
(2)
2.2系统的功能………………………………………
(2)
2.3主要用到的函数……………………………………(6)
第3章详细设计…………………………………………(7)
3.1代码以及对应的备注…………………………………(9)
第4章界面设计及代码…………………………………(17)
4.1主界面…………………………………………………(17)
4.2录入商品信息…………………………………………(18)
4.3查看商品信息……………………………………………(20)
4.4删除商品信息……………………………………………(22)
4.5修改商品信息……………………………………………(24)
4.6查询单个商品信息………………………………………(30)
4.7商品库存系统退出………………………………………(32)
4.8其他字符输入管理………………………………………(32)
第5章调试…………………………………………………(34)
5.1测试目的…………………………………………………(34)
5.2功能测试…………………………………………………(34)
第6章总结与展望………………………………………(35)
附录…………………………………………………………(36)
附录A小组成员及其分工情况……………………………(36)
参考文献………………………………………………………(37)
第1章引言
商品经济是社会经济的重要组成部分,而作为商品经济最基本的商品,由于其种类繁多,因此其商品管理本身就已经比较复杂,何况作为商品管理最重要的库存管理的复杂性,可想而知。
因此一个完善的商品库存管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以商品库存管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理仓库中的各种物资设备,这种管理方式存在着许多缺点,如:
效率低、另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对物资信息进行管理,具有手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套商品库存管理软件成为很有必要的事情。
第2章总体设计
2.1系统的需求分析
伴随着计算机的发展及网络技术的应用,我们正在快速地向信息化社会迈进,信息自动化的作用变得越来越大。
在仓库管理领域中,仓库管理的规模正在不断扩大,仓库管理的复杂度正在急剧地增加,有关仓库管理的各种信息量也成倍地增长。
面对庞大的信息量,就需要有商品库存管理系统来提高库存管理工作的效率。
通过这样的系统,可以方便的查询、添加和修改商品及供货商的基本情况,掌握入库出库的各种情况,实现信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量,同时避免由于人为因素造成数据遗漏和误报等。
2.2系统功能
本系统主要模块为商品信息管理。
仓库管理模块通过此模块来管理商品信息,包括浏览、录入、查询、修改和删除功能。
2.2.1录入功能
录入功能是向系统中输入数据的一个功能。
可以把商品的名称、编号以及数据录入系统中。
流程图如图2.1所示
图2.1入库流程图
2.2.2查询功能
查询功能是对于库存中的产品的数据进行查询。
流程图如图2.2所示
图2.2查询功能流程图
首先输入一个商品代码i,然后对i进行判断,如果i正确也就是存在,那么i,执行输出该商品各信息的步骤。
如果i不存在i,那么执行没有该商品这个步骤。
最后进行循环该步骤查询多个商品.
2.2.3修改功能
修改功能是应用于对商品信息的修改。
出库后的时候对商品库存数目的管理;还有对于一些错误信息的修改。
具体流程如图2.3所示
图2.3修改功能流程图
2.2.4删除功能
删除功能主要应用于把不需要的商品进行下架处理。
流程图如图2.4所示
图2.1删除功能流程图
刚开始定义两个变量,然后与商品的属性值进行比较,通过循环达到我们所需的条件,再根据这些与录入的商品信息进行比较,商品信息中有我们要找的商品最后进行删除,没有该商品信息的则退出。
2.3主要用到的函数
1.intmain(void);主函数
2.voidadd_goods(informationim[],intgeshu);录入商品信息
3.check_goods(informationim[]);查询并显示所有商品
4.menu();列出对商品所要执行的操作:
录入、查询、删除、修改
5.voiddel_goodsinfor(informationim[],intgoods_number);
对商品进行删除操作
6.voidcheck_oneGoods(informationim[],intgoods_number);
对商品按编号进行查询
7.voidmenu1();列出对商品信息修改操作:
名称、编号、数目
8.voidchange_goodsinfor(informationim[],intgoods_number)
对商品信息进行修改
第三章详细设计
3.1代码以及对应的备注
#include
#definemax100/*给定结构体数组的最大值*/
intsize=0;
/*显示商品属性的信息*/
typedefstructgoodsInformation
{
chargoods_name[20];/*商品的名字*/
intgoods_number;/*商品的编号*/
intgoods_count;/*商品的数目*/
}information;
/*
*Function:
voidadd_goods(informationim[],intgeshu)
*Description:
存储商品的信息
*CalledBy:
*intmain(void)
*Input:
用户根据相应的提示,输入商品信息
*
*/
voidadd_goods(informationim[],intgeshu)
{
inti;
intcount=size+geshu;
/*目的是实现商品的多次输入*/
for(i=size;i{
printf("请录入商品的名称:
\n");
scanf("%s",im[i].goods_name);
printf("请录入商品的编号:
\n");
scanf("%d",&im[i].goods_number);
printf("请录入商品的数目:
\n");
scanf("%d",&im[i].goods_count);
size++;
}/*endoffor*/
printf("添加成功!
\n\n");
}
/*
*Function:
voidcheck_goods(informationim[])
*Description:
查询所有的商品并显示出来
*CalledBy:
*intmain(void)
*Output:
显示所有的商品
*
*/
voidcheck_goods(informationim[])
{
inti;
/*目的是实现输入多个商品*/
for(i=0;i{
printf("库存的商品有:
");
printf("商品的名称=%s\t商品的编号=%d\t商品的数目=%d\n",
im[i].goods_name,im[i].goods_number,im[i].goods_count);
}/*endoffor*/
}
/*
*Function:
voidmenu()
*Description:
列出对商品所要执行的操作:
录入、查询、删除、修改等。
*CalledBy:
*intmain(void)
*Output:
列出对商品所要执行的操作:
录入、查询、删除、修改
*
*/
voidmenu()
{
printf("\n\t\t\t菜单栏\n\n\t\t1.录入\t\t2.查看\n\n\t\t3.删除\t\t4.修改\n\n\t\t5.查询\t\t退出请按:
-1\n\n");
}
/*
*Function:
voiddel_goodsinfor(informationim[],intgoods_number)
*Description:
删除对应编号的商品信息。
*CalledBy:
*intmain(void)
*Output:
输出提示信息
*
*/
voiddel_goodsinfor(informationim[],intgoods_number)
{
inti,j;
/*找到给定的编号,并删除对应编号的信息*/
for(i=0;i{
/*通过比较找到对应编号,然后删除*/
if(im[i].goods_number==goods_number)
{
/*通过移动数组元素来删除信息*/
for(j=i;j{
im[j]=im[j+1];
}/*endoffor*/
size--;
printf("删除成功!
\n");
return;
}/*endofif*/
}/*endoffor*/
printf("没有该商品\n");
}
/*
*Function:
voidcheck_oneGoods(informationim[],intgoods_number)
*Description:
根据相应的编号,查询一个商品的信息并显示出来
*CalledBy:
*intmain(void)
*Output:
一个的商品的信息
*
*/
voidcheck_oneGoods(informationim[],intgoods_number)
{
inti;
/*是实现一个商品的查询*/
for(i=0;i{
if(im[i].goods_number==goods_number)
{
printf("商品的名称=%s\t商品的编号=%d\t商品的数目=%d\n",
im[i].goods_name,im[i].goods_number,im[i].goods_count);
return;
}/*endofif*/
}/*endoffor*/
printf("没有该商品\n");
}
/*
*Function:
voidmenu1()
*Description:
列出对商品的属性所要执行的操作:
名称、编号、数目等。
*CalledBy:
*voidchange_goodsinfor(informationim[],intgoods_number)
*Output:
列出对商品所要执行的操作:
名称、编号、数目
*
*/
voidmenu1()
{
printf("\n\t\t\t选择修改项\n\n\t\t1.名称\t\t2.编号\n\n\t\t3.数目\t4.修改所有信息\n\n");
}
/*
*Function:
voidchange_goodsinfor(informationim[],intgoods_number)
*Description:
根据相应的编号,修改一个商品的信息
*Calls:
voidmenu1()
*CalledBy:
*intmain(void)
*Output:
对商品的修改信息进行提示
*
*/
voidchange_goodsinfor(informationim[],intgoods_number)
{
inti,choose;
/*找到对应的编号,然后根据对应编号的商品信息进行修改*/
for(i=0;i{
/*通过比较找到修改的编号,进行修改*/
if(im[i].goods_number==goods_number)
{
menu1();/*列出对商品所要执行的操作:
名称、编号、数目*/
printf("请选择要修改的信息项目:
");
scanf("%d",&choose);
/*根据用户选择进行相应的修改*/
switch(choose)
{
case1:
printf("请录入修改的商品的名称:
\n");
scanf("%s",im[i].goods_name);
printf("修改成功!
\n");
break;
case2:
printf("请录入修改的商品的编号:
\n");
scanf("%d",&im[i].goods_number);
printf("修改成功!
\n");
break;
case3:
printf("请录入修改的商品的数目:
\n");
scanf("%d",&im[i].goods_count);
printf("修改成功!
\n");
break;
case4:
printf("请录入修改的商品的名称:
\n");
scanf("%s",im[i].goods_name);
printf("请录入修改的商品的编号:
\n");
scanf("%d",&im[i].goods_number);
printf("请录入修改的商品的数目:
\n");
scanf("%d",&im[i].goods_count);
printf("修改成功!
\n");
break;
default:
printf("输入错误!
!
");
}/*endofswitch*/
return;
}/*endofif*/
}/*endoffor*/
printf("没有该商品\n");
}
/*
*Function:
intmain(void)Description:
主函数
*Calls:
*1.voidadd_goods(informationim[],intgeshu);
*2.check_goods(informationim[]);
*3.menu();
*4.voiddel_goodsinfor(informationim[],intgoods_number);
*5.voidcheck_oneGoods(informationim[],intgoods_number);
*6.voidchange_goodsinfor(informationim[],intgoods_number)
*Input:
用户根据需要,输入要选择的功能的编号
*Output:
查询并显示所有的商品
*
*/
intmain(void)
{
informationgoods[max];
intgeshu;
intvalue=0;
intgoods_id;
while(value!
=-1)//当用户不想对商品进行操作时,按"-1"结束操作
{
menu();//列出操作:
录入、查询、删除、修改等
printf("请选择所要执行的操作:
\n");
scanf("%d",&value);
switch(value)//根据value的值来执行相应的操作
{
case1:
printf("请输入你要录入商品种类的个数:
");
scanf("%d",&geshu);
add_goods(goods,geshu);//商品的录入
break;
case2:
check_goods(goods);//所有商品的查询
break;
case3:
printf("请输入要删除的商品的编号:
");
scanf("%d",&goods_id);
del_goodsinfor(goods,goods_id);//删除商品的信息
break;
case4:
printf("请输入要修改的商品的编号:
");
scanf("%d",&goods_id);
change_goodsinfor(goods,goods_id);//修改商品的信息
break;
case5:
printf("请输入要查询的商品的编号:
");
scanf("%d",&goods_id);
check_oneGoods(goods,goods_id);//商品信息的查询
break;
case-1:
printf("退出!
");
break;
default:
printf("输入信息错误!
!
");
}/*endofswitch*/
}/*endofwhile*/
}
第四章平面设计及代码
4.1主界面
进入后主界面后的界面如图4.1所示。
图4.1主界面
主界面所用到的代码:
menu();//列出操作:
录入、查询、删除、修改等
printf("请选择所要执行的操作:
\n");
scanf("%d",&value);
switch(value)//根据value的值来执行相应的操作
{
case1:
printf("请输入你要录入商品种类的个数:
");
scanf("%d",&geshu);
add_goods(goods,geshu);//商品的录入
break;
case2:
check_goods(goods);//所有商品的查询
break;
case3:
printf("请输入要删除的商品的编号:
");
scanf("%d",&goods_id);
del_goodsinfor(goods,goods_id);//删除商品的信息
break;
case4:
printf("请输入要修改的商品的编号:
");
scanf("%d",&goods_id);
change_goodsinfor(goods,goods_id);//修改商品的信息
break;
case5:
printf("请输入要查询的商品的编号:
");
scanf("%d",&goods_id);
check_oneGoods(goods,goods_id);//商品信息的查询
break;
case-1:
printf("退出!
");
break;
default:
printf("输入信息错误!
!
");
}
4.2录入商品信息
录入商品信息时,首先提示录入商品的种类个数,选择过后,然后进行商品信息的名称、编号、数量的录入,最后提示添加成功。
如图4.2所示。
图4.2录入信息
这个过程用到的代码:
voidadd_goods(informationim[],intgeshu)
{
inti;
intcount=size+geshu;
/*目的是实现商品的多次输入*/
for(i=size;i{
printf("请录入商品的名称:
\n");
scanf("%s",im[i].goods_name);
printf("请录入商品的编号:
\n");
scanf("%d",&im[i].goods_number);
printf("请录入商品的数目:
\n");
scanf("%d",&im[i].goods_count);
size++;
}/*endoffor*/
printf("添加成功!
\n\n");
}
4.3查看商品信息
当查看商品信息时,显示的是库存里的所有商品。
当没有商品时则什么都不显示,直接继续下一步操作(如图4.3.1所示);有商品的时候,则全部商品都显示出来。
如图4.3.2所示。
图4.3.1查看商品信息1
图4.3.2查看商品信息2
这个过程用到的代码:
voidcheck_goods(informationim[])
{
inti;
/*目的是实现输入多个商品*/
for(i=0;i{
printf("库存的商品有:
");
printf("商品的名称=%s\t商品的编号=%d\t商品的数目=%d\n",
im[i].goods_name,im[i].goods_number,im[i].goods_count);
}/*endoffor*/}
4.4删除商品信息
删除商品信息时,提示删除该商品的编号是什么。
当删除的商品在库存里没有时,提示没有该商品(如图4.4.1所示);当删除的商品在库存里有的时候,则显示删除成功。
如图4.4.2所示。
图4.4.1删除商品信息1
图4.4.2删除商品信息2
这个过程用到的代码:
voiddel_goodsinfor(informationim[],intgoods_number)
{
inti,j;
/*找到给定的编号,并删除对应编号的信息*/
for(i=0;i{