仓库管理系统优化版(课程设计)_第1页
仓库管理系统优化版(课程设计)_第2页
仓库管理系统优化版(课程设计)_第3页
仓库管理系统优化版(课程设计)_第4页
仓库管理系统优化版(课程设计)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学 号: 课 程 设 计题 目库存管理系统教 学 院计算机学院专 业班 级姓 名指导教师2011年9月29日课程设计任务书20112012 学年第1 学期学生姓名: 专业班级:指导教师:工作部门:课程设计题目 仓库管理系统二、课程设计内容(含技术指标) 本系统采用CS模式,分为客户端与服务器端,系统要求实现的功能如下:1.商品管理:对商品信息进行增、删、改、查,以及商品的下架与上架管理。 2.员工管理:对员工信息进行增、删、改、查,以及员工的在职与离职管理。3.商品类别管理:对商品类别信息进行增、删、改、查。(包括商品类别的逻辑删除与恢复)4.商品入库:把指定的商品存入指定的仓库中,入库表仅记

2、录每次入库的商品信息(商品id,数量等)。5.商品出库:把指定的商品从指定的仓库中销售出去,出库表仅记录每次出库的商品信息(商品id,数量等)。6.物料调拨:把指定的商品从A仓库调到B仓库,此操作需操作员提出调拨申请,等待信息维护员审批,若该次调拨被批准,才能进行调拨。7.库存盘点:操作员会定期对所有仓库里的商品进行一次盘点,此操作主要是检查每个仓库里所有商品的实际数量和数据库中存的数量是否一致,从而统计出各种商品的报溢、报损情况。8.部门管理:此操作的主要功能就是员工的调配,把一个员工从A部门调到B部门。 9.权限管理:此操作的主要功能是对员工权限的管理,指定员工只能对指定的模块进行操作。1

3、0.供应商信息管理:对供应商信息进行增、删、改、查,以及供应商的现供货状态的管理。11.客户信息管理:对客户信息进行增、删、改、查,以及客户的现需求状态的管理。12.库存查询:此操作是统计各个仓库中各种商品现在的存储状况。三、进度安排1初步完成系统的总体设计,搭好框架。2完成最低要求:商品管理、商品入库、商品出库和库存查询等模块要实现。3进一步要求:将员工管理、商品类别管理、库存盘点等模块实现,有兴趣的同学可以进一步改进客户端的界面效果。四、基本要求1界面友好,功能模块要划分好。2程序要加必要的注释。3要提供程序测试方案和数据。 目 录TOC o 1-3 h u HYPERLINK l _To

4、c12538 引 言 引 言当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息处理系统的环境。计算机最大的好处在于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。仓库作为一总货品资源的集散地,货品的种类繁多,包含很多的信息数据的管理。据调查得知,以前仓库进行信息管理的方式主要是基于文本、表格等纸介质的手工处理,对于货品的出入库情况的统计和核实等往往采用对账本的人工检查,对管理者的管理权限

5、等不受约束,任何人都可查看,这样容易引起资料外泄。另外,数据信息处理工作量大,容易出错,由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统、规范的信息管理手段。而且,一般的存储情况是记录在账本上的,仓库的工作人员和管理员也只是当时记得比较清楚,时间一长,如果再要进行查询,就得在众多的资料中翻阅查找了,这样造成费时、费力,如要对很长时间以前的货品进行更改就更加困难了。因此,很有必要建立一个库存管理系统,使货品管理工作规范化,系统化,程序化。提高信息处理的速度和准确性。本系统的开发主要包括前端应用程序以及后台数据库的建立和维护两个方面。经过分析,我选用微软公司的Visual C#.NET来开发

6、系统,利用其提供的各种面向对象的开发工具,来操纵数据库。库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起一个数据一致性和完整性强、数据安全性好的库;而对于后者则要求应用程序具有功能完备、易使用等特点。本系统利用Visual C#.NET提供的各种面向对象的开发工具,尤其是ADO,能方便而简洁地实现应用程序和数据库的互访,是一款能让用户满意的可行系统。一、系统分析1.1选题背景库存管理系统是一个企事业单位不可缺少的一部分,它的内容对于企业的决策者和管理者来说都是至关重要的,因此,库存管理系统应该能够为用户提供充足的

7、信息和快捷的查询手段,但一直以来人们使用传统的人工方式管理库存,这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学不断发展,其强大的功能已经被人们深刻认识,它已经进入了人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对产品库存信息进行管理,具有着人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可减少更多的人力物力,这些都能够极大地提高货品库存的管理效率,也是企业库存管理科学化、正规化,与世界接轨的重要条件

