C課程設計之車輛管理系統(tǒng)方案_第1頁
C課程設計之車輛管理系統(tǒng)方案_第2頁
C課程設計之車輛管理系統(tǒng)方案_第3頁
C課程設計之車輛管理系統(tǒng)方案_第4頁
C課程設計之車輛管理系統(tǒng)方案_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、. .PAGE54 / NUMPAGES54C+面向?qū)ο蟪绦蛟O計課 程 設 計 報 告課程名稱 C+面向?qū)ο蟪绦蛟O計 課題名稱 車輛管理系統(tǒng) 專 業(yè)班 級學 號姓 名指導教師年 月 日(一)、課程設計題目:題目4 車輛管理系統(tǒng)(二)、目的與要求: 1、目的: (1)要求學生達到熟練掌握C+語言的基本知識和技能; (2)基本掌握面向?qū)ο蟪绦蛟O計的基本思路和方法; (3)能夠利用所學的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O計問題。 2、基本要求: (1)要求利用面向?qū)ο蟮姆椒ㄒ耘cC+的編程思想來完成系統(tǒng)的設計; (2)要求在設計的過程中,建立清晰的類層次; (3)在系統(tǒng)中至少要定義四個類,每個類

2、中要有各自的屬性和方法; (4)在系統(tǒng)的設計中,至少要用到面向?qū)ο蟮囊环N機制。 3、創(chuàng)新要求: 在基本要求達到后,可進行創(chuàng)新設計,如根據(jù)查找結(jié)果進行修改的功能。 (三)、設計方法和基本原理: 功能要求:添加車輛程序主要完成車輛信息的添加,要求編號唯一。如果添加了重復編號的物品時,則提示用戶數(shù)據(jù)添加重復并取消添加;如果車輛信息庫已滿,則提示不能再添加新的車輛信息。查詢車輛可按照三種方式進行物品的查詢。按車輛制造公司查詢:按編號查詢:按類別查詢:如果未找到,給出相應的提示信息,如果找到,則顯示相應的記錄信息。顯示車輛信息庫可顯示當前車輛信息庫中所有的車輛信息。修改車輛可根據(jù)查詢結(jié)果對相應的記錄進行

3、修改,修改時注意編號的唯一性。5)刪除車輛對已添加的車輛信息進行刪除。如果當前車輛信息庫為空,則提示“車輛信息庫為空!”并返回操作;否則輸入要刪除的編號,根據(jù)編號刪除該車輛信息,如果沒有找到該車輛信息,則提示“該編號不存在”。6)統(tǒng)計功能輸出當前車輛信息庫中總車輛數(shù),以與按車輛類別,統(tǒng)計出當前車輛信息庫中各類別的車輛數(shù)并顯示。保存車輛將當前系統(tǒng)中車輛信息存入文件中。讀取車輛 將保存在文件中的車輛信息讀入到當前系統(tǒng)中,以供用戶使用。在完成以上基本功能的基礎上,可自行進行擴展或完善。3、問題的解決方案: 根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:1)應用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以與界

4、面的組織和設計;2)分析系統(tǒng)中的各個實體以與它們之間的關(guān)系;3)根據(jù)問題描述,設計系統(tǒng)的類層次;4)完成類層次中各個類的描述;5)完成類中各個成員函數(shù)的定義;6)完成系統(tǒng)的應用模塊;7)功能調(diào)試;8)完成系統(tǒng)總結(jié)報告。目 錄TOC o 1-2 h z u HYPERLINK l _Toc312959728 1.系統(tǒng)需求分析 PAGEREF _Toc312959728 h 5 HYPERLINK l _Toc312959729 2.總體設計 PAGEREF _Toc312959729 h 6 HYPERLINK l _Toc312959730 3.詳細設計與實現(xiàn) PAGEREF _Toc3129

