收藏 分销(赏)

改叶伦灼软件工程课程设计报告完成样本.doc

上传人:二*** 文档编号:4477564 上传时间:2024-09-24 格式:DOC 页数:39 大小:156.54KB
下载 相关 举报
改叶伦灼软件工程课程设计报告完成样本.doc_第1页
第1页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、沈阳航空航天大学课 程 设 计 报 告课程设计名称:软件综合课程设计课程设计题目:车辆调度管理软件设计院(系):计算机学院专 业:计算机科学与技术班 级:84010101学 号:姓 名:叶伦灼指引教师:丛丽晖完毕日期:9月9日目 录第1章 需求分析11.1 问题内容与规定11.2 问题分析与假设1第2章 概要设计22.1 数据库逻辑模型设计22.1.1 数据库ER图22.1.2 数据库表格设计32.2 系统功能模块4第3章 详细设计53.1 客户功能模块53.2 管理人员功能模块63.2.1车辆信息更新63.2.2车辆信息添加与删除73.2.3司机信息添加与删除8第4章 调试使用104.1 客

2、户功能104.2 管理员功能114.2.1 车辆及司机信息增删114.2.2 车辆信息修改12参照文献14附 录(程序清单)15第1章 需求分析1.1 问题内容与规定设计一种简朴车辆调度管理程序,可实现对不同车辆、不同规定、不同步间调度算法。1) 建立车辆信息表;2) 实现对车辆信息插入、修改、查询、删除功能;3) 界面要优化,直观、大方、美观;4) 实现针对不同任务、不同步间调度分派算法;5) 独立完毕系统设计、编码和调试;6) 按照课程设计规范书写课程设计报告。1.2 问题分析与假设车辆调度就是依照客户需求,合理地派遣出相应车辆。假设每派遣出一辆车,需要记录下该车特有信息以及使用该车客户信

3、息。一辆车在被使用后,不能在重叠时间段被其她客户使用。而客户在选取车辆时,除了可以理解车辆自身属性外,也有权理解驾驶该车辆驾驶员信息,例如驾驶员性别、驾龄、年龄。而作为车辆调度员,应当做到对车辆信息查看、增删、及时更新等操作。由于每一辆车均有一种专属司机,因此每新增一辆,都必要提供一种已存在司机信息,如果添加了一种错误司机,系统应当可以提供提示现提供一种对的司机信息。同理,如果想要注销掉某个司机信息,一方面要取消掉她与配对车辆关系,然后才干进行注销。分析了客户与车辆、司机与车辆关系,有助于咱们建立合理表格,并且在设计程序时考虑到更多切合实际应用。本次课设所需要表格将在SQL 中建立。使用Mic

4、rosoft Visual C+编写代码、进行对数据库读写等操作。ODBC将作为搭载数据库与VC+平台。第2章 概要设计2.1 数据库逻辑模型设计2.1.1 数据库ER图汽车调度管理系统ER图如图2.1所示。 车辆车牌号 车型 豪华限度 车辆载重 状态最早可用时间 驾驶 司机司机编号司机姓名性别 驾龄年龄 租用 客户客户电话客户姓名需求车型需求限度需求载重租用车辆租用时间归还时间m1n1 图2.1 车辆调度管理数据库ER图车辆实体与司机、客户这两个实体之间,分别通过驾驶关系和租用关系联系在一起。为便于管理,一辆汽车只配备一名司机,一名司机也只能驾驶一辆汽车。因此这两个实体之间是1:n关系。而一

5、辆汽车可以出租给不同客户,而一种顾客又可以租用多辆汽车,因此两个实体之间关系是m:n关系。E-R图表达关系模式为:车辆(车牌号,车型,司机编号,载重,豪华限度,状态,最早可用时间);司机(司机编号,司机姓名,性别,驾龄,年龄);客户(客户电话,客户姓名,需求车型,需求限度,需求载重,租用时间,归还时间,租用车辆)。“车辆”实体主码是“车牌号”。属性“司机编号”是来自于实体“司机”,外码,参照其属性“司机编号”。“司机”实体主码是“司机编号”。“客户”实体主码是“客户电话”。属性“租用车辆”是来自于实体“车辆”外码,参照其属性“车牌号”。2.1.2 数据库表格设计1 车辆(Vehicles) 表

