专业方向工程设计说明书-1-专业方向工程设计设计说明书班级:学号:姓名:成绩:专业方向工程设计说明书-2-一、项目名称煤气销售管理系统二、项目需求分析2.1.市场需求通过对现流行在市场的软件的调查发现,现在市场上的软件多是正对大客户,比较复杂,实现过程比较繁琐,费用昂贵,也不容易用户操作与维护,不能被中小型煤气公司的使用,所以,我们抓住市场这个空白区,区开发煤气公司送气管理系统。2.2.软件功能需求煤气销售管理系统要求实现:基本信息管理、库存管理、查询管理三大管理功能基本信息管理包括:操作员信息管理、煤气信息管理、供应商信息管理、工人信息管理库存管理包括:煤气入库管理、煤气销售管理查询管理功能包括:煤气入库查询、煤气销售查询2.3.数据流图1.顶层图订货信息供应商信息管理请求煤气信息煤气信息煤气购买信息客户信息送气员信息费用信息煤气销售情况煤气库存信息供应商管理员煤气管理系统客户专业方向工程设计说明书-3-三、项目实施方案3.1.项目所需的软硬件环境Vs2010开发工具、MicorosoftSQLServer2000数据库2.第二层数据流图工人信息煤气库存表用户信息表送气工信息表售出情况用户信息送气工信息库存信息入库信息煤气购买情况煤气入库信息煤气购进表费用费用信息煤气销售信息煤气信息用户费用表用户录入信息煤气销售信息煤气信息录入工人信息煤气信息表煤气销售表煤气信息1煤气管理2销售管理3送气员管理5用户管理4煤气库存管理管理员用户专业方向工程设计说明书-4-3.2.系统现所需类3.2.1.煤气信息类3.2.2.操作员管理类类名:CDIgMeiqiInfo成员函数:voidUpdateMeiqiInfo();//更新煤气信息voidDeleteMeiqiInfo();//删除煤气信息voidClearInterface();//刷新界面voidLoadMeiqiInfo();//加载煤气信息BOOLInfoIsNull();//判断是否为空voidAddMeiqiInfo();//添加煤气信息成员变量:CEditm_pid;//煤气编号CEditm_pname;//煤气名称CEditm_type;//煤气种类CListCtrlm_list;//列表框信息CEditm_price;//煤气价格继承的类:CDialog类名:CDIgOperator1成员函数:voidUpdateOperator();//修改操作员boolInfoIsExist(LPTSTRname);//判断是否存在voidDeleteOperator();//删除操作员信息voidClearInterface();//刷新boolInfoIsNull();//判断是否为空voidLoadOperatorInfo();//加载操作员信息voidAddOperator();//添加操作员成员变量:CEditm_password;//密码CEditm_operator;//登录名CListCtrlm_list;继承类:CDialog专业方向工程设计说明书-5-3.3.3.销售查询类3.3.4.系统管理类3.3.5.系统登陆类类名:CDlgBuyS成员函数:voidSelectB();//查询函数voidCancelQuery();//重查函数成员变量:CListCtrlm_list;//列表框信息CEditm_value;//查询方式CComboBoxm_fields;//查询条件继承类:CDialog类名:CDlgConfigM成员函数:voidEnumServers();//更改所连接的数据库成员变量:CEditpassword;//密码CEditusers;//用户名CEditdatabase;//数据库名继承类:CDialog类名:CDlgLogin成员函数:voidOnOK();//登陆成员变量:CEditm_password;//密码CEditm_user;//用户名继承类:CDialog专业方向工程设计说明书-6-3.3.6.工人信息管理类3.3.7.煤气入库管理类类名:CDlgMan成员函数:voidUpdateworkInfo();//更新工人信息voidDeleteworkInfo();//删除工人信息voidAddWork();//添加工人信息voidLoadMeiqiInfo();//读取工人信息voidClearInterface();//刷新成员变量:CEditm_wid;//工人编号CEditm_wname;//工人姓名CEditm_wphone;//工人电话继承类:CDialog类名:CDlgMeiqiInput成员函数:voidClearInterface();//刷新voidAddMeiqiInfo();//购入煤气BOOLInfoIsNull();//煤气判空voidLoadMeiqiInfo();//加载煤气信息成员变量:CEditm_pid;//煤气编号CEditm_sid;//供应商编号CEditm_shuliang;//购入数量CEditm_bdate;//购入日期继承类:CDialog专业方向工程设计说明书-7-3.3.8.煤气售出管理类3.3.9.主窗体类类名:CDlgMeiqiOutput成员函数:voidClearInterface();//刷新voidLoadMeiqiInfo();//加载煤气信息BOOLInfoIsNull();//判空voidAddMeiqioutput();//煤气售出成员变量:CEditm_pid;//煤气编号CEditm_cid;//客户编号CEditm_shuliang;//售出数量CEditm_sdate;//日期CEditm_wid;//送气工编号继承类:CDialog类名:CManagerDlg成员函数:成员变量:CBitmapm_bitmap[6];//存放位图文件CDCm_mdc[6];//创建内存DCCBitmapm_guid[2];//索引图标存储intm_index;//位图索引继承类:CDialog专业方向工程设计说明书-8-3.3.10.煤气供应商类四、总体设计4.1.功能模块图类名:CDlgSupplier成员函数:voidUpdatesupplierInfo();//更新供应商信息voidDeleteMeiqiInfo();//删除煤气信息voidAddsupplierInfo();//添加供应商信息voidLoadMeiqiInfo();//加载煤气信息BOOLInfoIsNull();//判断是否为空voidClearInterface();//刷新成员变量:CEditm_sid;//供应商编号CEditm_sname;//供应商姓名CEditm_saddress;//供应商地址CEditm_sphone;//供应商电话继承类:CDialog煤气销售管理系统工人信息管理供应商信息管理操作员信息管理煤气信息管理煤气入库基本信息管理库存管理查询管理煤气出库煤气入库查询煤气销售查询专业方向工程设计说明书-9-五.详细设计5.1.数据库设计5.1.1数据库概念结构设计操作员实体及属性工人实体及属性供应商实体及属性用户及属性煤气及属性操作员姓名密码工人编号姓名电话供应商号供应商电话供应商地址供应商名用户供应商用户电话用户名用户地址用户号煤气名煤气编号煤气种类价格专业方向工程设计说明书-10-E-R图5.1.2数据库逻辑结构设计以下为所用的实体和关系的信息以及在SQL2000上的实现过程:注:下划线部分为主键,下划线为外键˙煤气购进表buying:pid(煤气编号),sid(商品编号),bdate(购进日期),shuliang(数量)˙用户表customer:cid(用户号),cname(用户名),cphone(用户电话),caddres(用户住址)˙煤气表meiqi:pid(煤气编号),pname(煤气名),type(种类),price(价格)˙费用表pay:cid(用户表),sdate(出售日期),feiyong(费用)˙库存表product:pid(商品编号),shuliang(数量)˙销售表sell:pid(商品编号),cid(用户号),sdate(出售日期),wid(送气工编号),shuliang(出售量)˙供应商表suppplier:sid(供应商号),sname(供应商名),saddress(供应商地址),sphone(供应商电话);˙操作员表tb_opperator:name(操作员名),password(密码)˙工人表worker:wid(工人编号),wname(工人姓名),wphone(工人电话)供应商购买煤气出售送气工用户nmnmp专业方向工程设计说明书-11-5.1.3.数据表购进表buying顾客表customer煤气表meiqi费用表pay产品表product名称数据类型大小是否为主键pidchar10是sidchar10是bdatedatetime8是shuliangint4否名称数据类型大小是否为主键cidchar10是cnamechar10否caddresschar20否cphonechar30否名称数据类型大小是否为主键pidchar10是pnamevarchar50否typevarchar50否priceint4否名称数据类型大小是否为主键cidchar10是sdatedatetime8是feiyongint4否名称数据类型大小是否为主键pidchar10是shuliangint4否专业方向工程设计说明书-12-销售表sell供应商表supplier操作员表tb_operator5.1..4.触发器1.buying表上的触发器实现入库时数量变化名称数据类型大小是否为主键pidchar10是cidchar10是widchar10否shuliangint4否sdatedatetime8是名称数据类型大小是否为主键sidchar10是snamechar10否saddresschar20否sphonechar30否名称数据类型大小是否为主键namevarchar50是passwordvarchar50是CREATEtriggertg_buyingondbo.buyingforinsertasdeclare@pidchar(10)declare@shuliangintset@pid=(selectpidfrominserted)beginset@shuliang=(selectshuliangfrominserted)ifnotexists(select*fromproductwherepid=@pid)insertintoproductvalues(@pid,@shuliang)elseupdateproductsetshuliang=shuliang+@shuliangwherepid=@pidend专业方向工程设计说明书-13-2.sell表上的触发器,实现销售时费用的生成和库存数量的改变createtriggertg_payondbo.sellforinsertasdeclare@cidchar(10)declare@payintdeclare@pidchar(10)declare@sumintdeclare@priceintdeclare@sdatedatetimebeginset@cid=(selectcidfrominserted)set@pid=(selectpidfrominserted)set@sdate=(selectsdatefrominserted)set@sum=(selectshuliangfrominserted)set@price=(selectpricefrommeiqiwherepid=@pid)set@pay=@sum*@priceifnotexists(select*frompaywherecid=@cidandsdate=datepart(mm,@sdate))insertint