润宇软件
首 页 企业简介 项目案例 软件定制 行业软件 解决方案 下载中心 服务专区 客服中心
业务介绍:西安软件公司、软件开发、软件定制、软件外包
软件 方案 文章
  润宇软件 >> 下载中心  >> 下载中心

西安软件公司商品信息管理系统文档

发布时间:2011-12-1  浏览次数:67次  字体【    】
商品信息管理系统文档
一.        软件定义
问题定义
以往的商场都用手工管理手段来管理商品的录入,输出,修改,删除,排序等等工作,随着世界经济的发展,市场商品的品种越来越多,各个商场进行交易的对象也越来越广泛,信息亮不断的提升,本商场的信息有些不能与其他商场共享等等,要求的管理手段越来越高这些工作已经不是人力所能够完成的一项工作,为避免浪费资源,提高效率,急切要求有一套系统能够实现这些功能。
1.问题性质:信息管理
 
2.工程目标:解决一个商场对该场商品的信息管理,实现“增加商品信息 .删除商品信息.修改商品信息.查找商品信息.按商品利润大小排序.输出商品信息.”这些功能。
 
3.工程规模:这个工程是对一个商场的商品信息的管理,只需要实现商品的信息录入,输出,查找,修改,删除,排序这些功能,帮助商场管理者方便快捷的进行商品的管理,提高了商场的管理效率。
 
4.对这个系统进行问题定义,知道了“要解决的问题是:实现商品信息方便快捷的管理,系统必须具备商品的信息录入,输出,查找,修改,删除,排序的功能”。
可行性研究
从上面的问题定义情况可以看出,现在商场商品琳琅满目,进货出货频率之高已经不是人力所能够完成的一项工作,开发研究出一个可以有效的管理商品信息的系统已经是各大商场的急迫要求,为了减少人力资源的浪费,有效的实现效率最高化,开发一套可以有效的管理商场商品信息的系统是必须的。
 
开发商品信息管理系统、实现商品信息管理的计算机化是非常必要的,也是可行的。因为使用计算机化的商品信息管理系统可以彻底改变目前商品信息管理工作的现状,能够提高工作效率,能够提供更准确、及时、适用、易理解的信息,能够从根本上解决手工管理中信息滞后、资源浪费等问题。另外,由于ACCESS是一个简单实用的数据库管理系统,选择它作为开发工具,可以很容易地实现商品信息管理系统所需的功能,完成商品信息管理的各项任务。
    需求分析
        1.根据从各方面收集到的信息和商品管理信息系统业务流程的分析和整理,可以 得到E-R图,系统流程图:
      E-R图:

数量
商品
进价
售价
有效期
名称
生产地
操作
管理员
N
M

系统流程图:

事务
相应模块程序
商品库存清单
操作信息
模块程序
商品库存清单
 

 
2.数据字典(只列举几个):
 
数据字典是关于数据信息的集合,也是对数据流图总包含的所有元素的定义的集合,在此只列出以下两个。
 
 

名字:商品列表
 
别名:商品信息
 
描述:每次商品更新需要进行一系列操作的信息表
 
定义:商品列表=商品名称+商品生产地+商品数量+商品有效期+商品的进价+商品的售价
 
位置:将这张信息表送给管理员
 

 
 
 
 
 
 
 
 
 

名字:商品名称
 
别名:
 
描述:能够唯一地标识每个商品的关键域
 
定义:每个商品的名字,而且每个商品只有唯一的名字
 
位置:商场库存信息
      商品列表
      商品信息
      事务

对于上述流程图和数据字典的进一步分析可以知道商品信息管理系统应该实现以下几个功能:
1.       实现商品信息的录入。
2.       实现商品信息的查找。
3.       实现商品信息的修改。
4.       实现商品信息的删除。
5.       实现商品信息的排序。
6.       实现商品信息的输出。
. 系统设计
总体设计
   为了避免资源的浪费,提高效率, 通过上面的数据流图和系统预订要实现的功能目标可以知道我们需要以下一些模块:信息录入模块,信息查询模块,信息修改模块,信息删除模块,信息排序模块,信息输出模块,和退出系统模块。
   
        1.模块设计:
 
            根据前面对用户需求的分析,依据系统功能设计原则,我们将整个系统进行模块划分,得到功能模块图。
 

主程序
信息输入
信息删除
信息修改
信息查找
信息排序
信息输出
退出系统
索引
判断信息

 
     2.模块之间的动态调用关系:
            在系统中模块之间的功能实现都需要动态的调用一些其他的功能模块,例如
<1>.    其中信息输入,信息删除,信息修改,信息查找,信息排序,信息输出和推出系统模块的调用都需要通过索引的帮助.
 
<2>.    在进行信息输入,信息删除,信息修改,信息查找,信息排序,信息输出时需要调用判断信息对错模块等等。
 
     3.数据结构的设计:
 