6、2.1 车辆信息表列名数据类型长度与否可觉得空阐明Vnochar20否车牌号Vtypechar10是车型Vdnochar20否司机编号Vloadint不定是车辆载重Vgrandchar10是豪华限度Vstatuschar10是状态Vbacktimeint不定是最早可用时间2 司机(Drivers) 表2.2 司机信息表列名数据类型长度与否可觉得空阐明Dnochar20否司机编号Dnamechar10是司机姓名Dsexchar10是性别Ddegreeint不定是驾龄Dageint不定是年龄3 客户(Orders)表2.3 客户信息表列名数据类型长度与否可觉得空阐明Otelchar20否客户电话O

7、namechar10是客户姓名Otypechar10是需求车型Ograndchar10是需求限度Oloadint不定是需求载重Ohiertimeint不定是租用时间Obacktimeint不定是归还时间Ovnochar20否租用车辆2.2 系统功能模块本系统重要功能和层次构造如图2.2所示。本系统有七个重要功能。其中客户使用到功能更有顾客下单、车辆信息查询两个功能,而管理人员使用到功能有车辆信息更改、新增车辆、新增司机、车辆删除、司机删除五个功能。 车辆调度管理系统功能模块 客户下单 车辆信息查询 车辆信息更改 新增车辆 新增司机 删除车辆 删除司机图2.2 系统重要功能和层次构造第3章 详细

8、设计3.1 客户功能模块顾客类模块是为了实现顾客下订单和查询车辆信息需求。客户可以通过它,查看所有车辆或指定车辆信息,或是依照自己需求筛选车辆。并且,客户还可以依照指定车辆车牌号,查看该辆车司机信息。客户在输入了客户电话、姓名、对车辆需求,以及时间等有关信息后,可以先使用查询功能查看满足条件车辆,然后选定某辆车查看其司机信息,所有信息都满意后,再通过了系统对客户租用时间与该车最早可用时间核对,就可如下单,已获得该车使用权。客户功能模块流程图如图3.1所示。 开始 输入客户数据 显示满足客户需求车辆 输入指定车辆车牌 查看司机信息最早可用时间不不大于租用时间 成功下单 结束NY 图3.1 客户功

9、能模块流程图3.2 管理人员功能模块该模块重要实现对车辆与司机信息增删查改。3.2.1车辆信息更新通过该功能,管理人员可以变化指定车辆配备司机,或是将已归还汽车订单取消,使该汽车可以投入下一轮使用。在变化车辆配备司机时,输入车牌号和新司机编号,就可以将指定车辆司机变化。注意,输入新司机编号只能是已存在,并且是没有被配备到其她车辆司机编号,否则系统会提示出错。变化车辆配备司机流程图如图3.2所示。 开始输入需要更改信息该司机编号与否合法Y 更改信息 结束N 图3.2 变化车辆配备司机流程图在取消已归还汽车订单时,输入车票号和归还时间,就可以将相应订单取消,若该车辆已其她没有订单,将车辆状态由“B

10、usy”变为“Free”,表达当前空闲,否则车辆状态保持“Busy”,直至该车辆无任何订单。取消已归还汽车订单流程图如图3.3所示。 开始输入订单信息换车时间不大于该车最早可用时间 取消相应订单 车辆状态不变化 结束 取消相应订单车辆状态变为“Free”NY 图3.3 取消已归还汽车订单流程图3.2.2车辆信息添加与删除该功能显而易见,重要是完毕对车辆新增或删除。输入车牌号、车型、司机编号、车辆载重、豪华限度、初始车辆状态,而初始最早可用时间默以为0。就可以添加一辆新车。需要注意是,输入司机编号只能是已存在,并且是没有被配备到其她车辆司机编号,否则系统会提示出错。若只输入车牌号,则表达需要删除

