超市商品管理系统资料

上传人:feng****ing 文档编号:72162293 上传时间:2022-04-08 格式:DOC 页数:23 大小:635.50KB
返回 下载 相关 举报
超市商品管理系统资料_第1页
第1页 / 共23页
超市商品管理系统资料_第2页
第2页 / 共23页
超市商品管理系统资料_第3页
第3页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第1 章绪论1.1 课题背景在当今的社会,可以说是信息技术的发展时代,在社会的方方面面无不涉 及 到各种信息的处理。信息是人们对客观世界的具体描述,是人们进行交流与 联系 的重要途径。 人类社会就处在一个对信息进行有效合理的加工中。 它将促进整个 社会的发展。 随着社会信息技术的提高, 计算机已被广泛应用于当今社会的各个 领域,成为推动社会发展的首要技术动力。 在当今信息时代, 人们的生活方式随 着 Internet 的不断发展发生了不同寻常的改变。 为了让超市商品管理更加智能 化,便捷化 ,于是开发超市商品管理系统 .1.2 开发工具本系统利用C#语言编写后台代码,以Microsoft SQL Server 2005作为后 台数据库,选用 ADO.NET 访问数据库来实现各种功能1.2.1 可视化编程简介可视化编程即一可视化的界面简化编程过程 ,以减轻开发人员的开发难度 , 提高开发效率,本系统采用可视化编程里面的 C#进行编写.1.2.2 C# 简介C#是微软开发的一种面向对象的编程语言。它使得程序员可以快速地编写 各种基于 Microsoft .NET 平台的应用程序, Microsoft .NET 提供了一系列的工 具和服务来最大程度地开发利用计算与通讯领域。其目标是即拥有C+的执行效率和运算能力也具备如 VB 样的易用性。C#是基于C+的一种语言,同 时包含类似Java的很多特征。C#是被设计工作在微软的。NET平台上的,微 软的目标是使数据和服务的交 换在网页上更容易,并且允许开发人员构建更高 的程序可移植性。C#可以方便的 用于XML和SOAP,并可以直接访问程序对 象或方法 ,而不需要添加额外的代码。 所以程序可以构建在已存在的代码上, 或者多次重复的使用。C#的目标是为市场开发产品和服务时更快捷且成本开销 更低。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选 无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件 可以方便的转化为 XML 网络服务,从而使它们可以由任何语言在任 何操作系统 上通过In ternet进行调用。 最重要的是,C#使得程序员可以高效 的开发程序,而绝不损失C/C+原有的 强大的功能。因为这种继承关系,C#与C/C+具有极大的相似性,悉类似语言的开发者可以很快的转向C#。1.2.3 SQL Server 2005 数据库SQL Server 2005 是微软公司动用上千人的研发力量, 耗费五年时间打造出 来的产品,在企业及数据库产品中具有里程碑的意义。 SQL Server 2005 是一个 关系 数据库管理系统,是一个全面的数据库平台,其数据库引擎为关系型数据 和结构 化数据提供了更安全可靠的存储功能。 SQL Server 2005 结合了分 析、报表、集 成和通知功能, 引进了一套集成的管理工具和管理应用编程接口, 以提供易用性、 可管理性及对大型 SQL Server 配置的支持。 其新的查询类型 和在交易过程中使用 错误处理的功能, 为开发人员在 SQL Server 查询开发方 面提供了更高的灵活性和 控制力。 SQL Server 可以适合大容量数据的应用, 在功能上和管理上都比 Microsoft Access 要强的多。在处理海量数据的效率, 后台开发的灵活性,可扩展等方面强 大。在 SQL Server 2005 中还可以使用存 储过程,在服务器执行操作时,减少网络 通讯,提高了执行效率,而且保证了 数据库的安全。1.2.4 ADO.NET 数据库联接技术ADO.NET (Activex Data Objects),Activex 数据对象,是基于 .NET 框架 体系的数据库访问接口,主要用于基于 WEB 的应用程序,善于处理 XML 类 型的数据。 它提供了平台互用性和可伸缩的数据访问,是与数据源交互的 .NET 技术。 ADO.NET 体系结构的另一个核心元素是 .NET 数据提供程序, 这些组 件设计 用来实现一些数据操作快速访问、单向访问、只读访问数据等等。 Connection 对象提供了对一个数据源的连接。 Command 对象可用于访问数据库 命令并返回数据、修改数据、运行存储过程,以及发送或取得数信息。DataReader 提供一个 来自数据源的高性能数据流。最后, DataAdapter 在 DataSet 对象和 数据源之间提 供桥梁。 DataAdapter 使用 Command 对象对数据源执行 SQL 命令,用数据装载 DataSet 对象,并且使 DataSet 对象中的数据改变和数据源 保持一致。第 2 章 可行性分析2.1 技术可行性目前已经成功的开发出许多管理系统,信息技术和计算机软硬件发展已经 完全可以满足本系统的技术要求, 本方案要求较高, 安全性和可靠性较强, 但通 过前面的综合分析,可以知道超市商品管理系统从技术上是可行的。2.2 经济可行性本系统运行后可以节省不少人员,每个人的工资大概都在五千左右,因此可以带来一些经济效益。 另外,可以省去打印分析的时间, 直接用系统进行分析 就可以看到最直接的结果。 从经济上说是可行的, 另外使用此系统可以减少人为 的失误,准确方便,还可带来其他方面的经济效益。2.3 操作可行性本软件界面友好,易学易用,方便,因此,对现有人员基本不用进行培训。 所以,具有系统的运行可行性。第 3 章 需求分析3.1 任务概述 建立超市商品管理系统3.1.1 系统目标 本系统需要满足以下几个系统设计目标。(1)实用性原则:真正为用户的实际工作服务,按照高校实验室管理工作 的 实际流程,设计出实用的实验教学管理网站。(2)可靠性原则:必须为高校提供信息安全的服务,以保证高校的各类信 息 的不被泄露。(3)友好性原则:本实验管理网站面向的用户是各大高校,所以系统操作上 要求简单、方便、快捷,便于用户使用。(4)可扩展性原则:采用开发的标准和接口,便于系统向更大的规模和功 能 扩展。3.1.2 用户特点 本系统面向各小型超市,实现一些简单的操作和功能 .3.2 系统的功能需求3.2.1 系统角色功能需求本系统有2种角色:系统管理员(超市经理:admin),超市售货员(salesman。详细划分如下:Admin: 权限为进货 ,销售,查询修改商品信息 ,查询修改管理员信息 ,查询修改 客户信息 ,查询修改供货商信息Salesman和admin 一样,但是没有修改和查询管理员的权限.3.2.2 功能模块本系统主要负责管理模块,各个子模块功能需求如下 :(1)商品模块管理员可以添加 ,删除 ,修改查询商品信息(2)进货商模块管理员可以添加 ,删除 ,修改查询进货商信息(3)管理员模块管理员(只能是admin权限的salesman无权操作)添加删除,修改查询商品信 息(4)客户模块管理员添加 ,删除,修改查询客户信息(5)进货模块管理员添加进货信息(6)出售模块 管理员添加商品信息 。3.3 系统的性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:(1)系统处理的准确性和及时性 系统处理的准确性和及时性是系统的必要性能。 在系统设计和开发过程中, 要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能 够满足用户对信息的处理。由于系统的查询功能对于整个系统的功能和 性能完成 很重要。从系统的多个数据来源来看, 学生信息查询、 教师信息查询、 实验信息 查询、排课结果查询、实验成绩查询,其准确性很大程度上决定了系 统的成败。 因此,在系统开发过程中,系统采用优化的 SQL 语句及安全扩 展存储过程来保证系统的准确性和及时性。(2)系统的开放性和系统的可扩充性 系统在开发过程中,应该充分考虑以后的可扩充性。例如实验信息属性添加、 修改,用户查询的需求及管理工作的分级管理等模块也会不断的更新和完 善。所 有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现 这一点, 应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一 定的规范, 可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的 修补、替换完 成系统的升级和更新换代。(3)系统的易用性和易维护性 系统是直接面对使用人员的,而有些使用人员往往对计算机并不是非常熟悉。 这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户 可能出现 的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。系统中涉及到的数据是高校实验室相当重要的信息,因此系统为不同角色的用户提供了方便的管理后台进行数据管理,特别为系统管理员提供了数据备份,日常安全管理,防止系统意外崩溃等功能。(4) 系统的响应速度 系统设计中摒弃大量数据冗余,提出了优化数据库 的解决方案,大量使用存 储过程,大大提高系统响应时间和速度。系统在日常 处理中的响应速度为秒级, 达到实时要求,以及时反馈信息。严格保证操作人 员不会因为速度问题而影响工 作效率。3.4系统的数据需求(1) 商品:商品Id,商品名称,商品分类,商品数量,商品售价(2) 供货商:供货商ID,供货商名称,供货商经理名称,供货商经理联系电话,供货商地址(3) 管理员:用户ID,用户姓名,用户性别,用户年龄,用户电话,用户类别(4) 客户:客户ID客户姓名,客户性别,客户联系方式(5) 进货:进货ID,用户ID,进货公司ID,商品ID,进货时间,进货数量,进货单价出售:出售商品ID,出售商品ID,出售商品数量,客户ID,商品ID,用户ID 通过对系统功能需求的分析,可以初步确定该系统的基本数据需求。由各个功能模块可以进一步确定具体的数据需求,具体数据需求如下:第4章总体设计4.1模块设计销模4.2数据库设计数据库概念设计本系统根据数据需求分析规划出的实体有:商品,进货商,管理员,客户师工作量商品表对应的实体属性(2)进货商表对应的实体属性(3)管理员表对应的实体属性客户表对应的实体属性进货表对应的实体属性出售表对应的实体属性(7)系统E-R图珥士 ID公乞IDID岂运w貲时闻W宴=性刮遵理电世麦岳監蚤菱品ID奁鬲普护址据二准却系统ER图4.2数据库逻辑设计4.2.1 表汇总表给出了该系统使用的所有表名及简要说明userLog in用户表,存储用户信息及登入密码compa ny公司表,存储公司基本信息goods商品表,存储商品有关信息customer客户表,存储客户信息getGoods进货表,存储进货信息sellGooods收货表,存储出售信息表逻辑结构设计(1) goods (商品表)列名数据类型说明goodsIDInt商品ID,主键,非空goodsNameChar(50)商品名 unique notn ullgoodsSortChar(50)商品分类goodsNumInt商品库存数量notn ullgoodsPriceDecimal(12,2)商品售价not null(2)company 公司表)列名数据类型说明compa nylDInt公司ID主键not n ullcompa nyN maeVatchar(50)公司名 uniqueMan agerVarchar(4)经理名man agerTelvarchar(50)经理电话compa ny AddrvarChar(50)公司地址(3) userLogin (管理员或用户表)列名数据类型说明userIDInt用户ID主键not n ulluserNameVatchar(50)用户名 uniqueuserSexVarchar(4)用户性别userAgevarchar(50)用户年龄userTelvarChar(50)用户电话not nulluserPositi onvarChar(50)用户等级not nulluserPasswordvarChar(50)用户登入密码(4) customer 客户表)列名数据类型说明customerIDInt客户ID主键not n ullcustomerNameVatchar(50)客户名 uniquecustomerSexVarchar(4)客户性别customerTelvarChar(50)客户电话not null(5) getGoods 进货表)列名数据类型说明getGoodsIDInt进货ID主键userIDInt用户ID外码compa nylDInt公司ID外码goodsIDInt商品ID外码getGoodsTimeDatatime进货时间 default getDate()getGoodsNumInt进货数量getGoodsPriceDecimal(12,2)进货单价(6) sellGoods(出售表)列名数据类型说明sellGoodsIDInt进货ID主键userIDInt用户ID外码goodsIDInt商品ID外码customerlDInt客户ID外码sellGoodsTimeDatatime出售时间 default getDate()sellGoodsNumInt出售数量第5章详细设计5.1程序结构的设计(1)用户登录模块,首先接受用户输入的用户名和密码,然后在数据库中查询 是否有此用户以及密码是否正确,若正确则返回用户的权限,根据权限不 同执行程序流程图5.2页面设计5.21登录界面如下图所示admin.adminEM2014/12/24 10:09刊 P J E T RFi N F 穴.I sTl2014/12/24 17;13 立性Login522 管理界面管理员登录后,进入管理界面,可以通过左侧的菜单连接到不同的功能界面, 实现不同的功能,此菜单是跟管理模块图对应的。魁超市面品苦理系焼-“m商品內公昂何書户g出哥巧帮朋Hauthor:网络L21全卅time;2014-12-24iiniiriiiiiriiiiniiriiiriiiiiriiiiniiu 更覇 操作员:客户姓屯: 购头裔品:购买對i量:Mf出隼成功!1确走!出售商品ID15岀售第六章编 码6.1连接数据库:private void open()str ing conn stri ng =Data Source=.SQLEXPRESS;l nitialCatalog=shopGoodsManage;Integrated Security = true;connection = new SqlConnection (connstring); connection.Open();6.2 关闭数据库 :public void close() connection.Dispose(); connection.Close(); connection = null ;6.3 其他数据库操作代码 :public SqlDataReader GetDataReader( string sqlstring) open();SqlCommandmycom = new SqlComman(dsqlstring, connection); SqlDataReader Dr = mycom.ExecuteReader();return Dr;public DataSet GetDataSet( string sqlstring) open();SqlCommandmycom = new SqlComman(dsqlstring, 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)SqlCommandmycom = new SqlComman(dsqlstring, 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();trySqlCommandcmd = new SqlComman(dsqlstring, connection); count = cmd.ExecuteNonQuery();catchcount = -1;finallyclose();return count;public int GetdataRow( string sqlstring)int CountRow = 0;SqlCommandmycom = new SqlComman(dsqlstring, connection); SqlDataAdapter da = new SqlDataAdapter (); da.SelectCommand = mycom;DataSet ds = new 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)open(); SqlCommandmycom = new SqlComman(dsqlstring, connection); object result = mycom.ExecuteScalar();close();return result;public bool doUpdate( DataSet ds, String sql, String tableName)using ( SqlDataAdapter da = new SqlDataAdapter (sql, connection)SqlCommandBuilder builder = new SqlCommandBuilder (da);trylock ( 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 = GetDataReader(sqlstring);while (dr.Read()array.Add(dr.GetValue(m); return array; 6.4 用户登陆 :public partial class Login : Formpublic Login()InitializeComponent();string path = Environment.CurrentDirectory + SSK 皮肤 MSNMSN.ssk; this.skinEngine1.SkinFile = path;private void button2_Click(object 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.Text.Equals(String.Empty)MessageB ox.Show( 用户名或密码不能为空 , 请重新输入 !, 提示 );else if (textBox1.Text.Equals(db.GetScalar(sqlStr1).ToString() & textBox2.Text.Equals(db.GetScalar(sqlStr2).ToString()MessageBox.Show(欢迎进入超市管理系统AA,提示);main mForm = new main();mForm.Show();this.Hide();账号或密码错误 , 提示); else MessageBox.Show(第七章测试7.1测试概述编写目的这份测试报告是为了测试该系统是否可行。当输入商品的信息是,测试其 信息能不能被完整的保存在数据库中以备以后查询用; 当输入的数据不符合要求 是,看系统能不能给出提示;当价格信息修改后看修改的信息能不能被系统接受 并保存到数据库;当输入新顾客的信息时,输入信息是否完整地保存在数据库中, 以及当输入老顾客信息时,系统能不能显示完整的信息等等。7.2测试方案测试为四个阶段:单元测试、集成测试、确认测试、系统测试单元测试:采用黑盒和白盒测试相结合的方法,对于逻辑结构复杂的模块采 用白盒测试,对于以输入、输出为主的模块采用黑盒测试,以提高测试效率。集 成测试:混合法(对于软件结构中较上层使用自定向下与对软件结构中比较下层 使用自底向上方法结合) 确认测试:系统测试:采用人工测试方法。7.3测试结果(1)登录、密码模块测试本测试采用黑盒测试法:为了检测不同权限的用户在登录时,是否能进入对应的模块并得到对应有的权限, 检查密码模块的正确 有效测试用例 测试用例1 (正确输入)【输入:】用户;lc密码:lc【期望输出】:登录成功,显示前台销售管理窗体【实际输出】:登录成功,显示前台销售管理窗体 测试用例2 (无该用户)【输入】:用户名:aa密码:aa【期望输出】:提示用户名或密码错误【实际输出】:提示用户名或密码错误 测试用例3 (密码错误)【输入】:用户;lc密码:aa【期望输出】:提示用户名或密码错误【实际输出】:提示用户名或密码错误 测试用例4 (无输入)【输入】:用户:密码:【期望输出】:提示用户名或密码错误【实际输出】:提示用户名或密码错误(2)销售管理模块测试被测试是采用黑盒与白盒测试,为了检测系统的销售时的收银业务销售定价 等功能的输入输出进行验证。3收银业务测试 测试用例 1(正确输入)【输入】:实收: 50 【期望输出】:应找钱数显示的标签上,斌打印顾客货物清单 【实际输出】:应找钱数显示的标签上, 斌打印顾客货物清单 测试用例 2(输 入比应收的少)【输入】:实收: 10【期望输出】:提示输入错误,所买货物价格高于所输入的数目,请检查 【实际输出】 :提示输入错误, 所买货物价格高于所输入的数目, 请检查 测 试用例 3(输入非数字)【输入】:实收: a【期望输出】:请输入数字【实际输出】:请输入数字【输入】:实收:空【期望输出】:没有输入数字,请检查【实际输出】:没有输入数字,请检查(3)订货管理模块测试 本测试是采用黑盒测试与白盒测试混合的测试方法: 为了检测系统的订业务 货管理时的订货等功能的输出与输入进行验证。【输入】条形码 :1000001 【期望输出】:商品名为雪碧,库存量低于库存下限,请联系供应商 A 补充 货源【实际输出】:商品名为雪碧,库存量低于库存下限,请联系供应商 A 补充 货源第 八 章 维 护超市商品管理系统已经交付使用, 但人们的需求随着业务以及不断新事物 的出现,客户的需求也在不断的增多。 为了满足客户后续的许许多多的需求, 我 们将对交付已使用的系统进行进一步的改进与提升。当然这些软件的维护也必须按照一定的步骤来做才能保证软件更新后的。 可用性,可靠性,假如用户提出需求后,我们需要对此需求做可行性分析,考虑 维护成本后,在进行需求分析,详细设计,测试等,这些都没有问题才能正式发 布给想要该需求的用户使用并将更新的文档也一起给用户。第 九 章 总结与体会经过这段时间的努力, 超市商品管理管理系统终于做完了, 经过这次实习系统设计,自己总结了一些问题, 不过收获还是颇为丰富的, 再有理论知识上结合实践,使我学到了更多。首先,更进一步的了解了数据库的基本操作, 现在对于数据库的增删改查 操作比较熟练了, 对于初学者来说, 比较头疼的就是对于单引号的处理。 我的建 议是如果不理解先把按照课本上正确的语句敲,然后在多次进行数据库的链接, 增删改查操作中不断总结规律。这次设计的超市商品管理系统,全在自己所掌握的知识下,进行编程设计, 完全体现了自己在数据库语言和程序设计课程学习状况, 充分地为自己以后更深 入了数据库语言奠下深厚的基础。纵观此超市商品管理系统的整体概况, 目前,自我认为设计良好, 相关功能 都能够实现,功能强大,条理清晰,界面可观性比较好。并且特色在于,所设计 的表单都在一个表单系统桌面中运行,比较符合系统的观念。在系统设计的过程中, 我从中发现, 学习数据库要细心和有耐性, 并且要不 断地从外界学习更多的技术才能设计出一套完美的系统第 十 章 参考文献1 Date C J.An Introduction to Database System(Ed.7) .New York:Computer Science Press.20022 Ullman J D.Principles of Data base. New York:Computer Science Press.20053 Martin J.Principles of Database Management. New York:Computer Science Press.2004.4 雷国荣 . 职业学校实验室信息管理系统的分析与设计.职业教育研究.20095 王燕对象的理论与C#实践.北京:清华大学出版社.19976 冉林仓、建民 .Visual C#_NET 入门与进阶 .北京:清华大学出版社 .20037 周之燕.现代软件工程 .北京:科学出版社.20008 张海藩.软件工程导论 .北京:清华大学出版社 .20089 云生.数据库系统概论 .武汉:华中理工大学出版社 .199610 汪孝宜.信息系统开发实例精粹(C#版).北京:电子工业出版社.2006
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!