5、59730 h 8 HYPERLINK l _Toc312959731 4.系統(tǒng)調(diào)試 PAGEREF _Toc312959731 h 錯誤!未定義書簽。 HYPERLINK l _Toc312959732 5.結(jié)論 PAGEREF _Toc312959732 h 錯誤!未定義書簽。 HYPERLINK l _Toc312959733 6.心得體會 PAGEREF _Toc312959733 h 錯誤!未定義書簽。 HYPERLINK l _Toc312959734 7.參考書目 PAGEREF _Toc312959734 h 錯誤!未定義書簽。系統(tǒng)需求分析 1.1系統(tǒng)設計的目的與意義:隨著社會

6、的進步和人們生活水平的提高,車輛作為交通工具,已經(jīng)成為人們?nèi)粘I钪胁豢扇鄙俚囊徊糠?大大增加了交通壓力,同時,也對車輛里的管理有了一個更高的要求.因此,需要一個車輛管理系統(tǒng)來對各種車輛的各種信息進行統(tǒng)一管理. 1.2 系統(tǒng)功能需求:本系統(tǒng)有三個類:Car類、Truck類、Bus類,存儲小轎車信息、卡車信息、大客車信息。1添加車輛程序主要完成車輛信息的添加,要求編號唯一。如果添加了重復編號的物品時,則提示用戶數(shù)據(jù)添加重復并取消添加;如果車輛信息庫已滿,則提示不能再添加新的車輛信息。2查詢車輛可按照三種方式進行物品的查詢。按車輛制造公司查詢:按編號查詢:按類別查詢:如果未找到,給出相應的提示信息

7、,如果找到,則顯示相應的記錄信息。3顯示車輛信息庫可顯示當前車輛信息庫中所有的車輛信息。4修改車輛可根據(jù)查詢結(jié)果對相應的記錄進行修改,修改時注意編號的唯一性。5刪除車輛對已添加的車輛信息進行刪除。如果當前車輛信息庫為空,則提示“車輛信息庫為空!”并返回操作;否則輸入要刪除的編號,根據(jù)編號刪除該車輛信息,如果沒有找到該車輛信息,則提示“該編號不存在”。6統(tǒng)計功能輸出當前車輛信息庫中總車輛數(shù),以與按車輛類別,統(tǒng)計出當前車輛信息庫中各類別的車輛數(shù)并顯示。7保存車輛將當前系統(tǒng)中車輛信息存入文件中。8讀取車輛 將保存在文件中的車輛信息讀入到當前系統(tǒng)中,以供用戶使用??傮w設計2.1 系統(tǒng)功能分析:系統(tǒng)通過

8、調(diào)用函數(shù)來實現(xiàn)信息錄入、信息修改、信息刪除、信息查詢以與數(shù)據(jù)保存文件等功能。add()函數(shù)用于錄入信息;modify()函數(shù)用來修改信息;del()函數(shù)用來修改信息;search()函數(shù)用來查詢車輛信息;read()函數(shù)用于將文件中的數(shù)據(jù)讀取到存中;save()函數(shù)用于將存中的信息存入文件;主函數(shù)main()用于調(diào)用這些函數(shù)。2.2系統(tǒng)功能模塊劃分與設計:系統(tǒng)定義了Car類、Truck類、Bus類這三個類,定義了add()、modify()、del()、read()、save()、search()等函數(shù)來實現(xiàn)系統(tǒng)所需功能。2.3 系統(tǒng)功能模塊圖:車輛信息管理系統(tǒng)小轎車信息管理卡車信息管理大客車

9、信息管理小轎車信息讀取小轎車信息添加小轎車信息修改小轎車信息刪除小轎車信息保存卡車信息讀取卡車信息添加卡車信息修改卡車信息刪除卡車信息保存大客車信息讀取大客車信息添加大客車信息修改大轎車信息刪除大客車信息保存大客車信息查詢卡車信息查詢小轎車信息查詢2.4 類的設計(1)Base類(抽象類)的設計:Basevirtual void read()=0;virtual void add()=0;virtual void modify(int)=0;virtual void del(int)=0;virtual void save()=0;virtual void search()=0;圖 3.1 B