8、。因此,开发一个库存管理系统是很有必要的,具有其特有的技术意义和管理意义。1.2需求分析 在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。系统需求分析就是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。在确定系统的总体结构方案过程中,包括确定应用程序的结构、系统开发环境和开发工具的选择。市场经济的一个重要特征,就是生产的相对过剩和产品的相对过剩。它决

9、定了这是一个买方市场。对企业来说,库存的增加或积压,无论是原材料、半成品或制成品,都意味着企业运作处于一种不良的状态,都是一种直接的或潜在的损失。大量的库存挤占了企业的有限资金,使得资金流速减缓,现金流发生困难,甚至导致资金紧张,影响企业的正常运作。 此外,大量的库存增加了保管与仓储的压力,占用了相当的人力和物力,使得企业负担加重。 凡此种种,一直困扰着企业的生产经营管理活动,影响企业经济效益的实现。显而易见,切实而有效地控制库存,是摆在众多企业面前的当务之急,也是纾解企业经济压力、减负增效的重要途径。应用程序结构 从用户应用角度来看,可把应用程序系统的组成部分分成数据存储层、业务处理层和界面

10、表示层等3个层次,而应用程序结构可归纳为:集中式应用程序结构、单机板应用程序结构、多层服务器应用程序结构、浏览器服务器应用程序结构、客户机服务器应用程序结构等5种类型。 本库存管理系统就采用了单机版应用程序结构,将数据库和应用程序置于一台机器上,这样更加节约成本,适合中小规模的超市使用。用户可以轻松将其拷贝到其他计算机上,可以同时运行程序。系统开发环境 由于大多数公司内部使用的计算机平台都是基于Windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境: 数据库:Microsoft SQL Server 2005; 前端开发工具:Visual

11、C#.NET;数据访问对象:ADO。开发工具选择可视化(visual)程序设计是一种全新的程序设计方法,全面采用面向对象的程序设计技术,使用事件驱动机制进行程序设计。利用可视化开发工具可以快速、高效地开发应用程序。可视化的开发工具很多,如Microsoft公司推出的Visual Studio软件系列,Borland公司的Delphi、C+ Builder系列等。Visual Studio 是微软公司推出的集成开发环境,是目前最流行的 Windows 平台应用程序开发环境。它是把代码的编写、程序的调试、编译、运行以及其他的相关操作都集成在一起的“编程工具”。 作用是程序员通过它这个平台,利用编程

12、语言来写程序,调试,运行。经分析,本库存管理系统选用Visual C#.NET来设计界面,选用SQL Server 2005来建立后台数据库。1.3可行性分析可行性研究主要内容是要求以全面、系统的分析为主要方法,经济效益为核心,围绕影响项目的各种因素,运用大量的数据资料论证拟建项目是否可行。对整个可行性研究提出综合分析评价,指出优缺点和建议。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。一般来说,可行性分析应从投资必要性分析、经济可行性、技术可行性、操作可行性等方面进行研究。本系统的可行性分析如下:投资必要性

