超市商品管理系统_第1页
超市商品管理系统_第2页
超市商品管理系统_第3页
超市商品管理系统_第4页
超市商品管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 1 章 绪 论1.1 课题背景在当今的社会,可以说是信息技术的发展时代,在社会的方方面面无不涉及 到各种信息的处理。信息是人们对客观世界的具体描述,是人们进行交流与联系 的重要途径。人类社会就处在一个对信息进行有效合理的加工中。它将促进整个 社会的发展。随着社会信息技术的提高,计算机已被广泛应用于当今社会的各个 领域,成为推动社会发展的首要技术动力。在当今信息时代,人们的生活方式随 着 Internet 的不断发展发生了不同寻常的改变。 为了让超市商品管理更加智能化,便捷化,于是开发超市商品管理系统.1.2 开发工具本系统利用C#语言编写后台代码, 以Microsoft SQL Serve

2、r 2005 作为后台数据库,选用 ADO.NET访问数据库来实现各种功能 1.2.1可视化编程简介可视化编程即一可视化的界面简化编程过程,以减轻开发人员的开发难度,提高开发效率,本系统采用可视化编程里面的C#进行编写.1.2.2 C#简介 C#是微软开发的一种面向对象的编程语言。它使得程序员可以快速地编写各种基于 Microsoft .NET 平台的应用程序,Microsoft .NET 提供了一系列的工具和服 务来最大程度地开发利用计算与通讯领域。其目标是即拥有 C+的执行效率和运算能力也具备如 VB 一样的易用性。C#是基于 C+的一种语言,同时包含类似 Java 的很多特征。 C#是被

3、设计工作在微软的。NET 平台上的,微软的目标是使数据和服务的交 换在网页上更容易,并且允许开发人员构建更高的程序可移植性。C#可以方便的 用于 XML 和 SOAP,并可以直接访问程序对象或方法 ,而不需要添加额外的代码。 所以程序可以构建在已存在的代码上,或者多次重复的使用。C#的目标是为市场 开发产品和服务时更快捷且成本开销更低。 正是由于 C#面向对象的卓越设计,使它成为构建各类组件的理想之选无 论是高级的商业对象还是系统级的应用程序。使用简单的 C#语言结构,这些组件 可以方便的转化为 XML 网络服务,从而使它们可以由任何语言在任何操作系统 上通过 Internet 进行调用。 最

4、重要的是,C#使得程序员可以高效的开发程序,而绝不损失 C/C+原有的 强大的功能。因为这种继承关系,C#与C/C+具有极大的相似性,悉类似语言的开发者可以很快的转向 C#。 1.2.3 SQL Server 2005 数据库 SQL Server 2005 是微软公司动用上千人的研发力量,耗费五年时间打造出来的产品,在企业及数据库产品中具有里程碑的意义。SQL Server 2005 是一个关系 数据库管理系统,是一个全面的数据库平台,其数据库引擎为关系型数据和结构 化数据提供了更安全可靠的存储功能。SQL Server 2005 结合了分析、报表、集 成和通知功能,引进了一套集成的管理工具

5、和管理应用编程接口,以提供易用性、 可管理性及对大型 SQL Server 配置的支持。其新的查询类型和在交易过程中使用 错误处理的功能,为开发人员在 SQL Server 查询开发方面提供了更高的灵活性和 控制力。 SQL Server 可以适合大容量数据的应用,在功能上和管理上都比 Microsoft Access 要强的多。在处理海量数据的效率,后台开发的灵活性,可扩展等方面强 大。在 SQL Server 2005 中还可以使用存储过程,在服务器执行操作时,减少网络 通讯,提高了执行效率,而且保证了数据库的安全。 1.2.4 ADO.NET 数据库联接技术 ADO.NET(Active

6、x Data Objects),Activex 数据对象,是基于.NET 框架体系的数据库访问接口,主要用于基于 WEB 的应用程序,善于处理 XML 类型的数据。 它提供了平台互用性和可伸缩的数据访问,是与数据源交互的.NET 技术。 ADO.NET 体系结构的另一个核心元素是.NET 数据提供程序,这些组件设计 用来实现一些数据操作快速访问、单向访问、只读访问数据等等。Connection 对象提供了对一个数据源的连接。Command 对象可用于访问数据库命令并返回数据、修改数据、运行存储过程,以及发送或取得 数信息。DataReader 提供一个 来自数据源的高性能数据流。最后,Data