10、ase類(2)小轎車類的設計:Cardouble carFee;char carID20;char carName20;void read();void add(); void modify(int);void del(int);void save();void search();圖 3.2小轎車類(3)卡車類的設計:Truckchar truckID20;char truckName20; int truckNum;void read();void add();void modify(int);void del(int);void save();void search();圖 3.3卡車類(

11、4)大客車類的設計:Buschar busName20;char busID20;int busNum;void read();void add(); void modify(int);void del(int);void save();void search();圖 3.4 大卡車類詳細設計與實現(xiàn)3.1 Base類(抽象類)的實現(xiàn)class Basepublic:virtual void read()=0;virtual void add()=0;virtual void modify(int)=0;virtual void del(int)=0;virtual void save()=0;

12、virtual void search()=0;3.2 小轎車類的實現(xiàn)Car.hclass Car:public Basepublic:double carFee; char carID20; char carName20;void read();void add(); void modify(int);void del(int);void save();void search();Car.cppvoid Car:read() ifstream carfile;carfile.open (轎車信息.txt); carfilecarcount_car.carIDcarcount_car.carN

13、amecarcount_car.carFee; while(!carfile.eof() count_car+;carfilecarcount_car.carIDcarcount_car.carNamecarcount_car.carFee; carfile.close();void Car:add() /存入對象數(shù)組中strcpy(carcount_car.carID,carID);strcpy(carcount_car.carName,carName);carcount_car.carFee=carFee; count_car+; void Car:modify(int index) st

14、rcpy(carindex-1.carID,carID); strcpy(carindex-1.carName,carName);carindex-1.carFee=carFee;void Car:del(int index) /前移其后記錄for(int i=index;i=count_car-1;i+)strcpy(cari-1.carID,cari.carID);strcpy(cari-1.carName,cari.carName);cari-1.carFee=cari.carFee;count_car-; void Car:search()for(int i=0;icount_car-

15、1;i+)if(strcmp(cari.carID,carID)=0|strcmp(cari.carName,carName)=0)cout轎車車牌號 轎車品牌 轎車油耗費用endl;coutcari.carID cari.carName cari.carFeeendl;break;elsecout無此轎車數(shù)據(jù)!endl;break;void Car:save() ofstream carfile; carfile.open(轎車信息.txt);for(int i=0;i=count_car-1;i+) carfilecari.carID cari.carName cari.carFeetru

16、ckcount_truck.truckIDtruckcount_truck.truckNametruckcount_truck.truckNum; while(!truckfile.eof() count_truck+;truckfiletruckcount_truck.truckIDtruckcount_truck.truckNametruckcount_truck.truckNum; truckfile.close();void Truck:add()/存入對象數(shù)組中strcpy(truckcount_truck.truckName,truckName); strcpy(truckcoun

17、t_truck.truckID,truckID);truckcount_truck.truckNum=truckNum; count_truck+; void Truck:modify(int index) strcpy(truckindex-1.truckID,truckID); strcpy(truckindex-1.truckName,truckName);truckindex-1.truckNum=truckNum; void Truck:del(int index)/前移其后記錄for(int i=index;i=count_truck-1;i+)strcpy(trucki-1.tr

18、uckID,truckID);strcpy(trucki-1.truckName,truckName);trucki-1.truckNum=truckNum;count_truck-; void Truck:search()for(int i=0;icount_truck-1;i+)if(strcmp(trucki.truckID,truckID)=0)cout卡車車牌號 卡車品牌卡車載重數(shù)(噸)endl;couttrucki.truckID trucki.truckName trucki.truckNumendl;break;elsecout無此卡車數(shù)據(jù)!endl;break;void Tr

19、uck:save() ofstream truckfile;truckfile.open(卡車信息.txt);for(int i=0;i=count_truck-1;i+) truckfiletrucki.truckID trucki.truckName buscount_bus.busIDbuscount_bus.busNamebuscount_bus.busNum; while(!busfile.eof() count_bus+;busfilebuscount_bus.busIDbuscount_bus.busNamebuscount_bus.busNum; busfile.close()

20、;void Bus:add()/存入對象數(shù)組中strcpy(buscount_bus.busID,busID);strcpy(buscount_bus.busName,busName);buscount_bus.busNum=busNum;count_bus+;void Bus:modify(int index)strcpy(busindex-1.busID,busID);strcpy(busindex-1.busName,busName);busindex-1.busNum=busNum;void Bus:del(int index) /前移其后記錄for(int i=index;i=cou

21、nt_bus-1;i+)strcpy(busi-1.busID,busi.busID); strcpy(busi-1.busName,busi.busName);busi-1.busNum=busi.busNum;count_bus-; void Bus:search()for(int i=0;icount_bus-1;i+)if(strcmp(busi.busID,busID)=0)cout客車車牌號 客車品牌 客車最大載客數(shù)(人)endl;coutbusi.busID busi.busName busi.busNumendl;break;elsecout無此客車數(shù)據(jù)!endl;break;

22、void Bus:save() ofstream busfile;busfile.open(客車信息.txt);for(int i=0;i=count_bus-1;i+) busfilebusi.busID busi.busName busi.busNumendl; busfile.close();3.5 main.cpp#include #include#include #include #include Car carMAXcar;Truck truckMAXtruck;Bus busMAXbus;int count_car=0;int count_truck=0;int count_bu

23、s=0;Base *p=NULL;char c;/轎車管理子菜單void car_manage() int choice,i=0; bool quit=false; while(1) system(cls); cout*轎車管理子菜單*endl; cout 1.添加轎車信息endl; cout 2.修改轎車信息endl; cout 3.刪除轎車信息endl; cout 4.查詢轎車信息endl; cout 5.顯示所有轎車信息endl; cout 0.退出endl; cout*endl; coutchoice; switch(choice) case 1: Car car1;p=&car1;

24、cout請輸入轎車車牌號、轎車品牌、油耗費用:car1.carIDcar1.carNamecar1.carFee;cout是否保存轎車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y) p-add(); p-save(); break; case 2:Car car2;p=&car2; int index; for(int i=0;icount_car;i+) couti+1.cari.carID cari.carName cari.carFeeendl; cout請選擇轎車序號:index; cout請輸入要修改的轎車車牌號、轎車品牌、油耗費用:car2.carIDc

25、ar2.carNamecar2.carFee;cout是否保存轎車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y) p-modify(index); p-save(); break; case 3:Car car3;p=&car3; int index; for(int i=0;icount_car;i+) couti+1.cari.carID cari.carName cari.carFeeendl; cout請選擇要修改的轎車車牌號、轎車品牌、油耗費用的序列號:index;cout是否保存轎車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y

26、) p-del(index); p-save(); break;case 4:Car car4;p=&car4;cout請輸入轎車的車名:car4.carName;car4.search();system(pause); break;case 5:cout轎車車牌號 轎車品牌 轎車油耗費用endl;for(int i=0;icount_car;i+)couti+1.cari.carID cari.carName cari.carFeeendl;system(pause);if(count_car=0)coutsetw(20)轎車信息庫為空!endl;system(pause); break;c

