已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CP8:面向对象设计1. 系统设计 1.1 分层体系结构本系统采用五层分层体系结构: 表现层:用来实现系统的“用户界面”; 控制层:负责在用户界面与后台逻辑层之间的连接与调度; 业务逻辑层:实现各个实体类及其内部包含的业务逻辑; 持久化层:负责在实体类与数据层之间建立OR映射; 数据层:采用关系型数据库进行数据存储; 1.2 设计元素识别与包设计 包“采购单管理界面” 界面“新建采购单” 界面“采购单查询” 界面“采购单统计” 包“销售单管理界面” 界面“销售单查询” 界面“销售单统计” 包“商品信息管理界面” 界面“商品信息查询” 界面“库存不足商品查询” 界面“商品信息管理” 包“帐户信息管理界面” 界面“帐户管理” 包“售出商品结算界面” 界面“售出商品结算” 包“采购单管理” 控制类“采购单管理” 包“销售单管理” 控制类“销售单管理” 包“商品信息管理” 控制类“商品信息管理” 包“帐户信息管理” 控制类“帐户信息管理” 包“采购单” 实体类“采购单”、“采购单项” 实体类“采购统计表”、“采购统计表项” 包“销售单” 实体类“销售单”、“销售单项” 实体类“销售统计表”、“销售统计表项” 包“商品” 实体类“商品” 包“帐户” 实体类“帐户”包图: 1.3 系统物理架构(UML部署图)注:除了把RDBMS放在后台数据库服务器上外,其他各层的包都放在后台应用服务器上。节点设备要求和用途:前台POS机:POS机带条形码扫描器,同时支持人工手动输入商品编号和数目,用于商品结算。用户使用的计算机:客户机,即普通的个人PC机,通过内部局域网和后台服务器连接,用于日常操作。后台应用服务器:上面布置着大部分的应用程序,用户操作大都是在这里完成的,硬件要求较高,建议为中型工作站。后台服务器:保存系统数据,DBMS采用Microsoft SQL Server2005 1.4 实现技术选择本系统采用JAVA实现C/S架构 用户界面:Swing/AWT 控制层: Swing/AWT 实体层:java class 数据层:DBMS采用Microsoft SQL Server20052. 对象设计 2.1 类图及类清单类图:类清单:类型类名类作用所在包名控制类StockOrderMgmtHandler采购单据管理类Control. StockOrderSalesOrderMgmtHandler销售单据管理类Control.SalesOrderMerchandiseMgmtHandler商品信息管理类Control. MerchandiseAccountMgmtHandler帐户信息管理类Control.Account实体类Merchandise商品Entity.MerchandiseMedical病历Entity.SalesOrderAccount帐户Entity.account 2.2 实体类 2.2.1 商品Merchandise类的UML图示:类的用途:保存商品的属性和对商品的各种操作,包括添加删除等。属性列表:属性名属性含义数据类型缺省值可见性SN商品编号stringNULL-Name商品名称stringNULL-producer生产厂商stringNULL-Stock当前库存量int0-stock_limit库存下限int0-pre_prince预售价格float0-discount_price会员折扣float与预售价格相等-remark备注stringNULL-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型Add()新建商品记录+DBstringstringIntModify()修改商品记录+DBstringstringintCheck()输出商品信息+DBstringstringstringDelete()删除商品记录+DBstringstringstring内部逻辑说明:Add(string DBstring) 执行DBstring命令,成功返回0,否则返回-1Modify(string DBstring) 执行DBstring命令,成功返回0,否则返回-1Check(string DBstring) 执行DBstring命令,返回结果集Delete(string DBstring) 执行DBstring命令,返回结果集 2.2.2 销售单SalesOrder类的UML图示:类的用途: 保存单据的属性和对商品的各种操作,包括添加删除等。属性列表:属性名属性含义数据类型缺省值可见性Bill_ID编号stringNULL-Bill_Date日期stringNULL-Bill_Sum总金额float0-Bill_SalerID收银员编号stringNULL-Bill_List销售商品列表Bill *NULL-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型New_Bill新建+BillModify_Bill修改+DBstringstringintInsert_Bill_Item增加销售单项+B_itemBill_Item *intDelete_Bill_Item删除销售单项+B_itemBill_Item *intModify_Bill_Item修改销售单项+B_itemBill_Item *intDBstringstringModify_Auto自动修改商品信息+intCheck_List查询+Bill_List内部逻辑说明:Bill New_Bill() 创建新的单据并返回int Modify_Bill(string DBstring) 执行DBstring命令,成功返回0,不成功返回-1int Insert_Bill_Item(Bill_Item * B_item) 将B_item指向的销售单项加入到销售单,成功返回0,不成功返回-1int Delete_Bill_Item(Bill_Item * B_item) 将B_item指向的销售单项从当前销售单删除,成功返回0,不成功返回-1int Modify_Bill_Item(Bill_Item * B_item, string DBstring) 对B_item指向的销售单项执行DBstring命令,成功返回0,不成功返回-1int Modify_Auto() 根据当前销售单内容构建DB命令更新库存状况,成功返回0,不成功返回-1Bill_List Check_List() 构建DB命令,查询当前所有单据,并返回单据列表 2.2.3 销售单项SalesOrderItem类的UML图示:类的用途: 标记销售单里的条目属性列表:属性名属性含义数据类型缺省值可见性SN序号stringNULL-Merchandise_ID商品编号stringNULL-Merchandise_Name商品名称stringNULL-Merchandise_Price商品单价float0-Merchandise_Amount商品数目int1-Merchandise_Sum金额float0-Remark备注stringNULL-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型New_Bill_Item新建+Bill_Item *Modify_Bill_Item修改+DBstringstringintCheck_Detail查询+Merchandise内部逻辑说明:Bill_Item * New_Bill_Item() 新建一个销售单项,返回它的指针int Modify_Bill_Item(string DBstring) 对当前销售单项执行DBsting,成功返回0,不成功返回-1Merchandise Check_Detail() 对当前销售单项的商品构建DB命令,查询商品详情,并返回 2.2.4 采购单StockOrder类的UML图示:类的用途:记录本次采购的整体情况,日期,总金额等。同时,在底部链接了具体每种商品信息的采购单项。属性列表:属性名属性含义数据类型缺省值可见性Stock_Order_ID采购单编号Char(10)00-yielder供货商姓名Char(20)00-Date采购日期Int0-Cost采购总金额Float0-Number采购数量Int0-Buyer_ID采购员编号Char(10)00-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型CreatNewStockOrder()新建采购单+Stock_Order_IDChar(10)IntyielderChar(20)Get Stock_Order_IDGet操作+Char(10)Get yielderGet操作Char(10).Set Stock_Order_IDSet操作IDChar(10)Set yielderSet操作yielderChar(10).ModifyStockOrder()修改采购单+Order_To_CheckStock_OrderIntAddParticular()增加采购单项+InputStringStringIntModifyParticular()修改采购单项+Part_To_CheckStock_Order_ParticularIntDeleteParticular()删除采购单项+Part_To_DeletStock_Order_ParticularIntUpdataDB()修改商品库存信息+Stock_StateStock_Order_ParticularIntQuery()查询采购单信息+NULLNULLStock_OrderConnectToDB()连接数据库+VoidMakeSQL()生成SQL语句+SQLAddOrderToDB()将采购单加入DB+OrderStock_OrderVoid内部逻辑说明:1.CreatNewStockOrder() Int CreatNewStockOrder(string) 要求用户对即将存储的信息进行输入; For() Get操作; Set操作; 询问用户是否有输入出错的地方.if(need to modify) call ModifyStockOrder(Stock_Order) else ModifyStockOrder=1; if(ModifyStockOrder=1) 输入完成; Connecte to DB; Make the DB SQL Sentence; Create the new stock order on DB; Return 1; 表示新建成功2ModifyStockOrder() Int ModifyStockOrder(Stock_Order) While(是否还有需要修改的地方) 要求用户确定需要修改的具体参数; Delete Stock_Order_ID and =new_input; Or Delete yielder and =new_input; Or Delete Date and =new_input; Or Delete Cost and =new_input; Or Delete Buyer_ID and =new_input; Return 1; 3. AddParticular() Int AddParticular(string) Call Add_Particular(string);调用“采购单项”的操作 If (Add_Particular=1) Return 1; 4. ModifyParticular() Int ModifyParticular(Stock_Order_Particular) Call Modify_Particular(Stock_Order_Particular);调用“采购单项”的操作 If (Modify_Particular=1) Return 1;5. DeleteParticular() Int DeleteParticular(Stock_Order_Particular) Call Delete_Particular(Stock_Order_Particular);调用“采购单项”的操作 If (Delete_Particular =1) Return 1;6. UpdataDB() Int UpdataDB(Stock_Order_Particular) New Update_DB list; For(each Stock_Order_Particular) Listi. ID = Stock_Order_Particular. Merchandise_ID; Listi. Add_Sell= Stock_Order_Particular.Num; I+; 根据list的内容,构造DB的SQL语句; 连接DB,对商品库存信息进行更新; Return 1; 7. Query() Stock_Order Query(NULL) New Stock_Order result; 要求用户输入查询条件,获得Query_Condition; Swith Query_Condition.flag Case 1: /按采购单编号查询 ID= Stock_Order_ID; 连接DB,构造相应SQL语句进行查询; result=结果集; Case 2:/按起止日期查询 Date1= Start_Date; Date2= Limite_Date;连接DB,构造相应SQL语句进行查询; result=结果集; Case 3:/按照采购员编号查询 ID= Buyer_ID;连接DB,构造相应SQL语句进行查询; result=结果集; deflaut; return result;8. ConnectToDB() Void ConnectToDB() 获得数据库连接句柄; 建立连接;9. MakeSQL() SQL MakeSQL() 根据条件,构造SQL语句。 Return SQL;10. AddOrderToDB()Void AddOrderToDB(Stock_Order) 根据Stock_Order,call MakeSQL(); 运行SQL,将采购单新建到中; 2.2.5 采购单项StockOrderItem类的UML图示:类的用途:此类主要是采购单的单项明细,进行查询,新建等操作。属性列表:属性名属性含义数据类型缺省值可见性Stock_Order_ID所属采购单编号Char(10)00-Serial序号Int0-Merchandise_ID商品编号Char(10)00-Sourse生产厂商Char(10)00-Unit商品单位Char(10)00-Merchandise_Num商品数目Int0-Unit_Price商品单价Float0-Merchandise_Total商品总额Float0-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型Add_Particular()增加采购单项+Stock_Order_IDChar(10)IntSerialIntGet Stock_Order_IDGet操作+Char(10)Get SerialGet操作+Int+Set Stock_Order_IDSet 操作+Stock_Order_IDChar(10)Set SerialSet 操作+SerialInt+Modify_Particular()修改采购单项+Part_To_CheckStock_Order_ParticularIntDelete_Particular()删除采购单项+Part_To_DeletStock_Order_ParticularIntQuery_ Particular()查询采购单信息+NULLNULLStock_Order_ParticularConnectToDB()连接数据库+VoidMakeSQL()生成SQL语句+SQLAddToDB()将采购单加入DB+OrderStock_OrderVoidSearch_DB查询DB+内部逻辑说明:1.Add_Particular()Int Add_Particular(string)要求用户对即将存储的信息进行输入; Stock_Order_ID=input;Serial =input;.将输入的信息显示出来;询问用户是否有输入出错的地方.if(need to modify) call Modify_Particular(Stock_Order_ Particular) else Modify_Particular()=1; if(Modify_Particular()=1) 输入完成; Connecte to DB; Make the DB SQL Sentence; Create the new stock order on DB; Return 1; 表示新建成功2. Modify_Particular() Int Modify_Particular() While(是否还有需要修改的地方) 要求用户确定需要修改的具体参数; Delete Stock_Order_ID and =new_input; Or Delete Serial and =new_input; Or . Return 1; 3. Delete_Particular() Int Delete_Particular() 要求用户输入需要删除的采购单编号,以及单项的序号; ID1= Stock_Order_ID; ID2=Stock_Order_Serial; 根据ID1和ID2,构造SQL语句; 连接DB,进行删除操作; Return 1;/删除成功4. Query_ Particular() Stock_Order_Particular Query_ Particular() Stock_Order_Particular Result; 要求用户输入需要查询的采购单明细的采购单编号; ID=input; 根据ID构造SQL语句,查询所有满足条件的采购单项; 连接DB,进行查询; Result=结果集; Return Result; . ConnectToDB() Void ConnectToDB() 获得数据库连接句柄; 建立连接;. MakeSQL() SQL MakeSQL() 根据条件,构造SQL语句。 Return SQL;. AddToDB()Void AddOrderToDB(Stock_Order) 根据条件,call MakeSQL(); 运行SQL,将结果新建到中;8.SearchDB() Something SearchDB() 根据条件,call MakeSQL(); 运行SQL,得到结果; 返回结果; 2.2.6 采购统计表采购单统计表 StockStatForms类的UML图示:类的用途:采购单统计类主要是在采购单查询的基础上,进行按照一定条件的统计属性列表:属性名属性含义数据类型缺省值可见性Stock_Stat_ID统计表编号Char(10)00-Start_Date起始日期Int0-End_Date截止日期Int0-Buyer_ID采购员编号Char(10)00-Stat_Date统计日期Int0-Total_Num采购商品总数Int0-Total_Sum采购商品总价Float0-List统计表表项Stock_Stat_PartNULL-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型Creat新建统计表+Stock_Stat_IDChar(10)Stock_StatStart_DateInt.Get Stock_Stat_IDGet 操作+Char(10)Get Start_DateGet操作+Int.+Set Stock_Stat_IDSet 操作+Stock_Stat_IDChar(10)SetStart_DateSet 操作+Start_DateInt.+ConnectToDB()连接数据库+VoidMakeSQL()生成SQL语句+SQLAddToDB()将采购单加入DB+OrderStock_OrderVoid内部逻辑说明:1. Create()Stock_Stat Create(NULL) New Stock_Order data; New Stock_Stat result; Call Query();/调用“采购单”类的查询操作 data=Query(); 根据查询条件对result.Buyer_ID,result.Start_Date,result.End_Date进行赋值; result. Stat_Date=当前日期; for(each datai) result.Total_Num=datai.Number; result.Total_Num=datai.Cost; result.List.Stock_order_ID=datai. Stock_order_ID; i+;Result构造完成;创建SQL语句,连接DB,新建统计表兵存储;Return result;. ConnectToDB() Void ConnectToDB() 获得数据库连接句柄; 建立连接;. MakeSQL() SQL MakeSQL() 根据条件,构造SQL语句。 Return SQL;. AddToDB()Void AddOrderToDB(Stock_Order) 根据条件,call MakeSQL(); 运行SQL,将结果新建到中; 2.2.7 采购统计表项StockStatFormsItem类的UML图示:类的用途:采购单统计表项主要是对统计表中的各个采购单进行记录和查询操作。属性列表:属性名属性含义数据类型缺省值可见性Stock_Stat_ID所属统计表编号Char(10)00-Serial编号Int0-Stock_order_ID采购单编号Char(10)00-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型Query_Detial()查询采购单详细信息+IDStock_Stat_PartStock_orderConnectToDB()连接数据库+VoidMakeSQL()生成SQL语句+SQLSearchDB()将采购单加入DB+OrderStock_OrderVoid内部逻辑说明:1. Query_Detial()Stock_order Query_Detial (Stock_Stat_Part) New Stock_order result;得到需要查询的采购单ID; ConnectToDB(); SearchDB(); Result=结果集; Return result;. ConnectToDB() Void ConnectToDB() 获得数据库连接句柄; 建立连接;. MakeSQL() SQL MakeSQL() 根据条件,构造SQL语句。 Return SQL;. SearchDB()Void SearchDB() 根据条件,call MakeSQL(); 运行SQL,得到结果集并返回; 2.2.8 销售统计表SalesStatForms类的UML图示:类的用途: 把销售单按收银员编号和日期区间进行统计属性列表:属性名属性含义数据类型缺省值可见性DateBegin起始日期stringNULL-DateEnd截止日期stringNULL-SalerID销售员编号stringNULL-StatDate统计日期stringNULL-Merchandise_Amount销售商品总数int0-Summary销售商品总价float0-Bill_List销售单列表stringNULL-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型New_Bill_Stat新建+Bill_Stat *内部逻辑说明:Bill_Stat * New_Bill_Stat() 构建DB命令新建一个Bill_Stat并返回其指针 2.2.9 销售统计表项SalesStatFormsItem类的UML图示:类的用途:属性列表:属性名属性含义数据类型缺省值可见性Bill_ID销售单编号stringNULL-Bill_Date日期stringNULL-Bill_Sum总金额float0-Bill_SalerID收银员编号stringNULL-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型Check_Bill查询单据详细信息+Bill内部逻辑说明:Bill Check_Bill() 根据当前销售统计表项的销售单编号构建DB命令,查询相应的销售单详情并返回 2.2.10 帐户account类的UML图示:类的用途:保存用户的属性和对用户的操作,包括登入登出,添加删除。属性列表:属性名属性含义数据类型缺省值可见性Name用户名Char(64)0-position类型int0-Code密码textNULL-Online是否在线Int0-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型Login()登陆+usernamestringintusercodestringLogout()登出+usernamestringintModify()修改用户信息+DBstringstringStringUseradd()添加用户+User_detail_vectorstringStringUserdel()删除用户+usernamestringString内部逻辑说明:Login(string username string usercode)检测username 和 usercode的是否配对If(not match) 打印错误信息,返回-1Else Online+ 返回 0Login(string username)OnlineIf(online 0) Error 返回-1else 返回 0Mofify(string DBstring) 执行DB命令,返回执行信息Useradd(string User_detail_vector) 由User_detail_vector组建DB命令,并执行,返回执行结果Userdel(string username)组建删除username的DB命令,执行DB命令返回结果 2.3 控制类 2.3.1采购单据控制类 StockOrderMgmtHandler类的UML图示:类的用途:此类主要是进行采购单据的管理属性列表:属性名属性含义数据类型缺省值可见性Order采购单Stock_Order-Order_Part采购单单项Stock_Order_Particular-Stat采购单统计表Stock_Stat-Stat_Part采购单统计表表项Stock_Stat_Particular-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型Creat_order()新建采购单+voidDelete_order()删除采购单+voidQuery_order()查询采购单据+voidAdd_order_part()新建采购单项+voidDelete_order_part()删除采购单据+voidCreat_Stat()新建采购单统计表+voidQuery_Stat()查询采购单表项内部逻辑说明:1. Creat_order()void Creat_order() Call CreatNewStockOrder() /调用实体类“采购单”的操作If (CreatNewStockOrder=1)新建成功;显示:新建成功,返回到界面类;Call Updata_DB /调用实体类操作,进行数据库更新 Else 新建失败;2. Delete_order()void Delete_order() 要求用户输入需要删除的采购单编号; ID=Stock_Order_ID; 根据ID,构造SQL语句; 连接DB,进行删除操作; Return 1;/删除成功3. Query_order()void Query_order() New Stock_Order result; Call Query(); Result=Query(); 显示:将result返回到界面类,显示;if(用户需要进一步查询详细条目) New Stock_Order_Particular Result_Part; Call Query_Particular(); /调用“采购单项”类的操作 Result_Part=Query_Particular; 显示:将Result_Part返回到界面类,显示; 4. Add_order_part()Void Add_order_part()call Add_Particular();If (Add_Particular =1)新建成功;显示:新建成功,返回到界面类; Else 新建失败;5. Delete _order_part()Void Delete_order_part() Call Delete_Particular()/调用实体类的操作6. Creat_StatVoid Creat_Stat()Call Create();/调用实体类的操作 6. Query_Stat()Void Query_Stat()Call Query_Detial();/调用实体类的操作显示:显示统计表中的采购单序列If (需要进一步显示详细信息) Call Query_ Particular() /调用“采购单单项”操作 2.3.2销售单据管理类Control.Sale类的UML图示:类的用途:对销售单据的管理操作属性列表:属性名属性含义数据类型缺省值可见性Bill_List销售单据列表List,成员变量为BillNULL-Bill_Stat销售单据统计列表Stat,结构体,返回符合条件的List与统计信息,如总金额等NULL-Bill销售单据Bill,成员变量为MerchandiseNULL-操作列表:操作名操作的含义可见性参数列表返回值类型名称类型Check_Stat查询销售单据统计+DateBeginstringBill_StatDateEndstringSalerIDstringCheck_Bill_In_List查看列表中任一单据+Bill.ClickBillCheck_List查询单据列表+DateBeginstringBill_ListDateEndstringSalerIDstringCheck_Bill查询列表中任一单据详细信息+Bill_IDstringBillNew_Bill新建销售单据+Bill内部逻辑说明:Bill_Stat Check_Stat(String DateBegin, String DateEnd, String SalerID) 将所有参数传给操作Check_List,将返回的Bill_List信息进行总金额、总比数等统计,并同返回的Bill_List装入结构Bill_Stat返回Bill Check_Bill_In_List(Bill.Click) 将被点击单据的编号传给操作Check_Bill,将返回的Bill作为返回值返回Bill_List Check_List(String DateBegin, String DateEnd, String SalerID) 根据传入的参数DateBegin,DateEnd,SalerID构建DB命令,查询满足条件的单据,并返回单据列表Bill Check_Bill(stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毕业设计指导教师评语10
- 北京服装学院本科毕业设计论文工作规定
- 湿法磷酸生产精细磷酸一铵结晶改善剂研究
- 怎样写研究性论文撰写方法(共3)
- 上卷第四章-翻译实践略论
- 结题报告指导教师意见(5范例)
- 本科毕业论文模板之章节标题的层次与格式
- 2025年汉中辅警招聘考试题库及答案详解(易错题)
- 2025年毕节辅警招聘考试真题及答案详解(典优)
- 2025年乐山辅警协警招聘考试备考题库含答案详解(新)
- GB/T 12967.4-2022铝及铝合金阳极氧化膜及有机聚合物膜检测方法第4部分:耐光热性能的测定
- 测量不确定度评定考试题答案
- 西溪国家湿地公园规划设计分析课件
- 气管软化试验课件
- 广东区域地质构造简介之一-断裂特征介绍
- 鱼骨流程图模板
- 董事、监事、高级管理人员信息
- 110kV二线圈变压器交接验收(大修后)试验作业指导书
- 浙江政采云网上超全一张网供应商承诺书
- 《电路原理》课后习习题答案
- 闪购模式介绍PPT
评论
0/150
提交评论