<1>  .在这里运用类结构来定义商品的各种属性,例如商品的名称,商品的有效期,商品的进价等等,都在类GOODS中进行定义,同时利用构造函数对商品进行初始化。.利用指针数组来对商品名称,商品有效期等等属性进行存储。同时利用运算符重载的方式来方便编程。
具体如下:
        class Goods
{
public:
Goods (string name){Name=name;}
Goods (string name,string place,Date time,long num=0,double iprice=0,double oprice=0)
{
                             Name=name;
                             Place=place;
                             Num=num;
                             Time=time;
                             Iprice=iprice;
 Oprice=oprice;
                             Profit=oprice-iprice;
}
void output();
void operator=(Goods GD);//重载=
int operator<(Goods GD);//重载<
 int operator==(Goods GD);//重载==
~Goods(){delete []*God;}//释放空间
string Name;//商品名
string Place;//生产地
long Num;//数目
Date  Time;//有效期
double Iprice;//进价
double Oprice;//售价
double Profit;//利润
 
}*God[100];
运算符的重载在这里以成员函数的形式声明,至于其具体的实现方式在类外进行定义。
   
<2>.利用一般函数来实现对各个模块功能的实现,在主函数中声明即可。
    至于其具体定义则在主函数外面进行。这里同时运用循环结构来返回主函数,实现菜单的返回。
具体如下:
 
