课程设计(论文)基于vc++连接数据库的物流管理系统_第1页
课程设计(论文)基于vc++连接数据库的物流管理系统_第2页
课程设计(论文)基于vc++连接数据库的物流管理系统_第3页
课程设计(论文)基于vc++连接数据库的物流管理系统_第4页
课程设计(论文)基于vc++连接数据库的物流管理系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、 物流管理系统vc+程序设计报告班别:作者: 林玉兰 指导老师:成绩:物流管理系统目录1.系统概述32.需求分析33.总体设计信息33.1项目规划.33.2系统功能结构.53.3设计目标.64.系统设计64.1开发及运行环境.65.数据库的设计65.1数据库概要说明76.主要功能模块设计86.1登录界面设计.86.1.1登陆界面代码.86.2主窗口设计.96.3货物信息界面.106.3.1货物信息代码.106.4货物信息查询界面.146.4.1货物查询代码.146.5采购入库界面.166.5.1采购入库代码.166.6入库查询界面.186.7任命中界面.186.7.1 任命中的运输配送交通工具

2、代码.196.8订单管理界面.216.9机构设置界面.216.10库存预警界面.226.10.1库存预警代码.226.11公司简介界面.246.12操作日志界面.246.12.1操作日志界面代码.256.13用户密码修改界面.276.13.1用户密码修改代码.286.14 物流管理系统外部人员登陆主程序界面.307.开发总结308.参考文献.30物流管理系统设计方案1. 系统概述伴信息时代的到来,使社会的各个行业领域都发生了巨大的变化,物流业也在时代大背景的影响之下,整个行业朝着信息化方向发展。通过计算机对物流企业运作的全过程进行全面、效的管理,解决了经营过程中,客户需求和企业资源不能有效协调

3、与统一按排的问题,减少了管理者的工作量,大大提高了企业的工作效率和经济效益,满足了信息时代物流企业管理、发展的需求,成为物流企业适应时代发展中企业管理者必不可少的管理工具。2. 需求分析在软件开发之前,我们首先作了简单的需求分析。一个物流管理系统软件要具备以下功能: 我们的物流管理系统将会实现管理员登陆操作和外部人员登陆操作,管理员可以进行信息的查看和管理,而外部人员只是可以进行信息的查看。 货物信息、商家单位信息、员工信息、仓库信息、采购入库、加工出库、运输配送等基础信息的管理和维护功能。 全面实用的货物信息管理功能。 全面实用的库存信息管理功能。 对有配送、运输全过程进行有效、全面的管理。

4、 通过管理系统对企业内部的数据进行分析,实现库存预警和订单预警,以帮助企业及时作出正确的决策。 设置系统日常维护功能。 设置机构内部管理模块。 客户可以通过公司简介模块对公司进行了解。 可以进行用户名密码的修改操作 设置系统操作日志来记录管理员和外部人员的操作信息。3.总体设计信息通过以上对软件的分析,开始对物流管理系统软件进行一个总体的设计流程。3.1 项目规划根据需求分析,设计系统框架。物流管理系统由货物信息、货物查询、供货商家、商家查询、采购入库、入库查询、加工包装出库、出库查询、待命中、任命中、维修中、订单管理、订单查询、财务入账、财务支出查询、入账信息查询、机构设置、订单预警、库存预

5、警、公司简介、操作日志、用户名密码修改各部分组成。设计各部分具体功能如下: 货物信息模块主要功能是:可以对货物信息进行增加、修改、删除、清空、显示操作,并且查看所有的货物信息。 货物查询模块主要功能是:可以对货物进行查询,根据查询条件货物代码和货物名称可以对货物进行查询。 供货商家模块主要功能是:可以对供货商家进行增加、修改、删除、清空、显示操作,并且查看所有的商家信息。 商家查询模块主要功能是:可以对供货商家进行查询,根据查询条件商家代码和商家名称可以对供货商家进行查询。 采购入库模块主要功能是:采购入库可以增加仓库里已经有了的货物的数目,采购入库要填有采购人名字,采购的货物名字、采购的数目

6、、价格,还有入库日期。 入库查询模块主要功能是:可以对已经采购入库的各种信息进行查询,查询条件可以是货物代码、商家代码,你将会看到你想查询的入库信息。 加工包装出库模块主要功能是:对仓库里面的货物进行加工包装出库,并使得货物的数目减少,达到出库的作用。 出库查询模块主要功能是:和入库查询一样,可以对加包装出库的货物进行查询。 待命中模块主要功能是:这里可以看到用来运输的各种运输工具,而这些运输工具是待命的,可以随时准备出工运输,这里有运输工具名称、运输方式、驾驶员、驾驶员电话等。还可以进行增加、修改、删除等操作。如果想要运输配送,可以联系驾驶员,很是方便。 任命中模块主要功能是:这里可以查看到

