




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、沈陽航空航天大學課 程 設 計 報 告課程設計名稱:軟件綜合課程設計課程設計題目:車輛調度管理軟件設計院(系):計算機學院專 業:計算機科學與技術班 級:84010101學 號:2008040101025姓 名:葉倫灼指導教師:叢麗暉完成日期:2011年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司機信息的添
2、加與刪除8第4章 調試使用104.1 客戶功能104.2 管理員功能114.2.1 車輛及司機信息的增刪114.2.2 車輛信息的修改12參考文獻14附 錄(程序清單)15第1章 需求分析1.1 問題內容與要求設計一個簡單的車輛調度管理程序,可實現對不同的車輛、不同要求、不同時間的調度算法。1) 建立車輛信息表;2) 實現對車輛信息的插入、修改、查詢、刪除功能;3) 界面要優化,直觀、大方、美觀;4) 實現針對不同任務、不同時間的調度分配算法;5) 獨立完成系統的設計、編碼和調試;6) 按照課程設計規范書寫課程設計報告。1.2 問題分析與假設車輛調度就是根據客戶的需求,合理地派遣出相應的車輛。
3、假設每派遣出一輛車,需要記錄下該車的特有信息以及使用該車的客戶信息。一輛車在被使用后,不能在重疊的時間段被其他客戶使用。而客戶在選擇車輛時,除了能夠了解車輛本身的屬性外,也有權了解駕駛該車輛駕駛員的信息,比如駕駛員的性別、駕齡、年齡。而作為車輛調度員,應該做到對車輛信息的查看、增刪、及時更新等操作。由于每一輛車都有一個專屬司機,所以每新增一輛,都必須提供一個已存在的司機信息,如果添加了一個錯誤的司機,系統應該能夠提供提示現提供一個正確的司機信息。同理,如果想要注銷掉某個司機的信息,首先要取消掉他與配對車輛的關系,然后才能進行注銷。分析了客戶與車輛、司機與車輛的關系,有利于我們建立合理的表格,并
4、且在設計程序時考慮到更多切合實際的應用。本次課設所需要的表格將在sql 2000中建立。使用microsoft visual c+編寫代碼、進行對數據庫的讀寫等操作。odbc將作為搭載數據庫與vc+的平臺。第2章 概要設計2.1 數據庫邏輯模型設計2.1.1 數據庫er圖汽車調度管理系統的er圖如圖2.1所示。 車輛車牌號 車型 豪華程度 車輛載重 狀態最早可用時間 駕駛 司機司機編號司機姓名性別 駕齡年齡 租用 客戶客戶電話客戶姓名需求車型需求程度需求載重租用車輛租用時間歸還時間m1n1 圖2.1 車輛調度管理數據庫er圖車輛實體與司機、客戶這兩個實體之間,分別通過駕駛關系和租用關系聯系在一
5、起。為便于管理,一輛汽車只配備一名司機,一名司機也只能駕駛一輛汽車。所以這兩個實體之間是1:n的關系。而一輛汽車可以出租給不同的客戶,而一個顧客又可以租用多輛汽車,所以兩個實體之間的關系是m:n的關系。e-r圖表示的關系模式為:車輛(車牌號,車型,司機編號,載重,豪華程度,狀態,最早可用時間);司機(司機編號,司機姓名,性別,駕齡,年齡);客戶(客戶電話,客戶姓名,需求車型,需求程度,需求載重,租用時間,歸還時間,租用車輛)?!败囕v”實體的主碼是“車牌號”。屬性“司機編號”是來自于實體“司機”,的外碼,參照其屬性“司機編號”?!八緳C”實體的主碼是“司機編號”?!翱蛻簟睂嶓w的主碼是“客戶電話”。
6、屬性“租用車輛”是來自于實體“車輛”外碼,參照其屬性“車牌號”。2.1.2 數據庫表格設計1 車輛(vehicles) 表2.1 車輛信息表列名數據類型長度是否可以為空說明vnochar20否車牌號vtypechar10是車型vdnochar20否司機編號vloadint不定是車輛載重vgrandchar10是豪華程度vstatuschar10是狀態vbacktimeint不定是最早可用時間2 司機(drivers) 表2.2 司機信息表列名數據類型長度是否可以為空說明dnochar20否司機編號dnamechar10是司機姓名dsexchar10是性別ddegreeint不定是駕齡dagei
7、nt不定是年齡3 客戶(orders)表2.3 客戶信息表列名數據類型長度是否可以為空說明otelchar20否客戶電話onamechar10是客戶姓名otypechar10是需求車型ograndchar10是需求程度oloadint不定是需求載重ohiertimeint不定是租用時間obacktimeint不定是歸還時間ovnochar20否租用車輛2.2 系統功能模塊本系統主要功能和層次結構如圖2.2所示。本系統有七個主要功能。其中客戶的使用到的功能更有用戶下單、車輛信息查詢兩個功能,而管理人員使用到的功能有車輛信息更改、新增車輛、新增司機、車輛刪除、司機刪除五個功能。 車輛調度管理系統功
8、能模塊 客戶下單 車輛信息查詢 車輛信息更改 新增車輛 新增司機 刪除車輛 刪除司機圖2.2 系統主要功能和層次結構第3章 詳細設計3.1 客戶功能模塊顧客類模塊是為了實現顧客下訂單和查詢車輛信息的需求。客戶可以通過它,查看全部車輛或指定車輛的信息,或是根據自己的需求篩選車輛。并且,客戶還可以根據指定車輛的車牌號,查看該輛車的司機信息??蛻粼谳斎肓丝蛻綦娫挕⑿彰?、對車輛的需求,以及時間等相關信息后,可以先使用查詢功能查看滿足條件的車輛,然后選定某輛車查看其司機信息,全部信息都滿意后,再通過了系統對客戶的租用時間與該車最早可用時間的核對,就可以下單,已取得該車的使用權??蛻艄δ苣K流程圖如圖3.
9、1所示。 開始 輸入客戶數據 顯示滿足客戶需求的車輛 輸入指定車輛的車牌 查看司機信息最早可用時間大于租用時間 成功下單 結束ny 圖3.1 客戶功能模塊流程圖3.2 管理人員功能模塊該模塊主要實現對車輛與司機信息的增刪查改。3.2.1車輛信息更新通過該功能,管理人員可以改變指定車輛的配置司機,或是將已歸還的汽車的訂單取消,使該汽車可以投入下一輪使用。在改變車輛的配置司機時,輸入車牌號和新的司機編號,就可以將指定的車輛的司機改變。注意,輸入的新司機編號只能是已存在的,并且是沒有被配置到其他車輛的司機的編號,否則系統會提示出錯。改變車輛配置司機的流程圖如圖3.2所示。 開始輸入需要更改的信息該司
10、機編號是否合法y 更改信息 結束n 圖3.2 改變車輛配置司機的流程圖在取消已歸還汽車的的訂單時,輸入車票號和歸還時間,就可以將對應的訂單取消,若該車輛已其他沒有訂單,將車輛狀態由“busy”變為“free”,表示目前空閑,否則車輛狀態保持“busy”,直至該車輛無任何訂單。取消已歸還汽車訂單的流程圖如圖3.3所示。 開始輸入訂單信息換車時間小于該車最早可用時間 取消對應訂單 車輛狀態不改變 結束 取消對應訂單車輛狀態變為“free”ny 圖3.3 取消已歸還汽車訂單的流程圖3.2.2車輛信息的添加與刪除該功能顯而易見,主要是完成對車輛的新增或刪除。輸入車牌號、車型、司機編號、車輛載重、豪華程
11、度、初始車輛狀態,而初始最早可用時間默認為0。就可以添加一輛新車。需要注意的是,輸入的司機編號只能是已存在的,并且是沒有被配置到其他車輛的司機的編號,否則系統會提示出錯。若只輸入車牌號,則表示需要刪除某一個已經存在的車輛信息。需要注意的是,輸入的車牌號必須是存在的已有的車輛的車牌號,否則系統提示出錯。車輛信息的添加與刪除功能的流程圖如圖3.4所示。 開始輸入車輛信息是否只有車牌號信息司機編號是否合法 初始化最早可用時間 寫入新車輛信息 結束車牌號存在 刪除車輛信息 輸入司機編號ynnnyy 圖3.4 車輛信息的添加與刪除功能的流程圖3.2.3司機信息的添加與刪除歸還功能與車輛信息的添加與刪除類
12、似。輸入司機編號、司機姓名、性別、駕齡、年齡等信息,就可以添加一名新司機。需要注意的是,輸入的新司機編號不能與已有的司機編號重復,否則系統提示出錯。 若只輸入司機編號,則表明需要刪除某一個司機。需要注意的是,刪除的這一個司機不能是配置到車輛上的,否則系統提示出錯。司機信息的添加與刪除功能流程圖如圖3.5所示。nn 開始輸入司機信息是否只有司機信號 添加司機信息者 司機已配置 刪除司機 禁止刪除 結束yy圖3.5 司機信息的添加與刪除功能流程圖第4章 調試使用4.1 客戶功能客戶下單和查詢車輛信息界面如圖4.1所示。圖4.1 客戶下單和查詢車輛信息界面輸入合理信息后,通過鼠標點擊按鈕,就可以實現
13、不同的功能。比如依次輸入:、“vanpersy”、“audi”、“a+”、“3”、“1530”、“2311”后,點擊“根據客戶需要顯示車輛”出現匹配車輛如圖4.2所示。然后選中其中的車牌為“a1256”的車型,點擊“查看司機信息”,出現“0706”、“ronaldo”、“male”、“6”、“30”字樣。分別代表司機編號、司機姓名、性別、駕齡、年齡。信息如圖4.3所示。客戶如果滿意,點擊“下單”即可成功下單。圖4.2 匹配客戶vanpersy需求的車輛圖4.3 車輛a1256的司機信息4.2 管理員功能4.2.1 車輛及司機信息的增刪若需要在車輛信息表vehicles
14、中加入一輛車型為“lambor”、車牌號為“a1122”、駕駛司機為“0755”豪華程度為“aa+”、載重為2人的新車,需要在車輛信息更新界面輸入信息。如圖4.4所示。圖 4.4 新增車輛信息但是點擊添加后,會提示“沒有該司機!請先輸入司機信息”。原因是編號為0755的司機信息還沒有存入數據庫。解決辦法就是在司機信息更新界面輸入編號為0755的司機的相關信息。如圖4.5所示。圖4.5 新增司機信息點擊“添加”。添加了司機信息后,重新在車輛信息更新界面輸入司機編號,就可以添加所需要的新車輛了。刪除車輛信息與司機信息時,只需要輸入對應的車牌號或是司機編號,點擊刪除即可。4.2.2 車輛信息的修改若
15、有車輛歸還,輸入歸還車輛的車牌號,以及該車輛的返回時間,就可以取消對應的訂單。如上面被租用的車輛a1256,車輛返回后,在車輛信息更新界面輸入信息“a1256”、“2311”,點擊“修改”,就完成了訂單的取消。如圖4.6所示。圖4.6 取消車輛a1256的訂單若是修改車輛的的配置司機,在司機編號處輸入合法的司機編號即可。參考文獻1 高富平,張楚 . 電子商務法m. 北京:北京大學出版社,20022 沈煒,徐慧 . vc+數據庫編程技術與實例 m . 北京:人民郵電出版社,20053 楊章偉等 . 21天學通visual c+ m. . 北京:電子工業出版社,20094 王珊,薩師煊 . 數據庫
16、系統概論m. 北京:高等教育出版社,20065 崔瑩,王華軍 . vc+數據庫編程100例m. 北京:中國鐵道出版社,2007附 錄(程序清單)#include "stdafx.h"#include "ylz.h"#include "ylzset.h"#include "ylzdoc.h"#include "ylzview.h"#include "driverset.h"#include "ve1set.h"#ifdef _debug#define new
17、 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 =
18、_t("");m_upvgrand = _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_ini
19、tvoid cylzview:dodataexchange(cdataexchange* pdx)crecordview:dodataexchange(pdx);/afx_data_map(cylzview)ddx_control(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,
20、 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, idc_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_
21、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(pdx, 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
22、:precreatewindow(createstruct& cs)/ todo: modify the window class or styles here by modifying/ the createstruct csreturn crecordview:precreatewindow(cs);void cylzview:oninitialupdate()m_pset = &getdocument()->m_ylzset;crecordview:oninitialupdate();getparentframe()->recalclayout();resiz
23、eparenttofit();bool cylzview:onprepareprinting(cprintinfo* pinfo)return doprepareprinting(pinfo);#ifdef _debugvoid cylzview:assertvalid() constcrecordview:assertvalid();void cylzview:dump(cdumpcontext& dc) constcrecordview:dump(dc);cylzdoc* cylzview:getdocument() / non-debug version is inlineass
24、ert(m_pdocument->iskindof(runtime_class(cylzdoc);return (cylzdoc*)m_pdocument;#endif /_debugcrecordset* cylzview:ongetrecordset()return m_pset;/ cylzview message handlersvoid cylzview:onbutton1() cveset cc;cstring pp(" ");/int nitem=-1; cstring str0;updatedata(true);for(int j=0;j<10;
25、j+)m_list1.deletestring(0);if(m_pset->isopen()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->m_oload=m_load; m_pset->m_
26、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->mov
27、elast();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;i<10;i+)m_list1.deletestring(0);m_listd.deletestring(0);updatedata(false);void cylzview:onbutton2() cveset vs;cs
28、tring str=""updatedata(true);for(int i=0;i<10;i+)m_list1.deletestring(0);if(vs.isopen()vs.close();vs.m_strfilter.format("vtype='%s' and vload>='%d' and vgarnd='%s'",m_type,m_load,m_grand);vs.open();while(vs.iseof()!=1)str.format("%4s %4s %4s %d
29、%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 s2; cstring str1="" updatedata(true); for(int i=0;i<10;i+)m_listd.delete
30、string(0); cstring sp(" "); m_vno=m_vno+sp; if(s1.isopen() s1.close(); s1.open();s1.movefirst();while(s1.iseof()!=1) if(s1.m_vno=m_vno) updatedata(true); if(s2.isopen() s2.close(); s2.open(); s2.movefirst(); while(s2.iseof()!=1) if(s1.m_vdno=s2.m_dno)str1.format("%4s %4s %4s %4d %4d&q
31、uot;,s2.m_dno,s2.m_dname,s2.m_dsex,s2.m_ddegree,s2.m_dage); m_listd.addstring(str1);s2.movenext();updatedata(false);else s2.movenext(); s1.movenext(); updatedata(false);else s1.movenext();m_vno=""void cylzview:onbutton4() cveset upv; cdriverset ckd; cstring sp1(" "); int a=0; upd
32、atedata(true); m_upvdno=m_upvdno+sp1; if(upv.isopen() upv.close(); if(ckd.isopen() ckd.close(); ckd.open(); ckd.movefirst(); while(ckd.iseof()!=1) if(ckd.m_dno=m_upvdno) a+; upv.open(); upv.addnew(); upv.m_vno=m_upvno; upv.m_vtype=m_upvtype; upv.m_vdno=m_upvdno; upv.m_vload=m_upvload; upv.m_vgarnd=m
33、_upvgrand; upv.m_vstatus=m_upvstatus; upv.update(); upv.movelast(); upv.requery(); messagebox("添加成功!"); m_upvno=m_upvtype=m_upvdno=m_upvgrand=m_upvstatus="" m_upvload=0; ckd.movenext(); upv.close(); updatedata(false); else ckd.movenext(); if(a=0) messagebox("無此司機!請先輸入司機信息!&q
34、uot;); m_upvdno="" updatedata(false); ckd.close();void cylzview:onbutton5() cveset dev;updatedata(true);if(dev.isopen() dev.close(); dev.m_strfilter.format("vno='%s'",m_upvno); dev.open(); if(dev.m_vstatus="busy") messagebox("該車正在使用,無法刪除信息!"); m_upvno=
35、"" else crecordsetstatus status; dev.getstatus(status); dev.delete(); if(status.m_lcurrentrecord=0) dev.movenext(); else dev.movefirst(); messagebox("刪除成功!"); m_upvno="" dev.close(); updatedata(false);void cylzview:onbutton6() cdriverset upd;updatedata(true);if(upd.isop
36、en()upd.close();upd.open();upd.addnew();upd.m_dno=m_dno;upd.m_dname=m_dname;upd.m_dsex=m_dsex;upd.m_ddegree=m_ddegree;upd.m_dage=m_dage;upd.update();upd.movelast();upd.requery();messagebox("添加成功!");m_dno=m_dname=m_dsex=""m_ddegree=m_dage=0;upd.close();updatedata(false);void cylzv
37、iew:onbutton7() cdriverset ded;updatedata(true);if(ded.isopen() ded.close(); ded.m_strfilter.format("dno='%s'",m_dno); ded.open(); crecordsetstatus status; ded.getstatus(status); ded.delete(); if(status.m_lcurrentrecord=0) ded.movenext(); else ded.movefirst(); messagebox("刪除成功
38、!"); m_dno="" ded.close(); updatedata(false);void cylzview:onbutton8() cveset alv;cdriverset ckd1;int b=0;cstring sp2(" ");updatedata(true);if(alv.isopen()alv.close();if(ckd1.isopen() ckd1.close();if(m_pset->isopen() m_pset->close();if(m_upbtime!=0) alv.m_strfilter.for
39、mat("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='%s' and obacktime='%d'",m_upvno,m_upbtime); m
40、_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
41、(m_upvdno!="") ckd1.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);ckd1.mov
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 證券從業資格證職場需求試題及答案
- 理財師備考期間考生的個人特質與學習方式相結合研究試題及答案
- 2024年項目管理專業知識培訓試題及答案
- 注冊會計師考試心理應對試題及答案
- 證券從業資格證名師講解試題及答案
- 項目計劃調整的最佳實踐考題及答案
- 板材防霉處理方案范本
- 項目執行過程中的復盤與反思機制試題及答案
- 管道工程安全風險防范與控制考核試卷
- 糧油企業生產流程優化與成本控制考核試卷
- DBJ51T 108-2018 四川省建筑巖土工程測量標準
- 2025年國家保密基本知識考試題庫及答案
- 2024年四川省成都市武侯區中考化學二模試卷附解析
- 《大學生創新創業基礎》全套教學課件
- CB/T 3784-1996木材產品物資分類與代碼
- 外科學試題庫及答案(共1000題)
- PRS-778S500-100-090721技術使用說明書
- 求一個數比另一個數多幾少幾應用題
- 職業衛生健康題庫
- 廣東省建設工程造價咨詢服務收費項目和收費標準表[粵價函(2011)742號]
- ERP系統編碼規則0002
評論
0/150
提交評論