课程设计报告.docx
《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(45页珍藏版)》请在冰豆网上搜索。
![课程设计报告.docx](https://file1.bdocx.com/fileroot1/2023-8/19/0f028880-d44f-4efe-b8f6-e1820cd0e12c/0f028880-d44f-4efe-b8f6-e1820cd0e12c1.gif)
课程设计报告
重庆********
课程设计报告
院(系):
__#############专业班级:
################
学生姓名:
#####学号:
###############
设计地点(单位)重庆科技学院逸夫科技大楼I305__
设计题目:
企业生产管理系统_____________________
完成日期:
2012年06月29日
指导教师评语:
_______________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
________________
摘要
在一般公司中,产品生产管理和企业资源管理是最重要的,一个企业生产管理规范化、自动化的生产管理系统非常重要。
而利用计算机技术,实现管理系统的自动化、规范化就是这个问题最好的解决办法,本次编写的生产管理系统内容全面,分类科学,集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护方便,对数据的管理、保存变得非常简单。
利用此系统,用户可以方便地浏览信息,找到需要的信息并对其进行修改,所以的信息集中一起进行管理,一个软件轻松搞定,从而极大地减少错误的发生,不但为公司节省资源,还避免了无法估计的不必要的损失。
关键字:
企业生产管理系统信息管理
1需求分析
1.1问题描述
面对公司复杂的产品生产销售和原料订购消耗,一个能够实现企业生产管理规范化、自动化的生产管理系统就先得非常重要了。
公司的生产管理大体包括以下几方面:
产品管理,其中包括产品信息的输入、产品信息的修改、产品信息的删除、产品信息的查询、公司产品生产、销售的情况以及模拟决策。
原料管理,其中包括原料信息的输入、原料信息的修改、原料信息的删除、原料信息的查询、公司原料订购、消耗的情况及模拟决策。
生产管理系统的主要目标是清楚的产品的生产、销售情况,并能作出部分抉择:
保证生产使用的原材料能准确、及时地供应到位,并能对原料的使用及采购做出相关的估计。
由于公司产品的生产、销售情况复杂,原材料种类、规格、型号繁多,每天都有大量的信息需要处理。
面对诸多信息,用传统方法来管理这些信息就会造成一定程度上人力、物力、财力上的浪费,还极容易产生错误,由此产生的损失是不可估量的。
为此,需利用计算机技术,实现管理系统的自动化、规范化。
开发计算机生产管理系统,可有效实现对公司生产管理的系统化、规范化和自动化,提高生产管理水平,本系统内容全面,分类科学。
集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。
利用此系统,用户便可方便地浏览信息,找到需要的信息并对其进行修改。
所有的信息集中一起进行管理,只需一个软件,从而极大地减少错误的发生,不但为公司节省资源,还避免了无法估计的不必要的损失。
1.2基本要求
1)巩固和加深对VisualForPro语言基础知识的理解,提高综合运用所学课程知识的能力。
2)培养学生的实际动手操作能力。
3)通过实际的课程设计,初步掌握简单软件的分析方法和设计方法。
4)需要了解生产管理系统。
5)能熟练地对程序进行调试,能正确解释和分析实验结果。
2系统分析
在设计数据库应用程序之前,我们需对程序的系统结构有一个准确把握。
只有有了比较准确的把握,在设计生产系统时,目标才会明确,否则即使能设计出完整数据库应用程序,其结构也会非常混乱,这样的数据库应用程序不可能稳定运行。
而在其后的系统维护也会变得非常困难。
3概要设计
3.1产品管理
产品信息的输入
产品信息的修改
产品信息的删除
产品信息的查询
产品生产信息的输入
产品销售信息的输入
3.2原料管理
原料信息的输入
原料信息的修改
原料信息的删除
原料信息的查询
原料订购信息的输入
3.3生产规划
对产品的销售盈利情况做出模拟
对原料的订购情况做出模拟
3.4统计报表
生成产品生产统计报表
生成产品销售统计报表
生成原料订购统计报表
3.5系统维护
显示当前登录用户的信息
修改当前登录用户的登记密码
增加新的登录用户
设置用户的操作权限
3.6数据备份
备份系统的数据
从备份的数据中恢复系统数据
3.7系统帮助
显示程序的版本信息
退出系统功能
3.8模块设计总体架构
原料管理
系统维护
数据备份
4详细设计
4.1程序预览
4.1.1登录表单
运行实例程序,首先进入的是用户登录表单。
登录表单如图4.1
图4.1用户登录表单
4.1.2产品管理模块
在用户管理模块下有信息输入、信息修改、信息删除、信息查询、生产单、销售单6个菜单项,产品信息删除表单如图4.2
图4.2产品信息删除表单
4.1.3原料管理模块
在原料管理模块有信息输入、信息修改、信息删除、信息查询和订购单。
原料订购表单如图4.3
图4.3原料订购表单
4.1.4生产规划模块
在生产规划菜单下产品数据计算、原料订购计算2个菜单项。
产品销售计算如图4.4
图4.4产品销售计算
原料订购计算如图4.5
图4.5原料订购计算
4.1.5统计报表模块
统计报表菜单下有产品生产统计报表、产品销售统计报表和原料订购统计报表。
产品生产统计报表如图4.6
图4.6产品生产统计报表
4.1.6系统维护模块
系统维护菜单下含有用户信息和权限设置2个菜单项。
权限管理表单如图4.7
图4.7权限管理表单
4.1.7数据备份
数据备份:
此菜单可进行数据备份
数据恢复:
此菜单可从已备份的文件中恢复数据
4.1.8系统帮助模块
此帮助菜单设有关于和退出系统2个菜单项
4.2设计系统数据库
产品管理模块中数据表有产品信息表,用于保存产品信息,包括产品编号、产品名称、产品价格等。
除此之外,为了能模拟公司的产品销售盈利情况,还需产品销售情况表和产品生产情况表。
设计系统数据库如图4.8
图4.8设计系统数据库
4.3设计产品管理模块
本模块描述产品管理模块的数据表设计
4.3.1产品信息输入表单
此表单只是输入信息,因此实现代码很简单,只需对输入的信息进行保存即可。
产品信息输入表单如图4.9
图4.9产品信息输入表单
4.3.2产品信息修改表单
命名为frmpedit的产品信息修改表单,该表单用于修改已经输入的产品信息。
产品信息修改表单的用户界面如图4.10
图4.10产品信息修改表单
4.3.3产品信息删除表单
该表单用于删除已经输入的产品信息。
产品信息删除表单如图4.11
图4.11产品信息删除表单
4.3.4产品信息查询表单
命名为frmpquery的产品信息查询表单用于查询已经输入的产品信息。
产品信息查询表单的用户界面如图4.12
图4.12信息查询表单的用户界面
4.3.5产品生产表单
此表单用于输入产品生产数据。
产品生产表单的设计界面如图4.13
图4.13产品生产表单的设计界面
4.3.6产品销售单
产品销售表单用于输入产品销售数据。
产品销售表单的设计界面如图4.14
图4.14产品销售表单的设计界面
4.4设计原料管理模块
本设计模块描述关于原料管理模块的数据表设计,含有原料资料表、原料订购表、原料消耗表。
4.4.1原料信息输入表单
该表单用于输入原料的信息并保存输入。
原料信息输入表单的用户界面如图4.15
图4.15原料信息输入表单的设计界面
4.4.2原料信息修改表单
原料信息修改表单用于修改并保存已输入的原料信息。
原料信息修改表单的用户界面如图4.16
图4.16原料信息修改表单的用户界面
4.4.3原料信息删除表单
此表单用于删除已经输入的原料信息。
原料信息删除表单的用户界面如图4.17
图4.17原料信息删除表单的用户界面
4.4.4原料信息查询表单
此表单用于查询已经输入的原料信息。
原料信息查询表单的用户界面如图4.18
图4.18原料信息查询表单的用户界面
4.4.5原料订购表单
命名为frmmorderde的原料订购表单用于输入原料的订购数量。
原料订购表单的用户界面如图4.19
图4.19原料订购表单的用户界面
4.5设计生产模块
4.5.1产品数据模拟表单
此表单用于模拟公司产品销售盈利情况,界面如图4.20
图4.20产品数据模拟表单的设计界面
4.5.2原料数据模拟表单
在ASSETS项目中新建命名为frmmsimu(原料数据模拟表单),该表单用于预测下月原料的订购情况。
原料数据模拟表单如图4.21
图4.21原料数据模拟表单
原料数据模拟表单关键属性如下表4-1
表4-1原料数据模拟表单的关键属性
对象
属性
值
frmmsimu
Autocenter
.T.
borderstyle
2
maxbutton
.F.
minbutton
.F.
cmdok
default
.T.
输入原料编号后,单击“开始计算”后,程序将统计出公司上个月该原料的总消耗量,然后计算出上月原料的总订购量,最后预测出下个月的订购量。
“开始计算“按钮的CLICK事件代码如下:
m.no=ALLTRIM(THISFORM.txtno.VALUE)&&得到需要模拟计算的原料编号
IFEMPTY(m.no)
MESSAGEBOX('对不起,输入的原料编号不能为空,请重新输入。
',16,'错误')
THISFORM.txtno.SETFOCUS
RETURN
ENDIF
SELEtblmconsume
LOCATEFORno==m.no
IFNOTFOUND()
MESSAGEBOX('对不起,您输入的原料编号有误,请重新输入。
',16,'错误')
THISFORM.txtno.VALUE=''
THISFORM.txtno.SETFOCUS
RETURN
ENDIF
m.month=MONTH(DATE())-1&&计算出上个月,如果是一月需要变换为上年的十二月
IFm.month>0
m.year=YEAR(DATE())
ELSE
m.year=YEAR(DATE())-1
m.month=12
ENDIF
LOCATEFORMONTH(date)=m.monthandYEAR(date)=m.year
IFNOTFOUND()&&检测是否有该编号原料的消耗数据
MESSAGEBOX('对不起,数据库中没有找到所需要的数据。
'+CHR(13)+'数据可能已经被破坏,或者尚未更新。
'+CHR(13)+'建议您联系您的系统维护员进行数据维护。
',16,'错误')
THISFORM.RELEASE
RETURN
ENDIF
*********使用SUM统计函数***************
SELECTSUM(amount)FROMtblmconsumeWHEREno==m.noANDMONTH(date)=m.monthANDYEAR(date)=m.yearINTOARRAYmconsume
SELECTSUM(amount)FROMtblmorderWHEREno==m.noANDMONTH(date)=m.monthANDYEAR(date)=m.yearINTOARRAYmorder
THISFORM.lblconsume.CAPTION=STR(mconsume
(1))
THISFORM.lblorderall.CAPTION=STR(morder
(1))
THISFORM.lblorder.CAPTION=STR(IIF(mconsume
(1)>morder
(1),mconsume
(1),2*mconsume
(1)-morder
(1)))
4.6设计统计报表模块
本表单用于设置打印产品生产的统计报表。
产品生产报表打印报表的设计界面如图4.22
图4.22产品生产报表打印报表的设计界面
代码中涉及额的报表ROUT用报表生成器生成,设计界面如图4.23
图4.23产品生产报表的设计界面
4.7设计系统维护模块
本模块功能主要有:
显示登录的用户信息,并提供更改密码和更改登录的功能。
4.7.1登录用户信息表单
本表单用于显示登录用户的信息,同时提供更改密码和更改登录功能。
登录用户信息表单设计界面如图4.24
图4.24登录用户信息表单设计界面
4.7.2更改密码表单
本表单用于更改当前登录用户的登录密码,更改密码表单的界面如图4.25
图4.25更改密码表单的界面
4.7.3重新登录表单
命名为frmlogin2(重新登录表单)用于更改当前用户的登录。
表单的设计界面如图4.26
图4.26重新登录表单的设计界面
重新登录表单的关键属性如下表4-2:
表4-2重新登录表单的关键属性
对象
属性
值
Frmlogin2
Autocenter
.T.
borderstyle
2
maxbutton
.F.
minbutton
.F.
windowtype
2
txtpwd
passwordchar
*
cmdok
default
.T.
更改用户登录时,不仅需更改用户信息表核实登录的用户名和相应的密码,还需重新给出登录的用户权限。
根据权限设置方式,可以进行“确定”按钮CLICK事件的代码编码,该代码为:
SETPROCTOmd5
m.uid=ALLTRIM(THISFORM.txtuid.VALUE)
m.pwd=TRIM(THISFORM.txtpwd.VALUE)
******对输入的密码进行加密********
m.pwd=md5(m.pwd)
SETPROCTO
SELEtbluser
LOCATEFORallt(uid)==m.uid&&查找符合该用户名的用户,注意需要精确比较
IFFOUND()
IFm.pwd=pwd
m.dom=dom
******将权限数组的值清零******
g_dom=0
******进行二进制的转换********
i=19
DOWHILEm.dom>0
IFm.dom>=2
Y=m.dom%2
ELSE
Y=m.dom
ENDIF
g_dom(i)=Y
m.dom=(m.dom-Y)/2
i=i-1
ENDDO
******更改全局变量中存放的登录用户名和登录时间****
g_uid=m.uid
g_time=TTOC(DATETIME())
ELSE
MESSAGEBOX('您的用户名或密码不正确,请确认您的输入aa。
',16,'错误')
ENDIF
ELSE
MESSAGEBOX('您的用户名或密码不正确,请确认您的输入bb。
',16,'错误')
ENDIF
THISFORM.RELEASE
4.7.4用户权限设置表单
此表单用于设置所有用户的使用权限,表单的设计界面如图4.27
图4.27用户权限设置表单的设计界面
4.7.5新增用户表单
命名为frmappend(新增用户表单)用于增加新的用户并设置其密码,其设置界面如图4.28
图4.28新增用户表单的设计界面
新增加的用户计入到用户信息是需要确认用户,以检查用户信息表中没有该用户,而后方可加入。
另外,添加成功后,需要更新用户权限设置变淡的用户列表。
“确定”按钮的CLICK代码如下:
m.uid=ALLTRIM(THISFORM.txtuid.VALUE)
IFEMPTY(m.uid)
MESSAGEBOX('用户名不能为空!
',16,'错误')
THISFORM.txtuid.SETFOCUS
RETURN
ENDIF
SELEtbluser
******查找是否有与新增用户同名的用户*********
LOCATEFORuid==m.uid
IFFOUND()
MESSAGEBOX('用户名为'+m.uid+'的用户已经存在!
',16,'错误')
ELSE
*****将新增用户的密码加密后保存*****
SETPROCTOmd5
m.pwd=TRIM(THISFORM.txtpwd.VALUE)
m.pwd=md5(m.pwd)
INSERTINTOtbluserVALUES(m.uid,m.pwd,0)
SETPROCTO
*****在用户权限设置表单中显示新增加的用户名*****
frmset.lstuid.ADDITEM(m.uid)
ENDIF
THISFORM.RELEASE
由此可得出用户新增用户表单的表单设计
4.8设计数据备份模块
系统时不时因为各种原因而崩溃,为保证数据的安全,必要时需将数据进行备份。
从而,数据备份模块应运而生。
数据备份模块不仅可以备份数据,更能够从备份数据中恢复数据。
本系统,将把所需数据存储于应用程序所在目录的DATA子目录下,出于方便考虑,亦可直接使用VFP的文件拷贝函数,而不另外使用导出、导入函数。
用户从而可以进一步增强数据备份模块功能,如数据备份时检测备份目录的容量大小、数据恢复时确认所需的备份数据文件等。
4.9设计系统帮助模块
本系统可以显示程序的版本信息及制作者等的信息。
退出系统功能也于此模块。
新建一表单命名为frmabout(“关于”表单)。
Frmabout的表单设计界面如图4.28
图4.28“关于”表单的设计界面
Frmabout的关键属性如下表4-3:
表4-3“关于”表单的关键属性
对象
属性
值
frmabout
Autocenter
.T.
borderstyle
2
maxbutton
.F.
minbutton
.F.
windowtype
2
cmdok
default
.T.
cancel
.T.
“确定”按钮click事件代码如下:
thisform.release
4.10构建应用程序框架
Ø构建应用程序是应考虑如下步骤:
Ø设置应用程序起始点
Ø初始化环境
Ø显示初始的用户界面
Ø控制事件循环
Ø退出应用程序时,恢复原始环境
5调试分析
生产管理系统集信息的显示、输入、修改、删除查询等各种处理为一体,从而信息的维护、信息查询的便捷非常必要,在输入信息时,如果有信息的输入、查询不正确时,需要重新刷新登录。
在使用过过程中,如果系统崩溃,可使用系统备份模块,其亦可将数据从备份中恢复过来。
6用户使用说明
生产管理系统的功能是完成公司的产品、原料的基本信息的管理,并能够输入产品生产、销售和原料消耗、订购的数据,然后对产品销售、原料订购进行统计,并进行一定的预测,其主要具有产品管理、原料管理、生产规划、统计报表、系统维护、数据备份和系统帮助的功能。
7测试结果
此管理系统的自动化令数据的管理、保存变得简单,用户可方便浏览信息,并对信息进行修改,用该系统可以减轻公司在人力、物力、财力上的浪费,真正实现企业生产管理的规范化、自动化。
8总结
通过对企业生产管理系统的一系列设计,明白在设计一个系统前,需对其进行一系列的分析,分析市场需求,分析设计该系统的目的;在设计数据库应用程序之前,我们需要对程序的系统结构有一个准确的把握,从而在进行设计生产管理系统时,目标才会明确;在设计一个系统时还必须根据其实际应用来设计一系列分支模块,进行一定的预测,从而使用户真正的便捷,真正方便用户的使用;在设计程序时,还必须想到一些意外情况的发生,从而可以还要对数据进行备份,而且,我们是对企业的生产管理进行信息的设计安排,还必须考虑到保密性,因而还需进行一系列用户登录信息的查询、用户权限的设置。
所以在设计一个系统程序时,需全面考虑各方面,使VFP程序设计真正方便大家。
自己在这一系列的的程序设计中,更加了解了VFP作为开发工具来开发一个实际的应用系统,也因此增强了自己在VFP程序设计上的知识,同时通过设计企业生产管理系统,了解了企业的运行,为以后自己的工作提供了一些了解,并通过此次实习增强了自我的计算机实际操作能力,也增加了自己对计算机的兴趣。
同时通过这一周的课程设计课的自我学习,我认识到实践是检验真理的唯一标准。
只有在这样的实际实践中才能真正的吸收我们所学的知识,尤其是对于计算机这门课程,理论知识只是基础,动手做才是目的。
所以我们在未来的学习过程中也一定会更加努力地加强理论与实践的学习,真正做到学有所用。
9致谢
感谢重庆科技学院,重庆科技学院法政与经贸学院,重庆科技学院电气与信息工程学院提供的莫大帮助,感谢指导老师对我们的细心指导。
并且通过本次程序的设计,本次团队的共同合作,感谢同学们之间的莫大帮助。
感谢老师对我们的指导。
10参考文献
[1]刘卫国.VisualFoxPro课程设计教程(第二版).北京.北京邮电大学出版社,2005.09.34-36;
[2]陈洛资.数据库系统及应用基础[M].北京:
北京交通大学出版社,2003.08.55-56;
[3]黎明.计算机应用基础[M].成都:
电子科技大学出版社,2004.03.45-47
[4]崔巍.数据库系统及应用(第二版).北京:
高等教育出版社,2003.05.35-36
11附录
11.1设计主程序
*******main.prg********
*******进行程序初始化
SETTALKOFF
SETDELEON
SETSAFEOFF
_SCREEN.CAPTION="生产管理系统1.0版"&&显示程序标题
_SCREEN.WINDOWSTATE=2&&启动时窗口最大化
oldpath=SYS(5)+SYS(2003)&&获取当前默认路径
newpath=SYS(16)&&获取程序全路径名
newpath=getpath(newpath)&&得到程序所在的路径
SETDEFAULTTO(newpath)&&设置新的默认路径
OPENDATAdata\dbassets
SELE0
USEdata\tblpinfo
SELE0
USEdata\tbluser
SELE0
USEdata\tblminfo
SELE0
USEdata\tblmconsume
SEL