1、课程设计说明书课程名称: 题目名称: 超市收银系统设计 班 级: 姓 名: 学 号: 指导教师: 评估成绩:教师评语: 指导老师署名 年 月 日 目 录目 录1摘 要21.概述12.任务需求分析13.数据流图、数据字典及实体联系图44.数据字典55.系统概要设计95.1总体设计105.2系统功能模块图105.3数据库概念设计115.4数据库逻辑结构设计116.具体设计156.1系统的重要功能156.2人机界面设计156.2.1一般交互设计156.2.2信息显示设计166.2.3数据输入设计166.3程序设计过程176.3.1登陆界面176.3.2后台管理操作187软件测试19参考文献20摘 要
2、随着经济的发展,人们的生活越来越好。平常用品的种类越来越多,超市的规模也越来越大,超市收银员的工作量也越来越大。为了适应超市规模的不断变化,减轻收银员的工作承担,根据超市的实际需要设计了一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的超市收银系统,为超市的决策者和管理者提供超市的各种数据信息、方便的查询和高效便捷的管理。该超市收银系统涉及前台操作和后台数据库,后台数据库涉及入库记录、销售记录、商品信息、用户信息和会员信息,前台操作是收银、查询和修改商品信息。该系统采用C#实现,系统开发工具是VS2023。关键词:C#;VS2023;数据库;超市收银。1.概述超市收银系统重要功
3、能涉及:后台管理和前台操作,其中:后台管理重要涉及:进货管理、销售管理、库存管理、相关业务的查询和系统维护等;进货管理:在数据库中存储有各种商品的供应商信息,当需要进货时,可以与供应商联系,同时数据库中会存储各种商品的每一次进货信息,并保持数据的时效性和完整性。销售管理重要涉及:随时录入卖出商品信息,如名称,数量,单价等,及时更新数据库数据。 货架上商品卖到一定数量时,实时生成提货报告,并提供商品的库存信息,剩余信息。库存管理重要涉及:生成库存报告、生成缺货报告、录入更新数据。在需要时(可每隔一个时间段查询一次) 生成商品库存情况报告,实时报告商品库存情况,如库存量局限性(小于某一自定的数量)
4、 时,可生成缺货报告,并提供商品种类,来源等商品属性信息,方便采购人员进行商品采购。采购员采购商品后,及时录入商品信息等数据,在数据库中进行数据更新。前台操作重要涉及:前台收银员权限严格控制,支持断网销售、连网销售两种模式,预留对条码扫描、票据打印机、顾显、钱箱、磁卡刷卡机、IC卡读写器、条码打印机、盘点机等POS外设的支持,可直接修改销售数量、单价、折扣等(权限控制),支持赠送(权限控制),会员卡、储值卡消费,收款抹零(权限控制),挂单/取单,前台查询商品、库存,删单、删行、查单(权限控制),特殊操作记录(防止前台作弊),支持电子称散装商品销售,前台支持业务员录入计提,商品促销销售(准时间段
5、),会员价、储值卡价销售,支持无库存商品销售,销售小票格式自定义(标题、脚注、明细格式等)。2.任务需求分析前台操作涉及:商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确的商品扫描录入。该扫描录入方法可以充足保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(涉及交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。假如顾客是本店会员并持有本
6、人会员卡,则在交易前先扫描会员卡,并对所购物品所有实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。 会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。后台管理操作:进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货导致商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。销售管理: 商品正常销售、促销与限量、限期及严禁销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式记录生成销售排行榜,灵活察看和打印商品销售日、月、年报表。库存管理: 综合查询库存明细记录。 库
7、存状态自动告警提醒。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。人员管理:员工、会员、供货商、厂商等基本信息登记管理。员工操作权限权利、客户销售权限管理。图1系统流程图商品库存程序收银员收银商品销售程序进货报告生成程序商品库存信息文献进货报告输入购物信息显示销售信息显示订货信息 收银POS机查询数据/员工管理PC机打印机称装电子秤管理商品信息 PC机SQl Server服务器进货PC机超市前台管理者SQl Server服务器进货PC机图2系统构架图超市工作人员前台收银员管理部门进货部门数据库服务器进货PC机3.数据流图、数据字典及实体联系图产生销售记
8、录产生进货单仓库管理员收银员更新库存信息进货员前台经理更新商品信息D1 商品信息表D3 销售记录销售信息销售信息销售信息事务库存信息进货信息D2 进货信息进货单图3数据流图商品信息商品信息事务D4 商品信息表4.数据字典 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。名称:销售清单别名:销售报表描述:对超市商品销售情况的描述定义:货品编号+名称+销售日期+数量+售价位置:输出到打印机 保存到磁盘名称:商品信息别名:商品单描述:超市销售商品的信息定义:商品编号+类型编号+商品名称+库存量+售价+报
9、警值+商品规格+计量单位位置:输出到打印机 保存到磁盘名称:用户信息别名:描述:该系统的使用者的信息定义:用户编号+姓名+密码+权限位置:输出到打印机 保存到磁盘名称:入库记录别名:进货报表描述:每次进货的货品描述定义:入库编号+货品编号+供应商编号+操作员+进价+数量位置:输出到打印机 保存到磁盘名称:会员信息信息表别名:商品编号描述:该超市所属会员的信息定义:会员编号+会员名+会员积分+会员等级+会员电话+会员起始日期位置:输出到打印机 保存到磁盘名称:供应商信息别名:供应商描述:和超市合作的供应商的信息定义:供应商编号+名称+联系人+地址+联系电话+传真+合作起始时间位置:输出到打印机
10、保存到磁盘入库记录销售记录供应商商品编号商品名称库存量计量单位报警值商品规格类别编号名称电话联系人供应地址商品名称数量售价总金额进价商品名称商品数量供应商编号进货销售供应商编号合作时间传真入库编号商品编号售价11111图4部分实体联系(E-R)图nn商品用户用户用户编号密码用户名权限会员用户会员编号会员名会员积分会员等级 电话会员起始日期图6会员实体ER图图5用户实体ER图5.系统概要设计5.1总体设计通过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“如何做”的时候了。总体设计的基本目的就是回答“概括地说,系统应当如何实现”的问题。所以总体设计又称为概要设计。通过这个阶段的工作
11、将划分出组成系统的物理元素程序、文献、数据库、人工过程和文档等。总体设计的另一项任务是设计软件的结构,也就是要拟定系统中的每个程序是由那些模块组成的,以及这些模块互相间的关系。5.2系统功能模块图超市收银系统查询修改商品信息收银进货管理销售管理库存管理前台操作后台数据库营业记录会员信息管理 图7系统功能模块图 5.3数据库概念设计 数据库一般分为三级模式:外模式、模式和内模式。外模式也就是不同用户所对的数据视图,它将数据库内部抽象的数据及其互相之间的关系表达为简朴、直观的应用界面。模式是数据库中所有数据的逻辑结构和特性描述,通常以某种数据模型为基础。内模式是对数据的物理结构和存储方式的描述。在
12、该系统中具体的模式有:商品(商品编号,类型编号,商品名称,规格,计量单位,售价,库存量,报警值)用户(用户编号,用户名,密码,权限)入库记录(入库编号,商品编号,供应商编号,联系人,进价,数量)销售记录(商品编号,售价,销售数量,总金额)供应商(供应商编号,供应商名称,联系人,供应商电话,传真,地址,合作时间)会员(会员编号,会员名,会员积分,会员等级,电话,会员起始日期)5.4数据库逻辑结构设计在数据库设计中相称重要的一步就是将概念模型转化为计算机上DBMS所支持的数据模型,例如,将E-R图转化为关系模型,我们设计概念模型基本上都是一些抽象的关系,再在数据库设计的实现过程中,在计算机上有效地
13、表达出这些关系就成了数据库设计的关键。根据超市收银系统的功能规定,选取MySQL作为后台数据库。在上面的实体和实体之间的E-R图设计基础上,形成数据库中的表格及表格之间的关系。该数据库涉及系统登录用户的基本信息保存在用户信息表里,其中对于用户编号,通过自增方式实现,无需用户手动编号,编号从1000起始。具体内容如下表所示:用户信息表涉及:用户编号、用户名、密码和用户权限,具体如下: 表1用户信息表属性名 字段名类型长度Null备注编号UserIDInt20否主键姓名UserNamevarchar50否密码UserPasswordvarchar50否权限UserRightvarchar50否 会
14、员信息表涉及了在该超市申请会员的消费者的信息,会员信息表涉及:会员编号、会员名、积分、权限、联系电话和会员起始日期,具体内容如下: 表2会员信息表属性名字段名类型长度Null备注会员编号VipIdInt20否主键会员姓名VipNamevarchar50否积分VipScorevarchar50否等级VipRankvarchar50否电话VipNumbervarchar50否成为会员时间VipDatavarchar50否销售信息表涉及:商品编号、售价、数量、总金额以及备注,具体内容如下:属性名字段名类型长度Null备注商品编号GoodsIdInt20否主键单价SellPricevarchar50否
15、数量GoodsNumvarchar50否总价zongsellvarchar50否备注Remarkvarchar50否销售时间DataTimevarchar50否 表3销售信息表商品信息表涉及:商品编号、商品名称、商品类型、计量单位、规格、售价、库存 量、报警值和备注,具体内容如下表: 表4商品信息表 属性名字段名类型长度Null备注商品编号GoodsIdInt20否主键类型号TypeIdvarchar50否商品名称GoodsNamevarchar50否计量单位GoodsUnitvarchar50是规格GoodsNormvarchar50否售价GoodsSellpricevarchar50否库存
16、量GoodsNumvarchar50否报警值AlarmNumvarchar50否备注GoodsRemardkvarchar50是入库登记表涉及:入库编号、商品编号、供应商编号、联系人、进价、数量以及备注,具体内容如下: 表5入库登记表属性名字段名类型长度Null备注入库编号StockIdInt20否主键商品编号GoodsIdvarchar50否外键供应商编号CompanyIdvarchar50否操作员Operatorvarchar50否进价GoodsPricevarchar50否入库时间DataTimevarchar50否数量GoodsNumvarchar50否备注Remarkvarchar5
17、0是 供应商信息表涉及:供应商编号、供应商名称、联系人、电话、传真、地址、合作起始时间,具体内容如下表:表6供应商信息表属性名字段名类型长度Null备注供应商编号CompanyIdInt20否主键供应商名称CompanyNamevarchar50否联系人CompanyDirectorvarchar50否电话CompanyPhonevarchar50否传真CompanyFaxvarchar50否地址CompanyAddvarchar50否合作时间HzDataTimevarchar50否6.具体设计具体设计阶段的主线目的是拟定应当如何具体地实现所规定的系统,涉及用户界面设计、程序过程设计等环节。也
18、就是说,通过这个阶段的设计工作,应当得出对目的系统的精确描述,从而在编码阶段可以把这个描述直接翻译成某种设计语言书写的程序。具体设计阶段的任务不是具体的编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个“蓝图”写出实际的程序代码。6.1系统的重要功能该系统采用C/S结构,超市收银系统的重要功能涉及:后台管理和前台操作。前台的重要功能是:(1)记录超市前台收银员的收银信息;(2)查询、修改商品信息;后台的重要功能是:(1)记录商品的入库记录;(2)管理商品的库存、价格等具体信息(3)记录商品的销售记录;(4)管理超市会员的会员信息;(5)管理登陆用户的信息。6.2人机界面设计6.2.1一
19、般交互设计一般交互设计涉及信息显示、数据输入和系统整体控制。(1) 保持一致性。为客户交互界面中的菜单选择、命令输入、数据显示以及众多的其他功能,使用一致的格式。(2) 提供信息的反馈。向用户及时提供视觉和听觉的信息反馈,以保证在用户和系统之间及时地建立双向通信。在本系统设计过程中,基本做到了信息的及时反馈,当用户操作完一步后系统会对数据库中的数据进行及时地显示。(3) 执行有较大影响的操作前提醒用户确认。在设计过程中,假如用户要执行删除操作,以及对数据库的读写操作时,都会有窗体弹出询问继续操作或者予以提醒。(4) 减少两次操作间需要记忆的内容。为了避免用户为下一步操作而记忆大量数据,所以在设
20、计过程中在需要数据传递的窗体中设立全局变量,来传递数据。(5) 提高对话、移动和思考的效率。尽量减少用户击键的次数,在设计时考虑用户屏幕的布局以减少用户鼠标移动的距离,尽量避免用户在操作中发生疑问的情况。(6) 允许犯错误。允许用户的误操作尽量不对系统导致伤害。(7) 按功能对动作分类,并据此设计屏幕布局。屏幕布局尽量将软件所具有的所有功能在主页面展示,界面一目了然。6.2.2信息显示设计系统在显示用户所需要的信息时应当尽量完整、清楚和易于理解。这样才干满足用户的需求。使用不同的方式显示信息:用文字、图形、声音,按位置、移动和大小,使用颜色和省略等方式传达信息。(1) 只显示与当前工作有关的信
21、息。在用户操作有关系统的特定功能的信息时,不必看到与之无关的数据、菜单和图形。(2) 使用便于用户迅速吸取数据的方式来表达数据。(3) 使用一致的标记、标准的缩写和可预知的颜色。显示的含义应当非常准确,用户无须参照其他信息源就能理解。(4) 产生故意义的错误信息。对于系统在运营过程中产生的错误尽量给用户返回一个容易理解的错误信息,以使用户保持对系统的信任,和系统的可用性。(5) 使用窗口分隔不同类型的信息。使用不同的窗口显示、保存不同类型的信息。(6) 高效率的使用显示屏。当使用多窗口时,应当有足够的空间使得每个窗口至少都能显示出一部分。6.2.3数据输入设计用户的大部分时间用在选择菜单命令、
22、键入数据和向系统提供输入。在系统中,键盘是重要的输入介质,但是鼠标等设备的也是重要的输入手段,所以,对于他们的数据输入操作有如下约定:(1) 尽量减少用户的输入动作。为了方便用户的使用,鼠标应当尽量减少操作的幅度。(2) 保持显示信息和输入信息之间的一致性。对于用户来说,要保证其输入的数据在显示上与其他显示的视觉特性(例如:文字大小、颜色、位置等)要一致。(3) 允许用户自定义输入。用户也许希望定义自己专用的命令或略去某些类型的警告信息和动作确认,人机界面应当为用户提供这样做的机制。(4) 交互应当是灵活的,并且可调整成用户最喜欢的输入方式。用户类型与喜欢的输入方式有关,不同的用户喜欢不同的输
23、入方式。(5) 使用当前动作语境中不合用的命令不起作用。这可使得用户不去做那些肯定会导致错误的动作。(6) 让用户控制交互流。用户应当能跳过不必要的动作,改变所需做的动作的顺序,以及在不退出程序的情况下从错误状态中恢复正常。(7) 消除冗余的输入。除非也许发生误解,否则不要规定用户指定输入数据的单位;尽也许提供默认值,绝对不要规定用户提供程序可以自动获得或计算出来的信息。对于不同类型的用户在登录到系统后,由于有不同的权限,所以在主界面中会有一些项目受到限制而无法使用,所以要使这些项目不发生作用,以保证系统安全。6.3程序设计过程程序过程设计重要是在借助过程设计工具的情况下,对程序的具体实现过程
24、进行设计。程序的重要部分设计在这个环节完毕。在这个任务说明书中我们采用盒图的形式来表达程序的具体的设计过程,我们的系统设计为C/S结构,所以是客户端登陆系统的形式,盒图没有箭头,所以不允许随意转移控制,坚持使用盒图可以使程序员养成用用结构化的方式来思考问题。6.3.1登陆界面在用户登录时,在输入用户名和密码及用户类型的前提下将其与数据库中的数据进行比对,若一致,则打开主窗体;若不一致提醒错误,并规定重新输入。注册后保存用户信息,登陆界面的的程序盒图如图5.1所示: 连接数据库否是用户名和密码输入提醒输入否是账户是否存在提醒错误显示提醒框“登录成功”图8登陆界面程序盒图6.3.2后台管理操作对于
25、系统的各项信息的管理属于后台管理,管理程序盒图如图5.2所示: 否是是否进行操作图9后台管理操作程序盒图重新操作保存信息是操作是否成功否否是否选中数据进行操作是管理后台信息7软件测试 测试是为了发现程序中的错误而执行的程序。好的测试方案是极有也许发现迄今为止尚未发现的错误的测试方案,成功的测试是发现了至今为止尚未发现的错误的测试。为了能设计出有效的测试方案,软件工程师必须进一步理解并对的运用软件测试的基本准则:(1) 所有测试都应当能追溯到用户需求。从用户角度看,最严重的错误是导致程序不能满足用户需求的哪些错误。(2) 应当预案在测试开始之前就制定出测试计划。事实上,一旦完毕了需求模型就可以着
26、手制定测试计划,在建立了设计模型之后就可以立即开始具体设计的测试方案。(3) 把pareto原理应用到软件测试中。Pareto原理说明,测试发现的错误当中的80%很也许是由程序中20%的模块导致的。(4) 完全测试是不也许的,测试需要终止。测试无法显示软件潜在的缺陷,“测试只能证明软件存在错误而不能证明软件没有错误”。最初的测试通常把焦点放在单个程序模块上,进一步测试的焦点则转向在集成的模块簇中寻找错误,最后在整个系统中寻找错误。在测试中不也许运营途径的每一种组合。然而,充足覆盖程序逻辑,并保证程序设计中使用的所有条件是有也许的。(5) 应由独立的第三方来构造测试。第三方测试最大的特点在于它的
27、专业性、独立性、客观性和公正性。对于软件开发商来说,通过第三方测试机构的测试,不仅可以通过专业化的测试手段发现软件错误,帮助开发商提高软件的品质,并且可以对软件有一个客观、科学的评价,有助于开发商认清自己产品的定位。对于行业主管部门以及软件使用者来说,由于第三方测试机构独立公正的地位,可以对被测试的软件有一个客观公正的评价,帮助用户选择合适、优秀的软件产品。(6) 充足注意测试中的群集现象。测试后程序残存的错误数目与该程序中已发现的错误数目或检错率成正比。不要在某个程序段中找到几个错误就误认为该程序段就没有错误而不再测试,相反映该对错误群集的程序段进行重点测试。 参考文献 1 张海潘. 软件工
28、程导论(第6版)M.清华大学出版社.2023.82 萨师煊, 王珊. 数据库系统概论M. 高等教育出版社.2023.53 陈承欢,彭勇.管理信息系统基础与开发技术M.人民邮电出版社.20234 刘云生.数据库系统概论M.华中科技大学出版社.2023 5 殷人昆,郑人杰. 实用软件工程(第3版)M.清华大学出版社.2023.116 朱少民.软件测试方法和技术(第2版)M.清华大学出版社.2023.77 张友生.软件体系结构(第2版)M. 清华大学出版社,2023.118 石志国.ASP精解案例教程(修订版)M.清华大学出版社, 2023.79 李万宝.ASP.NET技术详解与应用实例M.机械工业
29、出版社, 2023.910 汪洋.网站设计全程教程M. 科学出版社. 2023.111 杨志国等.Delphi应用程序开发精彩实例M.机械工业出版社.2023.412 陈磊.PowerBuilder9数据库项目案例导航M.清华大学出版社. 2023.113 杨晶. VB6.0程序设计M. 机械工业出版社.2023.814 刘晓华.JSP应用开发详解(第三版)M. 电子工业出版社. 2023.115 何玉洁,李宝安.数据库系统教程M.人民邮电出版社. 2023.916 王珊著 数据库系统概论(第四版).高等教育出版社,2023.317 刘金玲等著数据库原理及应用实验与课程设计指导清华大学出版社1
30、8 钱雪忠等著数据库原理及技术课程设计(全新正版)清华大学出版社,2023.219 周屹著数据库原理及开发应用-实验与课程设计指导清华大学出版社,2023.1220 李春葆等著Visual Basic 数据库系统设计与开发清华大学出版社,2023.821 唐红亮著SQL Server数据库设计与系统开发教程清华大学出版社,2023.1022 丁钟俊著数据库系统原理及应用清华大学出版社,2023.423 李绍峰等著数据库系统原理及应用水利水电出版社,2023.224 万常选著数据库系统原理与设计(第2版)清华大学出版社,2023,.925 冯建华等著数据库系统设计与原理(第2版)清华大学出版社,2023.8