7、已经是运输配送当中的运输工具,信息包含运输工具名称、运输方式、目的地、运输费用,驾驶员电话等。同样的也可以进行增加、删除、修改等操作。 维修中模块主要功能是:这里的运输工具是正在维修当中的,所以这些是暂时不可以工作的。 订单管理模块主要功能是:订单管理是与各个厂家或者公司进行签约订单合同的,你可以查看到厂家、厂家电话、所定货物、所定数目、价钱、是否完成合同等,还可以进行增加、删除、修改等操作。 订单查询模块主要功能是:订单查询时对订单进行查看的。 财务入账模块主要功能是:财务入账是公司进账,含有进账来源、入账人、入账日期等。 财务支出查询模块主要功能是:该模块可以对财务的支出进行查询,这里有主

8、要员工的工资查询,还可以对员工工资进行修改。不仅如此,还可以看到采购入库的钱数支出、加工包装出库的支出、运输费用的支出。 入账信息查询模块主要功能是:就是对财务入账的信息进行查看。 机构设置模块主要功能是:这里是对物流公司的全体员工的各种信息进行查看与设置,有姓名、性别、职务、年龄、住址、电话。 订单预警模块主要功能是:可以查看还有什么订单是还没有完成的。可以达到提醒的作用。 库存预警模块主要功能是:仓库里面的货物如果超过了最大库存或者少于最小库存的话,就会在这里显示出来,可以提醒管理人员或负责人,采取相应的措施。 公司简介模块主要功能是:这里是简单介绍该物流公司的一些信息,有服务范围和各种伟

9、绩,联系电话、邮箱、地址等。 操作日志模块主要功能是:对于登陆人员的各种操作进行记录,可以查看到其用户、日期,和操作内容,还可以统计共多少的条记录。 用户名密码修改模块主要功能是:这里可以对管理员和外部人员的用户名、密码进行修改。!值得注意的是,对于以上各种模块,当外部人员登陆时,只能进行查看,是不能够进行任何操作的,并且外部人员不能查看到操作日志。3.2 系统功能结构物流管理系统的功能结构如图1所示。图1 物流综合管理系统功能结构图3.3 设计目标物流管理系统主要帮助物流企业完成进、销、存一体化信息管理,并配有完善的配送、运输、预警等功能。通过本系统可以达到以下目标:系统运行稳定,安全可靠。

10、界面设计美观,人机交互界面友好。信息查询灵活、方便、快捷、准确,数据存储安全可靠。满足键盘和鼠标的双重操作,完全支持回车键。信息安全保密。系统操作日志记录了每一次的操作信息。对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。4.系统设计通过以上对软件的分析,开始对软件设计。4.1 开发及运行环境u 系统开发平台:visual c+ 6.0u 数据库管理系统软件:access2003u 运行平台:windows xp/windows 2000u 显示像素:最低800*600,最佳效果1024*768。5 数据库设计5.1数据库概要说明针对物流综合管理系统欲完成的功能,数据库命名为“

11、wuliu”,整个系统共使用了14张数据表。包括:管理员登陆用户名与密码表、外部人员登陆用户名与密码表、货物信息表、供货商家表、采购入库表、加工出库表、待命中的运输工具表、任命中和维修中的运输工具表、订单管理表、员工工资表、公司职员表、操作日志表、入帐表表。如图2、3、4、5所示,即为本系统中数据库中的一些数据表结构图,在这里只给出货物信息表、加工出库表、任命中交通工具表和操作日志表,其它表和这些类似,所以就不一一展现。 图2 货物信息表 图3 加工出库表 图4 运输配送中的运输工具表 图5 操作日志表 6.主要功能模块设计6.1 登陆界面设计软件登陆界面是应用程序提供给用户进入功能模块的入口

12、,为确保用户信息的安全保密性,物流管理系统的登陆界面采用了传统的“用户名/密码”权限风格,而且,分为外部人员登陆和管理员登陆。物流管理系统登陆界面如图6所示。 图6 物流管理系统登陆界面6.1.1 登陆界面的代码添加链接管理员和外部人员用户名与密码类cdenglu1、denglu2,添加登陆成功后启动管理员管理对话框和外部人员查看对话框界面对话框的类cqidong01和cqidong002。 为对话框添加成员变量,设置好成员变量:idc_edit1 cstring m_nameidc_edit2 cstring m_passv 登陆按钮的代码如下:void cmydlg:onbutton1()