27、ase 0:quit=true;break; default:cout請輸入05之間的數(shù)字!endl; break; if(quit=true) break; system(cls); return;/卡車管理子菜單void truck_manage() int choice; bool quit=false; while(1) system(cls); cout*卡車管理子菜單*endl; cout 1.添加卡車信息endl; cout 2.修改卡車信息endl; cout 3.刪除卡車信息endl; cout 4.查詢卡車信息endl; cout 5.顯示所有卡車信息endl; cout

28、0.退出endl; cout*endl; coutchoice; switch(choice) case 1: Truck truck1;p=&truck1; cout請輸入卡車的車牌號、卡車品牌、載重數(shù)(噸):truck1.truckIDtruck1.truckNametruck1.truckNum;cout是否保存卡車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y)p-add(); p-save(); break; case 2: Truck truck2;p=&truck2; int index; for(int i=0;icount_truck;i+) cou

29、ti+1.trucki.truckID trucki.truckNameendl; cout請選擇要修改的卡車信息的序列號:index; cout請輸入要修改卡車的車牌號、卡車品牌、載重數(shù)(噸):truck2.truckIDtruck2.truckNametruck2.truckNum;cout是否保存卡車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y)p-modify(index); p-save(); break; case 3: Truck truck3;p=&truck3; int index; for(int i=0;icount_truck;i+) cou