13、分析主要根据市场调查及预测的结果,以及有关的产业政策等因素,论证项目投资建设的必要性。在投资必要性的论证上,一是要做好投资环境的分析,对构成投资环境的各种要素进行全面的分析论证,二是要做好市场研究,包括市场供求预测、竞争力分析、价格分析、市场细分、定位及营销策略论证。 经济可行性由于本库存管理系统所要求的硬件(计算机及相关硬件)和软件环境(Visual C#.NET+SQL Server 2005),市场上都容易购买到或从相关网站下载,系统成本主要集中在本管理系统的开发与维护上,对用户不造成过重的经济负担。而一旦此系统投入使用,不仅可以减少库存的工作强度,提高工作效率,而且方便了库存对信息的管

14、理,延续了传统的管理模式,极大限度地方便了库存管理人员,而且,目标系统不是很复杂,开发的周期较短,人员经济支出不大,所节省的大量人力、财力产生的效益将远远大于本系统的开发成本,所以从经济方面讲开发此系统是可行的。技术可行性分析主要从项目实施的技术角度,合理设计技术方案,并进行比选和评价。各行业不同项目技术可行性的研究内容及深度差别很大。对于工业项目,可行性研究的技术论证应达到能够比较明确地提出设备清单的深度;对于各种非工业项目,技术方案的论证也应达到目前工程方案初步设计的深度,以便与国际惯例接轨。本系统采用Visual C#.NET作为前台开发工具,采用SQL Server 2005工具建立数

15、据库,并通过Visual C#.NET中的ADO控件使两者进行连接从而进行系统软件开发。Visual C#.NET不仅能帮助软件开发者提高软件开发的质量和效率,缩短开发周期,而且还具备强大的数据库管理功能,完全能够满足本系统的开发需求。 操作可行性分析传统的库存管理系统,一般有两种方式:一是手工管理,这种方式应用最传统的“笔纸操作系统”,将库存的货物信息、销售信息、厂商信息管理及单据管理等均以纯手工的形式进行,将信息以表格文件的表现形式记录在纸上,再进行统一保存。这种方式虽然在简单信息查询时会有一定的方便,但是存在着更多的不便:信息保存时间和条件很受限制、容易被损坏、信息查询不便、信息传达容易

16、造成失误等。另一种常见的信息管理方法是应用单机版的管理系统,本系统就是一款做的相对到位的单机版的库存管理系统,在库存信息处理方面做得很精准规范。因为库存管理人员已经有丰富的信息管理经验,加之有相当的计算机应用经验,所以对于此系统一定很容易就可操作熟练。综上所述,本库存管理系统投资少、收益大,且其运行操作简单易学,具备了开发的可行性。1.4系统功能描述开发方法的选择信息系统的开发是一项比较复杂的工作,因此我们必须选用科学有效的开发方法。本系统的开发采用了生命周期法。在系统设计时遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,则通过在系统的使用及对系统了解的不

17、断加深中,对某一部分或几部分进行重新分析、设计、实施,使系统逐步完善。系统功能描述及系统安全性本库存管理系统是一套对货品入库、出库、库存进行全面管理的系统。在管理内容上,它的主要功能包括:进货管理:进行填写货品信息,货品采购入库,入库单据的填写和修改最低库存量。 出货管理:进行货品出库,出货单据的填写和获取采购员信息。信息查询:货品信息查询,库存信息查询,入库、出库单据查询,月报表查询。统计报表:完整的日报表、月报表统计查询功能,每张单据每次业务金额都可以清楚地反映。系统管理:身份验证,修改本人密码,注册用户,修改删除用户。由于库存管理系统包含比较重要的信息,因此,在系统设计时除了注重用户的需

18、求,还要保证系统的安全性和一致性,体现如下:安全性:本系统中共分为三类不同的用户,分别具有不同的权限。一致性:系统的数据要保证一致性、准确性,当某一数据库中记录发生改变时,与之相关联的数据库也随之变化。1.5逻辑模型本系统的逻辑模型以系统的数据流图为主要描述工具。数据流图是组织中信息运动的抽象,是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目,它表达了数据和处理的关系。为了叙述方便,我们用不同的符号代表这四个元素:

19、表示数据流;表示文件(数据存储);表示加工;表示数据流的源点和终点。通过分析调查有关库存管理需要,并针对一般库存管理系统的功能需求,设计出库存管理系统顶层数据流程图如图1-1所示:业务输入业务输入业务结果查询结果查询要求 注册用户修改要求修改结果系统管理员仓库管理员返回结果库存管理系统经理查询要求查询结果图1-1库存管理系统顶层DFD根据系统的顶层数据流图,进一步分析,画出系统的第二层数据流图如下所示:操作员信息表操作员信息表系统管理仓库信息表仓库信息表仓库信息表系统管理信息查询身份验证数据维护图1-2 系统管理员数据流库存信息表库存信息表采购员信息表货品信息表仓库管理员日报表采购员信息表货品

20、信息表库存管理系统个人信息表进货管理进货管理进货结果用户编号出货管理出货管理身份验证出货结果出货管理密码报表统计月报表统计统计结果月报表统计图1-3 仓库管理员数据流经理经理身份验证信息查询经理日报表货品信息表库存表入库单出库单月报表经理信息表编号 信息查询查询结果 密码图1-4 经理数据流系统设计2.1总体结构系统功能分析系统开发的总体任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到企业仓库库存管理效率的目的。系统功能分析是在系统开发总体任务的基础上完成的。本库存管理系统需要完成的功能有:库存管理的各种信息的输入,包括入库、出库、货品信息的输入等。 库存管理的各种信息的查询、修改

21、和维护。 入库单、出库单的生成,日报表、月报表的生成。 在货品库存中加入所允许的最低库存字段,对所有库存物资实现监控和报警。 系统功能模块图根据系统功能分析,画出系统功能模块图如下:库存管理系统库存管理系统身份验证注册用户修改删除用户修改密码信息查询报表统计进货管理出货管理系统管理入库单填写填写货品信息修改最低库存出库单填写获取采购员信息日报表月报表库存查询货品查询报表查询图2-1系统总体功能模块图2.2数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时

22、,合理的数据库结构也将有利于程序的实现。设计数据库时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库概念结构设计本系统将货品分类,每类货品都有一名采购员负责采购,每名采购员只负责采购一类货品,每类货品都放在一个仓库中,一个仓库中可以放不同种类的货品,每个客户可以订购不同的货品,每种货品可以卖给不同的客户。货品货品采购仓库客户存储订购采购员n1mnn1货品编号规格型号单位货品名称客户编号客户名称仓库名称负责人联系电话采购员编号采购的货品类别图2-2库存管理系统ER图逻辑结构设计根据系统功能需求与数据流程图,本数据库管理系统需要11个数据表,分别是操作员个人信息表、登录

23、表、仓库信息表、货品信息表、库存信息表、入库单、出库单、采购员表、客户信息表、日报表、月报表。11个表的数据库逻辑结构如下:操作员个人信息表(UID, Uname, Sex, Tel);登录表(UID ,PWD, Limit);仓库信息表(仓库名称,负责人,联系电话,联系地址,); 货品信息表(货品编号,货品名称,货品类别,单位,规格型号,颜色); 库存信息表(库别,货品编号,最低库存,数量,进货单价,出货单价); 入库单(凭证编号,库别,货品编号,数量,进货单价,合计,入库时间,制单人,采购人编号); 出库单(凭证编号,库别,货品编号,数量,出货单价,合计,出库时间,制单人,客户编号); 采

24、购员表(UID, Uname, 采购的货品类别,Tel); 客户信息表(客户编号,客户名称,联系人,联系电话,联系地址,本日出酷暑两); 设置引用完整性为了防止用户不小心删除有用的数据,或者输入错误的数据,2完整性 (Referential Integrity)。例如本系统用到的数据库中,入库单中输入的货品编号必须现存在于货品信息表中。通过设置引用完整性对数据库进行约束,能够帮助程序员和用户确保使用的数据是合法的。数据库链接的实现为了充分展现对象编程的思想,系统中利用ADO.NET中的组件SqlConnection实现数据库和前台应用程序之间的连接,利用connection对象和command

25、对象实现随时访问数据库的功能。ADO控件较灵活,它使用SQL表达式,通过SQL属性来和数据库文件相连并显示要显示的字段,可以方便地对一个或多个数据表中的记录进行访问。2.3详细设计本库存管理系统是本着用户操作界面友好、清晰、易学易用的原则进行设计的。身份验证模块的设计在进入系统主界面之前,会出现一个身份验证对话框,要验证用户的身份。本系统中用户分为管理员、仓库管理员和经理三种。不同用户其权限也不同。库存管理系统库存管理系统用户编号:密码:退出登陆图2-3用户登录模块界面设计该模块的流程图如图2-4所示:是是否用 户登 录是否为合法用户?否选择身份判断用户类型进入系统开 始结 束图2-4用户登录

26、模块流程图系统主界面的实现 系统主界面分为三个,根据用户的权限不同进入不同的主界面,分别是系统管理员界面、信息维护员界面、操作员界面。各自主界面自然有不同的功能。进货管理模块包括填写货品信息、入库单、修改最低库存三个子模块。填写货品信息填写货品信息货品编号货品名称单位货品类别规格型号颜色确定取消图2-5填写货品信息设计 入库单入库单凭证编号货品编号数量库别进货单价入库时间确定取消采购人编号制单人图2-6入库单设计出库单出库单凭证编号货品编号数量库别出货单价出库时间确定取消客户编号制单人图2-7出库单设计信息查询模块的实现该模块三种用户都会用到,用户根据不同的权限分别可以查询不同的内容,如系统管

27、理员为了修改仓库信息表、采购员信息表、客户信息表而查询相关信息,仓库管理员为了通知采购员及时采购而查询采购员信息,经理查询仓库管理的各种信息等。三、系统实现系统实现包括用户需求实现,系统界面实现和数据库实现三方面。我负责的部分模块有部门管理、权限管理和商品类别管理这三个模块,具体实现及相关界面设计如下:3.1部门管理模块 /调度人员到目标部门 private void bt_MoveToRightDep_Click(object sender, EventArgs e) /获取要调动的人员 List reDepConsList = new List(); for (int i = listBo

28、x_resource_cons.SelectedItems.Count - 1; i = 0; i-) string workNum = listBox_resource_cons.SelectedItemsi.ToString().Split( )1; Consumer cons = bll.GetConsDepByWN(workNum); reDepConsList.Add(cons); /获取要移到的部门 int targetDepId = 0; foreach (Department dep in depList) if (dep.Name = cb_target_dep.Select

29、edItem.ToString() targetDepId = dep.Id; bool b = bll.ReDepCons(reDepConsList,targetDepId); if (b) MessageBox.Show(调度人员成功); depList = bll.GetAllDep(); AllBindDeps(); treeView1.ExpandAll(); else MessageBox.Show(调度人员出错); depList = bll.GetAllDep(); AllBindDeps(); treeView1.ExpandAll(); /选项改变时,控制改变权限的按钮能

30、否使用 private void cb_A_SelectedIndexChanged(object sender, EventArgs e) bool b = false; foreach (string s in limA) if (cb_A.SelectedIndex = -1) else if (s = cb_A.SelectedItem.ToString() b = true; if (b) bt_A_upLimit.Enabled = false; bt_A_downLimit.Enabled = true; else bt_A_upLimit.Enabled = true; bt_

31、A_downLimit.Enabled = false; private void cb_B_SelectedIndexChanged(object sender, EventArgs e) bool b = false; foreach (string s in limB) if (cb_B.SelectedIndex = -1) else if (s = cb_B.SelectedItem.ToString() b = true; if (b) bt_B_upLimit.Enabled = false; bt_B_downLimit.Enabled = true; else bt_B_up

32、Limit.Enabled = true; bt_B_downLimit.Enabled = false; 图3-1部门管理界面3.2权限管理模块 /权限升级操作 private void bt_A_upLimit_Click(object sender, EventArgs e) /获取当前选中项的索引号 int a = cb_A.SelectedIndex; /增加到泛型和lable中 string s = cb_A.SelectedItem.ToString(); limA.Add(s); lb_A_exName.Text += , + s; /重置选中项 cb_A.SelectedIn

33、dex = -1; cb_A.SelectedIndex = a; private void bt_B_upLimit_Click(object sender, EventArgs e) int a = cb_B.SelectedIndex; string s = cb_B.SelectedItem.ToString(); limB.Add(s); lb_B_exName.Text += , + s; cb_B.SelectedIndex = -1; cb_B.SelectedIndex = a; private void bt_C_upLimit_Click(object sender, E

34、ventArgs e) int a = cb_C.SelectedIndex; string s = cb_C.SelectedItem.ToString(); limC.Add(s); lb_C_exName.Text += , + s; cb_C.SelectedIndex = -1; cb_C.SelectedIndex = a; /权限降级操作 private void bt_A_downLimit_Click(object sender, EventArgs e) if (limA.Count 2) MessageBox.Show(不能降级,必须保证这个权限下至少有一个可以执行的操作

35、); else /获取当前选中项的索引号 int a = cb_A.SelectedIndex; /删除泛型中的字符串 string s = cb_A.SelectedItem.ToString(); for (int i = 0; i 0) id = listView1.SelectedItems0.SubItems0.Text; /商品类别编号不允许修改 tb_ClaNum.ReadOnly = true; tb_ClaNum.Text = listView1.SelectedItems0.SubItems2.Text;/编号 tb_ClaName.Text = listView1.Sel

36、ectedItems0.SubItems1.Text;/名称 cb_ClaStatus.Text = listView1.SelectedItems0.SubItems3.Text;/状态 else MessageBox.Show(没有选中任何行); /从弃用状态改回在用状态 private void 在用ToolStripMenuItem_Click(object sender, EventArgs e) if (listView2.SelectedItems.Count0) /获取选中行的id泛型 List list = new List(); foreach (ListViewItem

37、item in listView2.SelectedItems) list.Add(item.SubItems0.Text); /调用BLL层更新状态 bool b = bll.Update(list); if (b) MessageBox.Show(商品类别状态修改成功); /绑定 BindOFF(bll.GetList(1); else MessageBox.Show(商品类别状态修改失败,回滚中.); else MessageBox.Show(没有选中任何行); private void tabItem1_Click(object sender, EventArgs e) Bind(bl

38、l.GetList(0); private void tabItem2_Click(object sender, EventArgs e) BindOFF(bll.GetList(1); /搜索(OFF) private void bt_SearchOFF_Click(object sender, EventArgs e) Classify model = new Classify(); model.Cla_name = tb_SearchNameOFF.Text; model.Cla_Num = tb_SearchNumOFF.Text; model.Cla_status = 1; /绑定

39、BindOFF(bll.Search(model); 商品类别管理界面图3-3商品类别管理界面四、总结库存管理系统是生产、计划和控制的基础。库存管理系统是通过对仓库、货位、入出库类型与入出库单据的管理,及时反映物资的仓储、流向情况,为生产管理和成本核算提供依据。并通过库存分析,为管理及决策人员提供库存资金占用情况、物资短缺(超储)情况等不同的分析信息。通过清仓盘库管理,保证帐面与实物一致,为计划及决策人员提供实时准确的存货信息,以便及时调整生产,保证企业各项生产经营活动的顺利进行。本次课程设计接近尾声了,它对我所产生的影响却是巨大的,现总结如下:系统开发的过程中,我深刻体会对系统进行分析以及建

40、立恰当的系统模型的重要性。有了一个好的系统模型之后,再在下层将其划分成几个子模块,这样实施起来就比较简单和有序。本系统中采用了生命周期法进行系统的开发,就体现了该模块化设计思想。 从系统的实用性出发,考虑到了方便用户的原则,本着用户操作界面友好、清晰、易学易用的原则进行设计。在开发过程中我尽可能地设想记录为空,输入为空,输入出错等边界条件,然后在这些边界上,设置出错检测,使系统能自动捕获出错点,给出提示,允许用户重新进行操作,使系统能够安全的运行下去,而不是退出系统,这样就保证了用户能够达到预期的满意程度。在程序的开发过程中我遇到了很多的困难,但经过同学和指导老师的帮助,一一化解了困难,并从中

41、学到了很多编程方面的知识。但是由于经验方面的原因,以及对库存方面的操作流程了解不足,该系统还有许多不尽如人意的地方和功能上的缺陷,这些都有待于进一步改善。 在本次毕业设计中,我从指导老师钱哨老师身上学到了很多东西,冯老师工作认真负责,无论在理论上还是实践中,都给予我很大的帮助,使我得到不小的提高,相信对我以后的工作和学习都会有很大的帮助,诚挚感谢他细心又耐心的辅导。参考文献1 梅玫: 物资库存的计算机管理,黑龙江科技信息,2009年7月25日.2 申冠楠,郭宗义: 百货店商品的库存管理系统的设计与实现,现代商业,2010年1月18日.3 刘志坚: 中小制造企业库存管理系统的开发与设计,中北大学

42、,2009年4月25日.4 美c.j.date:数据库系统导论(英文版第七版),机械工业出版社,2002年.5 邓良松:软件工程,西安电子科技大学出版社,2004年.6 邓远志:数据库设计方法,南昌教育学院学报,2005年第20卷第4期.7萨师煊等编著 ,数据库系统概论 , 高等教育出版社, 2000年.8东方人华主编,Visual C#.NET范例入门与提高, 清华大学出版社, 2003年.9李佳, 付强, 丁宁等编著,C#开发技术大全, 清华大学出版社, 2009年. 10欧立奇,康祥顺,马煜编著,Visual C#. NET案例开发集锦 , 电子工业出版社 ,2005年.11 邝孔武,王

43、晓敏编著,信息系统分析与设计,清华大学出版社,1999年.12 史济民:软件工程-原理、方法与应用,高等教育出版社,2002年. 13 薛华成:管理信息系统,清华大学出版社,1999年. 14 张金城:管理信息系统,北京大学出版社,2004年.15马士华:供应链管理,机械工业出版社,2000年.16李玉良,邵新宇:CPFR供应链库存管理技术的新趋势,机械设计与制造工程,2001年第30卷第3期.17潘玮,董平军:基于供应链管理的制造业库存管理系统研究,东华大学学报.自然科学版,2002年第28卷第1期.18刘永胜:供应链库存管理面临的挑战与对策,经济问题,2003年第3 卷.19符光辉,赵启兰

44、,王耀球:零库存 制造业的思考,中国储运,2005年第4卷.20朱树人,李伟琴:EEP体系结构研究.系统工程,2005年第3卷. 课程设计成绩评定表姓 名性 别专业班级课程设计题目:库存管理系统课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日附录资料:不需要的可以自行删除 C语言曲线函数像素函数putpixel() 画像素点函数 getpixel()返回像素色函数 直线和线型函数line() 画线函数 lineto() 画线函数 linerel() 相对画线函数 setlinestyle() 设置线型函数 getlinesetti

45、ngs() 获取线型设置函数 setwritemode() 设置画线模式函数 多边形函数HYPERLINK /view/553113.htmrectangle() 画矩形函数 bar() 画条函数 bar3d() 画条块函数 drawpoly() 画多边形函数 圆、弧和曲线函数getaspectratio()获取纵横比函数 circle()画圆函数 arc() 画圆弧函数 ellipse()画HYPERLINK /view/36981.htm椭圆弧函数 fillellipse() 画椭圆区函数 pieslice() 画扇区函数 sector() 画椭圆扇区函数 getarccoords()获取

46、圆弧坐标函数 填充函数setfillstyle() 设置填充图样和颜色函数 setfillpattern() 设置用户图样函数 floodfill() 填充闭域函数 fillpoly() 填充多边形函数 getfillsettings() 获取填充设置函数 getfillpattern() 获取用户图样设置函数 图像函数imagesize() 图像存储大小函数 getimage() 保存图像函数 putimage() 输出图像函数 图形和图像函数对许多图形HYPERLINK /view/330120.htm应用程序,直线和HYPERLINK /view/400.htm曲线是非常有用的。但对有些

47、图形只能靠操作单个像素才能画出。当然如果没有画像素的功能,就无法操作直线和曲线的函数。而且通过大规模使用像素功能,整个图形就可以保存、写、擦除和与屏幕上的原有图形进行叠加。 (一) 像素函数putpixel() 画像素点函数功能: 函数putpixel() 在图形模式下屏幕上画一个像素点。 用法: 函数调用方式为void putpixel(int x,int y,int color); 说明: 参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。 此函数相应的HYPERLINK /view/668911.htm头文件是graphics.h 返回值: 无

48、 例: 在屏幕上(6,8)处画一个红色像素点: putpixel(6,8,RED); getpixel()返回像素色函数功能: 函数getpixel()返回像素点颜色值。 用法: 该函数调用方式为int getpixel(int x,int y); 说明: 参数x,y为像素点坐标。 函数的返回值可以不反映实际彩色值,这取决于HYPERLINK /view/1120949.htm调色板的设置情况(参见setpalette()函数)。 这个函数相应的头文件为graphics.h 返回值: 返回一个像素点色彩值。 例: 把屏幕上(8,6)点的像素颜色值赋给变量color。 color=getpixe

49、l(8,6); (二) 直线和线型函数有三个画直线的函数,即line(),lineto(),linerel()。这些直线使用整型坐标,并相对于当前图形视口,但不一定受视口限制,如果视口裁剪标志clip为真,那么直线将受到视口边缘截断;如果clip为假,即使终点坐标或新的当前位置在图形视口或屏幕极限之外,直线截断到屏幕极限。 有两种线宽及几种线型可供选择,也可以自己定义线图样。下面分别介绍直线和线型函数。 line() 画线函数功能: 函数line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。 用法: 该函数调用方式为void line(int startx,int starty,in

50、t endx,int endy); 说明: 参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。 此函数相应的头文件为graphics.h 返回值: 无 例: 见函数60.linerel()中的实例。 lineto() 画线函数功能: 函数lineto()使用当前绘图色、线型及线宽,从当前位置画一直线到指定位置。 用法: 此函数调用方式为void lineto(int x,int y); 说明: 参数x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。 该函数对应的头文件为graphics.h 返回

51、值: 无 例: 见函数60.linerel()中的实例。 linerel() 相对画线函数功能: 函数linerel() 使用当前绘图色、线型及线宽,从当前位置开始,按指定的水平和垂直偏移距离画一直线。 用法: 这个函数调用方式为void linerel(int dx,int dy); 说明: 参数dx,dy分别是水平偏移距离和垂直偏移距离。 函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数linerel(10,18)后,当前位置为(18,24)。 返回值:无 例: 下面的程序为画线函数调用实例: #i nclude void main() int driv

52、er,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,); setcolor(15); line(66,66,88,88); lineto(100,100); linerel(36,64); getch(); restorecrtmode(); setlinestyle() 设置线型函数功能: setlinestyle() 为画线函数设置当前线型,包括线型、线图样和线宽。 用法: setlinestyle() 函数调用方式为void setlinestyle(int stly,unsigned pattern,int wigth); 说

53、明: 参数style为线型取值,也可以用相应名称表示,如表1-10中所示。 参数pattern用于自定义线图样,它是16位(bit)字,只有当style=USERBIT_LINE(值为1)时,pattern的值才有意义,使用用户自定义线图样,与图样中“1”位对应的像素显示,因此,pattern=0 xFFFF,则画实线;pattern=0 x9999,则画每隔两个像素交替显示的虚线,如果要画长虚线,那么pattern的值可为0 xFF00和0 xF00F,当style不为USERBIT_LINE值时,虽然pattern的值不起作用,但扔须为它提供一个值,一般取为0。 参数wigth用来设定线宽

54、,其取值见表1-11,表中给出了两个值,即1和3,实际上,线宽取值为2也是可以接受的。 若用非法参数调用setlinestyle()函数,那么graphresult()会返回错误代码,并且当前线型继续有效。 Turbo C提供的线型与线宽定义在头文件graphics.h中,表1-10和1-11分别列出了参数的取值与含义。 表1-10 线型 名称取值含义SOLID_LINE0实线DOTTED_LINE1点线CENTER_LINE2中心线DASHED_LINE3虚线USERBIT_LINE4用户自定义线型表1-11 线宽 名 称取 值说 明NORM_WIDTH(常宽)1一个像素宽(缺省值)THIC

55、K_WIDTH(加宽)3三个像素宽这个函数的头文件是graphics.h 返回值: 无 例: 下面的程序显示了BC中所提供的线型图样: #i nclude void main() int driver,mode;i; driver=DETECT; mode=0; initgraph(&driver,&mode,); for(i=0;i4;i+) setlinestyle(i,0,1); line(i*50,200,i*50+60,200) ; getch(); restorecrtmode(); getlinesettings() 获取线型设置函数功能: 函数getlinesettings()

56、 用当前设置的线型、线图样和线宽填 写linesettingstype型结构。 用法: 函数调用方式为void getlinesettings(struct linesettingstype *info); 说明: 此函数调用执行后,当前的线型、线图样和线宽值被装入info指向的结构里,从而可从该结构中获得线型设置。 linesettingstype型结构定义如下: struct linesettingstype int linestyle; unsigned upattern; int thickness; ; 其中linestyle用于存放线型,线型值为表1-10中的各值之一。 upatt

57、ern用为装入用户自定义线图样,这是16位字,每一位等于一个像素,如果哪个位被设置,那么该像素打开,否则关闭。 thickness为线宽值存放的变量,可参见表1-11。 getlinesettings()函数对应的头文件为graphics.h 返回值: 返回的线型设置存放在info指向的结构中。 例: 把当前线型的设置写入info结构: struct linesettingstype info; getlinesettings(&info); setwritemode() 设置画线模式函数功能: 函数setwritemode() 设置画线模式 用法: 函数调用方式为 void setwrite

58、mode()(int mode); 说明: 参数mode只有两个取值0和1,若mode为0,则新画的线将覆盖屏幕上原有的图形,此为缺省画线输出模式。如果mode为1,那么新画的像素点与原有图形的像素点先进行异或(XOR)运算,然后输出到屏幕上,使用这种画线输出模式,第二次画同一图形时,将擦除该图形。调用setwritemode()设置的画线输出模式只影响函数line(),lineto(),linerel(),recangle()和drawpoly()。 setwritemode()函数对应的头文件是graphics.h 返回值: 无 例: 设置画线输出模式为0: setwritemode(0)

59、; (三)、多边形函数对多边形,无疑可用画直线函数来画出它,但直接提供画多边形的函数会给用户很大方便。最常见的多边形有矩形、矩形块(或称条形)、多边形和多边形块,我们还把长方形条块也放到这里一起考虑,虽然它不是多边形,但它的特例就是矩形(块)。下面直接介绍画多边形的函数。 rectangle() 画矩形函数功能: 函数rectangle() 用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。 用法: 此函数调用方式为void rectangle(int left,int top,int right,int bottom); 说明: 参数left,top是左上角点坐标,

60、right,bottom是右下角点坐标。如果有一个以上角点不在当前图形视口内,且裁剪标志clip设置的是真(1),那么调用该函数后,只有在图形视口内的矩形部分才被画出。 这个函数对应的头文件为graphics.h 返回值: 无 例: 下面的程序画一些矩形实例: #i nclude void main() int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,); rectangle(80,80,220,200); rectangle(140,99,180,300); rectangle(6,6,88,88); recta

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论