7、Adapter 在 DataSet 对象和数据源之间提 供桥梁。DataAdapter 使用Command对象对数据源执行 SQL 命令,用数据装载 DataSet 对象,并且使 DataSet 对象中的数据改变和数据源保持一致。 第 2 章 可行性分析2.1技术可行性 目前已经成功的开发出许多管理系统,信息技术和计算机软硬件发展已经完全可以满足本系统的技术要求,本方案要求较高,安全性和可靠性较强,但通过前面的综合分析,可以知道超市商品管理系统从技术上是可行的。 2.2经济可行性本系统运行后可以节省不少人员,每个人的工资大概都在五千左右,因此可以带来一些经济效益。另外,可以

8、省去打印分析的时间,直接用系统进行分析就可以看到最直接的结果。从经济上说是可行的,另外使用此系统可以减少人为的失误,准确方便,还可带来其他方面的经济效益。 2.3 操作可行性 本软件界面友好,易学易用,方便,因此,对现有人员基本不用进行培训。所以,具有系统的运行可行性。  第 3 章 需求分析 3.1 任务概述 建立超市商品管理系统3.1.1 系统目标 本系统需要满足以下几个系统设计目标。 (1)实用性原则:真正为用户的实际工作服务,按照高校实验室管理工作的 实际流程,设计出实用的实验教学管理网站。 (2)可靠性原则:必须为高校提供信息安全的服务,以保证

9、高校的各类信息 的不被泄露。 (3)友好性原则:本实验管理网站面向的用户是各大高校,所以系统操作上 要求简单、方便、快捷,便于用户使用。 (4)可扩展性原则:采用开发的标准和接口,便于系统向更大的规模和功能 扩展。 3.1.2用户特点 本系统面向各小型超市,实现一些简单的操作和功能. 3.2系统的功能需求 3.2.1系统角色功能需求 本系统有2种角色:系统管理员(超市经理:admin),超市售货员(salesman)。详细划分如下: Admin:权限为进货,销售,查询修改商品信息,查询修改管理员信息,查询修改客户信息,查询修改供货商信息Salesman:和admin一样,但是没有修改和查询管理

10、员的权限.3.2.2功能模块 本系统主要负责管理模块,各个子模块功能需求如下: (1)商品模块 管理员可以添加,删除,修改查询商品信息 (2)进货商模块管理员可以添加,删除,修改查询进货商信息(3)管理员模块管理员(只能是admin权限的,salesman无权操作)添加,删除,修改查询商品信息 (4)客户模块管理员添加,删除,修改查询客户信息(5)进货模块管理员添加进货信息(6)出售模块管理员添加商品信息 。 3.3 系统的性能需求 为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以 下的性能需求: (1)系统处理的准确性和及时性 系统处理的准确性和及时性是系统的必要性能。在系

11、统设计和开发过程中, 要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能 够满足用户对信息的处理。由于系统的查询功能对于整个系统的功能和性能完成 很重要。从系统的多个数据来源来看,学生信息查询、教师信息查询、实验信息 查询、排课结果查询、实验成绩查询,其准确性很大程度上决定了系统的成败。 因此,在系统开发过程中,系统采用优化的 SQL 语句及安全扩展存储过程来保证系统的准确性和及时性。 (2)系统的开放性和系统的可扩充性 系统在开发过程中,应该充分考虑以后的可扩充性。例如实验信息属性添加、 修改,用户查询的需求及管理工作的分级管理等模块也会不断的更新和完善。所 有这些,都要