30、ti+1.trucki.truckID trucki.truckName trucki.truckNumendl; cout請選擇要刪除的卡車信息序列號:index;cout是否保存卡車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=n|c=N) p-del(index); p-save();break; case 4: Truck truck4; cout請輸入卡車的車牌號:truck4.truckID; truck4.search(); system(pause); break; case 5: cout卡車車牌號 卡車品牌 卡車載重數(shù)(噸)endl; for(int i=0

31、;icount_truck;i+)couti+1.trucki.truckID trucki.truckName trucki.truckNumendl;system(pause);if(count_truck=0)coutsetw(20)卡車信息庫為空!endl;break; case 0:quit=true;break; default:cout請輸入05之間的數(shù)字!endl;break; if(quit=true) break; system(cls); return;/客車管理子菜單void bus_manage() int choice; bool quit=false; while

32、(1) system(cls); cout*客車管理子菜單*endl; cout 1.添加客車信息endl; cout 2.修改客車信息endl; cout 3.刪除客車信息endl; cout 4.查詢客車信息endl; cout 5.顯示所有客車信息endl; cout 0.退出endl; cout*endl; coutchoice; switch(choice) case 1: Bus bus1;p=&bus1; cout請輸入要添加的客車的車牌號、客車品牌、最大載客數(shù)(人):bus1.busIDbus1.busNamebus1.busNum;cout是否保存客車信息?(不區(qū)分大小寫)是

33、(y/Y)否(n/N)c; if(c=y|c=Y)p-add(); p-save(); break; case 2: Bus bus2;p=&bus2; int index; for(int i=0;icount_bus;i+) couti+1.busi.busID busi.busName busi.busNumendl; cout請選擇要修改的客車信息序列號:index; cout請輸入要修改的客車車牌號、客車品牌、最大載客數(shù)(人):bus2.busIDbus2.busNamebus2.busNum;cout是否保存客車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=

34、Y)p-modify(index); p-save(); break; case 3:Bus bus3;p=&bus3;int index; for(int i=0;icount_bus;i+) couti+1.busi.busID busi.busName busi.busNumendl; cout請選擇要刪除的客車信息序列號:index;cout是否保存客車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y) p-del(index); p-save(); break; case 4: Bus bus4; cout請輸入客車的車牌號:bus4.busID; bus4.

35、search(); system(pause); break; case 5: cout客車車牌號 客車品牌 客車最大載客數(shù)(人)endl; for(int i=0;icount_bus;i+) couti+1.busi.busID busi.busName busi.busNumendl; system(pause); if(count_bus=0)coutsetw(20)客車信息庫為空!endl; break; case 0:quit=true;break; default:cout請輸入05之間的數(shù)字!endl;break; if(quit=true) break; system(cls

36、); return;/主函數(shù)容void main() /將各個文件中的數(shù)據(jù)依次讀入存 Car (car); (car).read(); Truck (truck); (truck).read(); Bus (bus); (bus).read(); int choice=1; /顯示主菜單 while(1) cout*主菜單*endl; cout 1.轎車信息管理endl; cout 2.卡車信息管理endl; cout 3.客車信息管理endl; cout 0.退出endl; cout*endl; coutchoice; switch(choice) case 1: car_manage();

37、break; case 2: truck_manage();break; case 3: bus_manage();break; case 0: cout您的使用!endl; return;break; default:cout請輸入03之間的數(shù)字!endl;break; system(cls); /小轎車管理子菜單void car_manage() int choice,i=0;bool quit=false; while(1) system(cls); cout*轎車管理子菜單*endl; cout 1.添加轎車信息endl; cout 2.修改轎車信息endl; cout 3.刪除轎車信

