1、商品信息管理系统文档商品信息管理系统文档一软件定义问题定义以往的商场都用手工管理手段来管理商品的录入,输出,修改,删除,排序等等工作,随着世界经济的发展,市场商品的品种越来越多,各个商场进行交易的对象也越来越广泛,信息亮不断的提升,本商场的信息有些不能与其他商场共享等等,要求的管理手段越来越高这些工作已经不是人力所能够完成的一项工作,为避免浪费资源,提高效率,急切要求有一套系统能够实现这些功能。1.问题性质:信息管理2.工程目标:解决一个商场对该场商品的信息管理,实现“增加商品信息 .删除商品信息.修改商品信息.查找商品信息.按商品利润大小排序.输出商品信息.”这些功能。3.工程规模:这个工程
2、是对一个商场的商品信息的管理,只需要实现商品的信息录入,输出,查找,修改,删除,排序这些功能,帮助商场管理者方便快捷的进行商品的管理,提高了商场的管理效率。4.对这个系统进行问题定义,知道了“要解决的问题是:实现商品信息方便快捷的管理,系统必须具备商品的信息录入,输出,查找,修改,删除,排序的功能”。可行性研究从上面的问题定义情况可以看出,现在商场商品琳琅满目,进货出货频率之高已经不是人力所能够完成的一项工作,开发研究出一个可以有效的管理商品信息的系统已经是各大商场的急迫要求,为了减少人力资源的浪费,有效的实现效率最高化,开发一套可以有效的管理商场商品信息的系统是必须的。开发商品信息管理系统、
3、实现商品信息管理的计算机化是非常必要的,也是可行的。因为使用计算机化的商品信息管理系统可以彻底改变目前商品信息管理工作的现状,能够提高工作效率,能够提供更准确、及时、适用、易理解的信息,能够从根本上解决手工管理中信息滞后、资源浪费等问题。另外,由于ACCESS是一个简单实用的数据库管理系统,选择它作为开发工具,可以很容易地实现商品信息管理系统所需的功能,完成商品信息管理的各项任务。 需求分析 1.根据从各方面收集到的信息和商品管理信息系统业务流程的分析和整理,可以 得到E-R图,系统流程图: E-R图:数量商品进价售价有效期名称生产地操作管理员NM系统流程图:事务相应模块程序商品库存清单操作信
4、息模块程序商品库存清单2.数据字典(只列举几个):数据字典是关于数据信息的集合,也是对数据流图总包含的所有元素的定义的集合,在此只列出以下两个。名字:商品列表别名:商品信息描述:每次商品更新需要进行一系列操作的信息表定义:商品列表商品名称商品生产地商品数量商品有效期商品的进价商品的售价位置:将这张信息表送给管理员 名字:商品名称别名:描述:能够唯一地标识每个商品的关键域定义:每个商品的名字,而且每个商品只有唯一的名字位置:商场库存信息 商品列表 商品信息 事务 对于上述流程图和数据字典的进一步分析可以知道商品信息管理系统应该实现以下几个功能:1.实现商品信息的录入。2.实现商品信息的查找。3.
5、实现商品信息的修改。4.实现商品信息的删除。5.实现商品信息的排序。6.实现商品信息的输出。二. 系统设计总体设计 为了避免资源的浪费,提高效率, 通过上面的数据流图和系统预订要实现的功能目标可以知道我们需要以下一些模块:信息录入模块,信息查询模块,信息修改模块,信息删除模块,信息排序模块,信息输出模块,和退出系统模块。 1.模块设计: 根据前面对用户需求的分析,依据系统功能设计原则,我们将整个系统进行模块划分,得到功能模块图。主程序信息输入信息删除信息修改信息查找信息排序信息输出退出系统索引判断信息 2.模块之间的动态调用关系: 在系统中模块之间的功能实现都需要动态的调用一些其他的功能模块,
6、例如. 其中信息输入,信息删除,信息修改,信息查找,信息排序,信息输出和推出系统模块的调用都需要通过索引的帮助. 在进行信息输入,信息删除,信息修改,信息查找,信息排序,信息输出时需要调用判断信息对错模块等等。 3.数据结构的设计: .在这里运用类结构来定义商品的各种属性,例如商品的名称,商品的有效期,商品的进价等等,都在类GOODS中进行定义,同时利用构造函数对商品进行初始化。.利用指针数组来对商品名称,商品有效期等等属性进行存储。同时利用运算符重载的方式来方便编程。具体如下: class Goodspublic:Goods (string name)Name=name;Goods (str
7、ing 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
8、Name;/商品名string Place;/生产地long Num;/数目Date Time;/有效期double Iprice;/进价double Oprice;/售价double Profit;/利润*God100;运算符的重载在这里以成员函数的形式声明,至于其具体的实现方式在类外进行定义。 .利用一般函数来实现对各个模块功能的实现,在主函数中声明即可。 至于其具体定义则在主函数外面进行。这里同时运用循环结构来返回主函数,实现菜单的返回。具体如下:void main() system(cls); cout欢迎使用商品管理系统!endl; cout (1) 增加商品信息endl; cout
9、 (2) 删除商品信息endl; cout (3) 修改商品信息endl; cout (4) 查找商品信息endl; cout (5) 按商品利润排序endl; cout (6) 输出商品信息endl; cout (0) 退出系统endl; cout请选择你需进行的操作: x; if (x6|x0)cout输入错误,请重新选择!endl;cout 请按任意键返回!endl;getch();main(); 详细设计(设计思路): .用类来初始化商品,声明商品的属性。 .用指针数组来存储商品的所有信息。 .用运算符重载方法来方便编程。 以上三个条件是进行系统详细设计的先决条件。(1)main函数的
10、设计在main函数中实现显示菜单,根据菜单可以选择要进入哪个模块(通过getch()函数来选择进入哪个模块)。同时在信息输入错误的时候可以实现返回主菜单的功能(利用再次执行main函数的方法返回主菜单)。 (2).模块详细设计 信息输入模块: 利用cout和cin来实现人机界面,输入相应的信息,信息输入后以指针数组的形式保存到商品信息库中。 信息输出模块: . 利用if条件语句来判断是否有商品,如果没有则输出:此时系统中还没有商品,不能输出,请添加商品的信息。. 如果有相应的商品则调用output()函数输出相应的商品信息: 信息删除模块: . 利用if条件语句来判断商品库的商品是否为空,若为
11、空则输出:此时系统中还没有商品,不能删除,请添加商品的信息。 .若商品库中的信息不为空则输入管理员所要删除的信息,再利用if语句来判断管理员所输入的信息是否在商品库中找得到,若商品库中有所要删除的商品则进行删除操作,否则提示管理员没有要删除的商品信息。 信息修改模块: . 利用if条件语句来判断商品库的商品是否为空,若为空则输出:此时系统中还没有商品,不能修改,请添加商品的信息。 .若商品库中的信息不为空则输入管理员所要修改的商品,再利用if循环语句来判断管理员所输入的信息是否在商品库中找得到,若商品库中有所要修改的商品则进行修改操作,否则提示管理员没有要修改的商品信息。 商品排序模块:.利用
12、if条件语句来判断商品库的商品是否为空,若为空则输出:此时系统中还没有商品,不能排序,请添加商品的信息。.若存在商品则利用for语句双重嵌套循环来实现商品的排序,利用排序算法进行排序。 商品查找模块: .利用if条件语句来判断商品库的商品是否为空,若为空则输出:此时系统中还没有商品,不能查找,然后调用输入信息模块和主函数,实现信息的输入。 .若商品库不为空则输入要查找的商品名称,利用for循环来查找,if语句来判断某个商品是否为所要查找的商品,若是需要查找的商品则输出改商品的所有信息。 退出系统模块: 退出系统模块是在每个模块操作完成后然后再被调用的,其主要功能是返回主菜单。菜单索引模块: .
13、 菜单索引模块的作用是实现人机界面,同时在进行一次完整的操作后然后跳出程序,是控制整个系统的正常运行的关键。 . 这个模块的制作利用了switch()语句来选择菜单,同时设定了完成后跳出整个程序,回到主菜单。编码和单元测试: 语言的选择: 本系统选择c+语言来编写。 各个模块的代码: 商品信息输入模块: void add()cout请输入你要增加的商品名称name;cout请输入你要增加的商品生产地place;cout请输入你要增加的商品数量num;cout请输入你要增加的商品有效期(年 月 日)time.Yeartime.Monthtime.Day;cout请输入你要增加的商品进价iprice;cout请输入你要增加的商品售价oprice;Godj=new Goods(name,place,time,num,iprice,oprice);j+; 商品信息删除模块: void shanchu() int x=0; if(j=0)cout此时系统中还没有商品,不能删除,请添加商品的信息endl;add();m