11、某一种已经存在车辆信息。需要注意是,输入车牌号必要是存在已有车辆车牌号,否则系统提示出错。车辆信息添加与删除功能流程图如图3.4所示。 开始输入车辆信息与否只有车牌号信息司机编号与否合法 初始化最早可用时间 写入新车辆信息 结束车牌号存在 删除车辆信息 输入司机编号YNNNYY 图3.4 车辆信息添加与删除功能流程图3.2.3司机信息添加与删除归还功能与车辆信息添加与删除类似。输入司机编号、司机姓名、性别、驾龄、年龄等信息,就可以添加一名新司机。需要注意是,输入新司机编号不能与已有司机编号重复,否则系统提示出错。 若只输入司机编号,则表白需要删除某一种司机。需要注意是,删除这一种司机不能是配备

12、到车辆上,否则系统提示出错。司机信息添加与删除功能流程图如图3.5所示。NN 开始输入司机信息与否只有司机信号 添加司机信息者 司机已配备 删除司机 禁止删除 结束YY图3.5 司机信息添加与删除功能流程图第4章 调试使用4.1 客户功能客户下单和查询车辆信息界面如图4.1所示。图4.1 客户下单和查询车辆信息界面输入合理信息后,通过鼠标点击按钮,就可以实现不同功能。例如依次输入:“”、“Vanpersy”、“Audi”、“A+”、“3”、“1530”、“2311”后,点击“依照客户需要显示车辆”浮现匹配车辆如图4.2所示。然后选中其中车牌为“A1256”车型,点击“查看司机信息”,浮现“07

13、06”、“Ronaldo”、“male”、“6”、“30”字样。分别代表司机编号、司机姓名、性别、驾龄、年龄。信息如图4.3所示。客户如果满意,点击“下单”即可成功下单。图4.2 匹配客户Vanpersy需求车辆图4.3 车辆A1256司机信息4.2 管理员功能4.2.1 车辆及司机信息增删若需要在车辆信息表Vehicles中加入一辆车型为“Lambor”、车牌号为“A1122”、驾驶司机为“0755”豪华限度为“AA+”、载重为2人新车,需要在车辆信息更新界面输入信息。如图4.4所示。图 4.4 新增车辆信息但是点击添加后,会提示“没有该司机!请先输入司机信息”。因素是编号为0755司机信息

14、还没有存入数据库。解决办法就是在司机信息更新界面输入编号为0755司机有关信息。如图4.5所示。图4.5 新增司机信息点击“添加”。添加了司机信息后,重新在车辆信息更新界面输入司机编号,就可以添加所需要新车辆了。删除车辆信息与司机信息时,只需要输入相应车牌号或是司机编号,点击删除即可。4.2.2 车辆信息修改若有车辆归还,输入归还车辆车牌号,以及该车辆返回时间,就可以取消相应订单。如上面被租用车辆A1256,车辆返回后,在车辆信息更新界面输入信息“A1256”、“2311”,点击“修改”,就完毕了订单取消。如图4.6所示。图4.6 取消车辆A1256订单若是修改车辆配备司机,在司机编号处输入合

15、法司机编号即可。参照文献1 高富平,张楚 . 电子商务法M. 北京:北京大学出版社,2 沈炜,徐慧 . VC+数据库编程技术与实例 M . 北京:人民邮电出版社,3 杨章伟等 . 21天学通Visual C+ M. . 北京:电子工业出版社,4 王珊,萨师煊 . 数据库系统概论M. 北京:高等教诲出版社,5 崔莹,王华军 . VC+数据库编程100例M. 北京:中华人民共和国铁道出版社,附 录(程序清单)#include stdafx.h#include ylz.h#include ylzSet.h#include ylzDoc.h#include ylzView.h#include Driv