38、息endl; cout 4.查詢轎車信息endl; cout 5.顯示所有轎車信息endl; cout 0.退出endl; cout*endl; coutchoice; switch(choice) case 1: Car car1;p=&car1; cout請輸入轎車車牌號、轎車品牌、油耗費用:car1.carIDcar1.carNamecar1.carFee;cout是否保存轎車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y) p-add(); p-save(); break; case 2:Car car2;p=&car2; int index; for(int

39、 i=0;icount_car;i+) couti+1.cari.carID cari.carName cari.carFeeendl; cout請選擇轎車序號:index; cout請輸入要修改的轎車車牌號、轎車品牌、油耗費用:car2.carIDcar2.carNamecar2.carFee;cout是否保存轎車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y) p-modify(index); p-save(); break; case 3:Car car3;p=&car3; int index; for(int i=0;icount_car;i+) couti+

40、1.cari.carID cari.carName cari.carFeeendl; cout請選擇要修改的轎車車牌號、轎車品牌、油耗費用的序列號:index;cout是否保存轎車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y) p-del(index); p-save(); break;case 4:Car car4;p=&car4;cout請輸入轎車的車名:car4.carName;car4.search();system(pause); break;case 5:cout轎車車牌號 轎車品牌 轎車油耗費用endl;for(int i=0;icount_car;i

41、+)couti+1.cari.carID cari.carName cari.carFeeendl;system(pause);if(count_car=0)coutsetw(20)轎車信息庫為空!endl;system(pause); break;case 0:quit=true;break; default:cout請輸入05之間的數(shù)字!endl; break; if(quit=true) break; system(cls); return;/卡車管理子菜單void truck_manage() int choice; bool quit=false; while(1) system(c

42、ls); cout*卡車管理子菜單*endl; cout 1.添加卡車信息endl; cout 2.修改卡車信息endl; cout 3.刪除卡車信息endl; cout 4.查詢卡車信息endl; cout 5.顯示所有卡車信息endl; cout 0.退出endl; cout*endl; coutchoice; switch(choice) case 1: Truck truck1;p=&truck1; cout請輸入卡車的車牌號、卡車品牌、載重數(shù)(噸):truck1.truckIDtruck1.truckNametruck1.truckNum;cout是否保存卡車信息?(不區(qū)分大小寫)是

43、(y/Y)否(n/N)c; if(c=y|c=Y)p-add(); p-save(); break; case 2: Truck truck2;p=&truck2; int index; for(int i=0;icount_truck;i+) couti+1.trucki.truckID trucki.truckNameendl; cout請選擇要修改的卡車信息的序列號:index; cout請輸入要修改卡車的車牌號、卡車品牌、載重數(shù)(噸):truck2.truckIDtruck2.truckNametruck2.truckNum;cout是否保存卡車信息?(不區(qū)分大小寫)是(y/Y)否(n

44、/N)c; if(c=y|c=Y)p-modify(index); p-save(); break; case 3: Truck truck3;p=&truck3; int index; for(int i=0;icount_truck;i+) couti+1.trucki.truckID trucki.truckName trucki.truckNumendl; cout請選擇要刪除的卡車信息序列號:index;cout是否保存卡車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=n|c=N) p-del(index); p-save();break; case 4: Truck

45、 truck4; cout請輸入卡車的車牌號:truck4.truckID; truck4.search(); system(pause); break; case 5: cout卡車車牌號 卡車品牌 卡車載重數(shù)(噸)endl; for(int i=0;icount_truck;i+)couti+1.trucki.truckID trucki.truckName trucki.truckNumendl;system(pause);if(count_truck=0)coutsetw(20)卡車信息庫為空!endl;break; case 0:quit=true;break; default:co

46、ut請輸入05之間的數(shù)字!endl;break; if(quit=true) break; system(cls); return;/大客車管理子菜單void bus_manage() int choice; bool quit=false; while(1) system(cls); cout*客車管理子菜單*endl;cout 1.添加客車信息endl; cout 2.修改客車信息endl; cout 3.刪除客車信息endl; cout 4.查詢客車信息endl; cout 5.顯示所有客車信息endl; cout 0.退出endl; cout*endl; coutchoice; swi