12、求系统提供足够的手段进行功能的调整和扩充。而要实现这一点, 应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范, 可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完 成系统的升级和更新换代。 (3)系统的易用性和易维护性系统是直接面对使用人员的,而有些使用人员往往对计算机并不是非常熟悉。 这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点, 就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现 的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。 系统中涉及到的数据是高校实验室相当重要的信息,因此系统为不同角色的

13、 用户提供了方便的管理后台进行数据管理,特别为系统管理员提供了数据备份, 日常安全管理,防止系统意外崩溃等功能。 (4)系统的响应速度 系统设计中摒弃大量数据冗余,提出了优化数据库的解决方案,大量使用存 储过程,大大提高系统响应时间和速度。系统在日常处理中的响应速度为秒级, 达到实时要求,以及时反馈信息。严格保证操作人员不会因为速度问题而影响工 作效率。3.4系统的数据需求 (1) 商品:商品Id,商品名称,商品分类,商品数量,商品售价(2) 供货商:供货商ID,供货商名称,供货商经理名称,供货商经理联系电话,供货商地址(3) 管理员:用户ID,用户姓名,用户性别,用户年龄,用户电话,用户类别

14、(4) 客户:客户ID客户姓名,客户性别,客户联系方式(5) 进货:进货ID,用户ID,进货公司ID,商品ID,进货时间,进货数量,进货单价(6) 出售:出售商品ID,出售商品ID,出售商品数量,客户ID,商品ID,用户ID通过对系统功能需求的分析,可以初步确定该系统的基本数据需求。由各个 功能模块可以进一步确定具体的数据需求,具体数据需求如下: 第 4 章 总体设计4.1 模块设计超市管理系统客户模块管理模块进货商模块商品模块销售模块进货模块 4.2 数据库设计4.2.1 数据库概念设计本系统根据数据需求分析规划出的实体有:商品,进货商,管理员,客户师工作量 (1)商品表对应的实体属性 (2

15、)进货商表对应的实体属性 (3)管理员表对应的实体属性 (4)客户表对应的实体属性 (5)进货表对应的实体属性 (6)出售表对应的实体属性 (7)系统E-R图系统ER图4.2 数据库逻辑设计 4.2.1 表汇总 表给出了该系统使用的所有表名及简要说明。 userLogin用户表,存储用户信息及登入密码company公司表,存储公司基本信息goods商品表,存储商品有关信息customer客户表,存储客户信息getGoods进货表,存储进货信息sellGooods收货表,存储出售信息4.2.2 表逻辑结构设计 (1)goods(商品表)列名数据类型说明goodsIDInt商品ID,主键,非空go

16、odsNameChar(50)商品名unique not nullgoodsSortChar(50)商品分类goodsNumInt商品库存数量not nullgoodsPriceDecimal(12,2)商品售价not null (2)company (公司表) 列名数据类型说明companyIDInt公司ID 主键 not nullcompanyNmaeVatchar(50)公司名 uniqueManagerVarchar(4)经理名managerTelvarchar(50)经理电话companyAddrvarChar(50)公司地址(3)userLogin (管理员或用户表) 列名数据类型

17、说明userIDInt用户ID 主键 not nulluserNameVatchar(50)用户名 uniqueuserSexVarchar(4)用户性别userAgevarchar(50)用户年龄userTelvarChar(50)用户电话 not nulluserPosition varChar(50)用户等级 not nulluserPasswordvarChar(50)用户登入密码(4)customer (客户表) 列名数据类型说明customerIDInt客户ID 主键 not nullcustomerNameVatchar(50)客户名 uniquecustomerSexVarch

18、ar(4)客户性别customerTelvarChar(50)客户电话 not null( 5)getGoods (进货表) 列名数据类型说明getGoodsIDInt进货ID 主键 userIDInt用户ID 外码companyIDInt公司ID外码goodsIDInt商品ID 外码getGoodsTimeDatatime进货时间 default getDate()getGoodsNumInt进货数量getGoodsPriceDecimal(12,2)进货单价(6)sellGoods(出售表) 列名数据类型说明sellGoodsIDInt进货ID 主键 userIDInt用户ID 外码goo

