范文一:VC++课程设计报告--超市货物管理系统
琼州学院电子信息工程学院
《VC++程序设计》课程设计报告
项目名称: 琼州学院超市货物管理系统
专 业: 计算机科学与技术
年 级: 2010级
姓 名: 姚 亚 辉
学 号: 10253054
指导老师: 熊 志 斌
2011年12月
《VC++程序设计》课程设计报告
摘 要
随着信息时代的来临,计算机离人们的生产生活越来越近,特别是在企业中,计算机已经在潜移默化中促使企业由机械化生产转向信息化时代。一方面,企业规模的扩大,过去那种采用人工来计划生产销售过程的模式已经不能跟上越来越大的信息量要求;另一方面,越来越廉价的计算机硬件设备在一定程度上也促使了企业的计算机普及,于是ERP(ENTERPRISE RESOURCE PLANNING(企业资源计划))系统也应用而生。
厂房、生产线、加工设备、检测设备、运输工具等都是企业的硬件资源,人力、管理、信誉、融资能力、组织结构、员工的劳动热情等就是企业的软件资源。企业运行发展中,这些资源相互作用,形成企业进行生产活动、完成客户订单、创造社会财富、实现企业价值的基础,反映企业在竞争发展中的地位。ERP系统的管理对象便是上述各种资源及生产要素,通过ERP的使用,使企业的生产过程能及时、高质地完成客户的订单,最大程度地发挥这些资源的作用,并根据客户订单及生产状况做出调整资源的决策。
伴随着计算机硬件的进步,计算机软件高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。相应地,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。80年代初出现的面向对象的程序设计,以C++、DELPHI、JAVA为代表为用户提供在模块化的执行方式,提出的对象(OBJECT)的概念,其方法就是软件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完全不用关心。而同时数据库技术也经过由网状数据库、层次数据库向目前的以ORACLE、SQLSERVER、ACCESS为代表的关系数据库的进化。
本文就以超市库存管理软件为研究对象,使用VC6为开发工具,ACCESS为数据源,探讨ERP软件中重要的进销存问题。
关键词:管理,入库,出库
1
《VC++程序设计》课程设计报告
目 录
1.引言 ....................................................................... 4 2.系统设计 ................................................................... 5 2.1可行性分析 ............................................................. 5
析 ........................................................... 5 2.1.1调查分
2.1.2必要性分析 ......................................................... 5 2.1.3可行性分析 ......................................................... 5 2.1.4开发目标 ........................................................... 7 2.2可行性分析 ............................................................. 7 2.2.1编写目的 ........................................................... 7 2.2.2功能分析 ........................................................... 8 2.2.3数据分析 ........................................................... 8 2.2.4原理框图 ........................................................... 8 2.3模块设计 ............................................................... 8 2.3.1模块介绍 ........................................................... 8 2.3.2 模块框图 .......................................................... 9 2.4概要设计 ............................................................... 9 2.4.1 数据库-ER图 ....................................................... 9 2.4.2 模块功能分析 ..................................................... 10 2.5项目实施周期 .......................................................... 11 2.5.1开发环境 .......................................................... 11 2.5.4关键问题 .......................................................... 11 2.5.5运行环境 .......................................................... 11 3.界面设计 .................................................................. 12 3.1登陆界面 .............................................................. 12 3.2主界面 ................................................................ 12 3.3商品操作界面 .......................................................... 13 3.4供货商家 .............................................................. 14 3.5库存报警 .............................................................. 15 3.6管理员账户修改 ........................................................ 15
2
《VC++程序设计》课程设计报告
4.测试总汇 .................................................................. 16 5.本章小结 .................................................................. 17 结 论 ....................................................................... 18 参考文献 .................................................................... 19
3
《VC++程序设计》课程设计报告
1.引言
随着计算机技术的发展,计算机技术已经渗透到各个领域,成为各个行业必不可少的工具,特别是internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示独特的优势,步入信息化的时代,有巨大的数据信息等待加工处理和传输,这使得对数据的进一步开发和利用显得尤为迫切。
作为国内市场的一些中小型超市,他们在信息化过程中的步伐落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必不可少的。
通过对超市的调查,针对现在各种中小型超市对经营业务和管理的实际需要,开发了这套超市货物管理系统,我们针对当前各超市管理的特点,采用windows图形用户界面这一易学易用的操作环境,在系统设计过程中,我们尽量采用易懂易读的人机界面,是用户可以在短期内完全掌握。我们又始终发系统的正确性放在首位,力求数据的完整和处理的正确。在此基础上优化程序代码,加速系统运行和减少对系统的资源的占用。
4
《VC++程序设计》课程设计报告
2.系统设计
2.1可行性分析
2.1.1调查分析
系统的初步调查是系统设计规划阶段的第一项活动,也是整个系统开发的第一项活动,主要目标就是了解组织机构、工作现状。
正式开发管理信息系统之前进行调研是非常必要的,其必要性主要表现在以下几个方面。
[1]明确用户的要求,以根据调查结果进行可行性分析,确认系统的开发是否可行。
[2]提出新系统的人员并不都是系统研究人员,有些人对功能和处理数据的方法没明确的认识。它们只是根据自己业务工作的需要提出了要求,系统开人员要对此进行详细的调查和分析,确认用户的要求可以通过现有的计算技术实现,保证开发的管理信息系统的功能与用户提出的要求相吻合。
[3]货物管理系统的现行系统可能是手工系统,也可能是使用和计算机的系统,无论是何情况,都要详细地调查现行系统中信息处理的具体情况,系统内部功能结构,以便设计也一个合理的、好的新系统逻辑模型,为新系统的设计工作打好基础,保证整个系统开发的质量。
通过对整个货物进销存信息管理系统目前主要管理业务的了解,主要工作是由管理员负责完成的。首先管理员手工录入目前所有产品或配件信息,并负责对其进行管理和维护;建立详尽的客户信息,并对进出货进行登记,便于随时查询销售状况,以及利润状况。
总之,必需对现行系统进行详细调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,新系统的开发却失败的悲剧发生。 2.1.2必要性分析
随着销售数据规模的日益庞大,商品数目也在呈指数级的增长,这样就造成了:
[1]产品库存量大,工作人员为产品进出库登记时的工作负荷重、效率低。
[2]进出货过程中,时常会出现错误,增加了业务成本。
[3]对进出货数据进行查询时,需要手工翻阅大量的票据,大大降低了查询效率,而查询的结果不尽人意。
以上缺点直接或间接地降低了工作效率,最终影响了商品进出库的管理。 2.1.3可行性分析
由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。
本系统的设计是在WindowsXP中文版操作系统环境下,使用Visual C++ 6.0中文版开发成功的。数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如下:
5
《VC++程序设计》课程设计报告
Visual C++是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在Visual C++环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、动态数据访问(ADO)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
总的来说,Visual C++具有以下特点:
[1]可视化编程:
用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。Visual C++提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual C++自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。
[2] 面向对象的程序设计
4.0版以后的Visual C++支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而Visual C++则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual C++自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。
[3] 结构化程序设计语言
Visual C++是在C++语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual C++语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。 Visual C++是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计Visual C++程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离Visual C++环境,直接在Windows环境下运行。
[4] 事件驱动编程机制
Visual C++通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击“(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。 在用Visual C++设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。
[5] 访问数据库
Visual C++具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual Basic还能直接编辑和访问其他外部数据库,如dBASE,FoxPro,Paradox等,这些
6
《VC++程序设计》课程设计报告
数据库格式都可以用Visual Basic编辑和处理。
Visual C++提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。
[6]动态数据交换(DDE)
利用动态数据交换(Dynamic Data Exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。Visual Basic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。
[7]对象的链接与嵌入(OLE)
对象的链接与嵌入(OLE)将每个应用程序都看做是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。OLE技术是Microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看做是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用OLE技术,可以方便地建立复合式文档(compound document),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作。
[8]动态链接库(DLL)
Visual C++是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库技术将C/C++或汇编语言编写的程序加入到Visual C++应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能。 2.1.4开发目标
开发建立一套数据库应用系统——进销存信息管理系统,用于管理商品的录入、运转、查询以及进库、出库等信息。系统为C/S结构。另外,一个界面友好、操作方便的进销存信息管理系统能够更好地解决产品繁琐的统计工作。
2.2可行性分析
2.2.1编写目的
本软件对超市的采购、销售、仓库等实际运作流程均实现了动态的计算管理,使得超市经营者能够迅速的掌控公司的实际运作状况、合理做出公司的战略决策。软件提供的商品入库、商品销售、商品库存报警、减少人为的差错、最大限度堵塞漏洞的基础上很好的减轻了采购、销售、仓库、等环节工作人员的劳动强度,全面体现了现代企业管理理论所倡导的工作高效、环境轻松的氛围。
7
《VC++程序设计》课程设计报告
2.2.2功能分析
[1]操作权限设置功能强大。既可以设置各种菜单级别的操作权限,也可以设置“成本管理权”、“会员管理权” 、“单据删除权” 、“销售退货权” 、“售价调整权” 及“销售反确认权”等权限。
[2]订货功能功大。软件可根据商品资料中设置的最高库存、最低库存及当前库存自动升级定货清单,也可以通过提取补货数据生成定货清单,让您的订货工作轻松、方便。
[3]独创的单据确认与反确认功能,方便用户对单据输入、修改。
[4]批发价、零售价可自动生成,减轻了定价的工作量。
[5]预警系统功能强大,可根据库存货量的多少,提示用户及时补货。
[6] “傻瓜化、人性化”设计管理,简单易用,不懂计算机也能轻松应对编制记帐凭证、查询等操作。
2.2.3数据分析
[1]管理员:管理员编号、管理员密码、管理员账户。
[2]商品信息:商品编号、商品名、当前库存、最大库存、最小库存
[3]入库信息:商品编号、商家编号、入库数量,购入价格、购入日期
[4]日志操作:管理员账户、操作、日期。
[5]商家信息:商家编号、商家名称、商家地址、负责人、电话、email 。
[6]出库信息:商品编号、出库数量、管理员账户、出库时间。
2.2.4原理框图
入库 服务器 销售
操作管理
图2.2.4-1 原理框图
2.3模块设计
2.3.1模块介绍
[1]进货管理:用于登记入库商品的名称、单价、数量及入库日期等
[2]销售管理:用于登记销售商品的名称、单价、数量及销售日期。
[3]库存管理:用于查询商品适(当)时的库存情况。库存过多、过少商品报警的查询。
8
《VC++程序设计》课程设计报告
2.3.2 模块框图
进货管理 销售管理
采购进货 销售开单
进货退单 销售退单
进货结算 销售结算
进货汇总 销售汇总
2.4概要设计
2.4.1 数据库-ER图
E-R是实体-联系方法是来描述现实世界的概念模型,它可以方便、准确地表述出信息世界中的常用概念,是抽象和描述现实世界的有力工具。下面是该系统的E-R图:
9
《VC++程序设计》课程设计报告
编号 数量 进货价 经办人
进货日期
进货单 进货商品
商品
编号 数量 销售价 经办人
销售日
期 销售单 销售商品
商品
图2.4.1-1对象详细图
管理员 超市基本信息
商品分类
数据库 供应商基本信
息
销售单 进货单 商品档案
图2.4对象联系图
2.4.2 模块功能分析
[1]进货管理:
"进货开单":进货开单、商品的添加、进货价的调整等。 "进货退货":进货退回。
"进货单汇总":进货单统计报表。
"退货单汇总":退货单统计报表。
"所有进货商品汇总":所有进货商品的统计报表。 "所有退货商品汇总":所有退回商品的统计报表。 "所有无退货进货商品汇总":所有无退货进货的统计报表。 [2]销售管理:
"销售开单":销售开单、商品的添加、零售价的调整等。 "销售退货":销售退回。
"所有销售商品汇总":所有销售商品的统计报表。 "所有退货商品汇总":所有退回商品的统计报表。 [4]库存管理:
10
《VC++程序设计》课程设计报告
"非进货入库":其他入库。
"非进货出库":其他出库。
"库存查询":库存统计报表。
"所有过少报警商品统计":所有库存过少的报警统计。
"所有过多报警商品统计":所有库存过多的报警统计。
[5]系统管理:
"用户管理":管理员用户信息的管理。
"系统日志":系统日志文件的查看。
"重新登陆":重新登陆。
"修改密码":密码的修改。
"退出":系统得退出。
2.5项目实施周期
由于刚刚接触到软件实例的开发,考虑到有过多的制约项目顺利进行和完成的因素都有可能最终导致项目周期的不可预知性。考虑到这些情况,项目小组全体人员尽自己最大的努力,力争项目产品的高质量、早期完工。项目实施期为2011年11月10日至2011年12月10日。
2.5.1开发环境
前台开发环境:Microsoft Visual C++ 6.0
后台数据库环境:Microsoft Access 2003/2007 2.5.4关键问题
本开发项目中可能影响到项目进度的关键问题主要是:
数据库的建立
入库,销售中记账凭证的登记。
2.5.5运行环境
开发完成后,该产品在Windows 2000(Windows XP),Windows 2003等平台下运行。实现简单的超市进销存管理。
11
《VC++程序设计》课程设计报告 3.界面设计
3.1登陆界面
图3.1登陆界面 3.2主界面
图3.2主界面
12
《VC++程序设计》课程设计报告 3.3商品操作界面
图3.3商品操作界面
13
《VC++程序设计》课程设计报告 3.4供货商家
图3.4供货商家界面
14
《VC++程序设计》课程设计报告 3.5库存报警
图3.5库存报警界面 3.6管理员账户修改
图3.6管理员密码修改
15
《VC++程序设计》课程设计报告
4.测试总汇
软件测试是为了发现错误而执行程序的过程,其目的在于以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷。测试主要是由人而不是由机器执行,因而存在心理学的问题。
软件测试技术大体上可以分成白盒测试和黑盒测试。白盒测试技术依据的是程序的逻辑结构,主要包括逻辑覆盖和路径测试技术等;黑盒测试技术依据的是软件行为的描述,主要包括等价类划分、边界值分析和状态测试等。
程序的静态测试是在不执行程序的条件下,有条理地仔细审查软件设计、体系结构和代码,从而找出软件错误的过程,其主要方法包括同行审查、代码会审、代码走查等。
由于软件错误的复杂性,软件测试需要综合应用测试技术,并且实施合理的测试步骤,即单元测试、集成测试、确认测试和系统测试。单元测试集中于每一个独立的模块;集成测试集中于模块的各组装;确认测试集中检验是否符合需求规格说明书中确定的各种需求;系统测试集中检验系统所有元素之间协作是否合适,整个系统的性能和功能是否满足。
软件调试则是在软件测试成功后开始的工作,其任务是进一步诊断和改正程序中的错误。软件调试是程序员自己进行的技巧性很强的工作,调试工作的困难与人的心理因素和技术因素都有关系,需要繁重的脑力劳动和丰富的经验。
软件测试中存在许多机械的和重复性的工作,对此可以应用计算机进行自动化测试,从而可以大大促进软件测试的质量和产品化。但测试自动化具有局限性,不可能取代手工测试。
16
《VC++程序设计》课程设计报告
5.本章小结
此系统是在吸取超市行业众多成功人士、成功企业、经营管理专家成功秘诀的基础上开发的产品。本软件融科学性、专业性、独创性于一体,为业界提供全面、系统、优秀的解决方案,诚为超市管理系统的杰出代表。本软件以VC++为开发工具,界面优美,功能强大.可以运行于Windows系列操作系统。
经过此次项目的分析与设计,我从整体上对软件的开发有了新的认识,理论结合实际,无论此次设计是否成功,我想对我们的将来都会给于很大帮助,在此我非常感谢指导教师对我们的帮助,代码的设计还有一部分没有完善,希望在以后的学习中继续对本系统的继续完善。
17
《VC++程序设计》课程设计报告
结 论
在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对超市管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。虽然货物管理应用不是很多,但是未来的发展方向,在本次开发过程由于硬件的限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本管理系统是一套超市在日常管理中必不可少的管理软件,通过开发这个系统,我掌握了的项本过程,了解了的基本知识巩固了我对Visual C++ 6.0的学习,但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法。
18
《VC++程序设计》课程设计报告
参考文献
[1] Visual C++实用教程、郑阿奇等主编、电子工业出版社、2003年8月出版
[2] Visual C++ 6.0 用户界面制作技术与应用实例 、齐舒创作室、中国水利水电出版社、1999年3月出版
[3] Visual C++ 6.0开发技巧与实例、同志工作室、人民邮电出版社、2000年5月出版
[4] Visual C++ MFC编程实例、斯文克(美)、机械工业出版社、2000年1月
[5] 深入浅出 MFC 、(台)候俊杰译著、华中科技大学出版社、2001年1月
[6] Visual C++程序设计教程、杨庆祥等主编、航空工业出版社、2005年3月
[7] Visual C++教程、郑阿奇编著、清华大学出版社、2010年9月
[8] Visual C++程序员实用大全、怀特(美)等著、中国水利水电出版社、2005年5月
19
范文二:超市管理系统课程设计
超市管理系统设计说明书
姓 名: 许朝飞 学 号: 20120450114 班 级: 12计算机1班 指导教师: 崔守良 完成日期: 2015.4.20
目 录
第一章 功能介绍 ...................................................................................... 1 1.1功能描述 ............................................ 1 1.2 功能特点 . ........................................... 1 第二章 软件设计 ...................................................................................... 2 2.1软件需求陈述 ........................................ 2 2.2 软件需求分析 . ....................................... 2 2.3软件整体结构设计 .................................... 3 2.4模块的详细设计 ...................................... 4 2.5.1 数据库概念结构设计 ................................................................ 5 2.5.2 数据库逻辑结构设计 ................................................................ 6 2.5.3 数据库物理结构设计 ................................................................ 7 第三章 系统的实现 .................................................................................. 8 3.1 项目组织角色划分 .................................... 8 3.2软件开发环境及其配置 ................................ 9 一、开发环境 ........................................... 9 第四章 学习软件工程的心得体会 . ..................................................... 11 参考文献 .................................................................................................. 11
超市信息管理系统设计说明书
第一章 功能介绍
1.1功能描述
1. 本系统采用信息安全技术,通过权限验证才能进入登陆界面。
2. 本系统的员工、供应商基本信息,管理员可以进行查询、录入、修改、删除。
3. 本系统的商品进货、销售、退货、库存等信息,管理员可以进行查询、录入、修改、删除。
4. 本系统可以备份数据资料到保密的文件夹中。
5. 本系统专门提供了一个时钟界面,完全由代码绘制,时间准。
1.2 功能特点
1. 根据需要,能过及时、高效、简易的管理信息并更新信息的系统。 2. 对整个超市信息数据进行查询、录入、修改、删除等操作的综合系统。 3. 一个人机交互的系统,良好的客户体验,以及更加方便对数据的存储与修改。
4. 一个需要与先进管理方法和手段相结合的信息系统。
5. 每一个员工对应一个账户和密码,安全性高。对于员工何时登陆系统,数据库会进行保存。进一步提高了安全性。
第二章 软件设计
2.1软件需求陈述
超市信息管理系统是一个由员工基本信息、供应商基本信息、进货退货库存明细表组成的系统。
(1)员工基本信息中,管理员能够对教姓名、员工ID 号、性别、出生日期、联系方式以及家庭住址进行查询、录入、修改、删除。
(2)供应商信息中,管理员能够对公司名称、公司编号、供货名、联系方式、公司地址进行查询、录入、修改、删除。
(3)系统管理员能够对超市货物数据进行查询、删除、修改、打印。 (4)管理员根据需要能将数据进行备份。 (5)管理员进行货物的添加、删除等操作。
2.2 软件需求分析
用例分析
员工:提交个人信息,修改个人信息,添加进货、销售、退货、库存信息; 员工通过系统可以实现以下用户需求:
a. 提交个人信息 b. 登陆修改个人信息
c. 查询货物各项详情 d. 查看库存货表
e. 添加、修改、删除进货、销售、退货信息 f. 备份数据
用例图如上图所示
2.3软件整体结构设计
本系统主要包括员工基本信息、供应商基本信息、商品进货、商品查询、商品销售、商品退货、库存查询、数据备份,如下图所示。
2.4模块的详细设计
超市基本信息管理,如图所示。
上图为超市基本信息管理的流程图,用户通过输入用户名和密码进行后续操作。若输入错误,则重新输入。登陆成功之后进入系统的主界面,然后用户根据自己的需要来选择窗口。若需要,则进行信息修改,录入,删除,完成后退出界面。
2.5 数据库设计
超市信息管理系统数据库设计主要能够对用户的信息、货物的信息进行存储,在此数据库管理系统上,设计数据库的结构和建立数据库。
数据库设计首先建立超市信息数据库并应用于系统中,由于数据库应用系统的复杂性,为了支持相关程序运行,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。基本操作可概括为:概念结构设计、逻辑设计、物理设计。
2.5.1 数据库概念结构设计
实体E-R 图
超市信息管理系统实体E-R 图
关系模式
员工基本信息表(员工姓名,员工编号,性别,出生日期,联系方式,家庭住址,密码,确认密码)
员工登陆信息表(ID 号,用户名,密码,登陆时间)
供应商信息表(公司名称,公司ID ,供货名称,联系方式,联系地址) 商品进货表(进货ID ,进货单价,进货数量,进货时间,进货员工,供应商,应付金额,实付金额,备注)
商品退货表(退货ID ,退货单价,退货数量,进货单价,进货数量,进货时间,退货时间,员工,应付金额,实付金额,备注)
商品库存表(商品ID ,所属仓库,库存数量,商品单价,进库员工) 商品查询表(进货ID ,进货单价,进货数量,进货时间,进货员工,供应商,应付金额,实付金额,备注)
商品销售表(销售ID ,商品名称,销售单价,销售数量,销售时间,销售员工,应付金额,实付金额,备注)
员工信息表
供应商信息表
进货信息表
第三章 系统的实现
3.1 项目进度安排 一、建立开发模型
在项目的开始阶段,我首先是建立了系统的功能模型。然后根据模型定义好变量。最后封装好了最实用的类。
二、建立数据库
根据模型上的变量来设置数据库里面的列名。几乎每一个界面都对应一
个数据表。
三、编写实现代码
在建好数据库和模型的情况下,就可以编写实现的代码了。实现的代码要考虑很多问题。包括错误处理,错误抛出,程序运行时可能出现什么样的情况都需要考虑。
3.2软件开发环境及其配置
一、开发环境
(一)Visual Studio
Visual Studio 是微软公司推出的开发环境,Visual Studio 可以用来创建 Windows 平台下的 Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office插件。Visual Studio是目前最流行的Windows 平台应用程序开发环境。
Visual Studio 2010包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发),以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 20010 为开发人员提供了所有相关的工具和框架支持。
开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP NET应用程序服务和 Microsoft 平台。
(二)SqlServer2008
SQL Server 2008 在Microsoft 的数据平台上发布,可以组织管理任何数据。可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中。可以对数据进行查询、搜索、同步、报告和分析之类的操作。数据可以存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备,它都可以控制数据而不用管数据存储在哪里。
SQL Server 2008 允许使用 Microsoft .NET 和Visual Studio开发的自定义应用程序中使用数据,在面向服务的架构(SOA )和通过 Microsoft BizTalk Server 进行的业务流程中使用数据。信息工作人员可以通过日常使用的工具直接访问数据。 这个平台有以下特点:
· 可信任的——使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。
· 高效的——使得公司可以降低开发和管理他们的数据基础设施的时间和成本。
· 智能的——提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息。
(三)Visio2010
Microsoft Office Visio 2010 是微软公司出品的Microsoft office办公软件中的一款。它有助于 IT 和商务专业人员轻松地可视化、分析和交流复杂信息。它能够将难以理解的复杂文本和表格转换为一目了然的 Visio 图表。该软件通过创建与数据相关的 Visio 图表(而不使用静态图片)来显示数据,这些图表易于刷新,并能够显著提高生产率。使用 Office Visio 2007 中的各种图表可了解、操作和共享企业内组织系统、资源和流程的有关信息。 二、配置环境
Windows 版本:windows 7旗舰版
处理器:Intel (R )Core(TM)i5-3210M CPU @ 2.50GHz 2.5GHz 安装内存(RAM ):4.00GB(2.91GB可用) 系统类型:32位操作系统
第四章 学习软件工程的心得体会
课程设计是我们对上半学期学习情况的检查,也是检验我们是否合格的最后一道关卡,是对我们所学知识的一次总结。C#程序设计课程即将结课,在整个课程设计过程中,我一直保持着开拓、勤奋、坦诚、务实的态度。
本次设计我选择的是基于Visual Studio C#的开发与设计的超市信息管理系统。在设计初期,我们对学校的超市流程情况进行基本模拟。而且,我们查阅了许多书籍,上网搜索了很多资料,一一解决了我们遇到的难题。 通过参与此次项目的开发,我深深体会到遇到问题解决问题的重要性,从简单的地方下手,逐一解决难题。同时,有问题积极找老师辅导,培养了我的沟通能力。
现今社会最不缺的就是信息,只要你的搜索能力强大,一切问题总会迎刃而解。如何及时的获取信息并通过良好的沟通解决问题,是我们学到的最多的东西。同时,也锻炼了我们搜集资料的能力。在项目开发过程中,我遇到很多尖酸的问题,技术能力上的不足,有过疑虑,有过不解。后来,在老师和同学们的帮助下得以成功。谢谢!
参考文献
[1]罗福强 杨剑 张敏辉主编C#程序设计经典教程 清华大学出版社 [2]传智播客 C#课程设计
[3]罗福强 杨剑 白忠建 Visual C#.NET 程序设计教程 人民邮电出版社
信息工程学院
《C#程序设计》实践考核标准与成绩报告单
2014-2015学年度第二学期期末
排课编号:(2014-2015-2)-2006112-01490-2 批阅日期: 年 月 日
范文三:java超市管理系统课程设计报告
课程设计题目: 超市管理系统
系 别 计算机科学与技术
班级 计科12102
学生姓名 罗巍 杨欢 杨沁铠 唐振
学号 201217010223
指导教师谭文学
课程设计进行地点:第三实验楼A617
任 务 下 达 时 间: 2014 年 5 月 21 日
起止日期:2014 年 5 月 21 日起——至 2014 年 6月 21 日
止
摘 要
随着小型超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长,传统的人工记忆方式也慢慢的无法适应形势的变化。随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品。随着社会的发展,软件也在不断的更新换代。
由于有些超市里对商品的进货、售出及商品的基本信息等的一些繁琐处理都是通过手工进行记载并进行处理的,对商品信息的处理工作量特别大,不仅浪费大量的人力物力,而且还很容易出错,更重要的是为了方便顾客,超市需要时时刻刻对商品对各种信息进行统计分析。 一直以来人们使用传统人工的方式管理超市的各项工作, 这种管理方式存在着许多缺点, 如: 效率低、保密性差, 另外时间一长, 将产生大量的冗余文件和数据, 这给查找、统计、更新和维护工作都带来了很大的困难。然而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。如果有这样一套完整的小型超市管理系统软件,只需点击几下鼠标就可完成所需操作,那样就会大大的提高超市员工的工作效率和管理水平,并能进一步提高超市的工作效率并使超市实施规范化管理。鉴于小型超市管理中存在的诸多问题, 我们在此次课程设计中以小型超市管理系统为研究课题,对此系统进行了全面的设计。
超市管理系统由顾客、采购员、销售员、经理的管理界面四部分组成。超市管理系统应该能够为用户提供充足的信息和快捷的查询手段。 一个完整系统的设计,当然就离不开后台环境的支持,在此次设计中,我们主要以sqlsever数据库作为基础,实行此系统的开发。
- 1 -
目 录
一、系统需求分析 ...............................................................................- 3 -
1.1系统名称:.....................................................................................- 3 -
1.2系统介绍:.....................................................................................- 3 -
1.3开发背景 ........................................................................................- 3 -
1.4.系统面向的用户群体 ......................................................................- 3 -
1.5开发环境 ........................................................................................- 3 -
二、系统总体设计 ...............................................................................- 4 -
2.1系统功能结构图 .............................................................................- 4 - 三、系统详细设计 ............................................... 错误~未定义书签。
3.1数据库实体E-R图设计.......................................错误~未定义书签。
3.2数据库表的设计 .............................................................................- 5 -
3.3物理设计文档 .....................................................错误~未定义书签。
3.4详细设计 ............................................................错误~未定义书签。
四、系统总结 ........................................................ 错误~未定义书签。
五、系统设计心得体会 ....................................... 错误~未定义书签。
六、参考文献 ........................................................ 错误~未定义书签。
- 2 -
一、系统需求分析
1.1系统名称:
小型超市管理系统
1.2系统介绍:
界面设计简洁、友好、美观大方
操作简单、快捷方便
数据存储安全、可靠
信息分类清晰、准确
强大的查询功能、保证数据查询的灵活性
提供销售排行,为管理员提供真实的数据信息
提供灵活、方便的权限设置功能,使整个系统的管理分工明确
对用户的输入的数据,系统进行严格的数据检验,尽可能排人为错误 1.3开发背景
随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对数据库的进一步开发和利用显得尤为迫切。
作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必不可少的。
我国的超市在20世纪90年代初期形成,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着经济的快速发展,超市的经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售业的发展,这样就迫切地需要引入新的管理技术。
1.4.系统面向的用户群体
主要是中小型超市使用者,该消费群体具有以下特征:1超市日常管理人工化居多,工作效率较低;2超市日常交易额较小,货物流通较小,不愿花高价购进大型超市管理系统。因此,该消费群体对产品的功能性需求并不高,只需满足前台销售系统、后台货物管理即可。
1.5开发环境
Eclipse+mysql
- 3 -
二、系统总体设计 2.1系统功能结构图
小超市管理系统是一个专门针对小型的商店和超市的智能化、自动化的管理
系统。其功能总框图如图2-1所示。
顾客注册 登陆界面
采购员登陆 经理登录 销售员登陆 顾客登陆
增更查浏分查查查浏购 加改看览看项看看览买订订进某所查销销所商单 单 货种有询 售有品 售 信商订 员商 信 息 品 信单 息 品
息
图2-1 系统功能总框图
- 4 -
三 数据库代码和界面
3.1数据库表的设计
(1)顾客信息表(Buye)
字段名 类型 长度 约束 中文名
BuyerID int 顾客编号
BuyerGoodsName varchar 50 Not null 购买商品名称
BuyerGoodsNumbe varchar 50 Not null 购买商品数量
varchar BuyerManufacturer 50 Not null 商品生产厂家
BuyerDate varchar 50 Not null 购买日期
BuyerStatus varchar 45 Not null 购买状态
BuyerName varchar 45 Not null 顾客姓名
CREATE TABLE Buyer_TABLE (
BuyerID int IDENTITY (1, 1) NOT NULL ,
BuyerGoodsName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
BuyerGoodsNumber varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
BuyerManufacturer varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
BuyerDate varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
BuyerStatus varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
BuyerName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY
- 5 -
(2)商品信息表(goodsInfo )
字段名 类型 长度 字段约束 中文名
int GoodsID 商品编号
varchar 50 Not null GoodsName 商品名称
int GoodsNumber 商品数量
50 Not null GoodsProduct varchar 生产厂家
6 GoodsPrice float 商品价格
50 Not null GoodsSize varchar 商品规格
CREATE TABLE goodsInfo (
GoodsID int NOT NULL ,
GoodsName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
GoodsNumber int NULL ,
GoodsProduct varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
GoodsPrice float NULL ,
GoodsSize varchar (50) COLLATE Chinese_PRC_CI_AS NULL
) ON PRIMARY
GO
- 6 -
(3)用户信息表( T_user)
字段名 类型 长度 约束 中文名
int userID 用户编号
varchar 50 Not null userName 用户名字
varchar 50 Not null userPassword 用户密码
varchar 50 Not null userAddress 用户住址
varchar 50 Not null userAuthority 用户权限
varchar 10 Not null userGender 用户性别
int Not null userAge 用户年龄
CREATE TABLE T_user (
userID int IDENTITY (1, 1) NOT NULL ,
userName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
userPassword varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
userAddress varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
userAuthority varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
userGender varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,
userAge int NULL
) ON PRIMARY
- 7 -
CREATE TABLE user (
userID int IDENTITY (1, 1) NOT NULL ,
userName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
userPassword varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
userAddress varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
userAuthority varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
userGender varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,
userAge int NULL
) ON PRIMARY
GO
(4)销售信息表(vendition)
字段名 类型 长度 约束 中文名
int VenditionID 销售员编号
varchar 50 Not null GoodsName 商品名称
varchar 50 Not null GoodsCustomNumb销售数量
er
varchar 50 Not null CustomerName 消费者名字
varchar 50 Not null VenditionDate 销售数量
varchar 45 Not null GoodsSize 商品规格
Not null GoodsPrice float 商品价格
CREATE TABLE vendition_TABLE (
VenditionID int IDENTITY (1, 1) NOT NULL ,
GoodsName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
GoodsCustomNumber varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
CustomerName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
VenditionDate varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
- 8 -
GoodsSize varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,
GoodsPrice float NULL
) ON PRIMARY
3.2连接数据库
String driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String
dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=supermarket";
String userName="sa"; //默认用户名
String userPwd="123"; //密码
- 9 -
四、系统模块功能介绍
3.1 登录功能介绍
登录功能是进入系统必须经过的验证过程,其主要功能是验证使用者的身份,确认使用者的权限,从而在使用软件过程中能安全地控制系统数据,即不同的工作人员有不同的权限,每个使用人员不得跨越其权限操作软件,可以避免不必要的数据丢失事件发生。
登录的界面如图2-2所示
- 10 -
登陆成功~~~
4.1.1登陆界面源代码
public class Logincs extends JDialog implements ActionListener{
//声明在程序中要用到的方法
private JPanel panel1 = new JPanel();
private BorderLayout borderLayout1 = new BorderLayout();
private JPanel jPanel1 = new JPanel();
private XYLayout xYLayout1 = new XYLayout();
private JLabel jLabel1 = new JLabel();//添加一个标签控件
private JLabel jLabel2 = new JLabel();
private JTextField jTextField1 = new JTextField();//添加一个文本框
private JButton jButton1 = new JButton();//添加一个按钮控件
private JButton jButton2 = new JButton();
private JPasswordField jPasswordField1 = new JPasswordField();
private Database database1 = new Database();
- 11 -
private JLabel jLabel3 = new JLabel();
private JLabel jLabel4 = new JLabel();
private JLabel jLabel5 = new JLabel();
private TitledBorder titledBorder1;
private TitledBorder titledBorder2;
private JLabel jLabel6 = new JLabel();
public Logincs(Frame frame, String title, boolean modal) {
super(frame, title, modal);
try {
jbInit();
pack();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
public Logincs() {
this(null, "", false);
}
private void jbInit() throws Exception {
titledBorder1 = new TitledBorder("");
titledBorder2 = new TitledBorder("");
panel1.setLayout(borderLayout1);
jPanel1.setLayout(xYLayout1);
jLabel1.setForeground(Color.blue);//标签控件的字体颜色
- 12 -
jLabel1.setText("用户名"); //标签标题
jLabel2.setForeground(Color.blue);
jLabel2.setText("密码");
jButton1.setForeground(UIManager.getColor("List.selectionBackground"));//按
钮控件字体颜色
jButton1.setBorder(BorderFactory.createRaisedBevelBorder());//按钮外观
jButton1.setText("登录");//按钮标题
jButton1.addActionListener(this);//加入按钮事件
jButton2.setForeground(UIManager.getColor("Menu.selectionBackground"));
jButton2.setBorder(BorderFactory.createRaisedBevelBorder());
jButton2.setToolTipText("");
jButton2.setText("取消");
jButton2.addActionListener(this);
jPanel1.setBorder(BorderFactory.createEtchedBorder());
jPanel1.setMinimumSize(new Dimension(600, 600));//设置面板大小
jPanel1.setPreferredSize(new Dimension(400, 325));
jPasswordField1.setBorder(titledBorder1);
jPasswordField1.setToolTipText("");
database1.setConnection(new
com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:odbc:supermarket", "sa",
"123", false, "sun.jdbc.odbc.JdbcOdbcDriver"));
this.setResizable(false);
this.setTitle("登录");
jLabel3.setBackground(Color.yellow);//标签背景颜色
jLabel3.setForeground(Color.black);
jLabel3.setBorder(BorderFactory.createEtchedBorder());
- 13 -
jLabel3.setText(" 小型超市管理系统");
jLabel4.setBorder(BorderFactory.createEtchedBorder());
jLabel4.setText(" ——制作人:L,T,Y,Y");
jLabel5.setBorder(BorderFactory.createEtchedBorder());
jLabel5.setToolTipText("");
jLabel5.setText("——版本号: 2014.5.30");
jTextField1.setBorder(titledBorder2);
jLabel6.setBorder(BorderFactory.createEtchedBorder());
getContentPane().add(panel1);
panel1.add(jPanel1, BorderLayout.WEST);
jPanel1.add(jLabel3, new XYConstraints(-1, 0, 395, 30));
jPanel1.add(jLabel5, new XYConstraints(274, 30, 121, 32));
jPanel1.add(jLabel4, new XYConstraints(127, 32, 143, 30));
jPanel1.add(jPasswordField1, new XYConstraints(143, 196, 132, 24));
jPanel1.add(jTextField1, new XYConstraints(143, 136, 132, 24));
jPanel1.add(jLabel2, new XYConstraints(23, 195, 60, 25));
jPanel1.add(jLabel1, new XYConstraints(23, 134, 60, 25));
jPanel1.add(jLabel6, new XYConstraints(-2, 65, 396, 191));
jPanel1.add(jButton1, new XYConstraints(90, 274, 68, 28));
jPanel1.add(jButton2, new XYConstraints(193, 275, 69, 28));
}
public void actionPerformed(ActionEvent e){
String driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String
dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=supermarket";
String userName="sa"; //默认用户名
String userPwd="123"; //密码
Statement stmt=null;
ResultSet rs =null;
Connection dbConn=null;
- 14 -
if(e.getSource() == jButton1) //得到界面单击事件
{
try{
String userAuthority = null ;
// String userName = null ;
String userPassword = null ;
String testName = jTextField1.getText().toString() ;//从jTextField1中得到用户名
String testPassword = String.valueOf(jPasswordField1.getPassword()) ;//从jPassword中得到用户密码
//Statement sql = database1.createStatement() ; //打开Statement对象
try {
Class.forName(driverName).newInstance();
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
stmt = dbConn.createStatement();
- 15 -
rs = stmt.executeQuery("SELECT userName,userPassword , userAuthority
FROM T_user WHERE userName = '"+testName+"'") ;
//执行SQL语句,从数据库当中选择用户名,密码,和权限。
while(rs.next()) //
{
userName = rs.getString("userName") ; //从数据库当中得到用户名
userPassword = rs.getString("userPassword") ;//从数据库当中得到密码
userAuthority = rs.getString("userAuthority") ;//从数据库当中得到权限
}
verifyUser(userName,userPassword,testPassword,userAuthority); //调用verifyUser方法
cancel() ;//退出
}
catch(SQLException ex){ex.printStackTrace();}
}
//exit the System
else if(e.getSource() == jButton2){
cancel();
}
}
void cancel()
{
dispose();
}
//验证用户名以及密码
void verifyUser(String userName , String userPassword , String testPassword, String
userAuthority)
{
- 16 -
if(userName == null) //判断用户名是否为空
{
JOptionPane.showMessageDialog(null,"用户名不存在,请先注册","verify user",JOptionPane.DEFAULT_OPTION);
//抛出对话框
}
else
{
if(userPassword.equals(testPassword) == false) //判断密码是否相等
{
JOptionPane.showMessageDialog(null,"您输入的密码不正确,请重试
","verify password" , JOptionPane.DEFAULT_OPTION);
//抛出对话框
}
else{
JOptionPane.showMessageDialog(null,"success","",JOptionPane.DEFAULT_OPTION);
//
verifyUserAuthority(userAuthority) ;//进行权限判断
}
}
}
//验证用户权限
void verifyUserAuthority(String userAuthority){
if(userAuthority.equals("admin"))//如果用户为admin,则弹出管理员界面
{
AdminWindow adminWindow = new AdminWindow() ;
//设置对话框
Dimension dlgSize = adminWindow.getPreferredSize();
Dimension frmSize = getSize();
- 17 -
Point loc = getLocation();
adminWindow.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
adminWindow.setModal(true);
adminWindow.pack();
adminWindow.show();//显示对话框
}
else if (userAuthority.equals("customer"))//如果用户为customer
//弹出顾客登录界面
{
CustomerWindow customerWindow =new CustomerWindow() ;
//设置对话框的大小
Dimension dlgSize = customerWindow.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
customerWindow.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
customerWindow.setModal(true);
customerWindow.pack();
customerWindow.show();
}
else if (userAuthority.equals("buyer"))
{
BuyerWindow buyerWindow =new BuyerWindow() ;
Dimension dlgSize = buyerWindow.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
buyerWindow.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
- 18 -
buyerWindow.setModal(true);
buyerWindow.pack();
buyerWindow.show();
}
else if (userAuthority.equals("saler")){
SalesWindow salesWindow =new SalesWindow() ;
Dimension dlgSize = salesWindow.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
salesWindow.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
salesWindow.setModal(true);
salesWindow.pack();
salesWindow.show();
}
else if (userAuthority.equals("manager")){
ManagementWindow managementWindow =new ManagementWindow() ;
Dimension dlgSize = managementWindow.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
managementWindow.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
managementWindow.setModal(true);
managementWindow.pack();
managementWindow.show();
}
}
}
- 19 -
4.2 顾客注册界面
注册成功~~~~~
- 20 -
3.2.2顾客注册源代码
public class Registration extends JDialog implements ActionListener {
String driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=supermarket";
String userName="sa"; //默认用户名
String userPwd="123"; //密码
Statement stmt=null;
ResultSet rs =null;
Connection dbConn=null;
private JPanel panel1 = new JPanel();
private BorderLayout borderLayout1 = new BorderLayout();
private JPanel jPanel1 = new JPanel();
private XYLayout xYLayout1 = new XYLayout();
private JLabel jLabel1 = new JLabel();
private JLabel jLabel2 = new JLabel();
private JLabel jLabel3 = new JLabel();
private JLabel jLabel4 = new JLabel();
private JTextField jTextField1 = new JTextField();
private JTextField jTextField2 = new JTextField();
private JTextField jTextField3 = new JTextField();
private JTextField jTextField4 = new JTextField();
private JLabel jLabel5 = new JLabel();
private JLabel jLabel6 = new JLabel();
private JLabel jLabel7 = new JLabel();
private JTextField jTextField5 = new JTextField();
private JPasswordField jTextField6 = new JPasswordField();
private JPasswordField jTextField7 = new JPasswordField();
- 21 -
private JButton jButton1 = new JButton();
private JButton jButton2 = new JButton();
public Registration(Frame frame, String title, boolean modal) {
super(frame, title, modal);
try {
jbInit();
pack();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
public Registration() {
this(null, "", false);
}
private void jbInit() throws Exception {
panel1.setLayout(borderLayout1);
jPanel1.setLayout(xYLayout1);
jLabel1.setText("姓名");
jLabel2.setText("年龄");
jLabel3.setText("性别");
jLabel4.setText("类别");
jLabel5.setText("请输入密码");
jLabel6.setText("请再输一遍");
jLabel7.setText("家庭住址");
jButton1.setText("确定");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
- 22 -
jButton1_actionPerformed(e);
}
});
jButton2.setText("取消");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
}
});
jPanel1.setPreferredSize(new Dimension(400, 300));
jTextField4.setText("customer");
getContentPane().add(panel1);
panel1.add(jPanel1, BorderLayout.CENTER);
jPanel1.add(jTextField1, new XYConstraints(80, 31, 76, 25));
jPanel1.add(jTextField2, new XYConstraints(79, 76, 78, 23));
jPanel1.add(jTextField3, new XYConstraints(79, 119, 77, 25));
jPanel1.add(jTextField4, new XYConstraints(78, 159, 77, 26));
jPanel1.add(jLabel4, new XYConstraints(26, 158, 42, 28));
jPanel1.add(jLabel3, new XYConstraints(28, 118, 39, 28));
jPanel1.add(jLabel2, new XYConstraints(28, 76, 48, 26));
jPanel1.add(jLabel1, new XYConstraints(31, 35, 41, 27));
jPanel1.add(jLabel7, new XYConstraints(185, 30, 49, 25));
jPanel1.add(jTextField5, new XYConstraints(258, 35, 120, -1));
jPanel1.add(jLabel5, new XYConstraints(185, 78, 78, 23));
jPanel1.add(jLabel6, new XYConstraints(185, 116, 73, 23));
jPanel1.add(jTextField7, new XYConstraints(258, 119, 121, 23));
jPanel1.add(jTextField6, new XYConstraints(258, 79, 119, 24));
jPanel1.add(jButton1, new XYConstraints(197, 194, 80, 26));
jPanel1.add(jButton2, new XYConstraints(296, 194, 82, 26));
}
- 23 -
public void actionPerformed(ActionEvent ee){
}
void jButton1_actionPerformed(ActionEvent e) {
String userGender = String.valueOf(jTextField1.getText()) ;
int userAge = Integer.parseInt(String.valueOf(jTextField2.getText())) ;
String username= String.valueOf(jTextField3.getText()) ;
String userAuthority = String.valueOf(jTextField4.getText()) ;
String userAddress = String.valueOf(jTextField5.getText()) ;
String userPassword = String.valueOf(jTextField6.getPassword()) ;
String testPassword = String.valueOf(jTextField7.getPassword()) ;
if(userPassword.equals(testPassword)){
try{
Class.forName(driverName);
dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
Statement stmt = dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
String sql = "INSERT INTO T_user values(?,?,?,?,?,?,?)";
PreparedStatement ps=dbConn.prepareStatement(sql);
try{
//ps.setString(1,);
ps.setString(1, username);
ps.setInt(2, userAge);
ps.setString(3, userGender);
ps.setString(4, userAuthority);
ps.setString(5, userAddress);
ps.setString(6, userPassword);
- 24 -
ps.setString(7, testPassword);
ps.executeUpdate();
}catch(SQLException e1)
{
e1.printStackTrace();
}
stmt.close();
JOptionPane.showMessageDialog(null,"注册成功,请重新登陆","",JOptionPane.DEFAULT_OPTION);
}catch(Exception e1){
System.out.println(e1.getMessage());
System.out.println("连接失败~");
}
finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(dbConn != null) {
dbConn.close();
dbConn = null;
}
} catch (SQLException e1) {
e1.printStackTrace();
- 25 -
}
}
}
else{
JOptionPane.showMessageDialog(null,"您输入的密码前后不符,请重新输入
","",JOptionPane.DEFAULT_OPTION);
}
}
public void cancel(){
dispose() ;
}
void jButton2_actionPerformed(ActionEvent e) {
cancel() ;
}
}
3.6.1销售界面
- 26 -
3.6.2销售界面源代码
public class SalesWindow extends JDialog {
String driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=supermarket";
String userName="sa"; //默认用户名
String userPwd="123"; //密码
Statement stmt=null;
ResultSet rs =null;
Connection dbConn=null;
String str="";
private JPanel jPanel1 = new JPanel();
private JTable Table1 = new JTable();
private XYLayout xYLayout1 = new XYLayout();
private JButton jButton1 = new JButton();
private JButton jButton2 = new JButton();
public SalesWindow(Frame frame, String title, boolean modal) {
- 27 -
super(frame, title, modal);
try {
jbInit();
pack();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
public SalesWindow() {
this(null, "", false);
}
private void jbInit() throws Exception {
// database1.setConnection(new
com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:odbc:gaokaiSQL", "sa", "",
false, "sun.jdbc.odbc.JdbcOdbcDriver"));
jPanel1.setLayout(xYLayout1);
jButton1.setText("查看销售信息");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
});
jButton2.setText("退出");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton2_actionPerformed(e);
}
});
- 28 -
try{
Class.forName(driverName);
dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
stmt = dbConn.createStatement();
rs = stmt.executeQuery("SELECT
VenditionID,GoodsName,GoodsCustomNumber," +
"CustomerName,VenditionDate,GoodsSize,GoodsP" +
"rice FROM vendition_TABLE");
DefaultTableModel dtm = new DefaultTableModel();
Vector Title = new Vector();
//添加标题
Title.add("VenditionID");
Title.add("GoodsName");
Title.add("GoodsCustomNumber");
Title.add("CustomerName");
Title.add("VenditionDate");
Title.add("GoodsSize");
Title.add("GoodsPrice");
Vector vec=new Vector();
while(rs.next()){
Vector v=new Vector();
v.addElement(String.valueOf(rs.getString("VenditionID")));
v.addElement(String.valueOf(rs.getString("GoodsName")));
v.addElement(String.valueOf(rs.getString("GoodsCustomNumber")));
v.addElement(String.valueOf(rs.getString("CustomerName")));
v.addElement(String.valueOf(rs.getString("VenditionDate")));
v.addElement(String.valueOf(rs.getString("GoodsSize")));
v.addElement(String.valueOf(rs.getString("GoodsPrice")));
vec.addElement(v);
- 29 -
}
dtm.setDataVector(vec, Title);
Table1.setModel(dtm);
//table1=new JTable(vec,Title);
}catch(Exception e1){
System.out.println(e1.getMessage());
System.out.println("连接数据库失败~");
}
finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(dbConn != null) {
dbConn.close();
dbConn = null;
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
this.getContentPane().add(jPanel1, BorderLayout.CENTER);
jPanel1.add(Table1, new XYConstraints(-1, 0, 336, 263));
- 30 -
jPanel1.add(jButton1, new XYConstraints(13, 274, 121, 21));
jPanel1.add(jButton2, new XYConstraints(232, 275, 94, 20));
}
void jButton1_actionPerformed(ActionEvent e) {
try{
Class.forName(driverName);
dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
stmt = dbConn.createStatement();
rs = stmt.executeQuery("SELECT * FROM Buyer_TABLE");
DefaultTableModel dtm = new DefaultTableModel();
Vector Title = new Vector();
//添加标题
Title.add("BuyerID");
Title.add("BuyerGoodsName");
Title.add("BuyerGoodsNumber");
Title.add("BuyerManufacturer");
Title.add("BuyerDate");
Title.add("BuyerStatus");
Vector vec=new Vector();
while(rs.next()){
Vector v=new Vector();
v.addElement(String.valueOf(rs.getString("BuyerID")));
v.addElement(String.valueOf(rs.getString("BuyerGoodsName")));
v.addElement(String.valueOf(rs.getString("BuyerGoodsNumber")));
v.addElement(String.valueOf(rs.getString("BuyerManufacturer")));
v.addElement(String.valueOf(rs.getString("BuyerDate")));
v.addElement(String.valueOf(rs.getString("BuyerStatus")));
vec.addElement(v);
}
dtm.setDataVector(vec, Title);
- 31 -
Table1.setModel(dtm);
//table1=new JTable(vec,Title);
}catch(Exception e1){
System.out.println(e1.getMessage());
System.out.println("连接数据库失败~");
}
finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(dbConn != null) {
dbConn.close();
dbConn = null;
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
- 32 -
}
- 33 -
范文四:超市管理系统课程设计报告
交通运输工程学院
Visual Foxpro
课程设计报告
设计名称:《超市进货供货管理系统》
系 (院): 交通运输工程学院
专业班级:
学 号:
姓 名:
指导老师:
设计时间:2012年6月
目 录 课程设计任务书???????????????1 一、 前言
1、课程设计的目的和意义
2、系统功能设计
3、创建项目管理文件
二、 VFP 课程设计说明书
1、系统概述
2、系统总体设计
3、数据库设计
4、系统的具体设计过程
5、调试运行退出
6、结束语
7、主程序代码
8、参考文献
一、前言
1、课程设计的目的和意义
当今,人类正在步入一个以智力资源的占有和配置,知识生产、分配和使用为最重要因素的知识经济时代,为了适应知识经济时代发展的需要,大力推动信息产业的发展,我们通过对货物信息管理系统的设计,来提高货物的操作能力,及对理论知识的实践能力,从而提高货物的基本素质,使其能更好的满足社会需求。
超市进货供货管理系统是一个简单实用的系统,它是超市进行货物管理的好帮手。此软件功能齐全,设计合理,使用方便,适合小型超市对繁杂的商品信息信息进行统筹管理,具有严格的系统使用权限管理,具有完善的管理功能,强大的查询功能。
我们进行本次课程设计的主要目的是通过上机实践操作,熟练掌握数据库的设计、表单的设计、表单与数据库的连接、SQL 语言的使用和了解它的功能:数据定义、数据操纵、数据控制,以及简单VF 程序的编写。基本实现货物信息的管理,包括系统的登录、货物信息的录入、货物信息的浏览、货物信息的查询、货物信息的修改和货物信息的删除,并对Visual FoxPro6.0的各种功能有进一步的了解,为我们更进一步深入的学习奠定基础,并在实践中提高我们的实际应用能力,为我们以后的学习和工作提供方便,使我们更容易融入当今社会,顺应知识经济发展的趋势 。
2、系统功能设计
通过该系统可以基本实现学生信息的管理,包括系统的登录、学生信息的录入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除。系统功能模块如下图所示。
3、创建项目管理文件
1. 启动foxpro 系统,建一个项目管理器,命名为“项目1”,用来建立超市进货供货管理系统项目。
二、 课程设计说明书
1、系统概述
首先我们针对超市管理这一主题应当建立一个项目,相应的建立一数据库“超市管理数据”,针对超市的商品进货、售货、管理、库存情况进行了调查分析之后,我们需要建立4个表,分别为“采购信息”“售货信息”“进货总计”以及“售货总计” 其中在采购信息中中的内容应该包含“单号、购买数量、经手人、日期、商品名、实付金额、应付金额、优惠金额”等信息;在售货信息中应包含“单位、规格型号、商品编号、商品名称、商品条码、数量”;在进货总计中应包含“商品类型、总实付、总应付、总优惠、总种类”;售货总计中应包含“日期、总价值、总件数、总利润”。此系统要实现的功能有商品的显示、修改、查询、输出、打印、退出系统,这就根据不同的功能建立不同的表单,如建立“采购信息”表单、“售货信息”表单、“采购信息查询”表单、“收货信息查询”、“采购信息修改”表单、“收货信息修改”表单、“进货总计”表单以及“售货总计”
表单等,为了使系统完整化,还需要系统的“登陆”表单、“菜单”表单、“警告”表单以及“退出”表单等等。
1.1系统组成
本系统由1个数据库、1个主个程序、9个表单、 2个报表、1个菜
单、和4个表组成。
数据库组成:
数据表4个:
采购信息表:(8个字段:单号、购买数量、经手人、日期、商品名、实付金额、应付金额、优惠金额)
售货信息表:(6个字段:单位、规格型号、商品编号、商品名称、
商品条码、数量)
进货总计表:(5个字段:商品类型、总实付、总应付、总优惠、总
种类)
售货总计表:(4个字段:日期、总价值、总件数、总利润)
表单组成:“采购信息”表单、“售货信息”表单、“采购信息查询”表单、“收货信息查询”、“采购信息修改”表单、“收货信息修改”表单、“进货总计”表单以及“售货总计”表单。
菜单组成:主菜单由信息显示、信息查询、信息修改、信息输出、打印、退出系统6项组成。
报表组成:进货总计报表、售货总计报表
程序组成:主程序
1.2系统功能
此系统可以完成一个小型超市管理的基本工作, 在登陆界面输入用户名和密码进入菜单界面, 然后根据菜单中的选项, 选择你相对应要工作的目标, 在本系统中我设置了信息显示、信息查询、信息修改、信息输出、打印、退出系统等几项基本功能。
在选中信息显示的菜单时, 可以完成对超市中某些信息的显示与了解。 在信息查询中, 可以使工作人员在大量数据同时存在时, 输入你想查找的对象, 查看到具体的内容。
工作的信息总是在不断地变化着的, 所以要进行数据的修改, 因此我又建立了有关于信息修改的程序。
最后还有打印输出的功能;通过退出系统菜单实现系统的退出,整个课程设计就是这样一个完整的工作系统。
1.3系统预览
11
12
13
2. 系统总体设计
2. 1 系统设计思想
作为国内市场的一些中小型超市、它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必不可少的。针对超市的特点,为了帮助超市解决现在所面临的问题,提高超市竞争力、管理水平、降低经营成本提高效益等,我们组决定开发超市管理系统。
本次课程设计题目:“超市进货供货管理系统”主要目的是利用数据库软件编制一个管理软件,用以实现进货、售货以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一个完整论证。
超市进货供货管理系统是一种基于集中统一规划的数据库数据管理新模式。在对货物的管理,其实是对货物进出数据的管理。本系统的建成无疑将会提高超市的工作效率。
2.2 系统功能模块划分
14
3. 数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
设计数据库时应该首先充分了解用户各个方面的需求,包括现有的及将来可能增加的需求。数据库设计一般包括如下几个步骤。
(1)数据库需求分析 (2)数据库概念结构设计 (3)数据库逻辑结构设计 3.1数据库需求分析
超市现在采用统一采购,统一核算,统一配送的低成本经营方式。我研究的对象是小型超市。主要提供日用百货、烟酒食品、各种肉类、蔬菜、水果等商品。为了经营规模的扩大,业务的扩张,必须引进先进的管理思想、方法和技术,以提高企业的管理水平,使该店实现持续发展。为此,需要建立起包括进货供货的管理信息系统,以提高商品库存效率,增加公司年度利润。
经过对超市整进货供货工作状态信息的了解,分析超市现有的信息资源和设备及相关的信息需求,通过初步调查,可行性分析,详细调查后,重点是对采购管理业务、销售管理业务的流程进行管理。
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入。 3.2数据库概念结构设计
得到数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。 3.3数据库逻辑结构设计
15
本系统由1个数据库、1个主个程序、9个表单、 2个报表、1个菜单、和4个表组成。
数据表组成:
采购信息表:(8个字段:单号、购买数量、经手人、日期、商品名、实付金额、应付金额、优惠金额)
售货信息表:(6个字段:单位、规格型号、商品编号、商品名称、商品条码、数量)
进货总计表:(5个字段:商品类型、总实付、总应付、总优惠、总种类)
售货总计表:(4个字段:日期、总价值、总件数、总利润)
表单组成:“采购信息”表单、“售货信息”表单、“采购信息查询”表单、“收货信息查询”、“采购信息修改”表单、“收货信息修改”表单、“进货总计”表单以及“售货总计”表单。
16
菜单组成:主菜单由信息显示、信息查询、信息修改、信息输出、打印、退出系统6项组成。
报表组成:进货总计报表、售货总计报表 程序组成:主程序
4. 系统的具体设计过程:
4.1数据库的设计 建立数据库表: 采购信息表
售货信息表
进货总计表
17
售货总计
4.2表单设计以及代码输入:
1、登陆表单
表单的Caption 属性为“登陆”window-state 属性为0—普通, 标签控件1的属性:
Caption:超市管理系统 Alignment的属性为中央 Autosize 的属性为T Backstyle的属性为透明 FontName:黑体 FontSize:48 ForeColor: 255,0,128 Height:75 Left:36 Name:Label1
18
Top:84 Width:652 标签控件2的属性:
Caption:用户名 Alignment的属性为中央 Autosize 的属性为T Backstyle的属性为透明 FontName:楷体 ForeColor: 0,0,0 FontSize:20 Height:33 Left:240 Name:Label2 Top:228 Width:86 标签控件3的属性:
Caption:密码 Alignment的属性为中央 Autosize 的属性为T Backstyle的属性为透明 FontName:楷体 ForeColor: 0,0,0 FontSize:20 Height:33 Left:240 Name:Label2
19
2、 欢迎使用表单
表单的Caption 属性为:欢迎使用,init 的属性为:do 菜单1.mpr with this,.t. Showwindows 的属性为“作为顶层菜单”
标签控件1 Caption:欢迎使用超市管理系统 Alignment的属性为中央 Autosize 的属性为T Backstyle的属性为透明 Fontname 的属性为宋体 fontsize 的属性为28 Forecolor 的属性为255,0,255 Height:37 Left:240 Name:Label2
如图
20
在此步遇到的问题是:将上一登陆界面与此表单封面连接在一起时, 要在登陆表单中的“确定”按钮中输入do form “表欢迎使用”
3、采购信息表单
表单的Caption 属性为“采购信息”,picture 属性设置方法为:双击属性编辑处找到要使用的图片
② 选择【显示】中的【数据环境】命令,在打开的【添加表或视图】对
话框中添加采购信息表 ③ 设置表单的属性。Caption :采购信息,MaxButton :.F. —假 ④ 设置标签和文本框。从数据环境设计器中,将采购信息表中的单号、
购买数量、经手人、日期、商品名、实付金额、应付金额、优惠金额拖放到表单中适当的位置,生成相应的标签和文本框。 ⑤ 设置命令按钮和事件代码。从表单控件工具栏中单击【命令按钮组】
按钮,在窗口的适当位置创建命令按钮组控件,并在属性设置窗口中设置ButtonC ount 属性值为5。然后先单击命令按钮组控件,后右击选择【编辑】对命令按钮组控件中的5个命令按钮进行排列,并依此设置其Caption 属性值为首记录、上一条、下一条、末记录、退出。 双击命令按钮组控件,在click 事件中编写如下代码: do case
case this.value=1 go top
case this.value=2 skip -1
case this.value=3 skip
case this.value=4 go bottom
case this.value=5 thisform.release endcase
thisform.refresh
4、售货信息表单做法同上 5、采购信息查询表单:
表单的Caption 属性为“采购信息查询”
选择【显示】中的【数据环境】命令,在打开的【添加表或视图】对话框中添加采购信息表
① 设置表单的属性。Caption :采购信息,MaxButton :.F. —假 ② 设置标签和文本框。从数据环境设计器中,将采购信息表中的单号、
购买数量、经手人、日期、商品名、实付金额、应付金额、优惠金额拖放到表单中适当的位置,生成相应的标签和文本框。 ③ 设置命令按钮和事件代码。从表单控件工具栏中单击【命令按钮】按
钮,在窗口的适当位置创建两个命令按钮控件。分别设置其Caption 属性为查询、取消,设置其ForeColor 属性均为255,0,128. 双击查询命令按钮,在click 事件中编写如下代码:
locate for alltrim(单号)=alltrim(thisform.text1.value) if found()
thisform.txt 商品名.refresh thisform.txt 购买数量.refresh thisform.txt 日期.refresh thisform.txt 应付金额.refresh
thisform.txt 实付金额.refresh thisform.txt 优惠金额.refresh thisform.txt 经手人.refresh else
messagebox("该表格中无此商品, 请重输!",256," 确认") thisform.text1.setfocus endif
thisform.refresh
双击取消命令按钮,在click 事件中编写如下代码:
Thisform.release
6、 售货信息查询表单做法表单同上
7、 采购信息修改表单 表单属性和标签、文本框生成方法同上
8、 售货信息修改表单做法同上 9、 进货总计表单
在表单上添加一个表格控件,设置表单的Caption 属性为进货总计 在表单的空白处右击选择【数据环境】命令,添加数据源进货总计表
10、售货总计表单
在表单上添加一个表格控件,设置表单的Caption 属性为售货总计 在表单的空白处右击选择【数据环境】命令,添加数据源售货总计表 11、警告表单的建立 警告表单中标签控件1
Caption:确定要退出吗? Alignment的属性为中央 Autosize 的属性为T Backstyle的属性为透明 FontName:华文行楷 FontSize:72 ForeColor:255,0,128 Height:68 Left:24 Name:Label1
Top:84 Width:652
12、系统退出表单的建立
系统退出表单控件1
Caption:谢 谢 使 用 Alignment的属性为中央 Autosize 的属性为T Backstyle的属性为透明
FontName:华文隶书 FontSize:72 ForeColor:0,255,255 Height:68 Left:24 Name:Label1
Top:84 Width:652
4.3报表设计
创建方法:从文件打开建立的项目,然后点击【报表】,选择【新建】,选择一种方法建立报表,再次我选择使用报表向导建立新的报表,如下图
然后根据向导一步一步进行,在此过程中将需要添加的表添加进去。 此项目中的两个报表如下图
4.4菜单设计
在项目管理器中的“其他”中建立“菜单”在“菜单栏“的级别中,输入此系统呈现的功能名称,如“信息显示”“信息查询”“信息修改”“信息输出”“打印”“退出”等,在菜单名称后的结果中选择“子菜单”然后创建,在子菜单中再输入一列菜单名称,即所要调用的表单名称,在结果中选择“命令”在后面的选项中输入“do form 表单名称”
设计如下图:
5.5程序连编
一个应用程序的各个模块设计完毕并经过调试通过后,还必须进行连编,以便生成一个统一的可应用程序文件或可执行文件供最终用户使用。通过连编不
仅能将各个分别建立的模块有机的组合在一起,还可以进一步发现错误、排除故障,从而保证整个系统的完整性和准确性,同时还可以增加应用系统的保密性。
通常可用Visual foxpro的项目管理器或应用程序生成器来进行连编。在项目管理器中连编一个应用程序的步骤包括:
(1)、在项目管理器中打开需要连编的的应用程序项目,在本系统中我们打开“mian ” 进行连编。
(2)单击项目管理器窗口中的“连编”按钮,或执行菜单栏上“项目”菜单中的“连编”命令,弹出选项框。
的项目功能。
5、调试运行退出
首先检查项目管理其中各个部分的内容、图片等是否完整有效,运行每一个功能模块,如果出现错误则根据提示找出错误,直至在运行过程出没有错误提醒出现为止。
6、 结束语
本系统适用于各种小型的超市,有利于管理和发展。系统制作过程中遇到了很多的问题,如表单与表单之间的连接、表单与菜单之间的连接、表单与报表之间的连接、查询的运行过程总是打不开表
在本次课程设计中,使我的耐性有所增长,也让我看到了同学们之间的互相帮助与友爱,形成一股整体的趋势,我学会了忍耐,看到自己胜利的战果,我长长地舒了一口气,我完成了,那一瞬间,我很高兴,也明白了许多的道理。这为我以后的人生之路是否会走好打下了坚定的基础,以致于在以
后的求取过程中少走些弯路,也不致于因一些小挫折而迷失了自己的方向。
课程设计教会我很多的东西,平时不注意的细节,在课程设计中都有所注意,平时没看懂的东西,基本上都能看懂了。同学们之间的友谊也更进了一步。特别是在做课程设计时,同学们表现出来的那股热情,那种勤奋,是从来没有过的,课程设计后,我们发现我们对这门课程探索欲愈来愈深,因为它使我们产生了许多的疑惑,虽然书上讲了许多理论知识,但是对于这门学科光有理论而没有实践是不行的。总之,对于这次课程设计的学习,命名 我受益匪浅。我发现对于这门学科越来越愈喜爱了,对知识的渴求越来越强烈了。虽然这次做得不是太好,但是我们有信心在今后的学习中我们一定会学的更好!
7、主程序代码:
clear all set talk off
set default to C:\Users\Administrator\Desktop\超市进货供货管理系统
do form 登录
modify windows screen title "超市进货供货管理系统" read events quit
参考文献
1、《Visual FoxPro 6.0数据库程序设计》,朱珍主编,中国铁道出版社 2、《Visual FoxPro 6.0数据库与程序设计》,张爱国 马仲也主编,水利水电出版社 3、《Visual FoxPro 及其应用系统开发》史济民主编,清华大学出版社
范文五:超市管理系统_C语言课程设计
大连科技学院 C 语言课程设计
题
学生姓名 专业班级
指导教师 职 称
所在单位
教学部主任
完成日期 2014年 12月 13日
课程设计成绩考核表
综合评定:
(优、良、中、及格、不及格)
指导教师签字:
2014年 12月 13 日
课程设计任务书
1. 设计(研究)内容和要求
研究内容:
设计并编写一个完善的 C 语言程序,并要求达到以下几点:
(1)系统功能要求:系统功能完善,具有简洁的操作流程。
(2)以软件工程理论为指导,按照进度计划,完成系统需求分析、系统的概要设计 与系统的详细设计等。要求能够对系统进行全面测试和调试,及时更正错误,直至系统 运行稳定可靠,要求报告中具有系统测试内容。
(3)完成课程设计报告的编辑工作,报告要求在 3000字以上,包括综述、系统总体 设计、系统实现、运行调试、结论等,参考文献数量至少 2篇,论文书写格式按学校规 定来写。
(4)工作量要饱满,具备两周课程设计的基本要求,代码行达到 300行左右。 原始依据:
对学过的 C 语言程序设计课程进行巩固和加深印象。了解 C 语言的基础知识,有一 定的语言编程基础,能够熟练运用 C 语言进行程序设计。通过用 C 语言完成的题目的编 写与设计,以提高用 C 语言解决实际问题的能力。
2. 系统环境
硬件环境:CPU 的主频在 500MHZ 以上,内存在 128MB 以上
软件环境:编程语言及工具:C 语言;操作系统:Windows 操作系统
3. 参考文献
[1] 李瑞 . 徐克圣 . 刘月凡 . 戚海英 . C程序设计基础 [M]. 北京:清华大学出版社 . 2009.7
[2] 布鲁志著 . 吴丹等译.面向对象的软件工程—构建复杂且多变的系统.清华大学出 版社. 2002.10
[3] 霍顿(美) .杨杰(译) . 北京:清华大学出版社 . 2008
[4] 薛圆圆. C 语言开发手册 . 北京:电子工业出版社 . 2011.4
[5] 王娣 . 安剑 . 孙秀梅 . 北京:人民邮电出版社 .2010
目 录
1 需求分析 ............................................................................................................................ 1 1.1 系统概述 . ................................................................................................................... 1 1.2 系统运行环境 . ........................................................................................................... 1
1.3 功能需求描述 . ........................................................................................................... 1
2 总体设计 ............................................................................................................................ 2 2.1 开发与设计的总体思想 . ........................................................................................... 2 2.2 系统模块结构 . ........................................................................................................... 2 2.3 模块设计 . ................................................................................................................... 4 2.4 系统流程描述 . ........................................................................................................... 4
2.5 界面设计 . ................................................................................................................... 4
3 详细设计 ............................................................................................................................ 5 3.1 应用部署图 ................................................................................................................ 6 3.2 查询功能模块 ............................................................................................................ 6 3.3 删除功能模块 ............................................................................................................ 6
3.4 系统维护模块 ............................................................................................................ 6
4 系统测试 .......................................................................................................................... 11总 结 ............................................................................................................................... 17参考文献 ............................................................................................................................... 18
1 需求分析
1.1 系统概述
此系统是根据用户的需求,随着社会的发展,琳琅满目的商品在管理方面也是一大 问题,超市对商品的管理统计是很重要的。该系统主要是对商品信息的显示,修改,删 除,及对商品的价格及库存进行统计,使操作界面简洁,方便的进行操作。便于应用者 快捷统计,从而提高工作效率。
1.2 系统运行环境
1. 硬件环境
处理器: Inter Pentium 166 MX 或更高
内存: 32M
硬盘空间:1GB
显卡: SVGA显示适配器
2. 软件环境
操作系统:Windows 98/ME/2000/XP
开发语言:Visual C++
1.3 功能需求描述
超市商品管理系统主要是为用户提供一个方便易用的管理界面, 同时还具有查看超 市商品信息、添加、删除及修改选项的功能。此系统最大优点就是操作便捷快捷。 超市商品管理系统主要需要实现以下一些基本功能:
1. 查看超市商品信息:主要是为用户提供查看超市商品信息功能的模块,通过输 入所要查询的商品信息名称,系统将显示查询结果。如商品信息名称,商品信息编号, 商品信息价格,商品信息的折扣和超市商品中的所有数目以及剩余数目。
2. 删除信息模块:是把一些不必要的商品清除,可以将商品信息中的一些所过期 的商品进行删除,以便造成不必要的麻烦。
3. 修改信息模块:主要是为了修改有误的商品信息。 这其中可以修改商品信息的 名称,商品信息的价格,折扣,及总库存数目还有之后的剩余数目。
4. 查找信息模块:主要是为了商品数量太多,以及不太于方便,可迅速的输入商品 信息名称或编号进行查询,查找,就可以显示出商品信息的价格及名称。
5. 退出商品信息系统的模块:当退出该系统时,就会按任意建全屏退出。
2 总体设计
2.1 开发与设计的总体思想
随着现代经济社会的快速发展,无论是商场还是超市置列着应有尽有的商品。最初 的超市资料管理都是靠人力来完成的,但近几年市场经济逐渐扩大,销售额和门店数量 大幅度增加。因此给管理的人们也带来了不便,因此作为一个应用系统,本系统的开发 目的是实现超市管理系统平台化的思想,提高超市的工作效率,通过全面的信息采集和 处理,辅助提高超市的决策水平。可以迅速提升超市的管理水平,为降低经营成本,提 高效益,增强超市的扩张能力,提供有效的技术保障。使用本系统的超市,可以方便地 对超市的各种信息进行查询,并且可以对其库存商品进行修改,删除等操作。首先在大 脑中构思一个框架, 怎样去开发, 如何去开发, 在将所遐想出来的内容用图像勾勒出来, 形成几个相对的模块,但这些模块都进行集中式的管理,勾勒出模块后,将准备所需要 的材料,随后并开发。 2.2 系统模块结构
依据需求分析结果,超市管理系统可以分为四个模块:商品查询模块、商品删除模 块、商品录入模块和商品修改模块。如图 2-1所示:
图 2-1 超市管理系统模块结构图
1. 商品录入模块
商品录入模块主要实现的功能是录入一些商品信息。商品录入模块包括商品编号, 商品名称,商品价格和商品折扣等模块。如图 2-2所示:
图 2-2 商品录入模块结构图
2. 商品查询模块
商品查询模块主要录入需要查询的名称。如图 2-3所示:
图 2-3
商品查询模块结构图
3. 商品修改模块
主要功能修改有误及错误的商品信息。 如图
2-4所示:
图 2-4 商品修改模块结构图
4. 商品删除模块
商品删除模块其主要功能是删除其商品记录信息,可按商品的编号,种类以及名称
进行删除,将有误的商品数据进行删除,以免造成不必要的麻烦。 2.3 系统总体流程
本系统在执行的过程中,先选择操作方式,选择 1则执行商品信息的录入,选择 2则执行商品信息的修改, 选择 3则执行商品信息的删除, 选择 4则执行商品信息的查找。 超市管理系统的总体流程图,如图 2-5所示:
图 2-5 超市管理系统总体流程图
超市商品信息管理系统
商品信息删除
商品信息的修改
商品信息的查找
商品信息的录入
商 品 编 号
商 品 名 称
商 品 价 格
商 品 折 扣
商 品 数 量
3 详细设计
基于系统需求分析与系统总体设计的结论, 下面按照模块的划分来分别阐述系统的 详细设计和实现过程。
超市信息管理系统是一套既实用、操作简单、功能齐全、便于维护、管理和查询的 软件系统。如商品信息的类别,商品信息,库存设置等。本系统以中小型超市为中心, 涵盖了用户、商品和库存信息的查询、显示等功能,具有高效率,安全性强,数据完整 有条理等优点。满足管理人员的各种要求。
为了能结构化的管理和实施系统的开发, 采用软件工程的方法来设计软件系统其基本思 想是:用系统的思想和系统工程的方法,结构化,模块化地自上而下的对生命周期进行 分析和设计。我们可以将整个系统开始过程分为 4个模块进行设计过程与实现。 数据库设计及说明:
用宏定义管理数据, 用宏定义该录入商品的种类为 30, 不过用户可以根据实际情况来进 行更改。
3.1 数据类型
本系统中主要采用结构数据类型来存储超市一些商品的基本信息。本系统中定义 MarketGoods 结构体类型用于表示超市的商品,具体定义格式如下:
struct MarketGoods{
char goods_id[30];
char goods_name[30];
double goods_price;
double goods_discount;
int goods_amount;
int goods_remain;
}goods[COUNT];
其中 goods 用于表示商品信息, 而 int goods_id用于表示商品编号, int goods_name用于表示商品名称, double goods_price用于表示商品价格, double goods_discount用于表示商品折扣, int goods_amount用于表示商品数量, int goods_remain用于表 示商品剩余数目。
3.2 超市商品信息功能模块
该商品功能模块主要实现一些根据选项所运行的程序模块该超市商品信息功能模块主 要包括:
信息录入模块,商品信息修改模块,商品信息删除模块和商品查找模块及退出系统,输
出模块和保存模块。当进入该信息管理系统中的主菜单时,会有 5个功能选项。
首先选择 1:
先录入商品信息,录入基本信息,如商品编号,商品名称,商品价格,商品折扣和 商品库存数量。
选择 2(根据用户情况) :
是对商品信息进行修改,输入对其修改的商品编号。
选择 3(根据用户情况) :
是对商品的删除,输入要删除的商品名称随后对其进行删除。
选择 4(根据用户情况) :
是对商品信息的查找,首先输入需要查找的商品名称,屏幕并会显示出已被查找到 的商品基本信息,包括编号,价格。
选择 5:是退出该界面系统,屏幕会显示“你已经退出” 。
1. 商品录入模块:void input()将用户想要定义的商品种类录入进去,以及商品名称, 代码,价格。源程序代码:
void input()
{
char flag[20];
do{
printf(
printf(
scanf(
printf(
scanf(
printf(
scanf(
printf(
scanf(
printf(
scanf(
printf(
scanf(
}
当进入主菜单时:会根据用户所需输入该商品的基本信息如商品编号,商品总数, 商品价格,商品名称,商品折扣,商品剩余数目。录入需要管理的商品信息并将信息保 存于文件中, 以方便日后进行打印, 读取, 更新等操作由此对其进行相应的修改, 删除。
如图 3-1所示:
图 3-1 录入商品信息模块流程图
2. 商品修改模块:void change()若要修改有误的商品信息或者是对其做相应的改动, 可以输入商品信息的名称进行修改或者输入商品编号对其进行修改。
可根据需要对多件商品信息进行修改,也可随时对个别项进行修改。
该源代码:
void change()
{
char ch[20],a[20];
int i;
printf(
scanf(
if(strcmp(ch,
{ printf(
scanf(
for(i=0;i<>
{
if(strcmp(goods[i].goods_id,a)==0)
{ printf(
scanf(
if(strcmp(ch,
scanf(
printf(
scanf(
if(strcmp(ch,
printf(
scanf(
if(strcmp(ch,
printf(
scanf(
if(strcmp(ch,
printf(
scanf(
if(strcmp(ch,
}
可以对该商品的名称,价格,折扣,总库存数目和剩余数目进行修改如图 3-2所示:
图 3-2 修改商品信息流程图
3. 商品删除模块:void dele()可对过期的商品进行处理。只可对该商品信息的名称进 行删除功能。 当进入主菜单时就选择 3, 删除商品信息, 然后按照商品信息的名称删 除该数据。如图 3-3所示:其源代码:
图 3-3 删除商品信息流程图
void dele() {
int i,j; char c[20];
printf(
printf(
if(strcmp(c,goods[i].goods_name)==0) break; for(j=i;j
printf(
4. 商品查询模块:void search()可对已建立的商品信息进行查询,并且可根据需要选 择按商品名称查询或按商品各类查询或按商品进货量查询。如图 3-4所示:
图 3-4 商品信息查询流程图
该源代码为: void search()
{
int i;
char a[20],ch[10];
printf(
scanf(
for(i=0;i<>
if(strcmp(goods[i].goods_name,a)==0)
printf(
5. 保存模块:用于对相应的商品信息及名称,编号进行保存。便于以后的使用。
6. 输出模块:void output()将所有商品信息或想要查询的商品信息显示于屏幕, 用于打印商品信息或查找某些商品信息。该信息代码为:
void output()
{
int i;
for(i=0;i<>
{
printf(
}
7. 退出系统:选择该项,自动退出该系统。退出之后屏幕中会显示“你已退出该系统” 。 printf(
printf(
scanf(
if(chi==1) input();
else if(chi==2) change();
else if(chi==3) dele();
else if(chi==4) search();
else if(chi==5) { printf(
4.1 系统测试
对于软件测试而言,黑盒测试是把程序看成一个黑盒子,完全不考虑程序的内部结 构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否 能按照规格说明书的规定正常使用, 程序是否能适当地接收输入数据产生正确的输出信 息,并且保持外部信息(如:数据库或文件)的完整性。黑盒测试又成为功能测试。而 白盒测试法的前提是可以把程序看成装在一个透明的白盒子里也就是完全了解程序的 结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否 都能按预定的要求正确工作。白盒测试又称为结构测试。
在设计得好的软件系统中,每个模块完成一个清晰定义的子功能,而且这个子功能 和同其他模块的功能之间没有相互依赖关系。因此,可以把每个模块作为一个单独的实 体来测试,而且通常比较容易设计检验模块正确性的测试方案。模块测试的目的是保证 每一个模块作为一个单元能正确运行。
1. 超市商品管理系统测试:
进入超市商品管理系统的主菜单界面:如图 4-1所示:
图 4-1超市管理系统主菜单截图
2. 录入商品信息的界面:
输入选择 1,将商品信息输入进去,编号,名称,价格,折扣,商品总数目及剩余 数目。若继续添加数据则输入“ y ” ,否则输入“ n ” 。如图 4-2所示:
图 4-2 商品信息录入截图(1)
图 4-3 商品信息录入截图(2)
3. 修改商品信息的界面:
选择 2,修改商品信息,若修改成功则如图 4-4所示:
图 4-4 修改商品信息成功截图
若不修改商品信息则选择“ n ” 。如图 4-5所示:
图 4-5 不修改程序截图
4. 删除商品信息界面,若要删除该商品信息则选择 3,会输入要删除商品信息的名称。 如果删除成功删除后, 屏幕上会显示 “ you had delete 商品名称” , 则如图 4-6所示:
图 4-6 成功删除商品信息的截图
当进入主菜单时, 不输入 (1--5) 的 5项选择时,输入任何不是 (1--5)中的数字, 例如输入 0,则显示“ You Enter The Choice Is Not valid!”结果如图 4-7所示:
图 4.7 输入错误信息时截图
5. 查找商品信息界面:
若选择“ 4”则进入商品信息查找界面,屏幕会显示“ enter you want look name ” ,
则输入要查找商品信息的名称,之后屏幕上会显示该商品信息的具体信息。商品编号,
商品名称,商品价格,商品折扣及商品总数目和所剩余的数目。如图 4-7所示:
图 4-7 查找商品信息的截图
若输入的商品名称中无在该程序所存储的空间则不会显示该商品信息的任何基本 信息。如果未查到,则不会显示会直接进入主菜单选项。 如图 4-8所示:
图 4-8未查找到商品信息的截图
6. 退出商品信息界面:
当选择选项“ 5”时,则是退出该系统。然后键入“ enter ”屏幕上会显示“你已退
出超市商品管理系统! ”然后则再按任意建全屏退出后台。
如图 4-9所示:
图 4-9 退出超市商品管理系统界面截图
总 结
经过三个星期的上机实践学习,使我对 c 语言有了更进一步的认识和了解,要想学好它要重在实践, 要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法 上还不行,经常按错字母,通过学习也有所改进 ; 再有对 c 语言的一些标准库函数不太了解,还有对函数 调用的正确使用不够熟悉,还有对 c 语言中经常出现的错误也不了解,通过实践,使我在这几个方面的 认识有所提高。
通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习 c 语言,还是其它的语言,以 及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好 地学好计算机。
参考文献
[1] 李瑞 . 徐克圣 . 刘月凡 . 戚海英 . C程序设计基础 [M]. 北京:清华大学出版社 . 2009.7
[2] 布鲁志著 . 吴丹等译.面向对象的软件工程—构建复杂且多变的系统 [M].北京:清 华大学出版社. 2002.10
[3] 霍顿(美) .杨杰(译) . 北京:清华大学出版社 . 2008
[4] 薛圆圆. C 语言开发手册 . 北京:电子工业出版社 . 2011.4
转载请注明出处范文大全网 » VC++课程设计报告--超市