采购部门实习报告.doc_第1页
采购部门实习报告.doc_第2页
采购部门实习报告.doc_第3页
采购部门实习报告.doc_第4页
采购部门实习报告.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

昆明理工大学实习报告系统分析与设计实习学 号: 200710901109 姓 名: 钱 增 兴 年 级: 0 7 学 院: 管理与经济学院 系 别: 信息管理系 专 业: 信息管理与信息系统 实验日期:2010年6月28日 至 2010年9月13日 报告日期: 2010年 9月12日 一、前言系统分析与设计实习,旨在综合应用已学专业知识和技能,解决与本专业相关的典型问题,学习和掌握一种面向对象的CASE工具,并应用于本实习的分析设计之中。另外,还要求掌握信息系统分析、设计的基本方法和过程,同时学习和掌握系统开发相关的技术文档的写作。本次实习模拟的企业主要有营销部门、运营部门、物流部门和财务部门的制造业企业,该企业目前业务处理模式为全手工处理,信息收集、加工等处理得都比较缓慢,不利于企业的市场竞争,而且手工式的处理使得从编制原始凭证、记帐凭证到登帐、结帐、编制会计报表,要经过很多人的手工才能完成,增加了数据处理差错的可能性。一切信息都记录在会计凭证、帐簿、报表等媒介上,数据的保存缺乏安全性。除此之外,要查询一个数据,特别是收集某一汇总或加总数据时速度很慢。本次实习每个组员分别担任企业的不同部门,并完成不同部门的系统分析与设计工作。本实习采用企业沙盘模拟的方式,了解企业业务需求,从而得出系统需求,采用面向对象方法进行系统分析与设计,并给出系统实现。通过本次实习,复习、领会、巩固和应用课堂上所学到的软件开发方法和知识,初步掌握系统分析、系统设计、系统实现的方法,特别是结构化分析、结构化设计、面向对象分析和面向对象设计。通过参与小组团队的开发实践,为毕业后适应团队合作开发模式打下基础,了解项目管理、团队合作、文档编写、口头与书面表达能力,创造能力和与其他组员交往与协作开发软件的能力,提高今后开发稍大规模实际软件项目和探索未知领域的能力和信心。二、采购部门需求分析(一)、采购部门工作职责1、采购计划的编制负责根据生产、总务、设备及检验等各部门物品需求计划,编制与之相配套的采购计划,并组织具体的实施,保证经营过程中的物资供应。2、供应商谈判3、签订采购合同4、监控采购过程5、到货验收6、仓储管理7、采购支付抉择8、与财务部协调9、与生产部协调(二)、采购部工作流程通过沙盘模拟实习,我了解到了采购部门工作流程的概况,采购部主要负责生产性物料的采购工作。依据运营部门下达的生产计划编制物料采购计划及库存报表,然后根据采购计划下采购订单,同时将订单转发到财务部。采购人员根据订单到供应商采购物资,在收到供应商的发货订单之后,将物资验收入库,更新原料库存量,并将验收单发到财务部,财务部根据单据付款给供应商。(三)、业务数据 采购部门主要使用到的数据有生产计划量、实际采购量、原材料种类和库存量等。(四)、数据处理逻辑1、采购部向生产部门获取生产计划,根据生产计划量和各种产品的原料组成计算需要采购的原材料数量。2、制定采购订单,并登记订单上的原料种类和数量。3、在收到供应商的发货清单之后,将采购清单与发货清单进行核对,如果无误,则更新库存量,然后将应付账款数额发给财务部。(五)、使用Visio制作数据流程图(六)、采购子系统数据流图设计数据字典:加工条目:加工名:编制采购计划编号:4.1输入信息:生产信息、财务信息输出信息:原料信息加工逻辑:根据相应的订单信息和原料供应谈判并将原料采购入库加工名:仓储控制编号4.2输入信息:生产信息、财务信息、原料信息输出信息:原料库存信息、产品库存信息加工逻辑:根据生产信息输入和原料的入库,提供相应的库存信息三、系统设计(一)、目标实现仓库物资管理的基本功能,实现仓库物资管理所有流程的系统化,并且实现仓库数据的集中管理和维护,部分数据的统计和计算实现自动化,以节省大量的人力以及避免了由于人的失误而产生的错误。可以对仓库大部分相关数据进行处理,并对仓库管理需要实现的所有基本功能进行实现。实现快捷,方便,安全的管理仓库,并节省大量的枯燥反复的人工记录和统计数据的工作。(二)、需求概述主要实现的基本功能如下:1. 订单信息的输入2. 财务信息的输入3. 有关物资基本信息的输入。4. 物资基本信息的查询与修改。5. 入库物资信息的输入。6. 入库物资信息的查询与修改。7. 出库物资信息的输入。8. 出库物资信息的查询与修改。9. 物资余额信息的查询。10. 物资余额信息的浏览。11.各种物资的按总余额的统计(三)、处理流程总体流程图如下:(四)、总体结构和模块外部设计为了实现安全管理,针对不同的权限的管理员有不同的视图,实现不同的功能。下面不同角色的视图对系统要实现的功能进行说明。角色一:系统管理员用例图注:用例人员信息维护是指对系统的各种管理员基本信息(包括权限)的管理。其中仓库信息维护的用例要实现的功能也包括此种信息的添加,删除,修改。和人员信息维护相似,则不再画这几个用例的子用例图了。角色二:仓库管理员用例图角色三:仓库采购员用例图根据各个角色的用例图可以看出,针对不同的角色,具有不同的权限,所以可以执行的功能也不同。(五)、外部接口用户界面:系统管理员服务界面默认界面:453登陆模块仓库信息维护界面人员信息维护界面进出记录维护界面合法用户1.物资信息维护界面 2个人密码修改界面仓库管理员界面默认界面:1.物资入库界面 23物资出库界面个人密码修改界面仓库管理员界面默认界面:1.查看采购清单界面 2个人密码修改界面(六)、运行模块的组合对不同的用户有不同的视图,而且不同的用户可以选择的功能也很多,则对不同的用户只选取代表性的模块组合作为讲解。登陆信息错误时,只运行了登陆模块。系统管理员:登陆成功不进行其他操作时,只运行登陆和物资信息维护模块;登陆成功,并选择了除物资信息维护模块外的其他操作,如选择人员信息维护模块,则运行了登陆模块,物资信息维护模块,人员信息维护模块;登陆成功不进行其他操作时,只运行登陆和物资入库模块;登陆成功,选择了除物资出库模块,则运行了登陆和物资入库模块,物资出库模块;登陆成功后,选择了除物资出库模块和个人密码修改,则运行了登陆和物资入库模块,物资出库模块,个人密码修改模块。仓库管理员:登陆成功不进行其他操作时,只运行登陆和查看采购清单模块;登陆成功后,选择了除查看采购清单外的个人密码修改模块,则运行了登陆和查看采购清单,个人密码修改模块。(七)、类图采购子系统的类图如下:类图说明:界面类:SupplyGUI,是采购子系统界面类,下面有3个实体类构成:1.、PurchasePlan 采购计划类RawID 原料编号Quantity 原料数量PerCost 原料单价Finished 是否完成函数:add() edit() del()query()分别为增、改、删、查找2.、RawStock类 RawID 原料编号 Quantity 原料数量 Cost 成本函数: query() add() edit() 分别为查找、增加、改getQuantity() 为得到指定原料的数量pickRaw() 为取出原料getCost() 为得到成本3.、ProductStock类ProductID 产成品编号Quantity 产成品数量函数:query() add() sub() 为查找、增加、减少getQuantity() getCost() 为得到数量和成本四、详细设计(一)、数据库设计通过对前面的数据流图等分析,我们可以得到数据库的初步结构,使用PowerDesigner设计数据库,并和其他部门建立表与表之间的数据关系。生成数据库代码(部门表):/*=*/* Table: Raw */*=*/create table Raw ( RawID tinyint not null, Quantity smallint not null, Cost float not null, constraint PK_RAW primary key (RawID)Go /*=*/* Table: PurchasePlan */*=*/create table PurchasePlan ( RawID tinyint not null, Quantity smallint not null, Date tinyint not null, PerCost float null, Finished tinyint not null constraint CKC_FINISHED_PURCHASE check (Finished in (0,1), constraint PK_PURCHASEPLAN primary key (RawID)Go/*=*/* Table: ProducePlan */*=*/create table ProducePlan ( ProductID tinyint not null, Quantity smallint not null, Finished tinyint not null constraint CKC_FINISHED_PRODUCEP check (Finished in (0,1), constraint PK_PRODUCEPLAN primary key (ProductID)go/*=*/* Table: Product */*=*/create table Product ( ProductID tinyint not null, Cost float not null, Quantity smallint not null, RDfund float not null, Owned tinyint not null constraint CKC_OWNED_PRODUCT check (Owned in (1,0), RawCompose varchar(4) null, constraint PK_PRODUCT primary key (ProductID)go采购部门的存储过程:产品更新create procedure Qupdate3 asdeclare id tinyint,dtype tinyint,isused tinyint ,procycle tinyint,owned tinyintdeclare cur cursor for select ID,Type,IsUsed,Procycle,Owned from ProLinebegin open cur fetch next from cur into id,dtype,isused,procycle,owned while(fetch_status=0) begin if owned=1 begin if isused=1 begin update ProLine set ProNow=ProNow+1 where ID=id if (select ProNow from ProLine where ID=id)=procycle begin update Product set Quantity=Quantity+1 where ProductID= (select ProductID from ProLine where ID=id) update ProLine set IsUsed=0 where ID=id update ProLine set ProNow=0 where ID=id end end end else begin if dtype=1 and (select Value from ProLine where ID=id)=5 update ProLine set Owned=1,Value=10000+Value where ID=id else if dtype=2 and (select Value from ProLine where ID=id)=8 update ProLine set Owned=1,Value=10000+Value where ID=id else if dtype=3 and (select Value from ProLine where ID=id)=16 update ProLine set Owned=1,Value=10000+Value where ID=id else if dtype=4 and (select Value from ProLine where ID=id)=24 update ProLine set Owned=1,Value=10000+Value where ID=id end fetch next from cur into id,dtype,isused,procycle,owned end close cur deallocate cur endgo(二)、窗体实现1、采用C+Builder实现主要功能,界面结构如下图:2、采购管理界面的主要功能实现代码:void _fastcall TFormApply:Button2Click(TObject *Sender) Table1-Edit(); /按钮修改实现编辑状态/-void _fastcall TFormApply:Button3Click(TObject *Sender) if(Table1-FieldByName(Finished)-AsInteger=1) /如果未完成采购,不能删除 ShowMessage(已到货,不能删除); else /如果已完成,则提示是否确认删除 int button; button=Application-MessageBox(你确定要删除吗?,删除数据,MB_OKCANCEL); if(button=IDOK) Table1-Delete(); /-void _fastcall TFormApply:FormCreate(TObject *Sender) TQuery* pQuery3 = new TQuery(NULL); /在窗口创建时显示剩余先尽量 pQuery3-DatabaseName = dBase1; pQuery3-SQL-Add(select cash from Assets); pQuery3-Open(); pQuery3-Last(); float cash; cash = StrToInt(pQuery3-FieldByName(cash)-AsString); pQuery3-Close(); Label4-Caption = cash; /-void _fastcall TFormApply:Button6Click(TObject *Sender) if(Table1-FieldByName(Finished)-AsInteger=1) else/如果采购已经完成,则更新采购状态 if (Table1-State=dsEdit|Table1-State=dsInsert) Table1-Edit(); Table1-FieldByName(Finished)-AsInteger = 1; if(Table1-FieldByName(Finished)-AsInteger=1) TADOQuery* pQuery = new TADOQuery(NULL); pQuery-Connection=DataModule1-ADOConnection1; pQuery-SQL-Add(update PurchasePlan set Finished = 1); pQuery-ExecSQL(); delete pQuery; if (Table1-State=dsEdit|Table1-State=dsInsert) /更新剩余可用现金量 Table1-Post(); TQuery* pQuery3 = new TQuery(NULL); pQuery3-DatabaseName = dBase1; pQuery3-SQL-Add(select cash from Assets); pQuery3-Open(); pQuery3-Last(); float cash; cash = StrToInt(pQuery3-FieldByName(cash)-AsString); pQuery3-Close(); Label4-Caption = cash; /-void _fastcall TFormApply:Table1BeforePost(TDataSet *DataSet)/BDGrid中不允许空值if(Table1-FieldByName(Quantity)-IsNull | Table1-FieldByName(Quantity)-AsFloat FieldByName(RawID)-IsNull) ShowMessage(原料ID不能为空); Abort(); /判断原料编号是否正确,并将相应的单价显示在单价行 TADOQuery * pQuery2= new TADOQuery(NULL); pQuery2-Connection=DataModule1-ADOConnection1; pQuery2-SQL-Clear(); String data2=Table1-FieldByName(RawID)-AsString; pQuery2-SQL-Add(select RawID from Raw where RawID=+data2); pQuery2-Open(); if(pQuery2-IsEmpty()/如果该原料ID不存在,则提示 ShowMessage(没有这种原料); delete pQuery2; /Table1-Edit(); /Table1-FieldByName(ProductID)-AsString=; Abort(); else TADOQuery * pQuery= new TADOQuery(NULL); pQuery-Connection=DataModule1-ADOConnection1; pQuery-SQL-Clear(); pQuery-SQL-Add(select Cost from Raw where RawID =+data2); pQuery-Open(); String price = pQuery-FieldByName(Cost)-AsString; Table1-FieldByName(PerCost)-AsString = price; delete pQuery; /更新数量 TADOQuery * pQuery3= new TADOQuery(NULL); pQuery3-Connection=DataModule1-ADOConnection1; pQuery3-SQL-Clear(); float q1 = Table1-FieldByName(Quantity)-AsFloat; pQuery3-SQL-Add(select Quantity from Raw where RawID=+data2); pQuery3-Open(); float q2 = pQuery3-FieldByName(Quantity)-AsFloat; String quantity = FloatToStr(q1 + q2); delete pQuery3; TADOQuery * pQuery4= new TADOQuery(NULL); pQuery4-Connection=DataModule1-ADOConnection1; pQuery4-SQL-Clear(); pQuery4-SQL-Add(update Raw set Quantity = + quantity + where RawID = + data2); pQuery4-ExecSQL(); delete pQuery4; /更新可用现金 TADOQuery * pQuery5= new TADOQuery(NULL); pQuery5-Connection=DataModule1-ADOConnection1; pQuery5-SQL-Clear(); float cash = Table1-FieldByName(Quantity)-AsFloat * Table1-FieldByName(PerCost)-AsFloat; pQuery5-SQL-Add(select cash from Assets); pQuery5-Open(); pQuery5-Last(); TADOQuery * pQuery6= new TADOQuery(NULL); pQuery6-Connection=DataModule1-ADOConnection1; pQuery6-SQL-Clear(); pQuery6-SQL-Add(select fee from Assets); pQuery6-Open(); pQuery6-Last(); float fee = pQuery6-FieldByName(fee)-AsFloat + cash; cash = pQuery5-FieldByName(cash)-AsFloat - cash; TADOQuery* pQuery7 = new TADOQuery(NULL); pQuery7-Connection=DataModule1-ADOConnection1; String c = FloatToStr(cash); pQuery7-SQL-Add(update Assets set cash = + c); pQuery7-ExecSQL(); /更新费用 TADOQuery* pQuery8 = new TADOQuery(NULL); pQuery8-Connection=DataModule1-AD

温馨提示

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

评论

0/150

提交评论