47、tch(choice) case 1: Bus bus1;p=&bus1; cout請輸入要添加的客車的車牌號、客車品牌、最大載客數(shù)(人):bus1.busIDbus1.busNamebus1.busNum;cout是否保存客車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y)p-add(); p-save(); break; case 2: Bus bus2;p=&bus2; int index; for(int i=0;icount_bus;i+) couti+1.busi.busID busi.busName busi.busNumendl; cout請選擇要修改

48、的客車信息序列號:index; cout請輸入要修改的客車車牌號、客車品牌、最大載客數(shù)(人):bus2.busIDbus2.busNamebus2.busNum;cout是否保存客車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y)p-modify(index); p-save(); break; case 3: Bus bus3;p=&bus3;int index; for(int i=0;icount_bus;i+) couti+1.busi.busID busi.busName busi.busNumendl; cout請選擇要刪除的客車信息序列號:index;c

49、out是否保存客車信息?(不區(qū)分大小寫)是(y/Y)否(n/N)c; if(c=y|c=Y) p-del(index); p-save(); break; case 4: Bus bus4; cout請輸入客車的車牌號:bus4.busID; bus4.search(); system(pause); break; case 5: cout客車車牌號 客車品牌 客車最大載客數(shù)(人)endl; for(int i=0;icount_bus;i+) couti+1.busi.busID busi.busName busi.busNumendl; system(pause); if(count_bu

50、s=0)coutsetw(20)客車信息庫為空!endl; break; case 0:quit=true;break;default:cout請輸入05之間的數(shù)字!endl;break; if(quit=true) break; system(cls); return; /顯示主菜單 while(1) cout*主菜單*endl; cout 1.轎車信息管理endl; cout 2.卡車信息管理endl; cout 3.客車信息管理endl; cout 0.退出endl; cout*endl; coutchoice; switch(choice) case 1: car_manage();b

51、reak; case 2: truck_manage();break; case 3: bus_manage();break; case 0: cout您的使用!endl; return;break; default:cout請輸入03之間的數(shù)字!endl;break; system(cls); 系統(tǒng)調(diào)試4.1 在調(diào)試過程中,出現(xiàn)了下面一些錯誤:4.2 具體調(diào)試過程:顯示主菜單(1)(1)(1)(1)(1)(重復以上操作分別輸入紅旗、大眾、三菱和現(xiàn)代)(1)(1)(2)(1)(1)(2)(3)(1)(1)(3)(1)(1)(4)(1)(1)(5)(1)(1)(0)以上只演示了三個車輛類小轎車、

52、卡車、大客車中的小轎車。其他兩個類的操作基本類似,就不一一列舉了。5、結(jié)論程序總共設計了三個類,滿足了課題對類的要求,在設計的過程中,建立了較為清晰的類層次,也利用了面向?qū)ο蟮姆椒ㄒ耘cC+的編程思想來完成系統(tǒng)的設計,做到了用文件存儲車輛信息、從文件中讀取車輛信息、修改信息、查詢信息、刪除信息顯示文件中存儲的信息等要求。而且界面簡潔,容易操作。但是程序不太條理,不夠簡練,導致出現(xiàn)錯誤很難發(fā)現(xiàn)和修改。同時,發(fā)現(xiàn)一個難點,那就是類的封裝。一個可以運行的程序要把它成功的封裝起來也很困難。系統(tǒng)的錯誤提示難以識別,錯誤點不易找到,導致程序的耗時量大大增加。6、心得體會這次課程設計歷經(jīng)兩個星期左右,通過這兩

53、個星期的學習,發(fā)現(xiàn)了自己的很多不足,自己知識的很多漏洞,也有很多聞所未聞的東西,從而更加明白知識扎實的重要性,理解實踐能力的重要性!因為基礎知識的不扎實讓我在這次課程設計中走了許多彎路,不過我認為是值得的,它大大的補充了我知識不足的那一面,我始終相信付出必有收獲。這次的課程設計,可以說是苦樂交加。在程序設計過程中,不僅檢驗、鞏固了我所學的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程。它為學生提供了一個既動手又動腦,獨立實踐的機會,將課