19、dsIDInt商品ID外码customerIDInt客户ID 外码sellGoodsTimeDatatime出售时间 default getDate()sellGoodsNumInt出售数量 第 5 章 详细设计 5.1 程序结构的设计 (1)用户登录模块,首先接受用户输入的用户名和密码,然后在数据库中查询 是否有此用户以及密码是否正确,若正确则返回用户的权限,根据权限不同执行不同的操作: 传递权限参数进入系统执行相应权限操作输入用户名密码验证用户开始结束YesNo程序流程图5.2 页面设计5.21登录界面如下图所示 登录界面5.2.2 管理界面 管理员登录后,进入管理界面,可以通过左侧的菜单

20、连接到不同的功能界面, 实现不同的功能,此菜单是跟管理模块图对应的。 第 六 章 编 码 6.1连接数据库:private void open() string connstring = "Data Source=.SQLEXPRESS;Initial Catalog=shopGoodsManage;Integrated Security = true" connection = new SqlConnection(connstring); connection.Open(); 6.2关闭数据库: public void close() connection.Dispose

21、(); connection.Close(); connection = null; 6.3其他数据库操作代码: public SqlDataReader GetDataReader(string sqlstring) open(); SqlCommand mycom = new SqlCommand(sqlstring, connection); SqlDataReader Dr = mycom.ExecuteReader(); return Dr; public DataSet GetDataSet(string sqlstring) open(); SqlCommand mycom =

22、new SqlCommand(sqlstring, connection); SqlDataAdapter ada = new SqlDataAdapter(); ada.SelectCommand = mycom; DataSet dataset = new DataSet(); try ada.Fill(dataset); catch (SqlException e) close(); return dataset; public SqlDataAdapter GetAdapter(String sqlstring) open(); SqlCommand mycom = new SqlCo

23、mmand(sqlstring, connection); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = mycom; DataSet dataset = new DataSet(); adapter.Fill(dataset); close(); return adapter; public int ExecuteSQL(string sqlstring) int count = -1; open(); try SqlCommand cmd = new SqlCommand(sqlstring,

24、connection); count = cmd.ExecuteNonQuery(); catch count = -1; finally close(); return count; public int GetdataRow(string sqlstring) int CountRow = 0; open(); SqlCommand mycom = new SqlCommand(sqlstring, connection); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = mycom; DataSet ds = ne

25、w DataSet(); da.Fill(ds); ds.CaseSensitive = false; CountRow = ds.Tables0.Rows.Count; close(); return CountRow; public DataTable GetDataTable(string sqlstring) DataSet ds = GetDataSet(sqlstring); DataTable dt = new DataTable(); dt = ds.Tables0; return dt; public object GetScalar(string sqlstring) op