void main()
{
 system("cls");
 cout<<"欢迎使用商品管理系统!"<<endl;
 cout<<" (1)    增加商品信息"<<endl;
 cout<<" (2)    删除商品信息"<<endl;
 cout<<" (3)    修改商品信息"<<endl;
 cout<<" (4)    查找商品信息"<<endl;
 cout<<" (5)    按商品利润排序"<<endl;
 cout<<" (6)    输出商品信息"<<endl;
 cout<<" (0)    退出系统"<<endl;
 cout<<"请选择你需进行的操作:  "<<endl;
void add();//增加函数
void shanchu();//删除函数
void xiugai();//修改函数
void chazhao();//查找函数
void paixu();//排序函数
void shuchu();//输出函数
void tuichu();//退出系统函数
void back();//返回main函数
char x;
 cin>>x;
 if (x>'6'||x<'0')
{
cout<<"输入错误,请重新选择!"<<endl;
cout<<" 请按任意键返回!"<<endl;
getch();
main();
 }
详细设计(设计思路)
 
        <1>.用类来初始化商品,声明商品的属性。
        <2>.用指针数组来存储商品的所有信息。
        <3>.用运算符重载方法来方便编程。
     以上三个条件是进行系统详细设计的先决条件。
 
(1)       main函数的设计
在main函数中实现显示菜单,根据菜单可以选择要进入哪个模块(通过getch()函数来选择进入哪个模块)。
同时在信息输入错误的时候可以实现返回主菜单的功能(利用再次执行main函数的方法返回主菜单)。
 
        (2).模块详细设计
 
              信息输入模块:
                      利用cout和cin来实现人机界面,输入相应的信息,信息输入后以指针数组的形式保存到商品信息库中。
 
              信息输出模块:
                       <1>.    利用if条件语句来判断是否有商品,如果没有则输出:此时系统中还没有商品,不能输出,请添加商品的信息。
 
<2>.   如果有相应的商品则调用output()函数输出相应的商品信息:
                    
               信息删除模块:
                       <1> . 利用if条件语句来判断商品库的商品是否为空,若为空则输出:此时系统中还没有商品,不能删除,请添加商品的信息。
                          
                       <2>  .若商品库中的信息不为空则输入管理员所要删除的信息,再利用if语句来判断管理员所输入的信息是否在商品库中找得到,若商品库中有所要删除的商品则进行删除操作,否则提示管理员没有要删除的商品信息。
                       
            信息修改模块:
                       <1>. 利用if条件语句来判断商品库的商品是否为空,若为空则输出:此时系统中还没有商品,不能修改,请添加商品的信息。
                           
                       <2>.若商品库中的信息不为空则输入管理员所要修改的商品,再利用if循环语句来判断管理员所输入的信息是否在商品库中找得到,若商品库中有所要修改的商品则进行修改操作,否则提示管理员没有要修改的商品信息。
                      
         商品排序模块:
<1>.利用if条件语句来判断商品库的商品是否为空,若为空则输出:此时系统中还没有商品,不能排序,请添加商品的信息。
 
<2>.若存在商品则利用for语句双重嵌套循环来实现商品的排序,利用排序算法进行排序。
 
                  
商品查找模块:
        <1>..利用if条件语句来判断商品库的商品是否为空,若为空则输出:此时系统中还没有商品,不能查找,然后调用输入信息模块和主函数,实现信息的输入。
            
            <2>.若商品库不为空则输入要查找的商品名称,利用for循环来查找,if语句来判断某个商品是否为所要查找的商品,若是需要查找的商品则输出改商品的所有信息。
                 
退出系统模块:
                退出系统模块是在每个模块操作完成后然后再被调用的,其主要功能是返回主菜单。
菜单索引模块:
          <1>.    菜单索引模块的作用是实现人机界面,同时在进行一次完整的操作后然后跳出程序,是控制整个系统的正常运行的关键。
          <2>.    这个模块的制作利用了switch()语句来选择菜单,同时设定了完成后跳出整个程序,回到主菜单。
编码和单元测试:
      语言的选择:
             本系统选择c++语言来编写。
      各个模块的代码:
             <1>商品信息输入模块:
                            void add()
{
cout<<"请输入你要增加的商品名称"<<endl;
cin>>name;
cout<<"请输入你要增加的商品生产地"<<endl;
cin>>place;
cout<<"请输入你要增加的商品数量"<<endl;
cin>>num;
cout<<"请输入你要增加的商品有效期(年 月  日)"<<endl;
cin>>time.Year>>time.Month>>time.Day;
cout<<"请输入你要增加的商品进价"<<endl;
cin>>iprice;
cout<<"请输入你要增加的商品售价"<<endl;
cin>>oprice;
God[j]=new Goods(name,place,time,num,iprice,oprice);
j++;}
 
             <2>商品信息删除模块:
                  void shanchu()
{
                      int  x=0;
   if(j==0){cout<<"此时系统中还没有商品,不能删除,请添加商品的信息"<<endl;add();main();}
                      cout<<"请输入要删除的商品名称!"<<endl;
                      cin>>name;
                      for(int k=0;k<j;k++)
                      if(name==God[k]->Name)
                           {
                            cout<<"存在你要删除商品的名称!"<<endl;
                            j--; x++;
                            for(int m=k;m<j;m++){God[m]=God[m+1];}
                            cout<<"删除成功! "<<endl;
                }
              if(x==0){cout<<"不存在你要删除商品的名称!"<<endl;}
}
      
             <3>.商品信息修改模块:
void xiugai()
                         int x=0;
   if(j==0){cout<<"此时系统中还没有商品,不能修改,请添加商品的信息"<<endl;add();main();}
   cout<<"请输入要修改的商品名称!"<<endl;
   cin>>name;
  for(int k=0;k<j;k++)
  if(name==God[k]->Name)
{
cout<<"存在你要修改商品的名称!"<<endl;
cout<<"请重新输入此商品生产地"<<endl;
cin>>God[k]->Place;
cout<<"请重新输入此商品数量"<<endl;
cin>>God[k]->Num;  
cout<<"请请重新输入此商品有效期(年 月  日)"<<endl;
cin>>(God[k]->Time).Year>>(God[k]->Time).Month>>(God[k]->Time).Day;
cout<<"请请重新输入此商品进价地"<<endl;
cin>>God[k]->Iprice;
cout<<"请重新输入此商品售价"<<endl;
cin>>God[k]->Oprice;                      
  x++;}
  if(x==0){cout<<"不存在你要修该商品名称!"<<endl;} }
 
             <4>商品信息查找模块:
  void chazhao()
{
int i=0;
if(j==0){cout<<"此时系统中还没有商品,不能查找,请添加商品的信息"<<endl;add();main();}
   cout<<"请输入你要查找的商品名称!"<<endl;
  cin>>name;
  for(int k=0;k<j;k++)
  if(name==God[k]->Name)
  {
   cout<<"存在你要查找商品的名称!"<<endl;
   cout<<"该商品的详细信息如下: "<<endl;
   cout<<"商品名 生产地    数量       有效期         进价     售价       利润"<<endl;
   God[k]->output();  i++;
  }
  if(i==0){cout<<"不存在你要查询商品名称!"<<endl;}
}
 
             <5>商品排序模块:
 void paixu()
{
if(j==0){cout<<"此时系统中还没有商品,不能排序,请添加商品的信息"<<endl;add();main();}
Goods *la;
for(int t=0;t<j;t++)
{                       for(int k=t+1;k<j;k++)
if(God[t]<God[k]){la=God[t];God[t]=God[k];God[k]=la;}
}
}
             <6>商品信息输出模块:
          void shuchu()
{
                         if(j==0){cout<<"此时系统中还没有商品,不能输出,请添加商品的信息"<<endl;add();main();}
                         cout<<"商品名  生产地    数量       有效期         进价     售价       利润"<<endl;
                         for(int k=0;k<j;k++)
                         God[k]->output();    
}
             <7>退出系统模块:
void tuichu()
{
cout<<"操作完毕,退出系统!"<<endl;
exit(0);
 
}
综合测试:
经过visual c++ 6.0软件的测试,本系统可以正常的运行。
鉴于本系统比较简单详细的测试计划,详细测试方案在此就省了。
.软件维护
软件维护是通过各种必要的维护活动使系统持久的满足用户的需要。
        
        
 
 
                      
                      
                       
 
                     
      
      
  关闭本页
西部IT网合作伙伴 合作伙伴
陕西省 | 榆林 | 延安 | 铜川 | 渭南 | 商洛 | 宝鸡 | 汉中 | 安康 | 咸阳
网站首页 | 关于我们 | 售后服务 | 项目合同 | 查看留言 | 在线留言 | 客服中心
© 版权所有:西安润宇软件科技有限公司 
公司地址:西安市碑林区 联系电话:029-87878512 手机:13468700578 联系人:李先生
Copyright ® 2009-2015 RunYusoft.com Inc. All Rights Reserved 
技术支持:西安润宇软件科技有限公司 陕ICP备 11000720号-3