2024年仓库管理系统设计论文3篇

网友 分享 时间:

【请您参阅】下面供您参考的“2024年仓库管理系统设计论文3篇”是由阿拉网友精心整理分享的,供您阅读参考之用,希望此例范文对您有所帮助,喜欢就复制下载支持一下小编了!

仓库管理系统设计论文篇1

毕业实习报告

一、实习目的信息与计算科学是一门需要实践性的课程,平时大多数时间都在讲理论,所以实践的机会是十分重要的并且珍贵的。为了能更好的把理论与实践相结合,增强对java语言的应用能力,增强知识运用能力,我们专业在学院的安排下于今年暑假进行了毕业实习。

二、实习时间

实习时间为2011-7-4——2011-7-23,主要有学习java相关知识、分小组做项目、答辩几个阶段组成。

三、实习地点

数学实验室。

四、实验方式

重庆达内软件有限公司兼学院老师指导的校内实习。

五、实习主要内容初期知识积累

实习开始于放假后的几天 在重庆炎热的夏天 在机房虽然有空调但依然很热。但是值得庆幸的是我们都学到了一些东西,这就是俗话说的阳光总在风雨后吧。

实习的主要内容是java的运用。java的主要特点是java的安全性高,不能写病毒,所以适用于金融等对安全性要求较高的行业。但是病毒可以通过java虚拟机写。java和flash一起可以达到很好的页面效果,单单java是做不到的。

数据库和java的连接需要在程序中写好代码,外部用建好的数据库,只要设置正确就可以实现数据的调用。若某些操作可能抛出异常,则先将其选中,然后右击鼠标—包围方式—try.catch块,即可自动生成try-catch语句。建立一个类之后,定义相关的属性,右击鼠标—源代码—生成get和set语句,即可快速地生成每个属性的set与get函数,减少了工作量。这些简易高效率的操作也更加证明了java作为一门语言的强大。

三层架构在写代码时起到了很重要的作用,一切的工作都需要依附于这一结构才能够真正地去构建要实现的系统。它们是组织整个系统的骨骼,支撑起整个系统的各项功能。action层是返回层,biz层是业务逻辑层,dao层是数据访问层。

struts 框架工具是 apache 基金会 jakarta 项目中推出的一个子项目。struts 在英文中是支架、支撑的意思,这也体现出 struts 在开发 web 应用程序过程所起到的重要作用,struts 为 web 应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时 struts 框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用 struts 可以简化遵循 mvc 设计模式的 web 应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥 jsp/servlet 优点、并具有强可扩展性的 web 应用。总之,struts 的出现使得 web 应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。

struts 架构一经推出,即受到 java 开发群体的广泛重视,从 2004 年开始逐渐升温,并日渐成为 java 创建 web 应用开发的最流行的框架工具,在目前 java web 程序员的招聘要求中,几乎都提出了对 struts 的要求,精通 struts 架构已经成为 java web 程序员必备的技能。实习中遇到的问题及解决方案

实习前期最重要的是安装软件 又由于学校的机房的电脑的配置不是很好故不是每一台电脑都可以用的,所以好多的同学都得带自己的电脑来。就在这个安装的过程中问题又是很多种的路劲的问题最多。最后在老师的帮助下这个问题算是很快的解决了。java对于某些细节的东西要求是很严格的 对于代码是不能出错的这是绝对的因为如果你出了一点点的小错误可能导致你的整个程序都跑步起来,或者是其中某些重要的功能不能实现。再有对于页面的设置页面之间的跳转传值字体的设置是关键虽然这是一个在老师看来是不为问题的问题但还是经常出错utf-8这个就是页面上的设置。是一个很小的细节问题。这里也体现了java细节重要性。仓库管理系统的设计过程

实习的最后要求是做一个项目可供选择的项目有4个,我们小组做的项目是仓库管理系统。该系统又又前台和后台组成我主要的分工是做前台页面的设计,设计用户的登陆和注册。在用户表中插入一条管理员的相关信息的记录,在登陆界面上用户可以选择登录或者注册。若选择登录,即要输入用户名和密码,系统要判断输入的用户名是否存在,密码是否一致。若满足条件,则可以顺利登陆,即页面跳转至显示有用户信息的页面;若选择注册,则跳转至注册页面,用户需输入各种信息以完成注册。如果输入合法,则注册成功并能够跳转至登录页面。这一块只是外部的一个框架包括颜色的配比什么的。主要的内容还是内部的代码的运用。

物资入库,往一个表中插入物品记录。这个表中的数据记录在数据库当中这一功能的实现需要用户输入物资名、数量等信息,这样即可将相应的物资入库。

物资查询,就是将数据库中的数据把要求的在页面显示,这一功能比较容易实现。点击物资查询的链接后就可以跳至查询界面,并显示物资的各项信息。

库存系统的设计中,各种功能较多,实现的页面跳转尤其多,所以需要一个主页面,使得操作简单明了,不至于混乱。

主页面要实现把各个部分分块,即先把页面的格局分好,再分别在每一个小区块中写相应的页面。有固定的导航块,所以对各种功能的操作更加容易实现了。

主页面的外部设计用了学校的主页页面图片看上去比较气氛。我们又在主页面的最上部加了滚动条这让整个页面显得更加又生气。中间部分,左边显示用户信息,右上部分是各种操作功能的链接。在链接处都放上了按钮的图片,使这一部风看起来像是按钮图片。(其实是连接)所以有了具有按钮效果的链接,这是一个小技巧,因为直接用按钮是实现不了相应的跳转功能的,只有链接才可以做到,于是链接加上按钮的图片就是最好的解决方案了。右下部分跳转页面,即点击链接后,右下的页面跳转至相应的页面。总之,主页面的设计让一系列复杂繁琐的操作有了较强的连贯性,使用户使用该系统的舒适感倍增。

刚开始时,实现的物资出库功能没有考虑要出库的数量是否多于库存的数量,所以貌似完成的库存系统是一个可以无限出库的系统,不能满足对系统的安全性和稳定性的要求。考虑到上述因素,又对系统有了进一步的完善,即增加了出库时的数量判断。编写一个判断函数即可满足要求。输入了出库信息后,提交时即判断库存量是否满足需求:若出库量过大,则显示物品在仓库中不存在。通过这一系列的提示即可满足仓库系统的实际性要求。

