商品库存管理系统需求分析范文.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