16、erset.h#include Ve1set.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifCYlzView:CYlzView():CRecordView(CYlzView:IDD)/AFX_DATA_INIT(CYlzView)m_pSet = NULL;m_tel = _T();m_name = _T();m_type = _T();m_grand = _T();m_load = 0;m_upvno = _T();m_upvdno = _T();m_upvgra

17、nd = _T();m_upvstatus = _T();m_upvtype = _T();m_upvload = 0;m_dno = _T();m_dname = _T();m_dsex = _T();m_ddegree = 0;m_dage = 0;m_vno = _T();m_htime = 0;m_btime = 0;m_upbtime = 0;/AFX_DATA_INITvoid CYlzView:DoDataExchange(CDataExchange* pDX)CRecordView:DoDataExchange(pDX);/AFX_DATA_MAP(CYlzView)DDX_C

18、ontrol(pDX,IDC_LIST3,m_listd);DDX_Control(pDX,IDC_LIST1,m_list1);DDX_Text(pDX,IDC_EDIT1,m_tel);DDX_Text(pDX,IDC_EDIT2,m_name);DDX_Text(pDX,IDC_EDIT3,m_type);DDX_Text(pDX,IDC_EDIT4,m_grand);DDX_Text(pDX,IDC_EDIT5,m_load);DDX_Text(pDX,IDC_EDIT9,m_upvno);DDX_Text(pDX,IDC_EDIT11,m_upvdno);DDX_Text(pDX,I

19、DC_EDIT13,m_upvgrand);DDX_Text(pDX,IDC_EDIT14,m_upvstatus);DDX_Text(pDX,IDC_EDIT10,m_upvtype);DDX_Text(pDX,IDC_EDIT12,m_upvload);DDX_Text(pDX,IDC_EDIT6,m_dno);DDX_Text(pDX,IDC_EDIT8,m_dname);DDX_Text(pDX,IDC_EDIT15,m_dsex);DDX_Text(pDX,IDC_EDIT16,m_ddegree);DDX_Text(pDX,IDC_EDIT17,m_dage);DDX_Text(p

20、DX,IDC_EDIT7,m_vno);DDX_Text(pDX,IDC_EDIT18,m_htime);DDX_Text(pDX,IDC_EDIT19,m_btime);DDX_Text(pDX,IDC_EDIT20,m_upbtime);/AFX_DATA_MAPBOOL CYlzView:PreCreateWindow(CREATESTRUCT& cs)/ TODO:Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn CRecordView:PreCreateWindow(cs);v

21、oid CYlzView:OnInitialUpdate()m_pSet = &GetDocument()-m_ylzSet;CRecordView:OnInitialUpdate();GetParentFrame()-RecalcLayout();ResizeParentToFit();BOOL CYlzView:OnPreparePrinting(CPrintInfo* pInfo)return DoPreparePrinting(pInfo);#ifdef _DEBUGvoid CYlzView:AssertValid() constCRecordView:AssertValid();v

22、oid CYlzView:Dump(CDumpContext& dc) constCRecordView:Dump(dc);CYlzDoc* CYlzView:GetDocument() / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CYlzDoc);return (CYlzDoc*)m_pDocument;#endif /_DEBUGCRecordset* CYlzView:OnGetRecordset()return m_pSet;/ CYlzView message handlersvoid