54、本上的理論知識和實際有機的結(jié)合起來,鍛煉學生的分析解決實際問題的能力。提高學生運用所學知識解決實際問題的能力。課程設計這類實踐訓練是我們邁向社會,從事職業(yè)工作前一個必不少的過程。“千里之行始于足下”,通過這次課程設計,我深深體會到這句千古名言的真正含義。我今天認真的進行課程設計,學會腳踏實地邁開這一步,就是為明天能穩(wěn)健地在社會大潮中奔跑打下堅實的基礎。通過這次車輛管理系統(tǒng)的設計,我在多方面都有所提高。首先,整體與局部的把握,在系統(tǒng)設計前,需要整體思考車輛管理系統(tǒng)所包含的信息與其實現(xiàn)的功能,在設計過程中,再思考局部功能實現(xiàn)的完整性與整個程序的結(jié)合。其次,在實現(xiàn)用戶權(quán)限設置這個功能時,通過查閱課本

55、、資料,實踐,對字符串的使用(strcmp(mm,1234);)更加熟悉、了解,能夠熟練運用字符串,而且加強了對類中參數(shù)傳值的使用,鞏固了類定義,函數(shù)成員使用等知識,并通過條件語句實現(xiàn)不同的人設置不同的操作,在實現(xiàn)查找功能時,更熟練了指針對象的使用。最后,在整個程序運行時,考慮到屏幕出現(xiàn)的效果,查閱資料與其前人的登錄系統(tǒng)代碼,了解了庫函數(shù)中的屏幕清零函數(shù)(system(cls);),并能正確使用。課程設計使我對c+課程又進行了系統(tǒng)的復習,獨立思考的能力也有了提高。通過這次編程使我們認識到在以后的學習中要多做練習增加自己的知識面才能更好的適應自己的工作,在其中由最初的沮喪中出來,充滿信心地去解決

56、問題。通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。而且這次課程設計也讓我受益匪淺,真切感覺到任何事情都需要細心和耐心,二者缺一不可。沒有細心,做事情永遠都是事倍功半,一旦某個細節(jié)錯了,就會導致某個部分應用不了額,甚至可能導致整個系統(tǒng)都運行不了。沒了耐心,可能就會導致這件事不能夠完成,經(jīng)常半途而廢。七、參考書目1、譚浩強. C+程序設計教程清華大學2、譚浩強. C+面向?qū)ο蟪绦蛟O計清華大學3、Visual C+ 從入門到精通八、附錄(關(guān)鍵程序

57、代碼)#include #include#include #include #include class Basepublic:virtual void read()=0;virtual void add()=0;virtual void modify(int)=0;virtual void del(int)=0;virtual void save()=0;virtual void search()=0;class Car:public Basepublic:double carFee; char carID20; char carName20;void read();void add();

58、void modify(int);void del(int);void save();void search();const int MAXcar=10;extern Car carMAXcar;extern int count_car;void Car:read() ifstream carfile;carfile.open (轎車信息.txt); carfilecarcount_car.carIDcarcount_car.carNamecarcount_car.carFee; while(!carfile.eof() count_car+;carfilecarcount_car.carID

59、carcount_car.carNamecarcount_car.carFee; carfile.close();void Car:add() /存入對象數(shù)組中strcpy(carcount_car.carID,carID);strcpy(carcount_car.carName,carName);carcount_car.carFee=carFee; count_car+; void Car:modify(int index) strcpy(carindex-1.carID,carID); strcpy(carindex-1.carName,carName);carindex-1.carFe

60、e=carFee;void Car:del(int index) /前移其后記錄for(int i=index;i=count_car-1;i+)strcpy(cari-1.carID,cari.carID); strcpy(cari-1.carName,cari.carName);cari-1.carFee=cari.carFee;count_car-; void Car:search()for(int i=0;icount_car-1;i+)if(strcmp(cari.carID,carID)=0|strcmp(cari.carName,carName)=0)cout轎車車牌號 轎車品牌

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論