加油站管理系统说课讲解.doc

上传人:1595****071 文档编号:52317263 上传时间:2022-10-22 格式:DOC 页数:42 大小:377.50KB
返回 下载 相关 举报
加油站管理系统说课讲解.doc_第1页
第1页 / 共42页
加油站管理系统说课讲解.doc_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《加油站管理系统说课讲解.doc》由会员分享,可在线阅读,更多相关《加油站管理系统说课讲解.doc(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。加油站管理系统-目录目录II一课程设计简介11.1课程设计的目的11.2课程设计的内容12系统分析32.1用户工作流程32.2用户业务需求33系统设计43.1设计思想43.2系统功能结构图43.3模块功能设计54系统数据库设计64.1系统数据库的建立64.2系统E-R图64.3存储过程设计84.4触发器的设计94.5数据库的连接105系统实现115.1系统实现工具与支持平台115.2系统主要的功能界面与实现代码115.3系统主要功能实现216总结与展望226.1收获与体会226.2未来的展望227源代码

2、附录237.1系统与数据库交互代码23参考文献34致谢35课程设计检查表36-一课程设计简介1.1课程设计的目的随着人类社会的进步和科学技术的发展,人们生活水平也在不断的提高,拥有车的人越来越多,这又影响着油的耗量急剧增大,加油站也也来越多。现在人们进行信息交流的深度与广度不断增加,信息量急剧增长,传统的信息处理与决策的手段已不能适应社会的需要,信息的重要性和信息处理问题的紧迫性空前提高了,面对着日益复杂和不断发展,变化的社会环境,人们已经习惯快速的获得信息以及完成各种事情,加油站的反战中当然也要考虑这些因素。本次设计的加油站管理系统就是为满足人们的需求而设计的,此加油占管理系统是为了解决人们

3、生活中加油的快捷、方便以及减轻加油站管理人员和其他工作人员工作的负担,帮助他们很好的管理和工作的顺利进行。1.2课程设计的内容本系统采用的是微软公司的MicrosoftVisualC+6.0开发工具做为开发系统程序。在连接数据库上,利用ADO对象模型,创建几个简单的对象和数据来源进行连接,然后从中取得所需要的数据,进行数据访问操作后保存。在连接数据库上,以往在数据访问应用程序开发中,不管是使用DAO或RDO对象来访问数据来源,都会对这些对象模型众多而且复杂的组成结构印象深刻。但利用ADO对象模型,就可以只创建几个简单的对象和数据来源进行连接,然后从中取得所需要的数据,进行数据访问操作后保存。A

4、DO(ActiveXDataObjects)对象模型主要由三个对象成员:Connection、Command与Recordset对象;以及三个集合对象:Errors、Parameters与Fields对象所组成。ADO对象模型与DAO、RDO另一个较大的差异,在于某些ADO对象可以直接创建而不需依据上下层按顺序产生,比如我们可以直接创建一个Command对象而不需要先行创建该对象的上层Connection对象,ADO会在该Command对象产生时自动创建上层Connection对象。此加油站要完成以下任务:l 实现用户的登陆,以很好管理工作人员的分工。l 实现系统的管理,包括管理工作人员信息,

5、油库信息,会员信息,会员等级信息等。l 能够记录油品购进和销售情况,剩余量等信息。l 工作人员能够直接查询库存情况,会计人员能够对账目进行管理。l 此系统还要能够实现数据库对个功能模块的访问。其实现的具体任务还包括:在连接数据库后先要有登陆界面,在确认用用户身份后,符合身份的工作人员便可登陆,进入系统主界面,可以在主界面上访问个功能模块。各功能键包括:工作人员管理、油品信息管理、油品类型信息管理、会员信息管理、添加进货记录、添加销售记录、库存查询、账目管理;通过工作人员信息管理模块查询各工作人员信息;通过对油品的管理模块查询油品的单价,销售储量,存储地等,通过对会员的管理模块能查询顾客等级、花

6、费等。2系统分析2.1用户工作流程下面是对本企业的业务流程的描述:图2.1系统业务流程图2.2用户业务需求此系统要满足用户的如下需求:(1)对不同工作类型的员工要能辨别其身份,根据身份限制其权限,设置完成其工作任务。(2)当购进油时要记录油的相关信息,对不同的油放入相应的油库,同时记录其价格,储量等。(3)要记录销售信息,同时根据销售情况对油库灯做相应的修改(4)对不同的顾客根据其购买油量,消费金额等给其设置相应的会员等级,根据等级的不同给予不同的优惠政策(5)对油库进行编号,不同的油库存放不同的油,可根据用户需要快速在相应油库找到所需的油。3系统设计3.1设计思想(1)系统分成前台和后台几个

7、相对进程,这些进程都进行集中式管理。(2)整个系统采用模块化结构设计,并且有较强的可操作性和扩展性。(3)采用合理的数据流设计思想,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。3.2系统功能结构图根据对管理系统进行可行性分析和结构化程序设计的要求,可得到系统的总体结构如图3-1所示:图3.1加油站总功能模块图加油站管理系统的分功能模块如图3.2所示:图3.2加油站分功能模块图3.3模块功能设计系统功能设计是设计一个加油站管理系统,要求满足油品管理的基本要求、油品销售管理的基本要求、工作人员管理的基本要求、油库管理的基本要求、销售管理

8、的基本要求以及系统管理的基本要求。并且能够实现方便的扩张,满足加油站发展的需求,能够保障加油站管理数据的安全,准确对于工作人员有不同的职位,不同职位人员所拥有的工作权限也不一样,对于油有购油信息、出售情况、有的类别以及油量的多少等情况,能设置一些优惠政策,比如会员可以优惠。本系统共包括五大模块,分别是用户登录模块、系统管理模块、经销操作模块、查询操作模块、数据库防护问模块。每个模块的功能如下:(1)用户登陆,根据不同用户身份启用不同的职务(2)系统管理,包括工作人员信息管理、油库信息管理、油品信息管理、会员信息、会员等级信息管理。(3)进销操作,包括进货信息和销售信息。(4)查询操作,包括库存

9、查询和账目管理。(5)数据库访问模块,提供各模块数据库操作接口。4系统数据库设计4.1系统数据库的建立数据库的设计尽量的实现与应用程序做到最低等级的耦合,按照三层模式两级联系的方式设计数据库,把数据库设计成层次清晰的,高效的实用数据库。在该系统的数据库设计方面,把数据库的设计分为四层:基本表、存储过程、触发器。其中触发器的作用是这个表修改后,自动触发到另外一个表,这样可以减少代码的编写。因为该系统是采用三层架构设计的,可通过应用服务器的扩展来实现新功能的添加。而在该课程设计的内容定义方面,保证了数据的独立性,该系统对数据记录的操作也因为其课程设计中定义的数据操作方式和操作内容而注定不会产生脏数

10、据及数据读写的不一致性,故在数据库设计方面采用触发器。4.2系统E-R图1.数据流图根据系统的功能,得到该系统的数据流图,其中第一层数据流图如图4-1所示:图4.1加油站管理系统一层数据流图第二层数据流图如图4.24.4所示:图4.2送进购买情况图4.3处理顾客购油图4.4处理账款2.E-R模型根据数据流图设计E-R模型,如图4.5所示:图4.5加油站管理系统的总E-R图3、将产生的E-R模型转化为关系模型如下:工作人员(工作号,姓名,身份证号,员工类型,密码)油库管理(油库编号,工作号)油库(油库编号,名称,地点,容量)油品(油品编号,名称,价格,储量,油库编号)会员(会员编号,姓名,身份证

11、号,等级名称,车牌号,总消费额)会员等级(等级名称,折扣,最低消费额)进货油品(油品编号,工作号,进货时间,油库编号,进货量,单价)销售油品(油品编号,工作号,销售时间,油库编号,单价,客户,折扣,销售量)4.3存储过程设计1、创建用于油品入库的存储过程:CREATORREPLACEROCEDUREGAS_InfoAdd(pgas_typeINnumber(8),pdepotINvarchar(50),pamountINvarchar(30),ppriceINfloat,pget_dateINdate,pworkerINvarchar(30)ASBEGINInsertintoGas_Infov

12、alues(pgas_type,pdepot,pamount,pprice,pprice,pget_date,pworker);ENDGAS_InfoAdd;2、创建添加工作人员的存储过程:CREATEORREPLACEPROCEDUREworker_InfoAdd(pnumberINnumber(8),pnameINvarchar(25),pidINnumberr(18),ptypeINvarchar(20),ppasswordINvarchar(12)ASBEGINInsertintoworker_Infovalues(pnumber,pname,pid,ptype,ppassword)E

13、NDworker_InfoAdd;4.4触发器的设计1、创建一个触发器,实现当一个油库撤销时,修改相应的油品信息的触发器:CREATEORREPLACETRRIGERUP_GAS(BEFOREDELETEONDEPOTFOREACHROWBEGINUpdateGastypewheredepot.number=Gastype.numberAndnumber=:oldnumber;EndUP_GAS;4.5数据库的连接应用程序与Oracle10g数据库的连接是通过创建ADO数据源,然后在程序中利用代码与数据库建立连接来实现的。具体实现方法是:在模块中声明调用ADO连接控件,这样便能在任何时间连接数

14、据库了。使用ADOConnection对象连接到Oracle10g。在查询等按钮的单击事件中访问数据库。可以使用应用程序配置文件建立一条到数据库服务器的连接,返回一个关键字ConnectionString,在实体数据链路层定义一个用于存储过程的一个基类DBdata.cs在这个基类中接受该关键字ConnectionString,使用SqlConnection连接数据库。配置文件连接数据库的代码:。存储过程基类接受该关键字的代码:System.Configuration.ConfigurationSettings.AppSettingsConnectionString.ToString();5系统

15、实现5.1系统实现工具与支持平台(1)用户界面:本系统采用MicrosoftVisualC+6.0设计,用户交互界面采用的是基于Windows的窗口界面。(2)硬件要求:运行本系统的硬件基本要求如下:CPU:IntelP4及以上;内存:1024MB及以上;硬盘:40GB及以上。(3)软件要求:数据库服务器:Oracle10g。5.2系统主要的功能界面与实现代码下面为运行后的界面图:1、系统的登录界面与代码:图5.1系统登录界面实现代码如下:voidCgasStationDlg:OnLogin()CstringstrBtnText;m_btnLogin.GetWindowText(strBtnT

16、ext);if(strBtnText=“登陆”)CloginDlgloginDlg;if(loginDlg.DoModal()!=IDOK)return;if(!ADOSQLServer.IsValidWorkerPassword(loginDlg.m_nNumber,loginDlg.m_strPassword)MB_ERROR(“密码错误,登陆失败!”);return;。elseif(MB_QUERY(“确定要注销当前用户么?”)=IDNO)return;m_btnLogin.SetWindowText(“登陆”);m_btnWorkerMgr.EnableWindow(FALSE);。m

17、_btnLogin.EnableWindow(FALSE);2、加油站管理系统主窗口界面如下:图5.2加油站管理系统主窗口3、工作人员信息管理模块的界面与代码:图5.3工作人员信息管理界面实现代码如下:BOOLCWorkerMgrDlg:OnInitDialog()CDialog:OnInitDialog();constchar*list_column=编号,姓名,身份证号,类型,;inti=0;while(*list_columni!=0x00)m_listWorker.InsertColumn(i,list_columni+,LVCFMT_LEFT,100);m_listWorker.Se

18、tExtendedStyle(LVS_EX_FULLROWSELECT);returnTRUE;voidCWorkerMgrDlg:OnAdd()intnNumber=-1;if(!ADOSQLServer.AutoAssignNumber(Worker,nNumber)MB_ERROR(无法添加工作人员信息,可能是数据库已满!);return;CWorkerInfoDlgworkerInfoDlg;workerInfoDlg.m_nNumber=nNumber;if(workerInfoDlg.DoModal()=IDOK)if(!ADOSQLServer.AddNewWorker(work

19、erInfoDlg.m_nNumber,workerInfoDlg.m_strName,workerInfoDlg.m_strID,workerInfoDlg.m_nWorkerType,workerInfoDlg.m_strPassword)MB_ERROR(添加工作人员信息失败!);RefreshList();voidCWorkerMgrDlg:OnModify()intnItem=m_listWorker.GetSelectionMark();if(nItem=-1)return;CWorkerInfoDlgworkerInfoDlg;CStringstrNumber=m_listWor

20、ker.GetItemText(nItem,0);GET_INT(workerInfoDlg.m_nNumber,strNumber);ADOSQLServer.GetWorker(workerInfoDlg.m_nNumber,workerInfoDlg.m_strName,workerInfoDlg.m_strID,workerInfoDlg.m_nWorkerType,workerInfoDlg.m_strPassword);if(workerInfoDlg.DoModal()=IDOK)if(!ADOSQLServer.ModifyWorker(workerInfoDlg.m_nNum

21、ber,workerInfoDlg.m_strName,workerInfoDlg.m_strID,workerInfoDlg.m_nWorkerType,workerInfoDlg.m_strPassword)MB_ERROR(修改工作人员信息失败!);RefreshList();voidCWorkerMgrDlg:OnRemove()intnItem=m_listWorker.GetSelectionMark();if(nItem=-1)return;intnNumber;CStringstrNumber=m_listWorker.GetItemText(nItem,0);GET_INT(

22、nNumber,strNumber);if(MB_QUERY(确定要删除此项么?)=IDYES)if(!ADOSQLServer.RemoveWorker(nNumber)MB_ERROR(删除工作人员信息失败!);RefreshList();voidCWorkerMgrDlg:RefreshList()m_listWorker.DeleteAllItems();CStringArraystrNumber,strName,strID,strType,strPassword;ADOSQLServer.GetWorkers(strNumber,strName,strID,strType,strPa

23、ssword);for(inti=0;istrNumber.GetSize();i+)m_listWorker.InsertItem(i,strNumber.GetAt(i);m_listWorker.SetItemText(i,1,strName.GetAt(i);m_listWorker.SetItemText(i,2,strID.GetAt(i);intnType;GET_INT(nType,strType.GetAt(i);switch(nType)case0:m_listWorker.SetItemText(i,3,销售员);break;case1:m_listWorker.SetI

24、temText(i,3,进货员);break;case2:m_listWorker.SetItemText(i,3,会计);break;case3:m_listWorker.SetItemText(i,3,经理);break;default:m_listWorker.SetItemText(i,3,未知类型);break;voidCWorkerMgrDlg:OnShowWindow(BOOLbShow,UINTnStatus)CDialog:OnShowWindow(bShow,nStatus);/TODO:AddyourmessagehandlercodehereRefreshList();

25、voidCWorkerMgrDlg:OnDblclkListWorker(NMHDR*pNMHDR,LRESULT*pResult)OnModify();*pResult=0;voidCWorkerMgrDlg:OnSearch()m_listWorker.DeleteAllItems();UpdateData();intnType;CStringstrNumber,strName,strID,strPassword;if(!ADOSQLServer.GetWorker(m_nNumber,strName,strID,nType,strPassword)MB_INFO(没有找到此编号的工作人员

26、!);RefreshList();return;strNumber.Format(%d,m_nNumber);m_listWorker.InsertItem(0,strNumber);m_listWorker.SetItemText(0,1,strName);m_listWorker.SetItemText(0,2,strID);switch(nType)case0:m_listWorker.SetItemText(0,3,销售员);break;case1:m_listWorker.SetItemText(0,3,进货员);break;case2:m_listWorker.SetItemTex

27、t(0,3,会计);break;case3:m_listWorker.SetItemText(0,3,经理);break;default:m_listWorker.SetItemText(0,3,未知类型);break;voidCWorkerMgrDlg:OnSearchAll()RefreshList();4、油库信息管理界面与实现代码:图5.4油库信息管理界面实现代码如下:BOOLCDepotMgrDlg:OnInitDialog()CDialog:OnInitDialog();constchar*list_column=编号,名称,位置,容量,;inti=0;while(*list_co

28、lumni!=0x00)m_listDepot.InsertColumn(i,list_columni+,LVCFMT_LEFT,100);m_listDepot.SetExtendedStyle(LVS_EX_FULLROWSELECT);returnTRUE;/returnTRUEunlessyousetthefocustoacontrol/EXCEPTION:OCXPropertyPagesshouldreturnFALSEvoidCDepotMgrDlg:OnAdd()intnNumber=-1;if(!ADOSQLServer.AutoAssignNumber(Depot,nNumb

29、er)MB_ERROR(无法添加油库信息,可能是数据库已满!);return;CDepotInfoDlgdepotInfoDlg;depotInfoDlg.m_nNumber=nNumber;if(depotInfoDlg.DoModal()=IDOK)if(!ADOSQLServer.AddNewDepot(depotInfoDlg.m_nNumber,depotInfoDlg.m_strName,depotInfoDlg.m_strLocation,depotInfoDlg.m_fCapacity)MB_ERROR(添加油库信息失败!);RefreshList();voidCDepotMg

30、rDlg:OnModify()intnItem=m_listDepot.GetSelectionMark();if(nItem=-1)return;CDepotInfoDlgdepotInfoDlg;CStringstrNumber=m_listDepot.GetItemText(nItem,0);GET_INT(depotInfoDlg.m_nNumber,strNumber);ADOSQLServer.GetDepot(depotInfoDlg.m_nNumber,depotInfoDlg.m_strName,depotInfoDlg.m_strLocation,depotInfoDlg.

31、m_fCapacity);if(depotInfoDlg.DoModal()=IDOK)if(!ADOSQLServer.ModifyDepot(depotInfoDlg.m_nNumber,depotInfoDlg.m_strName,depotInfoDlg.m_strLocation,depotInfoDlg.m_fCapacity)MB_ERROR(修改油库信息失败!);RefreshList();voidCDepotMgrDlg:OnRemove()intnItem=m_listDepot.GetSelectionMark();if(nItem=-1)return;intnNumbe

32、r;CStringstrNumber=m_listDepot.GetItemText(nItem,0);GET_INT(nNumber,strNumber);if(MB_QUERY(确定要删除此项么?)=IDYES)if(!ADOSQLServer.RemoveDepot(nNumber)MB_ERROR(删除油库信息失败!);RefreshList();voidCDepotMgrDlg:RefreshList()m_listDepot.DeleteAllItems();CStringArraystrNumber,strName,strLocation,strCapacity;ADOSQLSe

33、rver.GetDepots(strNumber,strName,strLocation,strCapacity);for(inti=0;iMoveNext();nCount+;returnnCount;BOOLCADODataBase_SQLServer:AddNewDepot(intnNumber,CStringstrName,CStringstrLocation,float&fCapacity)CStringstrQuery;strQuery.Format(insertintoDepotvalues(%d,%s,%s,%.2f),nNumber,strName,strLocation,f

34、Capacity);tryQuery(strQuery);catch(.)returnFALSE;returnTRUE;BOOLCADODataBase_SQLServer:ModifyDepot(intnNumber,CStringstrName,CStringstrLocation,float&fCapacity)CStringstrQuery;strQuery.Format(updateDepotsetname=%s,location=%s,capacity=%.2fwherenumber=%d,strName,strLocation,fCapacity,nNumber);tryQuery(strQuery);catch(.)returnFALSE;returnTRUE;BOOLCADODataBase_SQLServer:GetCurrentContent(intnDepotNumber,intnGasTypeNumber,float&fCurContent)CStringstrQuery;if(nGasTypeNumber=0)str

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