23、CYlzView:OnButton1() CVeset cc;CString pp( );/int nItem=-1;CString str0;UpdateData(TRUE);for(int j=0;jIsOpen()m_pSet-Close();if(cc.IsOpen()cc.Close();cc.Open();m_vno=m_vno+pp;m_pSet-Open();m_pSet-AddNew();m_pSet-m_Otel=m_tel;m_pSet-m_Oname=m_name;m_pSet-m_Otype=m_type;m_pSet-m_Ogrand=m_grand;m_pSet-

24、m_Oload=m_load; m_pSet-m_Ovno=m_vno;m_pSet-m_Ohiretime=m_htime;m_pSet-m_Obacktime=m_btime;while(cc.IsEOF()!=1)if(cc.m_Vno=m_vno)UpdateData(TRUE);cc.Edit();cc.m_Vstatus=busy;cc.m_Vbacktime=m_btime;cc.Update();cc.MoveNext();cc.Requery();UpdateData(FALSE);elsecc.MoveNext();m_pSet-Update(); m_pSet-MoveL

25、ast();m_pSet-Requery();MessageBox(已下单!);m_tel=m_name=m_type=m_grand=;m_load=0;m_htime=m_btime=0;m_pSet-Close();cc.Close();m_vno=;for(int i=0;i10;i+)m_list1.DeleteString(0);m_listd.DeleteString(0);UpdateData(FALSE);void CYlzView:OnButton2() CVeset vs;CString str=;UpdateData(TRUE);for(int i=0;i=%d and

26、 Vgarnd=%s,m_type,m_load,m_grand);vs.Open();while(vs.IsEOF()!=1)str.Format(%4s %4s %4s %d %18s %5s %7d,vs.m_Vno,vs.m_Vtype,vs.m_Vdno,vs.m_Vload,vs.m_Vgarnd,vs.m_Vstatus,vs.m_Vbacktime);m_list1.AddString(str);vs.MoveNext();UpdateData(FALSE);vs.Close();void CYlzView:OnButton3() CVeset s1; CDriverset s

27、2; CString str1=; UpdateData(TRUE); for(int i=0;iIsOpen() m_pSet-Close();if(m_upbtime!=0) alv.m_strFilter.Format(Vno=%s,m_upvno); alv.Open(); if(m_upbtime=alv.m_Vbacktime) alv.Edit(); alv.m_Vstatus=free; alv.m_Vbacktime=0; alv.Update(); alv.MoveNext(); alv.Requery(); m_pSet-m_strFilter.Format(Ovno=%

28、s and Obacktime=%d,m_upvno,m_upbtime); m_pSet-Open(); CRecordsetStatus status; m_pSet-GetStatus(status); m_pSet-Delete(); if(status.m_lCurrentRecord=0) m_pSet-MoveNext(); else m_pSet-MoveFirst(); MessageBox(订单已删除,该车辆已返回,可以使用!); m_upvstatus=; m_upvno=; m_upbtime=0; UpdateData(FALSE); if(m_upvdno!=) c

29、kd1.Open(); ckd1.MoveFirst();UpdateData(TRUE);m_upvdno=m_upvdno+sp2;while(ckd1.IsEOF()!=1)if(ckd1.m_Dno=m_upvdno)b+; alv.m_strFilter.Format(Vno=%s,m_upvno); alv.Open(); alv.Edit();alv.m_Vdno=m_upvdno;alv.Update();alv.MoveLast();alv.Requery();MessageBox(修改成功!); m_upvdno=m_upvno=;UpdateData(FALSE);ckd

30、1.MoveNext();else ckd1.MoveNext();if(b=0)alv.Open();MessageBox(无此司机!请先输入司机信息!); m_upvdno=; UpdateData(FALSE);alv.Close();m_pSet-Close();void CYlzView:OnButton9() CVeset vs1;CString strc=;for(int i=0;i10;i+)m_list1.DeleteString(0);UpdateData(1);if(vs1.IsOpen()vs1.Close();vs1.m_strFilter.Format(Vno=%s

31、,m_vno);vs1.Open();strc.Format(%4s %4s %4s %d %18s %5s %7d,vs1.m_Vno,vs1.m_Vtype,vs1.m_Vdno,vs1.m_Vload,vs1.m_Vgarnd,vs1.m_Vstatus,vs1.m_Vbacktime);m_list1.AddString(strc);vs1.MoveNext();UpdateData(FALSE);vs1.Close();void CYlzView:OnShowall() CVeset sowv;CString show;UpdateData(TRUE);for(int i=0;i10;i+)m_list1.DeleteString(0);if(sowv.IsOpen()sowv.Close();sowv.Open();sowv.MoveFirst();while(sowv.IsEOF()!=1)show.Format(%4s %4s %4s %d %18s %5s %7d,sowv.m_Vno,sowv.m_V

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服