六、实习总结及体会

一个项目是一个团队的工作一个人不能把一个项目搞定的几时可以那花的时间也是非常的巨大的还有很多的地方不一定能涉及到。团队的力量才是最厉害的俗话说人心其泰山移说的就是这个道理。再有一点就是我们要充分相信我们的队友,我们也要为我们的团队尽自己的最大努力。我们最终写了一个库存系统虽然在老师的眼里不是很好但是这个项目也是我们实习里的最好的一个对于我们来说这个项目是我们以团队做的第一个项目即时它很烂我们也觉得很好因为我们努力去做了以团队去做了。

对于这个java项目它对代码要求很高特别是细节问题。在平时学习的知识太有限了,与实际的应用的技能有较大的差距,我们必须加强相关的训练以增强编程、网页设计等方面的技能,只有把理论运用到实践才是正真的理会。

总的来说,实习虽然是个艰辛的过程但只有经历风雨我们才能成长经历磨难错误我们才会成功,这是这个项目教会我的。

本文地址:http:///zuowen/

仓库管理系统设计论文篇2

毕业实习报告

一、实习目的

信息与计算科学是一门需要实践性的课程,平时大多数时间都在讲理论, 所 以实践的机会是十分重要的并且珍贵的。为了能更好的把理论与实践相结合, 增 强对 java 语言的应用能力,增强知识运用能力,我们专业在学院的安排下于今 年暑假进行了毕业实习。

二、实习时间

实习时间为 2011-7-4—— 2011-7-23, 主要有学习java 相关知识、分小组做项目、答辩几个阶段组成。

三、实习地点 数学实验室。

四、实验方式

重庆达内软件有限公司兼学院老师指导的校内实习。

五、实习主要内容 1 初期知识积累

实习开始于放假后的几天 在重庆炎热的夏天 在机房虽然有空调但依然很 热。但是值得庆幸的是我们都学到了一些东西 ,这就是俗话说的阳光总在风雨 后吧。

实习的主要内容是 java 的运用。java 的主要特点是 java 的安全性高,不 能写病毒, 所以适用于金融等对安全性要求较高的行业。但是病毒可以通过 java 虚拟机写。java 和 flash 一起可以达到很好的页面效果, 单单 java 是做不到的。数据库和 java 的连接需要在程序中写好代码, 外部用建好的数据库, 只要 设置正确就可以实现数据的调用。若某些操作可能抛出异常, 则先将其选中, 然 后右

击鼠标—包围方式— 块,即可自动生成 try-catch 语句。建立 一个类之后, 定义相关的属性, 右击鼠标—源代码—生成 get 和 set 语句, 即可 快速地生成每个属性的 set 与 get 函数, 减少了工作量。这些简易高效率的操作 也更加证明了 java 作为一门语言的强大。

三层架构在写代码时起到了很重要的作用,一切的工作都需要依附于这一 结构才能够真正地去构建要实现的系统。它们是组织整个系统的骨骼, 支撑起整 个系统的各项功能。action 层是返回层, biz 层是业务逻辑层, dao 层是数据访 问层。

struts 框架工具是 apache 基金会 jakarta 项目中推出的一个子项目。struts 在英文中是支架、支撑的意思, 这也体现出 struts 在开发 web 应用程 序过程所起到的重要作用, struts 为 web 应用提供了通用的框架,让开发人 员可以把主要精力集中在如何解决实际业务问题上, 与此同时 struts 框架也允 许开发人员根据实际需要进行扩展和定制, 从而可以更好的适应用户的需求。采 用 struts 可以简化遵循 mvc 设计模式的 web 应用的开发工作, 很好地实现代 码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥 jsp/servlet 优点、并具有强可扩展性的 web 应用。总之, struts 的出现使 得 web 应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。struts 架构一经推出, 即受到 java 开发群体的广泛重视, 从 2004 年开 始逐渐升温,并日渐成为 java 创建 web 应用开发的最流行的框架工具,在目 前 java web 程序员的招聘要求中,几乎都提出了对 struts 的要求,精通 struts 架构已经成为 java web 程序员必备的技能。

2实习中遇到的问题及解决方案

实习前期最重要的是安装软件 又由于学校的机房的电脑的配置不是很好故不 是每一台电脑都可以用的, 所以好多的同学都得带自己的电脑来。就在这个安装 的过程中问题又是很多种的路劲的问题最多。最后在老师的帮助下这个问题算是 很快的解决了。java 对于某些细节的东西要求是很严格的 对于代码是不能出错 的这是绝对的因为如果你出了一点点的小错误可能导致你的整个程序都跑步起 来, 或者是其中某些重要的功能不能实现。再有对于页面的设置页面之间的跳转 传值字体 的设置是关键虽然这是一个在老师看来是不为问题的问题但还是经常 出错 utf-8这个就是页面上的设置。是一个很小的细节问题。这里也体现了 java 细节重要性。

3仓库管理系统的设计过程

实习的最后要求是做一个项目可供选择的项目有 4个,我们小组做的项 目是仓库管理系统。该系统又又前台和后台组成我主要的分工是做前台页面的设 计, 设计用户的登陆和注册。在用户表中插入一条管理员的相关信息的记录, 在 登陆界面上用户可以选择登录或者注册。若选择登录,即要输入用户名和密码, 系统要判断输入的用户名是否存在, 密码是否一致。若满足条件, 则可以顺利登 陆,即页面跳转至显示有用户信息的页面;若选择注册,则跳转至注册页面,用 户需输入各种信息以完成注册。如果输入合法, 则注册成功并能够跳转至登录页 面。这一块只是外部的一个框架包括颜色的配比什么的。主要的内容还是内部的 代码的运用。

物资入库,往一个表中插入物品记录。这个表中的数据记录在数据库当中 这一功能的实现需要用户输入物资名、数量等信息, 这样即可将相应的物资入库。物资查询,就是将数据库中的数据把要求的在页面显示,这一功能比较容 易实现。点击物资查询的链接后就可以跳至查询界面,并显示物资的各项信息。库存系统的设计中,各种功能较多,实现的页面跳转尤其多,所以需要一 个主页面,使得操作简单明了,不至于混乱。