13、 / todo: add your control notification handler code hereuser=m_name; /操作日志updatedata(); cdenglu1 denglu1; updatedata(); cdenglu2 denglu2; /denglu是连接密码与用户名类 m_name.trimleft(); m_pass.trimleft(); if(m_name.isempty()|m_pass.isempty() afxmessagebox(用户名和密码不能为空!); return; if(denglu1.isopen() denglu1.close

14、(); if(denglu2.isopen() denglu2.close(); denglu1.m_strfilter.format(yonghuming=%s and mima=%s,m_name,m_pass); denglu1.open(); denglu2.m_strfilter.format(yonghuming=%s and mima=%s,m_name,m_pass); denglu2.open(); if(denglu1.iseof()&denglu2.iseof() afxmessagebox(您输入的用户名或密码错误,请重新输入!); return; else if(de

15、nglu1.isbof() /外部人员登陆成功 user=m_name; /操作日志 rizhi(登录); cqidong002 qidong002; this-showwindow(sw_hide); qidong002.domodal(); this-showwindow(sw_show); onok(); if(denglu2.isbof() /管理员登陆成功 user=m_name; /操作日志 rizhi(登录); cqidong01 qidong01; this-showwindow(sw_hide); qidong01.domodal(); this-showwindow(sw_

16、show); onok(); v 取消按钮代码如下:void cmydlg:onbutton2() onok();6.2 主窗口设计主窗体界面是应用程序提供给用户访问其功能模块的平台,根据实际需要,物流管理系统的主界面设置了各功能模块,可以让客户对物流管理系统的各项功能以及服务一目了然。物流管理系统管理员主程序界面如图4所示。图4 系统主功能模块界面6.3 货物信息界面图5 货物信息界面6.3.1 货物信息代码添加启动货物信息对话框类cqidong3;添加链接货物信息表类chuowu;设置成员变量为:idc_edit1 cstring m_codeidc_edit2 cstring m_nam

17、eidc_edit5 long m_numberidc_edit3 long m_maxidc_edit4 long m_minidc_list1 clistctrl m_list为启动类添加私有类refresh();.初始化函数的代码:void cqidong3:onclicklist1(nmhdr* pnmhdr, lresult* presult) / todo: add your control notification handler code hereint i=m_list.getselectionmark();m_code=m_list.getitemtext(i,0);m_n

18、ame=m_list.getitemtext(i,1);m_number=atoi(m_list.getitemtext(i,2);m_max=atoi(m_list.getitemtext(i,3);m_min=atoi(m_list.getitemtext(i,4);updatedata(false);*presult = 0;chuowu huowu;bool cqidong3:oninitdialog() cdialog:oninitdialog();/ todo: add extra initialization herehuowu.open();m_list.insertcolum

19、n(0,货物编号);m_list.insertcolumn(1,货物名称);m_list.insertcolumn(2,当前数目);m_list.insertcolumn(3,最大值);m_list.insertcolumn(4,最小值);rect rect;m_list.getwindowrect(&rect);int wid=rect.right-rect.left;m_list.setcolumnwidth(0,wid/5);m_list.setcolumnwidth(1,wid/5);m_list.setcolumnwidth(2,wid/5);m_list.setcolumnwidt

20、h(3,wid/5);m_list.setcolumnwidth(4,wid/5);refresh();return true; / return true unless you set the focus to a control / exception: ocx property pages should return false并在下面完成新添加的成员函数的定义:void cqidong3:refresh()m_list.deleteallitems();huowu.movefirst();int i=0;cstring cur,max,min;while(!huowu.iseof()m

21、_list.insertitem(i,huowu.m_huowudaima);m_list.setitemtext(i,1,huowu.m_huowumingzi);cur.format(%d,huowu.m_shumu);m_list.setitemtext(i,2,cur);max.format(%d,huowu.m_zuida);m_list.setitemtext(i,3,max);min.format(%d,huowu.m_zuixiao);m_list.setitemtext(i,4,min);huowu.movenext();i+;m_list.setextendedstyle(

22、lvs_ex_fullrowselect);huowu.close();v 增加按钮代码:void cqidong3:onbutton1() / todo: add your control notification handler code here updatedata(); huowu.open(); huowu.addnew(); huowu.m_huowudaima=m_code; huowu.m_huowumingzi=m_name; huowu.m_shumu=m_number; huowu.m_zuida=m_max; huowu.m_zuixiao=m_min; huowu.

23、update(); huowu.requery(); refresh();v 修改按钮代码:void cqidong3:onbutton4() / todo: add your control notification handler code here updatedata(); if(huowu.open() huowu.close(); huowu.m_strfilter.format(huowudaima=%s,m_code); huowu.open(); huowu.edit(); huowu.m_huowudaima=m_code; huowu.m_huowumingzi=m_na

24、me; huowu.m_shumu=m_number; huowu.m_zuida=m_max; huowu.m_zuixiao=m_min; huowu.update(); huowu.m_strfilter=; huowu.requery(); refresh();v 删除按钮代码void cqidong3:onbutton2() / todo: add your control notification handler code here updatedata(); if(huowu.open() huowu.close(); huowu.m_strfilter.format(huowu

25、daima=%s,m_code); huowu.open(); huowu.delete(); huowu.m_huowudaima=; huowu.m_huowumingzi=;huowu.m_shumu=0; huowu.m_zuida=0; huowu.m_zuixiao=0; huowu.m_strfilter=; huowu.requery(); refresh();v 清空按钮代码:void cqidong3:onbutton3() / todo: add your control notification handler code herem_list.deleteallitem

26、s();v 显示按钮代码:void cqidong3:onbutton5() / todo: add your control notification handler code here huowu.open(); refresh();v 退出按钮代码:void cqidong3:onbutton6() / todo: add your control notification handler code hereonok();6.4 货物信息查询界面图6 货物信息查询界面6.4.1货物查询代码成员变量设置为:idc_combo1 ccombobox m_codeidc_edit1 cstri

27、ng m_valueidc_list1 clistctrl m_listlistcontrol的初始化代码:bool cqidong8:oninitdialog() cdialog:oninitdialog();/ todo: add extra initialization here m_code.addstring(货物名称); m_code.addstring(货物编号); m_code.setcursel(0); m_list.insertcolumn(0,货物编号); m_list.insertcolumn(1,货物名称); m_list.insertcolumn(2,当前库存);

28、m_list.insertcolumn(3,最大库存); m_list.insertcolumn(4,做小库存); rect rect; m_list.getwindowrect(&rect); int wid=rect.right-rect.left; m_list.setcolumnwidth(0,wid/5); m_list.setcolumnwidth(1,wid/5); m_list.setcolumnwidth(2,wid/5); m_list.setcolumnwidth(3,wid/5); m_list.setcolumnwidth(4,wid/5);v 确定按钮代码:void

29、 cqidong8:onbutton1() / todo: add your control notification handler code hereupdatedata(); cstring x,str,str1; m_code.getwindowtext(x); if(x=货物编号) str=huowudaima; else str=huowumingzi; chuowu huowu; if(huowu.open() huowu.close(); str1=str+=%s; huowu.m_strfilter.format(str1,m_value); huowu.open(); if

30、(huowu.iseof() afxmessagebox(找不到满足条件的记录); return; else m_list.deleteallitems(); huowu.movefirst(); int i=0; cstring cur,max,min; while(!huowu.iseof() max.format(%d,huowu.m_zuida); min.format(%d,huowu.m_zuixiao); cur.format(%d,huowu.m_shumu); m_list.insertitem(i, huowu.m_huowudaima); m_list.setitemte

31、xt(i, 1,huowu.m_huowumingzi); m_list.setitemtext(i, 2,cur); m_list.setitemtext(i, 3,max); m_list.setitemtext(i, 4, min); huowu.movenext(); i+; m_list.setextendedstyle(lvs_ex_fullrowselect);return true; / return true unless you set the focus to a control / exception: ocx property pages should return

32、false6.5 采购入库界面图7 采购入库界面6.5.1采购入库代码如下:启动对话框类:cqidong4;链接入库表的类:ruku链接货物信息表的 huowu类;链接商家信息表的 shangjia类;成员变量的设置:idc_combo1 ccombobox m_nameidc_combo2 ccombobox m_ppnameidc_datetimepicker1 ctime m_timeidc_edit1 long m_numberidc_edit2 long m_priceidc_edit3 long m_pname对话框初始化:bool cqidong4:oninitdialog()

33、cdialog:oninitdialog();/ todo: add extra initialization herem_time=ctime:getcurrenttime(); /获取时间 chuowu huowu; huowu.open(); huowu.movefirst(); while(!huowu.iseof() m_name.addstring(huowu.m_huowumingzi); huowu.movenext(); m_name.setcursel(0); cshangjia shangjia; shangjia.open(); shangjia.movefirst()

34、; while(!shangjia.iseof() m_ppname.addstring(shangjia.m_shangjiamingzi); shangjia.movenext(); m_ppname.setcursel(0); updatedata(false); huowu.close(); shangjia.close();return true; / return true unless you set the focus to a control / exception: ocx property pages should return falsev 确定按钮代码:void cq

35、idong4:onbutton1() /按确定的代码/ todo: add your control notification handler code hereupdatedata(); cstring y,x; m_name.getwindowtext(y);/获取组合框显示的文本存入y中m_ppname.getwindowtext(x); cstring code,pcode; / 称明商品代码和商家代码 chuowu huowu;cshangjia shangjia; huowu.m_strfilter.format(huowumingzi=%s,y); huowu.open(); c

36、ode=huowu.m_huowudaima; shangjia.m_strfilter.format(shangjiamingzi=%s,x); shangjia.open(); pcode=shangjia.m_shangjiadaima; cruku ruku; /插入到ruku表中 /ruku是连接入库表的类。 ruku.open(); ruku.addnew(); cstring a,b,c; ruku.m_huowudaima=code; ruku.m_shangjiadaima=pcode; ruku.m_caigouyuan=m_pname; ruku.m_shumu=m_nu

37、mber; ruku.m_rukuriqi=m_time; ruku.m_jiage=m_price; ruku.update(); ruku.requery(); huowu.edit();huowu.m_shumu=huowu.m_shumu+m_number; messagebox(货物入库成功!);huowu.update();huowu.requery();6.6 入库查询界面图8 入库查询界面备注:面对于入库查询的代码,形式和上面的货物查询的代码差不多,这里就不一一写出来了。6.7 任命中界面图9 任命中界面6.7.1 任命中的运输配送交通工具代码如下:crenming是链接任命中

38、运输工具表的类;类cqidong11是启动对话框的类;为cqidong类添加私有函数refresh() .初始化函数的代码: void cqidong11:onclicklist1(nmhdr* pnmhdr, lresult* presult) / todo: add your control notification handler code hereint i=m_list.getselectionmark();m_code=m_list.getitemtext(i,0);m_name=m_list.getitemtext(i,1);m_way=m_list.getitemtext(i,

39、2);m_goodname=m_list.getitemtext(i,3);m_price=atoi(m_list.getitemtext(i,4);m_driver=m_list.getitemtext(i,5);m_phone=atoi(m_list.getitemtext(i,6);updatedata(false);*presult = 0;crenming renming;bool cqidong11:oninitdialog() cdialog:oninitdialog(); / todo: add extra initialization hererenming.open();m

40、_list.insertcolumn(0,运输工具编号);m_list.insertcolumn(1,名字);m_list.insertcolumn(2,运输方式);m_list.insertcolumn(3,所运货物);m_list.insertcolumn(4,运输费用);m_list.insertcolumn(5,目的地);m_list.insertcolumn(6,驾驶员电话);rect rect;m_list.getwindowrect(&rect);int wid=rect.right-rect.left;m_list.setcolumnwidth(0,wid/7);m_list.

41、setcolumnwidth(1,wid/7);m_list.setcolumnwidth(2,wid/7);m_list.setcolumnwidth(3,wid/7);m_list.setcolumnwidth(4,wid/7);m_list.setcolumnwidth(5,wid/7);m_list.setcolumnwidth(6,wid/7);refresh();return true; / return true unless you set the focus to a control / exception: ocx property pages should return

42、false并在下面完成新添加的成员函数的定义:void cqidong11:refresh()m_list.deleteallitems(); renming.movefirst();int i=0;cstring dd,ff;while(!renming.iseof()m_list.insertitem(i, renming.m_chehao);m_list.setitemtext(i,1, renming.m_cheming);m_list.setitemtext(i,2, renming.m_yunshefangshi); m_list.setitemtext(i,3, renming.m_huowumingzi);ff.format(%d,renming.m_feiyong); m_list.setitemtext(i,4,ff);m_list.setitemtext(i,5, renming.m_jiashiyuan);dd.format(%d,renming.m_jiashiyuandianhua);m_list.setitemtext(i,6,dd);renming.movenext();i+;m_list.setextendedstyle(lvs_ex_fullrowselect);ren

温馨提示

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

评论

0/150

提交评论