《课程设计(论文)基于VC++的物资管理系统开发.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于VC++的物资管理系统开发.doc(12页珍藏版)》请在三一办公上搜索。
1、基于VC+的物资管理系统开发摘 要:为解决以往的纸质物资管理系统具有繁杂难以管理等缺点,本设计主要通过VC+提供的微软基础类库MFC框架,采用ADO的COM组件接口,对*.mdb文件进行操作,设计了基于VC+的物资管理系统。该系统具有操作简单,界面友好等特点。实现了对数据信息修改、更新和查看的功能。简化了对信息处理的工作,从而方便了物资设备的管理。关键词:VC+;ADO;物资管理The development of the managing system of materials based on VC+Abstract: For resolving the difficulty in man
2、aging materials by the managing system of materials depending on paper, this article mainly by the framework of MFC offered by VC+, using the interfaces of the COM-ADO to handle the *.mdb file, design a managing system of materials based on VC+. This system has the feature of using easily and friend
3、ly UI. It realizes the function of modifying, updating and viewing data. It makes operating information more easily, so we can make managing materials more easily.Key Words: VC+;ADO;managing materials引言 电子化和计算机化已经深入普及到从人们生活到工作的方方面面,由此带来的方便性和高效性已经牢牢吸引住了人们,在现代生活中几乎没有任何一个地方可以离得开计算机的帮助,所以通过编写软件来实现对物资系统的
4、管理是十分有必要和迫切的,实现物资系统的计算机现代化管理可以大大的解放劳动力,提高工作效率。现如今市面上的软件开发工具多如牛毛、良莠不齐,而始终独占鳌头的可谓还是微软自己出品的Visual Studio,而在VS中使用最广泛的该数VC+了。本次开发使用的就是Visual C+.NET 20051。1. 概述1.1 系统概述物资管理系统是典型的数据库管理系统,其设计主要包括前端应用程序的开发和后台数据库的建立两个方面。应用程序要求建立一个具有数据一致、字段完整以及安全保密性能好的数据库;而对于后台数据库则要求应用程序功能完备、易使用。应用程序可以修改数据库中的数据项,并把数据按用户的要求显示出来
5、;数据库系统是一个关系表的集合。本设计主要的与众不同之处是实现了网络通信的功能,采用了服务器/客户端的通信结构,比之其余的设计作品又进了一大步。1.2 设计思想与要求本物资管理系统用Visual C+设计前端应用程序,采用Access建立后台数据库。Access 是Office里面的一个组件,可用来制作小型的数据库。在办公软件Office套件中,最为广大用户熟悉的是Word和Excel以及PowerPoint,因为它们功能强大且方便易用,更因为它们不仅可用于办公,还可用于个人写作和小型管理系统等。同为Office套件中一部分的Access,虽然有着同样强大的功能,但使用的人却相对少些,不像Wo
6、rd和Excel那样广泛。Access 数据库管理系统是Microsoft Office 套件的重要组成部分,适用于小型商务活动,用以存贮和管理商务活动所需要的数据。Access不仅是一个数据库,而且它具有强大的数据管理功能,它可以方便地利用各种数据源,生成窗体(表单)、查询、报表和应用程序等。Access数据库以文件形式保存,文件的扩展名是mdb2。作为较为新品的VC+.NET 2005拥有着比以前版本更为强大的功能,更方便的操作,更友好的界面,运行更稳定。使用VC+可以直接调用最底层的win32 API,直接操作系统的各项功能,这是VB,C+Builder,VFP等工具对API进行封装和限
7、制所无法比拟的。通过MFC这一较为底层的类库对API进行了简化操作,更为便捷的实现了Windows的各项功能3。VC+功能强大,业界内有句话说得好,是“懒惰的程序员用Delphi,聪明的程序员用VB,真正的程序员用VC+”。使用VC+必须注意每一细节,都需要做好规划,而其他的高级语言开发工具都进行了封装和对外屏蔽,掩盖了许多细节,使一般人都可进行开发。而VC+要求开发者必须深刻了解系统的原理细节,没有扎实的理论功底是行不通的4。设计要求方面,主要实现了各种物资的记账式管理。对于各种物资的库存、使用、登记各方面逐一进行实现,实现客户端/服务器端网络通信,即服务器负责数据操作,而客户端负责提供用户
8、交互界面,发出数据操作的请求,将操作与实现分割开来,这也是现今流行的设计思想。1.3 技术关键本系统采用目前比较流行的ADO数据访问技术。ADO5(ActiveX Data Objects)称为ActiveX数据对象,是Microsoft公司开发数据库应用程序面向对象的新接口,它具有较强的功能、通用性好、效率高、占空间少等特点。ADO是DAO/RDO的后继产物,它扩展了DAO和RDO所使用的对象模型,具有更加简单,更加灵活的操作性能。另外还增加了一些用户以前没有接触到的特征。随着信息网络化的发展,对数据库的访问宜采用ADO对象模型6,以获得更好的性能,更大的灵活性。ADO提供了轻量、高性能的数
9、据访问接口,可通过ADO对象编程来访问各种数据库7。1.3.1 ADO数据访问技术ADO包括的主要对象有:n 连接对象Connection。连接时必须指定要连接到的数据源以及连接所使用的用户名和口令等信息。 n 命令对象Command。可以通过已建立的连接发出命令,对数据源进行指定的操作。 n 参数对象 Parameter。表示与基于参数化查询或存储过程的Command对象相关联的参数。n 记录集对象Recordset。查询命令可以将查询结果存储在本地,这些数据以“行”(记录)为单位,返回数据的集合被称为记录集。 n 字段对象Field。一个记录集行包含一个或多个字段。如果将记录集看作二维网格
10、,字段将排列起来构成列。每一字段(列)都分别包含有名称、数据类型和值的属性。n 错误对象 Error。用于承载所产生错误的详细信息。n 属性对象 Property。表示由提供者定义的ADO对象的动态特性。n 流对象 Stream。可用于对数据流的字段或记录进行操作。n 集合对象 Set。包含其他特定类型的对象。n 事件Event。有关某些操作即将或已经发生的通知8。2. 总体设计 总体设计规划分为多个模块完成,具体见图1。物资管理系统用户账户管理数据操作模块数据显示模块管理员添加与删除用户添加与删除物资入库物资出库物资归还新增物资缺货登记出库报表借出报表库存信息报表缺货登记报表入库报表图1 总
11、体设计图在后台建立了七张表格,分别为用于账户控制的管理员和用户的两张表、用于数据操作的物资、出库表、入库表、借出表和缺货登记表五张表,如图2。图2 七张表格在前台的应用程序设计中,窗体一共包括八个界面,分别是:登陆界面、主界面、入库界面、出库界面、归还界面、新增物资界面、缺货登记界面、报表界面。3.软件设计3.1 总体方案3.1.1 开发工具前台开发工具使用Visual C+.NET 2005,后台数据库使用Access2007。3.1.2 软件架构分为客户端和服务器端两部分,客户端通过操作生成命令字符串,通过网络传递到服务器端,然后由服务器端进行处理,对数据库文件进行操作。而报表部分是由客户
12、端发出请求,然后服务器端向客户端传递报表文件,客户端接收后再显示出来。这样处理有一个好处是能够同步的对数据进行修改和显示,不会由于多次操作同时进行而造成混乱9。3.1.3 数据库封装 报表显示模块为了简化代码,提高代码通用性,所以对常用的操作做了一个封装,即将ADO这个COM组件进行了一个封装,设计成了一个基类,然后又从该类派生出几个子类分别对应所要显示的几个报表。3.2 程序流程 根据上述思想和设计,程序流程如图3所示:在客户端用户先进入登陆界面进行登陆,登陆后进入主界面,在主界面中有其他的界面,用户可以根据自己的权限进入。在服务器端随时接受客户端的请求并进行及时的反馈10。开始登录失败管理
13、员普通用户成功用户账户管理数据报表显示服务器端记录数据操作读取账户类型图3 程序流程图3.3 模块说明 客户端登陆界面:该界面是本系统运行后用户第一个看到的界面。在该界面用户必须输入正确的用户名和密码才能进行登陆,而且只有输入正确的用户名和密码才可以进入登录本物资管理系统。在登录时系统要打开数据库,然后根据当前输入的用户名在数据库中查找看有没有,如无则提示输入错误,如果有则对比输入的密码与数据库中存储的密码是否一致,若不一致提示错误,如一致则成功登录。在登录时可选择为管理员登录或用户登录,其作用为分别连接不同的表,从而使两者的权限在登录后体现出来11。设计该界面是为了增加系统的安全性。因为随着
14、Internet技术的快速发展,针对网络信息系统的恶意攻击变得越来越多样化和复杂化,计算机病毒也以一种自动化的方式,借助软件的缺陷来扩散、蔓延,并攻击计算机系统,据估计,目前约有58000多种已知病毒12,13。要正确输入服务器IP地址,此地址用来连接服务器端,与服务器进行通信时需要。界面如图414。图4 登录界面 主界面:主界面为登录后显示,如图5所示。主要提供各项功能入口。管理员具有全部功能,而普通用户只具有报表、退出系统和关于三项功能。图5 主界面账户管理模块:账户管理模块主要提供使用者即管理员添加和删除用户和管理员账户使用的。管理员可在其下拉菜单中选择四项功能中的一项使用。使用时只需输
15、入正确的用户名和密码即可。入库模块:设计一个对话框,界面如图6。入库的意思是指在现有的物资基础上添加数量。入库模块功能主要为从下拉列表中选择已存在的物资号,已存在的物资号通过网络传输从服务器端的数据库表中逐个发送到客户端,然后在入库对话框初始化时逐个添加到下拉列表中,以供用户选择。用户选择后,再在以下的文本框中填入详细的信息,然后点击确定,程序按一定的顺序将各个字段的信息发送到服务器端,由服务器端对这些信息进行处理。注意不可不填,没有的话可以填写无,否则将引发语句错误,影响程序的正常运行。图6 入库界面出库模块:出库模块对话框界面如图7。出库的作用是指将现有的物资从库存中发出去,即在库存中的数
16、量减少。其中物资号下拉列表中选择已存在的物资号的方法和过程同入库中的一样,其余的按要求填写即可,同样要注意不要有空余。右下角的复选框的作用是当选中时表明需要归还,不仅在库存信息表中减少数量,还要在借出表中登记;若未选,则同样在库存信息表中减少数量,同时要在出库表中登记,而不登记在借出表,即关联的表不同。图7 出库界面 归还模块:归还模块界面如图8。物资号的处理还是同上。注意借用信息的的文本框是一个只读的文本框。其作用是在选择了一个物资号时,将物资号发送至服务器端,然后在借出表查找出借用信息,然后再发送至客户端通过客户端显示在该只读文本框中。除了该文本框不用填写,其余的均需进行填写,否则程序同样
17、会出错。图8 归还界面新增物资模块:界面如图9。该对话框比较简单,没有什么特殊之处。作用是添加一样新物资。它与入库所不同的是,入库是在已有的基础上增加数量,而新增物资是没有该物资,而新添加一项物资信息,即在库存信息表中增加一条新记录。所有的字段均由用户自己指定。同样不可有空余。图9 新增物资界面缺货登记模块:界面如图10。该界面实际由两个功能融合而来。第一个功能:缺货登记,选中单选按钮“缺货登记”。此时已供应量变为不可输入状态,用户只需填入其他信息,即可完成缺货登记。服务器端根据这些信息写入缺货登记表,创建新的记录。第二个功能:供应登记,选中单选按钮“供应等级”。此时需求量变为不可输入状态,用
18、户填入其他信息即可,服务器端根据这些信息查找缺货登记表中对应项目,并比较数值,将相应条目的数量减少或删除该记录。同样不可有填写空余。图10 缺货登记界面报表模块:报表模块中可以显示系统中开放的几个表格的内容。采用了“Microsoft FlexGrid Control,version 6.0(SP6)”的COM控件和一个列表框。在对话框初始化时,向列表框中添加5个字符串,分别对应5个表格。建立了一个基类CDataSet,从此类派生出5个表对应的记录集类,以便于数据的显示操作,其中封装了COM组件的接口操作。通过列表框不同字符串之间的切换可以显示不同的表格。表格所在的数据库文件是由对话框初始化时
19、由服务器端下载下来的。报表界面参照图11。图11 报表界面 服务器端 服务器端比较简单,主要是接受客户端发出的请求,并比较对照,分类处理。数据操作的请求一般是接受关键字符串,并组装成标准的SQL命令字符串并通过ADO对象执行。报表的请求则是接受请求后发送数据文件,将文件传送至客户端再在本地打开执行。登录请求则是对照比较文件中已存在的内容并返回结果。账户请求则是接受字符串,并进行添加删除等工作15。3.4 安装包制作安装包制作采用Visual C+.NET 2005自带的制作程序。封装成windows installer即*.msi文件。只需在工程中正确加入文件,并做好相关设置,然后生成即可。参
20、照图12。图12 安装包制作界面4. 运行环境与使用方法4.1 运行环境(1)硬件环境 处理器:Intel 奔腾3或更高兼容CPU内存:128M(建议256M以上)硬盘空间:10M(2)软件环境操作系统:Windows NT 或Windows2000/Windows XP4.2 使用说明本系统的用户按权限分为两种:管理员、普通用户。用户的可进行的操作和权限有关(具体详见模块说明)。若想正常工作,需在客户端启动前启动服务器端,并在防火墙上加以放行。(1)运行系统后,首先会看到登录窗体,对用户的身份进行认证。系统默认内置了一个账号:账户名:admin 密码:admin,为管理员账户。若为本地用户可
21、在IP中填入回环地址127.0.0.1,若为远程用户需正确填入远程服务器IP地址。用户如需添置其他账号可在登陆后操作。(2)登录后可进行用户账户的添加删除,出库、入库、归还、新增物资、缺货登记、报表等操作(详见模块说明)。(3)如需退出可点击菜单栏上的“退出”子菜单即可。点击“关于”子菜单可查看版权信息。总结 经过一段时间的努力,物资管理系统的雏形终于做了出来。欣喜之余,还需总结经验教训。通过本次软件设计的任务,我了解了做软件的艰辛,也积累了做软件的细节和经验,这些都是书本上无法学来的,这对自己无疑是一种提高。由于使用VC+的MFC比较底层,许多功能的实现看似简单却一点也不易,工作量也更是比用
22、VB或Delphi等软件大得多,所以也不免有遗憾。比如软件的界面美化、网络通信的多线程提速、与实际使用的贴合度等等还有不少可以提高的部分。这些都是以后可以努力的方向。参考文献:1 George Shepherd,David Kruglinski著,潘爱民 译.Visual C+.NET技术内幕(第六版)M.北京:清华大学出版社,2007.2 王伟.基于VB的家庭理财管理系统设计与实现D.信阳:信阳师范学院,2007. 3 侯俊杰.深入浅出MFCM .武汉:华中科技大学出版社,2001.4 Randal E.Bryant,David O Hallaron著,龚奕利,雷迎春 译.深入理解计算机系统
23、M.北京:中国电力出版社,2008.5 M W Blasgen,System RAn Architectural OverviewJIBM Systems Journal,NO.1(February 1981)6 Chiy A L,Fu A WEnhancements on Local Outliers DetectionJIn Proceedings of the Seventh International Database Engineering and Application Symposium,2003:137 E.F Codd“A Relational Model Of Data f
24、or Large Shared Data Banks.”J Communications of the ACM 13,NO.6 (June 1970) 8 侯其锋,李晓华,李莎. Visual C+数据库通用模块与系统移植M.北京:清华大学出版社,2008.9 孙鑫,余安萍. VC+深入详解M .北京:电子工业出版社,2008.10 Johnson M. Hart著,安娜,吴明军 译.Windows系统编程(第三版)M.北京:机械工业出版社,2006.11 求是科技.Visual C+数据库通用模块及典型系统开发M.北京:人民邮电出版社,2009.12 BrucelManaged vulner
25、ability assessment(MVA)Mprove security by understanding yourownvulner abilitiesJNewwork Security,2002,(4):8-913 Sinha S,Harrold MjAnalysisand testing of programs with exception-handing constructs IEEE TransJOn Software Engineering,2000,26(9):84987114 罗云彬. Windows环境下32位汇编语言程序设计(第二版)M. 北京:电子工业出版社,2007.15 Charles Petzold著.北京博彦科技发展有限公司 译.Windows程序设计(第五版)M.北京:北京大学出版社,1996.