主页面要实现把各个部分分块,即先把页面的格局分好,再分别在每一个 小区块中写相应的页面。有固定的导航块, 所以对各种功能的操作更加容易实现 了。

主页面的外部设计用了学校的主页页面图片看上去比较气氛。我们又在主 页面的最上部加了滚动条这让整个页面显得更加又生气。中间部分, 左边显示用 户信息, 右上部分是各种操作功能的链接。在链接处都放上了按钮的图片, 使这 一部风看起来像是按钮图片。(其实是连接所以有了具有按钮效果的链接,这 是一个小技巧, 因为直接用按钮是实现不了相应的跳转功能的, 只有链接才可以 做到, 于是链接加上按钮的图片就是最好的解决方案了。右下部分跳转页面, 即 点击链接后, 右下 的页面跳转至相应的页面。总之, 主页面的设计让一系列复杂 繁琐的操作有了较强的连贯性,使用户使用该系统的舒适感倍增。

刚开始时,实现的物资出库功能没有考虑要出库的数量是否多于库存的数 量, 所以貌似完成的库存系统是一个可以无限出库的系统, 不能满足对系统的安 全性和稳定性的要求。考虑到上述因素, 又对系统有了进一步的完善, 即增加了 出库时的数量判断。编写一个判断函数即可满足要求。输入了出库信息后, 提交 时即判断库存量是否满足需求:若出库量过大, 则显示物品在仓库中不存在。通 过这一系列的提示即可满足仓库系统的实际性要求。

六、实习总结及体会

一个项目是一个团队的工作一个人不能把一个项目搞定的几时可以那花的 时间也是非常的巨大的还有很多的地方不一定能涉及到。团队的力量才是最厉害 的俗话说人心其泰山移说的就是这个道理。再有一点就是我们要充分相信我们的 队友, 我们也要为我们的团队尽自己的最大努力。我们最终写了一个库存系统虽 然在老师的眼里不是很好但是这个项目也是我们实习里的最好的一个对于我们 来说这个项目是我们以团队做的第一个项目即时它很烂我们也觉得很好因为我 们努力去做了以团队去做了。

对于这个 java 项目它对代码要求很高特别是细节问题。在平时学习的知识 太有限了, 与实际的应用的技能有较大的差距, 我们必须加强相关的训练以增强 编程、网页设计等方面的技能,只有把理论运用到实践才是正真的理会。总的来说, 实习虽然是个艰辛的过程但只有经历风雨我们才能成长经历磨难 错误我们才会成功,这是这个项目教会我的。

仓库管理系统设计论文篇3

用visual c++设计的仓库管理系统

摘要 本文主要介绍了采用visual studio 2005的一个仓库管理系统。该系统基于mfc集成开发环境,利用ado控件实现基本信息管理、商品信息管理、库存操作管理、库存警示管理的功能。详细介绍了开发本系统的步骤:系统分析、系统设计、系统实现。在系统分析中采用系统的功能结构图分析了系统所需的各种数据。在系统的设计中,详细的展现了系统的各个功能模块、所需的数据库表、菜单的设计等。在系统的实现中,给出了相应模块功能控件的事件及代码。

关键字:仓库管理 管理系统

ado控件 面向对象

第一章

绪论

系统的开发背景……………….…………………………………4 当前仓库管理现状分析及设计仓库管理系统的意义………….4 系统开发工具选择及介绍………………………….……………5 ado数据访问技术………………………………………………7 第二章 系统设计

系统需求分析„„„„„„„„„„„„„„„„„„„„„9 系统开发目标……………………………………………… ………10 系统功能分析

系统功能描述…………………………………………………..10 系统功能模块的划分………………………………………… 11 系统流程分析…………………………………………………..11 第三章 数据库设计

数据库需求分析 ……………………………………………….12 数据库概念结构设计 ………………………………………….13 数据库逻辑结构设计及实现 ………………………………….15 第四章 系统各主要功能模块的实现

主界面的设置…………………………………………………..18 主要各功能模块所涉及的类的添加……………………… ……19 登陆模块设计 …………………………………………………..19 客户管理模块设计 设计客户信息管理对话框 ………………………………..21 设计客户信息编辑对话框 ……………………………..24 仓库管理模块设计

设计仓库信息管理对话框 …………………………………25 用户管理模块设计

设计用户信息管理对话框…………………………………...27 设计用户信息编辑对话框…………………………………..28 设计修改用户密码的对话框…………………………………29 商品管理模块设计

设计商品类别管理对话框……………………………………30 设计商品类别编辑对话框…………………………………...31 设计商品信息管理对话框…………………………………...32 库存操作管理模块设计

设计入库操作管理对话框…………………………………34 设计入库单编辑对话框……………………………………..35 设计出库操作管理对话框…………………………………..37 设计出库操作编辑对话框 ………………………………..37 设计库存盘点管理对话框…………………………………39 设计库存盘点编辑对话框 …………………………………40 库存警示管理模块设计

设计商品数量报警管理模块………………………………...41 设计商品失效报警管理模块 ……………………………….42 第五章 结束语

开发中的问题和解决办法………………………………………….44 系统不足之处………………………………………………………44 第六章 致谢 …………………………………………………………..45 第七章 参考文献 ……………………………………………………..45

系统开发的背景

20世纪,随着全球经济的蓬勃发展,众多经济学家纷纷提出了新的管理理论。20世纪50年代,西蒙提出管理依赖于信息和决策的思想。同时期的维纳发表了控制论,他认为管理是一个控制过程。1958年,盖尔写到:“管理将以较低的成本得到及时准确的信息,做到较好的控制。”这个时期,计算机开始用于会计工作,出现数据处理一词。

1970年,walter an给刚刚出现的管理信息系统一词下了一个定义:“以口头或书面的形式,在合适的时间向经理、职员以及外界人员提供过去的、现在的、预测未来的有关企业内部及其环境的信息,以帮助他们进行决策。”在这个定义里强调了用信息支持决策,但并没有强调应用模型,没有提到计算机的应用。

1985年,管理信息系统的创始人,明尼苏达大学的管理学教授gordon 给了管理信息系统一个较完整的定义,即“管理信息系统是一个利用计算机软硬件资源,手工作业,分析、计划、控制和决策模型以及数据库的人-机系统。它能提供信息支持企业或组织的运行、管理和决策功能。”这个定义全面地说明了管理信息系统的目标、功能和组成,而且反映了管理信息系统在当时达到的水平。当前仓库管理现状分析及设计仓库管理系统的意义

一直以来人们使用传统的人工方式管理库存。这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。对于企业来说为了管理好仓库,将付出大量的人力和物力。因此设计一款仓库管理系统是非常重要的。它带来的优点是:它可以全面的管理仓库中储存的商品和货物,缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序,为采购、营销和生产提供了依据,从而提高企业的经营效率。因此,库存管理系统能够为用户提供充足的信息和快捷的查询手段。

随着科学技术的不断提高,计算机科学不断发展,其强大的功能已经被人们深刻认识,它已经进入了人类社会的各个领域并发挥着越来越重要的作用.系统开发工具的选择及介绍  系统开发环境

操作系统:windows xp professional 简体中文版 开发平台: visual studio 2005简体中文版  系统开发工具的选择

实现该系统的方法有很多,之所以选择visual c++作为开发工具,不仅仅因为曾经有过使用它的经验,看中的更是它的功能强大和使用方便。它本身不仅具有极其强大的编程能力,它允许选择和管理外接程序,并内含多种实用控件,这些对visual c++的扩充又进一步增强了它的开发环境的能力。 开发平台介绍 visual studio 可以用来创建 windows平台下的 windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 office 插件。

1998 年,微软公司发布了 visual studio 。所有开发语言的开发环境版本均升至 。这也是 visual basic 最后一次发布,从下一个版本()开始,microsoft basic 进化成了一种新的面向对象的语言:microsoft 。由于微软公司对于 sun 公司 java 语言扩充导致与 java 虚拟机不兼容而 sun 被告上法庭,微软在后续的 visual studio 中不再包括面向 java 虚拟机的开发环境。

2002 年, 口号的提出与 windows xp / office xp 的发布,微软发布了 visual (内部版本号为 )。在这个版本的 visual studio 中,微软剥离了 visual foxpro 作为一个单独的开发环境以 visual foxpro 单独销售,同时取消了 visual interdev。.net 的通用语言框架机制(common language runtime, clr),其目的是在同一个项目中支持不同的语言所开发的组件。所有 clr 支持的代码都会被解释成为 clr 可执行的机器代码然后运行。

visual basic、visual c++ 都被扩展为支持托管代码机制的开发环境,且 visual 更是从 visual basic 脱胎换骨,彻底支持面向对象的编程机制。而 visual j++ 也变为 visual j#。后者仅语法同 java 相同,但是面向的不是 java 虚拟机, framework。

2003 年,微软对 visual studio 2002 进行了部分修订,以 visual studio 2003 的名义发布(内部版本号为 )。visio 作为使用统一建模语言(uml)架构应用程序框架的程序被引入,同时被引入的还包括移动设备支持和企业模版。.net 框架也升级到了 。

2005 年,微软发布了 visual studio 2005。.net 字眼从各种语言的名字中被抹去,但是这个版本的 visual studio 框架的(版本)。它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。

这个版本的 visual studio 包含有众多版本,分别面向不同的开发角色。

microsoft为单独工作或在小型团队中的专业开发人员提供了两种选择,visual studio 2005 professional edition和用于microsoft office系统的visual studio 2005工具。每种版本都在标准版的特性上进行了扩展,包括用于远程服务程序开发和调试、sql server2005开发的工具,以及完整的、没有限制的开发环境。

ado数据访问技术

ado(activex data objects,activex数据对象)是microsoft提出的应用程序接口(api)用以实现访问关系或非关系数据库中的数据。象microsoft的其它系统接口一样,ado是面向对象的。它是microsoft全局数据访问(uda)的一部分,microsoft认为与其自己创建一个数据,不如利用uda访问已有的数据库。为达到这一目的,microsoft和其它数据库公司在它们的数据库和microsoft的ole数据库之间提供了一个“桥”程序,ole数据库已经在使用ado技术。ado的一个特征(称为远程数据服务)支持网页中的数据相关的activex控件和有效的客户端缓冲。作为activex的一部分,ado也是microsoft的组件对象模式(com)的一部分,它的面向组件的框架用以将程序组装在一起。ado从原来的microsoft数据接口远程数据对象(rdo)而来。rdo与odbc一起工作访问关系数据库,但不能访问如isam和vsam的非关系数据库。

ado 是对当前微软所支持的数据库进行操作的最有效和最简单直接的方法,它是一种功能强大的数据访问编程模式,从而使得大部分数据源可编程的属性得以直接扩展到你的active server 页面上。可以使用ado 去编写紧凑简明的脚本以便连接到 open database connectivity(odbc)兼容的数据库和 ole db 兼容的数据源,这样 asp 程序员就可以访问任何与 odbc 兼容的数据库,包括 ms sql server、access、oracle 等等。

ado是一种面向对象的编程接口,微软介绍说,与其同ibm和oracle提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。为实现这一目标,微软在数据库和微软的ole db中提供了一种“桥”程序,这种程序能够提供对数据库的连接。

开发人员在使用ado时,其实就是在使用ole db,不过ole db更加接近底层。ado的一项属性??远程数据服务,支持“数据仓库”activex 组件以及高效的客户端缓存。作为activex的一部分,ado也是com组件的一部分。ado是由早期的微软数据接口?远程数据对象rdo演化而来的。rdo同微软的odbc一同连接关系数据库,不过不能连接非关系数据库。

ado向我们提供了一个熟悉的,高层的对ole db的automation封装接口。对那些熟悉rdo的程序员来说,你可以把ole db比作是odbc驱动程序。如同rdo对象是odbc驱动程序接口一样,ado对象是ole db的接口;如同不同的数据库系统需要它们自己的odbc驱动程序一样,不同的数据源要求它们自己的ole db提供者(ole db provider)。目前,虽然ole db提供者比较少,但微软正积极推广该技术,并打算用ole db取代odbc。

ado向程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(需要占用342k内存,的368k略小,大约是 所占内存的60%)。同传统的数据对象层次(dao和rdo)不同,ado可以独立创建。因此你可以只创建一个 “connection”对象,但是可以有多个,独立的“recordset”对象来使用它。ado针对客户/服务器以及web应用程序作了优化。第二章 系统设计

系统需求分析

随着科学技术的发展,越来越多的企业开始用计算机管理仓库。而现在的仓库管理系统多种多样,而仓库管理的特点是信息处理量比较大。所以管理的物资设备种类繁多,而且由于入库单,出库单,需求单等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递,单据,报表种类繁多,各个部门管理规格不统一等问题。

在本系统的设计过程中,为了克服以上困难,满足计算机管理的需要,我们采取了下面的一些原则。

●统一各种原始的单据的格式,统一帐目和报表的格式。●删除不必要的管理冗余,实现管理规范化、科学化。

●程序代码标准化,软件统一化,确认软件的可维护行和实用性。●界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。系统开发目标

系统开发的总体任务是实现企业物资设备管理的系统化,规范化和自动化,从而达到提高企业物资管理的效率的目的。系统功能分析 系统功能描述(1)基本信息管理 基本信息管理包括对客户信息、仓库信息和用户信息信息的管理。(2)商品信息管理

对于商品各种信息的管理。(3)库存操作管理

库存操作管理可以实现入库管理、出库管理和库存盘点等功能。(4)库存警示管理

库存警示是指对库存中接近或超过临界值的商品进行报警。在商品信息中,包含商品的合理数量范围和有效期限。商品数量小于合理数量下限称为短线;商品数量大于合理数量的上限成为超储。商品出现短线、超储、接近或超过有效期限时都需要报警。(5)统计查询管理功能

统计查询管理可以对库存商品进行各种类型的统计和查询。从而使用户能够全面的了解库存状况。 系统功能模块的划分

基于对系统的分析,可以得到如图所示的系统功能模块图:

本系统将用户划分为两种类型,即系统管理员用户和普通用户。系统管理员用户可以管理其他用户信息,而在其他方面与所有用户的权限相同。

系统流程分析

所谓系统流程就是用户在使用系统时的工作过程。对于多类型用户的管理系统来说,每一类用户的工作流程都是不相同的。多用户系统的工作流程都是从用户登陆模块开始,对用户的身份进行认证。身份认证可以分为以下两个过程:

(1)确认用户是否是有效的系统用户。(2)确定用户的类型。

第一个过程决定用户能否进入系统。第二个过程根据用户的类型决定用户的操作权限,从而决定用户的工作界面。因此得到它的系统流程分析图如下:

第三章 数据库设计 数据库需求分析

在本设计中,通过对企业仓库管理的内容和系统流程分析,设计的数据项和数据结构如下:

(1)客户信息。包括的数据项有客户编号、名称、类型等。(2)仓库信息。包括仓库编号、名称和说明等。(3)用户信息。包括用户名、密码、员工姓名等信息。(4)商品管理信息。包括商品类别,商品编号等信息。

(5)库存操作管理信息。包括入库和出库操作需要记录的商品信息、仓库信息、经办人、涉及金额和入库时间等信息。有了上面的数据结构、数据项,就能进行下面的数据库设计。3.2 数据库概念结构设计

这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。本设计根据上面的设计规划出的实体有客户实体、仓库实体、用户实体、商品类别实体、商品实体、入库实体、出库实体、库存实体。各个实体的e-r图描述如下:

客户实体的e-r图

仓库实体e-r图

用户实体e-r图

商品类别e-r图

商品类别e-r图

入库实体e-r图

出库实体e-r图

库存实体 e-r图

3.3 数据库逻辑结构设计及实现

仓库管理系统数据库中的各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。数据库的实现采用sql sever 2005。

(1)客户信息表(client)

说明:cid为客户编号ame为客户名称、ctype为客户类型其中包括(1、供应商

2、供货商)、ctype为联系人、address为通信地址、postcode为邮政编码、phone为联系电话、fax为传真电话、memo为备注信息。

(2)仓库信息表(storehouse)

说明:sid为仓库编号、sname为仓库名称、memo为仓库说明。(3)用户信息表(users)

说明:username为用户名、pwd为密码、user_type为用户类型(1、系统管理员用户,2、普通用户)(4)商品类别表(protype)

说明:typeid为商品类别编号、typename为商品类别名称、upperid为上级商品类别

(5)商品信息表(product)

说明:pid为商品编号、pname 为商品名称、typeid为商品类型编号、pstyle商品规格、punit为计量单位、pprice为参考价格、plow为商品数量下限、phigh为商品数量上限、valid为有效期、alarmday为在到达有效期前几天发出警告。(6)入库操作信息表(storeln)

说明:sitype为入库操作类型,包括销售出库、退货出库、用料出库等。pid为入库商品编号、makedate为生产日期、pprice为入库商品单价、pnum为入库商品数量、cid为客户编号、sid为仓库编号、empname为经办人、optdate为入库日期(7)出库操作信息表(takeout)

说明:ttype为入库操作类型,包括销售出库、退货出库、用料出库等。pid为入库商品编号、makedate为生产日期、pprice为入库商品单价、pnum为入库商品数量、cid为客户编号、sid为仓库编号、empname为经办人、optdate为入库日期(8)库存商品信息表(prolnstore)

说明: spid为商品存储编号、pid为商品编号、pprice为商品入库单价、pnum为商品数量、makedate为生产日期、sid为仓库编号 第四章 系统各主要功能模块的实现

主界面的设置

根据对系统功能分析,主界面的菜单项包括基本信息管理、商品信息管理、库操作管理和库存警示管理。如图所示:

当用户单击基本信息管理时,显示客户信息管理、仓库信息管理、用户信息管理、修改用户密码、退出系统菜单项。添加这些菜单项如图所示:

当用户单击商品信息管理时,显示商品类别管理、商品信息管理。添加这些菜单项如图所示:

当用户单击库存操作管理时,显示入库操作、出库操作、库存盘点。添加这些菜单项如图所示:

当用户单击库存警示管理时,显示数量报警和实效报警。添加这些菜单项如图所示:

主要各功能模块所涉及的类的添加

根据数据库逻辑设计,我们可以为这些表添加相应的类。

1、cclient类用来管理客户表的数据库操作。

2、cstorehouse类用来管理表storehouse的数据库操作。

3、cusers类用来管理表users的数据库操作。

4、cprotype类用来管理表protype的数据库的操作。

5、cproductl类用来管理表product的数据库操作。

6、cstoreln类用来管理表storeln的数据库操作。

7、ctakeout类用来管理表takeout的数据库操作。

8、cproinstore类用来管理表proinstore的数据库操作。登陆模块设计 登陆对话框布局如图:

其id值设为idd_username_dialog。

用户要使用系统,首先必须通过系统的身份认证,这个过程叫做登陆。此模块的功能就是要进行身份认证。

在登陆对话框用户首先输入用户名,然后输入密码。输入完毕时,点击确定将发送bn_clicked消息。在确认按钮处添加此消息响应函数clogindlg :onok()。此函数的主要功能是检查用户输入数据的有效性,如果输入的信息不符合要求会自动退出程序。主要代码如下: clogindlg::onok(){ ……

//检查数据有效性

if(m_username == “"){messagebox(”请输入用户名“);

return;} if(m_pwd == ”“){ messagebox(”请输入密码“);

return;}

cusers user;//定义cusers对象

a(m_username);//用于从表users中读取数据

//如果读取的数据与用户输入数据不同,则返回

if(()!= m_pwd){ messagebox(”用户信息不正确,无法登录!“);

return;} }

当用户单击取消时,添加clogindlg::onbnclickedcancel()函数来响应此消息。此函数的功能是退出程序。主要代码如下: void clogindlg::onbnclickedcancel(){ oncancel();} 客户管理模块设计

客户管理模块可以实现以下功能:

1、添加客户。

2、修改客户信息。

3、删除客户。

4、查看客户信息。 设计客户信息管理对话框 对话框布局如图:

其id值设为idd_clentman_dialog。对话框对应的类为cclientmandlg。它继承cdialog类。添加控件包括四个按钮控件,一个组合框、ado data和datagrid控件。

该对话框的主要函数为refresh_data()、onaddbuttom()、onmodibutton()、ondelbutton()。h_data()函数

它的功能是为ado data控件设置数据源,从而决定在datagrid控件中显示的数据内容。主要代码如下: refresh_data(){ cstring csource;

//设置select语句,按客户单位排序 ……

ordsource(csource);h();//设置表格列宽度

} uttom()函数

当用户单击“添加”按钮时,执行此函数。其功能是打开编辑对话框。主要代码如下: onaddbutton(){ ……

//打开编辑对话框

cclienteditdlg dlg;……

if(l()== idok)…… } button()函数

当用户单击“修改”按钮时,执行此函数。其功能是弹出编辑对话框进行修改记录操作。主要代码如下: onmodibutton(){ ……

cclienteditdlg dlg; = m(0);//记录编号

……

if(l()== idok)

refresh_data();} utton()函数

当用户单击“删除”按钮时,执行此函数,其功能是删除所选择的记录。主要代码如下: ondelbutton(){ ……

cclient clt;

_delete(m(0));删除记录

refresh_data();

} 设计客户信息编辑对话框

编辑客户信息的对话框可以用来添加和修改客户信息,对话框名称为idd_clientedit_dialog。对话框的布局如图:

为对话框创建cclienteditdlg类并继承与cdialog类。

当用户单击“确定”按钮,添加onok()函数,其功能是将输入的信息保存到数据库中。主要代码如下: onok(){ …..cclient clt;me(mame);//客户单位

……

_insert();插入进数据库

……

_update(ccid);} 仓库管理模块设计

仓库管理模块可以实现以下功能:

1、添加仓库信息

2、修改仓库信息

3、删除仓库信息

4、查看仓库信息

设计仓库信息管理对话框

对话框布局如图:

对话框id为idd_storehouseman_dialog.对话框对应的类为cstorehousemandlg。该对话框的主要函数为refresh_data()、onaddbuttom()、onmodibutton()、ondelbutton()。其功能与客户信息管理对话框函数的功能一样。函数实现过程也非常类似。在此不再详细说明。

设计仓库信息编辑对话框

编辑仓库信息的对话框可以用来添加和修改仓库信息,其id为idd_storehouseedit_dialog。对话框的布局如图:

对话框对应的类为cstorehouseeditdlg。当用户单击“确定”时,执行onok()函数用来把在对话框输入的信息添加或修改到数据库中。主要代码如下:

cstorehouseeditdlg::onok(){ ……

cstorehouse sh;me(m_sname);//仓库名称

o(m_memo);//仓库说明

…… //表示插入新记录

_insert();

……

} 用户管理模块设计

根据用户类型的不同,用户管理模块的功能也不相同。可以包含以下情形:

1、admin用户可以创建系统管理员或普通用户、复位用户密码、删除系统管理员或普通用户,也可以修改自身的密码。

2、系统管理员用户可以创建普通用户、对普通用户的密码进行复位、删除普通用户,也可以修改自身密码。

3、普通用户只能修改自身密码。设计用户信息管理对话框 用户信息管理对话框id为idd_userman_dialog,对话框的布局如图:

对话框对应的类为cusermandlg。对话框中使用datalist控件显示用户列表,使用ado data控件为其提供数据源。当用户单击“添加”按钮时,执行onaddbuttom()函数,其功能是显示用户信息编辑对话框。主要代码为: onaddbutton(){ cusereditdlg dlg;ype = 2;if(l()== idok)

h();} 当用户单击“密码复位”按钮时,执行onmodibutton()函数,功能是对用户密码进行复位,复位密码默认值为888888。主要代码如下:onmodibutton(){ ……

cusers usr;

(”888888“);//设置默认密码

_updatepwd(t());

messagebox(”密码已经复位“);} 当用户单击“删除”时,执行ondelbutton()函数,其功能删除用户。主要代码如下: ondelbutton(){ ……

cusers usr;

_delete(t());

h();} 设计用户信息编辑对话框

用户信息编辑对话框的id为idd_useredit_dialog,对话框布局如图:

对话框对应的类为cusereditdlg。当用户单击“确定”按钮时,执行onok()函数,其功能是创建一个新用户,并将其加入到数据库中。主要代码如下: onok(){cusers usr;……

//插入用户记录

_insert();} 设计修改用户密码的对话框 修改用户密码对话框的id为idd_changepwd_dialog,对话框的布局如图:

对话框对应的类为cchangepwddlg。当用户单击“确定”按钮时,执行onok()函数,其功能是对用户密码进行修改。主要代码如下: cchangepwddlg::onok(){ ……

(m_newpwd1);_updatepwd(m_username);//更新当前用户密码

…… } 商品管理模块设计

商品管理模块可以实现以下功能:

1、商品类别的添加、修改、删除。

2、商品信息的添加、修改、删除。设计商品类别管理对话框

商品类别管理对话框的id为idd_protypeman_dialog,对话框布局入图:

对话框对应的类为cprotypemandlg。当用户单击一级商品类别列表框时,执行onclickdatalist()函数,其功能是选择一级商品列表的内容时,决定二级商品类别列表框显示的内容。主要代码如下:cprotypemandlg::onclickdatalist1(){ cstring cupper;cupper = ndtext();//读取选择类别的编号

//设置二级类别的记录源

ordsource(”select * from protype where upperid=“ + cupper);h();} 当用户单击左侧的“添加”按钮时,执行onadd1buttom()函数,其功能是显示商品类别编辑对话框。主要代码如下:cprotypemandlg::onadd1button(){ cprotypeeditdlg dlg;d = ”“;//表示添加记录

ame = ”“;id = 0;//表示一级类别 //打开编辑对话框

if(l()== idok)

h();} 当用户单击左侧“修改”按钮时,执行onmodilbutton()函数,其功能与“添加”按钮功能类似。

当用户单击左侧的“删除”按钮时,执行ondel1button()函数,其功能删除商品类别。主要代码如下: cprotypemandlg::ondel1button(){ _delete(tid);//删除

h();//刷新 } 剩下右侧的按钮与左侧的按钮功能类似,只不过删除的商品类别不一样。参照左侧功能函数即可。 设计商品类别编辑对话框

编辑商品类别信息的对话框可以用来添加和修改商品类别信息。对话框id为idd_protypeedit_dialog。其布局如图:

对话框对应的类为cprotypeeditdlg。当用户单击“确定”按钮时,执行onok()函数,其功能是添加商品类别到数据库中。主要代码如下: cprotypeeditdlg::onok(){ ……

cprotype pt;ename(m_typename);//类别名称

……

if(ctypeid == ”“)//表示插入数据

_insert();

……

else

_update(ctypeid);

……

} 设计商品信息管理对话框

商品信息管理对话框可以按照商品类别查询商品信息,也可以对商品信息进行添加,修改和删除等操作。对话框id为idd_proman_dialog。对话框的布局如图:

为对话框添加cpromandlg类。在对话框中有3个ado data控件,它们分别为一级商品类别、二级商品类别和商品表格提供数据源。添加、修改、删除操作函数的功能与其他对话框功能类似在此不再详述。此对话框用的主要函数是当用户单击一级商品类别时,执行onclickdatacombol()函数,其功能是根据用户选择的一级类别来设置要显示的二级商品类别。主要代码如下: cpromandlg::onclickdatacombo1(short area){ ……

cupper = ndtext();//读取选择类别的编号

//设置二级类别的记录源

ordsource(”select * from protype where upperid=“ + cupper);h();} 设计商品信息编辑对话框 编辑商品信息的对话框

当用户单击“确定”按钮时,执行onok()函数,功能将输入的数据保存到数据库中。其代码如下: cproeditdlg::onok(){ cproduct pr;……

_insert();//插入数据库

_update(cpid);cdialog::onok();} 库存操作管理模块设计

库存操作管理模块可以实现以下功能:

1、入库操作的添加、修改、删除、2、出库操作的添加、修改和删除。

3、库存盘点的添加、修改、删除。 设计入库操作管理对话框

入库单管理对话框的id为idd_storeinman_dialog。对话框的布局如图:对话框所对应的类为cstoreinmandlg。调用的主要函数是

refresh_data()、onaddbutton()函数。refresh_data()的功能是设置ado data控件的记录源与其他对话框的ado控件的功能类似,onaddbutton()函数与其他对话框的添加函数类似。代码不再详细描述。

设计入库单编辑对话框

入库单编辑对话框的id为idd_storeindit_dialog。对话框的布局如图:

对话框对应的类为cstoreineditdlg。在此对话框中使用了5个ado data控件,功能与其他对话框的ado data控件相同。此对话框主要函数是onselchangeclttypecombo()和onchangeppriceedit()函数。

1、onselchangeclttypecombo()函数功能是当用户在客户类别组合框中选择不同类别时,根据用户所选择的客户类别设置查询条件。主要代码如下: onselchangeclttypecombo(){ //设置查询客户的select语句

cstring csource;csource = ”select * from client“;//根据客户类别设置查询条件

if(sel()== 0)

csource += ” where ctype = 1“;else

csource += ” where ctype = 2“;t(”“);//清除客户组合框的显示内容

ordsource(csource);//设置数据源,重新客户列表

h();}

2、onchangeppriceedit()函数功能是当用户改变商品单价数据时,总价格也随着变化而变化。主要代码如下: cstoreineditdlg::onchangeppriceedit(){ updatedata(true);//读取输入数据到成员变量 (”%.2f“, m_pprice * m_pnum);//计算总价格

updatedata(false);

//显示成员变量值 } 当用户单击“确定“按钮时执行onok()函数,将输入的信息插入到数据库中。

设计出库操作管理对话框

出库操作管理对话框的id为idd_takeoutman_dialog.对话框布局如图:

对话框所对应的类为ctakeoutmandlg。主要函数refresh_data()、onaddbutton()。功能与入库管理对话框相似。不再详述。 设计出库操作编辑对话框

出库操作编辑对话框的id为idd_takeoutedit_dialog。对应的类为ctakeouteditdlg。布局如图:

对话框中的datagrid控件用于根据用户选择的商品和仓库信息显示相关的库存商品,用户可以从其中选择需要出库的商品,然后输入出库数量。在显示库存商品时,需要查询默认商品的价格数量,并显示在表格下方。因此,需要调用onclickdatagrid2()函数。程序将从datagrid控件中读取商品价格和库存数量等信息,并显示在对话框的相关位置。主要代码如下:onclickdatagrid2(){ ……

m_pprice = m(1);//从表格中读取产品价格

m_pnum1 = m(2);//从表格中读取产品库存数量

updatedata(false);……

} 当用户点击“确定“按钮时,执行onok()函数,将编辑的仓库出库单保存到数据库中。主要代码如下: { ……

cproinstore pi;ctakeout to;cstring ctype;//插入出库数量

_insert();//@@@@@ 保存库存产品信息 @@@@@ ……

_insert();} 设计库存盘点管理对话框

库存盘点管理对话框的id为idd_checkman_dialog。对话框的布局如图:对话框对应的类为ccheckmandlg。对话框主要函数是

refresh_data()。功能是设置数据源,查询相关库存盘点信息。主要代码如下:refresh_data(){cstring cpid;//保存当前选择的产品编号 ……

cstring csid;//保存当前选择的仓库编号

…..//设置select语句

cstring csource;csource = ”select spid, pprice as 产品入库单价, pnum as 库存数量, makedate as 生产日期“;csource += ” from proinstore where pid=“ + cpid + ” and sid=" + csid;//设置记录源

ordsource(csource);h();……} 设计库存盘点编辑对话框

库存盘点编辑对话框用于编辑指定商品的库存数量,从而纠正库存数量可能存在的错误。对话框的id为idd_checkedit_dialog。对话框的布局如图: 对话框类为ccheckeditdlg。当用户单击“确定”按钮时,执行onok()函数。其功能是更新库存数量。代码如下: onok(){ updatedata(true);//将用户输入数据读取到成员变量中

//更新库存数量

cproinstore obj;m(m_newnum);_updatepnum(cspid);} 库存警示管理模块设计

库存警示管理模块可以实现以下功能:

1、实现数量报警管理。即当库存商品的数量低于下线或超过上线时报警。

2、实现失效报警管理,即当库存商品即将达到有效期时报警。 设计商品数量报警管理模块

商品数量报警信息管理对话框用来显示所有需要进行数量报警的商品信息。为了更方便的统计商品数量报警信息,需要创建一个视图total_num,它的作用是统计每种库存商品数量。主要代码如下: use [stock] go alter view [dbo].[total_num] as select , sum()as total from tore inner join t on = group by go 商品数量报警信息管理对话框的id为idd_numalarm_dialog。对话框布局如图:对话框对应的类umalarmdlg。主要函数是refresh_data()。功能与其他对话框的refresh_data()类似。在此不再详述。

警告类型分为短线和超储两种情况,程序将根据用户选择的类型进行统计。

设计商品失效报警管理模块

商品失效报警信息管理对话框用来显示所有需要进行失效报警的商品信息。为了更好方便的统计商品失效报警信息,需要创建一个视图vaild,它的功能是统计库存商品价格、数量、生产日期、仓库名称和距离失效期的天数等信息。主要代码如下: use [stock] go alter view [dbo].[valid] as select as 库存记录编号, as 商品名称, as 商品价格, as 商品数量, as 生产日期, as 仓库名称,round(datediff(day, dateadd(day,, ),getdate()), 0)as 距离失效期的天数 from tore inner join t on = and datediff(day,getdate(), )

>= ays inner join ouse on = go 在select语句中,使用了如下的sql server函数:

1、dateadd 在向指定日期加上一段时间的基础上,返回新的datatime值。

2、datediff 返回两个指定日期的时间差。

3、round 根据指定的长度和精度对数字表达式进行四舍五入。

4、getdate 按datetime值的sql server标准内部格式返回当前系统日期和时间。

商品失效报警信息管理对话框id为idd_valid_dialog。对应的类为cvaliddlg。对话框的布局与商品数量报警信息管理对话框类似。因为功能已经在视图里实现了所以此对话框不用添加额外的函数。第五章 结束语

开发中的问题和解决办法

如何高效的在vc++中添加类与对话框及消息响应函数。为了解决这些问题,本设计中的所设计的类与对话框采用利用vc++向导生成,然后在自动生成的基础上修改,节省了相当一部分繁琐的时间加快了程序开发的速度,节省了开发的时间。

在设计中使用了大量的数据,设计了大量的表格。为了便于实现数据与表的连接、表与类的连接,采用了数据库软件。这样只要调用数据库本身的查询、插入、修改等语句就以轻松的操作这些数据。使理论上的知识很好的与实际问题相结合。 系统不足之处

在本设计中,还有很多不足之处:界面的美观还可以进行更进一步的改善,还可以再增加一些功能,比如在状态栏增加时间显示,可以让使用人员很方便的看到当前时间。也可以增加实时的通讯功能,可以让管理员与普通用户之间进行实时通讯。本系统在处理大量的数据时能力还很欠缺,应该再设计时采用一些适当的算法对本系统进行优化。第六章 致谢

在论文完成之际,我要特别感谢我的指导老师吕知辛老师的热情关怀和悉心指导。在我撰写论文的过程中,吕知辛老师倾注了大量的心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的研究方法以及成文定稿方面,我都得到了吕知辛老师悉心细致的教诲和无私的帮助,特别是他广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我终生受益,在此表示真诚地感谢和深深的谢意。

在论文的写作过程中,也得到了许多同学的宝贵建议,在此一并致以诚挚的谢意。感谢所有关心、支持、帮助过我的良师益友。

参考文献

1++深入详解.北京:电子工业出版社.2006

2屈磊 c++开发入门与编程实践.北京:电子工业出版社2007

3(美)sartaj sahni.数据结构、算法与应用——c++语言描述.北京:机械工业出版社.2001 4王立副 麻志毅 张世琨.软件工程.北京:北京大学出版社.1999.5苗雪兰 刘瑞新 宋会群.数据库技术及应用.北京:机械工业出版社.2005 6李涛 刘凯奎 王永晈.数据库开发与实例.北京:清华大学出版社.2006 7 server 2005 数据库应用系统开发.北京:人民邮电出版社.2007 8(美)timothy .面向对象编程导论.北京:机械工业出版社.2003 9 c++教程[m].北京:机械工业出版社,2004 10 c++ 范例入门与提高[m].北京:清华大学出版社.2003

11:刘诚方,dc++windows初级程序设计.天津:天津科学技术出版社.

12陈慧南.数据结构:使用c++描述.南京:东南大学出版社.2001

48 2042949
");