《POS超市收银系统.pdf》由会员分享,可在线阅读,更多相关《POS超市收银系统.pdf(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、资料范本资料范本本资料为 word 版本,可以直接编辑和打印,感谢您的下载POSPOS 超市收银系统超市收银系统地点地点:_时间时间:_说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容长沙民政职业技术学院毕业实践报告题目:POS 超市收银系统类型:指导教师:邓河系别:软件学院班级:软开 0934学号:0925073410、0925073416 0925073421姓名:凌柯、冯叶婷、刘波2012 年 04 月 28 日POS 超市收银系统软开 0934 班刘波、凌柯、冯叶婷学号:0925073
2、421 0925073410 0925073416【摘要】随着销售行业竞争日益激烈,小型超市收银系统的引入显得极其重要。它不但可以提高进销存管理的工作效率,而且可以有效减少盲目采购、降低采购成本、合理控制库存、减少资金占用并提高市场灵敏度,从根本上提升超市的市场竞争力。本系统运用计算机管理信息技术,建立数据库,对超市的进销存过程进行详细的分析,实现了对超市的进货、销售和库存的科学管理。它主要包括以下几大模块:登录模块、商品入库模块、商品销售模块、营业统计模块、商品信息模块、供应商信息模块、用户信息模块。各模块相许独立,同时又构成统一的整体。本文主要介绍了小型超市收银系统的环境、所用到的开发语言
3、、功能作用、设计的方案等各方面的内容,其目的在于让使用者了解此系统,使他们能更好的运用本系统,使此系统发挥出应有的作用。另外在文中还予以指出了系统开发有待于进一步完善发展的方向。【关键词】收银系统;linux;C+;MySql;QT目录 TOC o 1-2 h z u HYPERLINK l _Toc324161334 1 绪 论 PAGEREF _Toc324161334 h 1 HYPERLINK l _Toc324161335 1.1 研究课题的目的_Toc324161335 h 1 HYPERLINK l _Toc324161336 1.2 研究课题的意义_Toc324161336 h
4、 2 HYPERLINK l _Toc324161337 2 需求分析 PAGEREF_Toc324161337 h 3 HYPERLINK l _Toc324161338 2.1 可行性研究_Toc324161338 h 3 HYPERLINK l _Toc324161339 2.2 需求分析_Toc324161339 h 3 HYPERLINK l _Toc324161340 2.3 开发环境介绍 PAGEREF_Toc324161340 h 4 HYPERLINK l _Toc324161341 3 总体设计 PAGEREF_Toc324161341 h 10 HYPERLINK l _
5、Toc324161342 3.1 设计思想_Toc324161342 h 10 HYPERLINK l _Toc324161343 3.2 设计原则_Toc324161343 h 10 HYPERLINK l _Toc324161344 3.3 功能模块和结构设计 PAGEREF_Toc324161344 h 11 PAGEREF PAGEREF PAGEREF PAGEREF PAGEREF PAGEREF HYPERLINK l _Toc324161345 3.4 数据库设计_Toc324161345 h 12 PAGEREF HYPERLINK l _Toc324161346 4 系统实
6、现 PAGEREF_Toc324161346 h 19 HYPERLINK l _Toc324161347 4.1 登陆系统模块 PAGEREF_Toc324161347 h 19 HYPERLINK l _Toc324161348 4.2 商品信息模块 PAGEREF_Toc324161348 h 20 HYPERLINK l _Toc324161349 4.3 商品入库模块 PAGEREF_Toc324161349 h 21 HYPERLINK l _Toc324161350 4.4 商品销售模块 PAGEREF_Toc324161350 h 23 HYPERLINK l _Toc3241
7、61351 4.5 营业统计模块 PAGEREF_Toc324161351 h 27 HYPERLINK l _Toc324161352 4.6 供应商模块_Toc324161352 h 28 HYPERLINK l _Toc324161353 4.7 用户信息模块 PAGEREF_Toc324161353 h 30 HYPERLINK l _Toc324161354参 考 文 献 PAGEREF_Toc324161354 h 31 HYPERLINK l _Toc324161355总结 PAGEREF _Toc324161355 h 321 绪 论随着现代科学技术的迅猛发展,人们的生活方式正
8、发生着巨大的变化。计算机技术已经渗透到各个领域,成为各个行业必不可少的工具。特别是Internet 技术的推广和信息高速公路的建立,使得 IT 产业在市场竞争中越发 PAGEREF显示出其独特的优势。科学技术是第一生产力,科学技术的发展让人类更加受益。各类信息系统应用于各行各业,不但给管理上带来了极大的便利,而且还提高了工作效率。中小型超市在我国经济发展中具有重要地位,目前我国的中小型超市数量多,地区分布广泛,行业分布跨度大。随着全球经济一体化的发展和电子商务的兴起,中小型超市之间的竞争将越来越激烈。网络及电子商务的迅猛发展突破了时间、空间的局限性,给中小型超市带来了更多的发展机会,同时也增大
9、了超市行业间的竞争强度。这就要求中小型超市必须改变营业管理模式,提高运营效率。目前,我国中小型超市的信息化水平还很低。随着技术的发展,电脑操作及管理日趋简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,超市行业采用电脑管理进货、库存、销售等诸多环节也已成为必然趋势。1.1 研究课题的目的社会生活的现代化,使得市场的走向发生巨大变化,由于经济的发展,人民对生活的需求已经不再满足于丰衣足食的低度要求,许多人们往往不是单纯为满足生活必须去购买,而是凭着喜欢、意欲和感官去购买。如果一个商店能够打动顾客、吸引顾客,自然会顾客盈门,而近几年新兴产业中超级市场(supermarket)的现代化管理方式
10、和便捷的购物方式,尤其是它轻松的购物环境,往往是打动顾客,吸引顾客的最主要的原因,且良好的周密的销售服务更是赢得信誉、吸引的顾客的优势所在。商品经济的高速现代化发展也促进了竞争,使一切不甘落后的商家都争先恐后地采用最新的管理方法来加强自己的竞争地位。因为,超市经营者如果不掌握当今市场发展的这一走向,不能将超市现代化经营作为奴努力开拓的目标,就无法使经营活络、财源茂盛。现代化事业的发展,也使超市的管理数段发生前所未有的革命,计算机的运用正在发达国家的各类商店超市中普及。由于它能够准确记载和查询有关超市经营活动的大量数据,帮助超市经营者掌握和分析营销情况,及时作出正确决策,并且有利于商店内部财务、
11、工资、人员、库存、销售情况等管理,因而大大提高了现代超市的管理水平。国外很多发达资本主义国家的有关人士都在开发超市管理系统,开发出很多大型的软件,由于本人能力有限,开发一个小型超市管理系统,它可以使我们国内新起小型超市可以更好的操作。此系统的有减少差错,节省人力、减少顾客购物时间,增加客流量,提高顾客满意度等特点。我通过开发这个简单管理信息系统,巩固了以前所学的知识,提高了应用能力。1.2 研究课题的意义21 世纪,超市的竞争进入到了一个全新的领域,竞争不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。如何在激烈的竞争中扩大销售额、降低经营成本
12、、扩大经营规模,成为超市经营者努力追求的目标。为了提高物资管理的水平和工作效率,尽可能杜绝商品流通中各环节中可能出现的资金流失不明现象,商品进销存领域迫切需要引进信息系统来加以管理,而商品销售管理系统是当前应用于超市或者公司管理系统的典型代表。从消费者的角度来说,结帐时应该准备和快速,毕竟时间就是金钱。由于传统的超市收银管理给顾客和店主带来很多不便。针对这方面的缺陷,开发这个系统可以方便快捷地查出顾客结帐情况,商品信息情况,每天的售货情况,方便了对超市商品管理、人员管理,大大提高了超市的售货速度。进而加速了社会的发展速度,提高了人民的生活水平。总之,借助于信息系统可以大大提高超市的运作效率,通
13、过全面的信息的采集和处理,不仅辅助提高了超市的决策水平,还可以迅速提高超市的管理水平,为降低经营成本,提高效率,增强超市扩张力,提供有效的技术保障。2 需求分析2.1 可行性研究系统开始和可行性研究是为系统开发做前期准备1。在对一个项目的开发之前,我们总是要对其进行一个可行性分析与需求分析,通过和指导老师的共同分析得出了可行性开发计划。对于需求分析我们作了如下调查分析的需求。2.1.1 技术可行性随着软件编程技术的不断增加,功能的不断加强,和网络技术的不断成熟,信息安全的不断完善以及开发工具的日益进步,采用计算机系统来管理超市要求数据的采集、更新能够完整、准确和及时,所以开发通用的超市收银系统
14、已经完全可以做到。2.1.2 经济可行性因为通过网络传递销售信息,可以不受距离的限制,因此可以节约许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上是完全可行的。2.1.3 操作可行性本系统采用 Windows 图形界面,是大家熟悉的操作系统,对于用户只需要具有一般的计算机知识的人员都可以轻松上手。而且整个销售系统采用最友好的交互界面,简洁明了,不需要对数据库非常了解。由此,该系统的操作是可行的,有必要推广该系统。综合以上三方面,该系统具有很高的开发可行性,无论是从技术上经济上还是操作上。故此,可以设计该系统流程图,建立
15、数据字典。2.2 需求分析对于大型超市信息管理系统来说,通常它会把员工人事管理系统也包括在内。由于现考虑的是小型超市,其可承担的研发支费也有限2。所以在这个系统中,要实现的功能主要如下:2.2.1 功能要求对库存产品进行资料管理和统计;对产品的进货单和产品的销售单进行录入管理和统计;对进货、销售、库存情况进行查询;对用户进行管理,具体为添加用户、删除用户、修改用户密码;对供应商基本信息的管理;对赢利状况分析,进行营业统计,按年月日及商品类别统计;(1)数据精确度产品的进货单和销售单中,单价、金额采用浮点数,数量都取整数。(2)时间特性该系统软件从启动到进入系统登录界面的时间正常情况下少于 5
16、秒,录入并更新数据的时间正常情况下少于 10 秒。(3)适用性该管理系统软件适用于 Windows 2000/Windows XP 中文版下运行。2.3 开发环境介绍该系统属于管理信息系统,管理信息系统(MIS,Management InformationSystem)可以保存用户信息,通过对信息进行分析和处理,可以帮助用户制定计划、规范管理或提供决策依据。超市收银系统具有其特殊性,考虑到其为小型超市,所以在架构上面选择两层。2.3.1 C+介绍C+这个词在中国大陆的程序员圈子中通常被读做“C 加加”,而西方的程序员通常读做“C plus plus”,“CPP”。它是一种使用非常广泛的计算机编
17、程语言。C+是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。组成部分:1、C 子语言。C+支持 C 语言的几乎全部功能,主要是 c89 的部分,在语法上与 C 语言仅有极微妙的差别。2、面向对象的 C+语言。C+语言原本不具备面向对象的设计功能,然而随着面向对象编程的概念的提出以及如 Java 等语言的发展成熟,C+语言也开发出了支持面向对象功能的版本。3、泛型编程语言。C+强大(但容易失控的)模板功能使它能在编译期完成许多工作,从而大大提高运行期效率。4、STL(C+标准模板库,Sta
18、ndard Template Library)。随着 STL 的不断发展,它已经逐渐成为 C+程序设计中不可或缺的部分,其效率可能比一般的 native 代码低些,但是其安全性与规范性使它大受欢迎。特点:C+设计成静态类型、和 C 同样高效且可移植的多用途程序设计语言。C+设计成直接的和广泛的支援多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。C+设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。C+设计成尽可能与 C 兼容,籍此提供一个从 C 到 C+的平滑过渡。C+避免平台限定或没有普遍用途的特性。C+不使用会带来额外开销的特性。C+设计成无需复
19、杂的程序设计环境。优点:C+在一定程度上可以和 C 语言很好的结合,甚至目前大多数 C 语言程序是在 C+的集成开发环境中完成的。C+相对众多的面向对象的语言,具有相当高的性能。C+引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很多优秀的程序框架包括 MFC、QT、wxWidgets 就是使用的 C+。2.3.2 MySql 介绍MySQL 是一个小型关系型数据库管理系统,开发者为瑞典 MySQL AB 公司。在 2008 年 1 月 16 号被 Sun 公司收购。而 2009 年,SUN 又被 Oracle 收购。MySQL 是一种关联数据库管理系统,关联数据库将数据保
20、存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的 SQL“结构化查询语言”。SQL 是用于访问数据库的最常用标准化语言。MySQL 软件采用了 GPL(GNU 通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。特点:1使用 C 和 C+编写,并使用了多种编译器进行测试,保证源代码的可移植性2支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Wind
21、ows 等多种操作系统3为多种编程语言提供了 API。这些编程语言包括 C、C+、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。4支持多线程,充分利用 CPU 资源5优化的 SQL 查询算法,有效地提高查询速度6既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的 GB2312、BIG5,日文的 Shift_JIS 等都可以用作数据表名和数据列名7提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径8提供用于管理、检查、优化数据库操作的管理工具9可以处理拥有上千万条记录的
22、大型数据库10支持多种存储引擎2.3.3 QT 介绍Qt 是一个 1991 年由奇趣科技开发的跨平台 C+图形用户界面应用程序开发框架。它既可以开发 GUI 程式,也可用于开发非 GUI 程式,比如控制台工具和服务器。Qt 是面向对象语言,易于扩展,并且允许组件编程。2008 年,奇趣科技被诺基亚公司收购,QT 也因此成为诺基亚旗下的编程语言工具。优势:面向对象Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。丰富的 A
23、PIQt 包括多达 250 个以上的 C+类,还提供基于模板的 collections,serialization,file,I/O device,directory management,date/time类。甚至还包括正则表达式的处理 功能。支持 2D/3D 图形渲染,支持 OpenGL大量的开发文档XML 支持Webkit 引擎的集成,可以实现本地界面与 Web 内容的无缝集成但是真正使得 Qt 在自由软件界的众多 Widgets(如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脱颖而出的还是基于 Qt 的重量级软件 KDE。Qt Creator:在发布 Qt 4
24、.6 的同时,作为 Qt 开发跨平台 IDE 的 Qt Creator 也发布了更新版本。Qt Creator 1.3 和 Qt 4.6 共同构成的 Qt SDK,包含了开发跨平台应用程序所需的全部功能。Qt Creator 是一个用于 Qt 开发的轻量级跨平台集成开发环境。QtCreator 可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境(IDE),并确保首次接触 Qt 框架的开发人员能迅速上手和操作。Qt Creator 包含了一套用于创建和测试基于 Qt 应用程序的高效工具,包括:一个高级的 C+代码编辑器 上下文感知帮助系统 可视化调试器 源代码管理 项目和构建管理
25、工具Qt Creator 在 LGPL2.1 版本授权下有效,并且接受代码贡献。2.3.4 嵌入式系统简介嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置(devices used to control,monitor,or assist the operation ofequipment,machinery or plants)。从中可以看出嵌入式系统是 HYPERLINKhttp:/ t _blank软件 和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以 HYPERLINK http:/ t_blank计算机技术 为基础、软件硬件可裁剪、
26、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的 HYPERLINKhttp:/ t _blank专用计算机 系统。特定的 HYPERLINK http:/ t_blank应用程序嵌入式系统一般由以下几部分组成:嵌入式微处理器外围硬件设备嵌入式操作系统特点:1系统内核小。由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。比如 Enea 公司的 OSE 分布式系统,内核只有 5K,而 Windows 的内核?简直没有可比性。2专用性强。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一
27、系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全两个概念。3系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。4高实时性的系统软件(OS)是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。5嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函
28、数以及和专家库函数接口,用户必须自行选配RTOS(RealTime Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。6嵌入式系统开发需要开发工具和环境。由于其本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。2.3.5Linux 简介基本思想:Linux 的基本思想有两点:第一
29、,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说 Linux 是基于 Unix 的,很大程度上也是因为这两者的基本思想十分相近。多任务、多使用者:与 windows 系统不同的,linux 主机上可以同时允许多人上线来工作,并且资源的分配较为公平,比起 windows 的单人假多任务系统要稳定的多啰!这个多人多任务可是 unix-like 上面相当好的一个功能。使用者与群组的规划:在 linux 的机器中,档案的属性可以分为可读、可写、可执
30、行等参数来定义一个档案的适用性,此外,这些属性还可以分为三个种类,分别是档案拥有者、档案所属群组、其它非拥有者与群组者。这对于项目计画或者其它计画开发者具有相当良好的系统保密性。桌面环境:在图形计算中,一个桌面环境(Desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI)。这个名称来自桌面比拟,对应于早期的文字命令行界面(CLI)。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。3 总体设计3.1 设计思想(1)系统分成几个相对独立的模块,但这些模块都进行
31、集中式管理。(2)分层的模块化程序设计思想,整个系统采用模块化机构设计。作为应用程序有较强的可操作性和扩展性。(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。3.2 设计原则为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了,如下原则:(1)合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工作情况,进行诸如商品进货、销售等工作。(2)实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。
32、(3)准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如类型匹配,长度不超限等)。(4)易操作原则:要求设计的系统功能齐全,接口友好,操作方便,必要的地方进行提示。(5)源程序可读性原则:为了便于其它设计,维护人员读懂代码或以后的代码修改,软件升级维护,既可能做好代码注释工作。(6)优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简洁明了,也方便了将来的维护。(7)安全性原则:该系统的管理员具有可设置登陆密码,修改密码的权限。经过前面的设计,我们对整个系统有了一个初步的认识,并对各
33、个模块进行了功能分化。3.3 功能模块和结构设计小型超市管理系统包括系统管理员、库存管理员、商品销售员三大角色,对应本系统中的权限,根据权限的不同,可操作的业务不同。本节将对小型超市收银系统进行总体设计,介绍系统的总体功能和模块划分。3.3.1 系统结构小型超市收银系统所包含的功能模块有:商品入库模块、商品销售模块、营业统计模块、商品信息模块、供应商信息模块、用户信息模块。系统功能结构图见图 3-1。小型超市收银系统商品入库商品销售营业统计商品信息供应商信息用户信息图 3-1 系统功能结构图超市收银系统的业务流程图,如图 3-2 所示。图 3-2 系统业务流程图3.3.2 系统各功能模块定义(
34、1)商品入库模块该模块用于实现商品的入库管理,当供应商所供商品出现问题需退货时可以实现退货管理。另外用户还可以根据条件查询相关的入库记录。(2)商品销售模块该模块用于实现商品售出、收银功能。顾客倘若对商品不满意还可以进行退货处理。(3)营业统计模块该模块实现商品销售情况及入库情况统计分析,让系统用户可以根据时间查询统计信息。(4)商品信息模块该模块实现商品基本信息的管理,如商品的添加、修改、删除操作、条件查询。对于低于库存报警值的商品会显示出来。(5)用户信息模块该模块实现用户基本信息的管理,含用户的添加、修改、删除,用户信息记录的浏览。(6)供应商信息模块该模块实现供应商基本信息的管理,系统
35、用户可以实现供应商信息的添加、删除、修改,条件查询以及查看供应商可提供的相关商品。3.4 数据库设计数据库在一个管理信息系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致,同时,合理的数据库也将有利于程序的实现。设计数据库系统时应该充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。3.4.1 数据库的需求分析MySql 数据库的建立方法可以分成两个阶段,第一个阶段是根据要输入的数据性质,新增表并设置表的字段名称、数据类型和语句,第二个阶段是在表内输入数据。根据上述系统功能的分析
36、,得出系统有如下需求信息:(1)系统必须能够区别各种用户,如库存员、收银员。(2)系统支持用户的增加、登陆。(3)系统必须能够显示各种商品的信息,并允许用户使用搜索功能来查找自己所需要的商品。(4)系统必须能将所有商品信息进行分类。(5)系统能支持用户将商品入库、退货。(6)系统能支持用户将商品售出、退货。(7)系统支持供应商信息的管理。(8)系统支持营业情况的查询。经过上述功能分析和需求总结,设计如下的数据项和数据结构:(1)用户,包括数据项:编号,用户名,密码,权限。(2)商品类别,包括数据项:编号,商品名称。(3)商品,包括数据项:商品编号(条形码),商品名称,类别,库存量、报警值,计量
37、单位,规格,售价。(4)供应商,包括数据项:名称,联系人,联系电话,传真,地址,合作起始时间。(5)销售记录,包括数据项:编号,操作人,商品编号,售价,售出数量,售出时间。(6)进货记录,包括数据项:商品,供应商,操作人,进价,进货数量,进货时间。(7)供货,包括数据项:供应商,商品,最新进价。3.4.2 数据库概念结构设计得到上面的数据项和数据结构后,就可以设计出系统中的各个实体以及他们之间的关系,为后面的逻辑结构设计打下基础。本系统根据上面功能分析和需求总结设计出的实体共有下面几个,下面分别列出本系统所使用到的各基本实体和各实体之间的联系。如图 3-3 所示:图 3-3 实体联系(E-R)
38、图3.4.3 数据库逻辑设计(1)表设计将数据库的概念结构设计转换成关系模型,就得到了以下的几张数据库中的表7:下面分别介绍这些表。系统登录用户的基本信息保存在用户信息表里,其中对于用户编号,通过自增方式实现,无需用户手动编号,编号从 1000 起始。详细说明如表 3-1 所示。表 3-1 用户信息表(Users)商品种类繁多,可以划分为大范围的不同种类。对于这些种类,已事先划分并存储于数据库中,不需要用户自动添加。商品类别信息表如下表 3-2。表 3-2 商品类别信息表(GoodsType)商品信息表记载的是商品的详细信息,含商品编号、名称、类别、计量单位、规格、售价、库存量等等。具体的各字
39、段属性说明和类型如下表 3-3。表 3-3 商品信息表(GoodsInfo)入库记录表包含商品入库的相关信息,入库信息有入库时间、操作人、进库商品、商品数量等。每一笔商品的入库都对应一个编号,具有唯一性。在这里,对编号的处理就是用入库时的时间做编号。具体的各字段的属性说明和类型如下表 3-4 所示。表 3-4 入库记录表(StockInfo)商品销售信息存储在销售记录表中,流水编号也采用时间作为编号,具有唯一性。各字段的详细情况见下表 3-5。表 3-5 销售记录表(SellInfo)供应商供货价格表中记载的是供应商所可商品的信息,含商品编号、供货商编号、最新进价。各字段的详细信息见下表 3-
40、6。表 3-6 供应商供货价格表(StockPrice)供应商信息表记录的是供应商的基本信息,其中编号由系统自动编号,采取主键自增方式,编号始于 1000。各字段的详细信息见下表 3-7。表 3-7 供应商信息表(Company)(2)视图设计根据逻辑模型所设计出的各种数据表构成了完整的物理数据库。由于业务范围的限制,每一个用户不可能访问数据库系统中的所有数据表,所访问的只是数据表的一个子集。我们把一个用户能访问到的数据表集合称为一个视图(View)8。视图是以一致和直观的方式提供给用户的数据形式。视图以这种形式给用户提供数据,一方面为了满足用户对数据访问的方便性、简洁性需要,使数据在视图中以
41、更符合用户要求和喜好的形式展现出来,另一方面,为了保证数据的一致性,最好不要把数据表直接提供给最终用户。该数据库中涉及到的视图有两个:视图 QuerySell,对应的 Transact-SQL 语句:SELECT dbo.SellInfo.SellID,dbo.SellInfo.GoodsID,dbo.GoodsInfo.GoodsName,dbo.GoodsType.TypeName,dbo.Users.UserName,dbo.SellInfo.SellPrice,dbo.SellInfo.GoodsNum,dbo.SellInfo.RemarkFROM dbo.GoodsInfo INN
42、ER JOINdbo.SellInfo ON dbo.GoodsInfo.GoodsID=dbo.SellInfo.GoodsIDINNER JOINdbo.Users ON dbo.SellInfo.Operator=dbo.Users.UserID INNER JOINdbo.GoodsType ON dbo.GoodsInfo.TypeID=dbo.GoodsType.TypeID视图 QueryStock,对应的 Transact-SQL 语句:SELECT dbo.StockInfo.StockID,dbo.StockInfo.GoodsID,dbo.GoodsInfo.GoodsN
43、ame,dbo.GoodsType.TypeName,dbo.Company.CompanyName,dbo.Users.UserName,dbo.StockInfo.GoodsPrice,dbo.StockInfo.GoodsNum,dbo.StockInfo.RemarkFROM dbo.StockInfo INNER JOINdbo.GoodsInfo ON dbo.StockInfo.GoodsID=dbo.GoodsInfo.GoodsIDINNER JOINdbo.Users ON dbo.StockInfo.Operator=dbo.Users.UserID INNER JOIN
44、dbo.Company ON dbo.StockInfo.CompanyID=dbo.Company.CompanyIDINNER JOINdbo.GoodsType ON dbo.GoodsInfo.TypeID=dbo.GoodsType.TypeID4 系统实现系统用 Mysql 做后台数据库,进行基于 linux 开发平台的应用程序开发,基本实现其功能。以下将描述系统几个主要功能模块的运行和测试的结果。4.1 登陆系统模块当我们建立了一个完整的系统时,尤其对于管理系统,对于进入每个系统的人员我们都要对他进行身份验证,我们当然不希望有任何人进入该系统进行恶意的破坏,对系统中的数据进行修改
45、,维护该系统的系统管理员也不希望有任何麻烦,所以对系统进行安全保护显的很重要,无论对于谁,系统的安全问题是首要的9。在用户登录系统时,用户只需要输入分配的用户 ID,只要 ID 号正确就可以自动显示出相应的用户名。为了防止他人获知用户的密码,增强系统的安全性,我们将待输入密码的文本框是 QT 自带的文本加密框的 PassworBox,当用户输入密码后,系统将对所输入的密码进行检查,只有当密码正确才可进入到系统主界面,否则系统会提示错误。登录界面如图 4-1 所示。图 4-1 登录界面图链接数据库的代码:QSqlDatabasedb=QSqlDatabase:addDatabase(QMYSQL
46、);db.setHostName(localhost);db.setDatabaseName(mysql);db.setUserName(root);db.setPassword(1111);if(!db.open()MessageBox.information(this,”error”,Failed to connect to rootmysql admin);用户登录成功后,会记下登录该系统的用户的权限,权限的不同,进入主界面后可进行的操作而异,体现在控件的可响应用户的鼠标点击事件与否。主界面如图 4-2 所示。由于该用户属商品销售中的收银员,可以看到他只具有商品销售的权限。图 4-2 系
47、统主界面图4.2 商品信息模块商品基本信息管理模块,用户可以对商品信息加以管理,界面可交互性强,运行时的界面图如下图 4-3。其中红色显示为低于库存值,需要进货的商品。图 4-3 商品基本信息管理界面图4.3 商品入库模块具有库存管理权限的用户进行商品入库操作时,需要输入商品编号,至于供应商可以从下拉列表中选择,如果供应商记录未添加至数据库,可先单击右侧的“添加供应商”按钮。依次输入进货价、进货数量,当进货数量为负数时进行就是退货操作。确认进货时若发现为新商品则提示先新增商品,进货记录成功添加出现对话框提醒。进货运行界面如下图 4-4 所示。图 4-4 商品入库运行图Void Dialog1:
48、pushBtAdd_clieck()int flag;Qstring findid=”select goods_id from Goods_tbl wheregoods_id=?”;if(flag=juge(findid,goods_id)=1)MessageBox.information(this,”error”,”this goods is have”);return;在入库查询中,可以根据各种条件组合查询,在输入商品名称时可实现模糊查询匹配,满足条件的入库记录将出现在网格中10。如图 4-5。图 4-5 入库查询界面图4.4 商品销售模块商品销售模块能处理商品销售业务过程,输入商品编号后
49、回车确认后单击“确认”按钮就可将商品添加至待售商品列表。根据快捷键操作,修改数量。当顾客对购买的商品不满意时,在未使用商品的情况下,可以对商品进行退货。这时只需将商品数量的修改置为负数即可。另外可以在备注框中输入退货原因信息,方便了解退货原因,反馈给商品厂家。商品销售运行界面图如下图4-6 所示。图 4-6 商品销售运行界面图开发商品销售模块过程中,对输入的数据要进行严格控制。此时,用到较多的是 TextBox 控件的 KeyPress 事件和 TextChange 事件,下面对这两个事件进行详细说明。(1)实收金额文本框中控制金额的输入合理,只能是数字键、BackSpace键、小数点键被按下
50、时才接受所按下的键,实现的代码如下11:Void Widget:txtGetMoney_KeyPress(object sender,KeyPressEventArgs e)if(e.KeyChar!=8&!char.IsDigit(e.KeyChar)&e.KeyChar!=.&e.KeyChar!=-)MessageBox.Show(输入数字);/弹出提示e.Handled=true;(2)找零金额由系统自动计算出并显示在文本框中,实现代码如下:Void Widget:txtGetMoney_TextChanged(object sender,EventArgs e)/当所收付款改变时,所