26、en(); SqlCommand mycom = new SqlCommand(sqlstring, connection); object result = mycom.ExecuteScalar(); close(); return result; public bool doUpdate(DataSet ds, String sql, String tableName) bool flag = false; open(); using (SqlDataAdapter da = new SqlDataAdapter(sql, connection) SqlCommandBuilder bu

27、ilder = new SqlCommandBuilder(da); try lock (this) da.Update(ds, tableName); flag = true; catch (SqlException e) throw new Exception(e.Message); catch (Exception ex) close(); return flag; public ArrayList GetListArray(string sqlstring, int m) ArrayList array = new ArrayList(); SqlDataReader dr = Get

28、DataReader(sqlstring); while (dr.Read() array.Add(dr.GetValue(m);/ return array; 6.4用户登陆: public partial class Login : Form public Login() InitializeComponent(); string path = Environment.CurrentDirectory + "SSK皮肤MSNMSN.ssk" this.skinEngine1.SkinFile = path; private void button2_Click(obje

29、ct sender, EventArgs e) Application.Exit(); private void button1_Click(object sender, EventArgs e) Database db =new Database(); String sqlStr1="select userName from userLogin " String sqlStr2="select userPassword from userLogin " if(textBox1.Text.Equals(String.Empty)|textBox2.Tex

30、t.Equals(String.Empty)MessageBox.Show("用户名或密码不能为空,请重新输入!","提示"); else if (textBox1.Text.Equals(db.GetScalar(sqlStr1).ToString() && textBox2.Text.Equals(db.GetScalar(sqlStr2).ToString() MessageBox.Show("欢迎进入超市管理系统", "提示"); main mForm = new main(); mForm

31、.Show(); this.Hide(); else MessageBox.Show("账号或密码错误", "提示"); 第 七 章 测 试 7.1 测试概述  7.1.2编写目的  这份测试报告是为了测试该系统是否可行。当输入商品的信息是,测试其信息能不能被完整的保存在数据库中以备以后查询用;当输入的数据不符合要求是,看系统能不能给出提示;当价格信息修改后看修改的信息能不能被系统接受并保存到数据库;当输入新顾客的信息时,输入信息是否完整地保存在数据库中,以及当输入老顾客信息时,系统能不能显示完整的信息等等。 7.2测试方案

32、 测试为四个阶段:单元测试、集成测试、确认测试、系统测试 单元测试:采用黑盒和白盒测试相结合的方法,对于逻辑结构复杂的模块采用白盒测试,对于以输入、输出为主的模块采用黑盒测试,以提高测试效率。 集成测试:混合法(对于软件结构中较上层使用自定向下与对软件结构中比较下层使用自底向上方法结合) 确认测试: 系统测试:采用人工测试方法。7.3测试结果 (1)登录、密码模块测试 本测试采用黑盒测试法:为了检测不同权限的用户在  登录时,是否能进入对应的模块并得到对应有的权限,检查密码模块的正确有效 3.1

33、.2 测试用例 测试用例1(正确输入) 【输入:】用户;lc 密码:lc 【期望输出】:登录成功,显示前台销售管理窗体 【实际输出】:登录成功,显示前台销售管理窗体 测试用例2(无该用户) 【输入】:用户名:aa 密码:aa 【期望输出】:提示用户名或密码错误 【实际输出】:提示用户名或密码错误 测试用例3 (密码错误) 【输入】:用户;lc 密码:aa 【期望输出】:提示用户名或密码错误 【实际输出】:提示用户名或密码错误&

34、#160;测试用例4(无输入) 【输入】:用户: 密码: 【期望输出】:提示用户名或密码错误 【实际输出】:提示用户名或密码错误 (2)销售管理模块测试被测试是采用黑盒与白盒测试,为了检测系统的销售时的收银业务销售定价等功能的输入输出进行验证。 3收银业务测试 测试用例1(正确输入) 【输入】:实收:50 【期望输出】:应找钱数显示的标签上,斌打印顾客货物清单 【实际输出】:应找钱数显示的标签上,斌打印顾客货物清单 测试用例2(输入比应收的少) 【输入】:实收:10 【期望输

35、出】:提示输入错误,所买货物价格高于所输入的数目,请检查  【实际输出】:提示输入错误,所买货物价格高于所输入的数目,请检查 测试用例3(输入非数字) 【输入】:实收:a 【期望输出】:请输入数字  【实际输出】:请输入数字 【输入】:实收:空 【期望输出】:没有输入数字,请检查  【实际输出】:没有输入数字,请检查(3)订货管理模块测试  本测试是采用黑盒测试与白盒测试混合的测试方法:为了检测系统的订业务货管理时的订货等功能的输出与输入进行验证。 【输入】条形码:1000001 【期望输出】:商品名为雪碧,库存量低于库存下限,请联系供应商A补充货源 【实际输出】:商品名为雪碧,库存量低于库存下限,请联系供应商A补充货源 第 八 章 维 护 超市商品管理系统已经交付使用,但人们的需求随着业务以及不断新

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论