汽車租賃系統的c語言_第1頁
汽車租賃系統的c語言_第2頁
汽車租賃系統的c語言_第3頁
汽車租賃系統的c語言_第4頁
汽車租賃系統的c語言_第5頁
免費預覽已結束,剩余4頁可下載查看

下載本文檔

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

文檔簡介

1、汽車租賃系統的 c 語言,數據結構的語言程序 【問題描述】汽車租賃公司擁有若干種不同類別的汽車, 允許持有相應類別駕照的顧客租賃汽車,按照租賃的汽車類型和租賃的時間進行收費,租賃最長時間不能超過一周;若延遲歸還,則按延遲的時間進行罰金處理。其中,汽車信息包括:汽車編號、類別、收費標準、庫存數量、延遲歸還罰金標準; (汽車類別分為 A、 B、 C 三類,收費標準每天分別為: 400 、 300、 200 元,延遲歸還的罰金標準分別為:每天600 、 500 、 400 元。)顧客租賃信息包括:顧客編號、顧客名、駕照類別( A、 B 、 C 三類)、租賃的汽車編號、租賃天數、延遲歸還的天數)。主要

2、用到的知識點有:結構體、線性表、函數【基本要求】 設計一個汽車租賃管理系統,能夠完成以下功能:查詢并顯示汽車信息、顧客的租賃信息顧客租賃汽車: 首先檢查顧客駕照類別, 然后查詢相應類別的汽車數量, 若可租賃,則添加顧客信息、同時修改汽車庫存量。顧客歸還汽車:首先檢查歸還日期并計算費用,然后刪除該顧客的租賃信息表、修改汽車庫存量。系統以菜單的方式工作: 運行界面可選擇要執行的操作是查詢?租賃還是歸還?【測試數據】由讀者自行設定編譯器是 VC6 #include<stdio.h>#include<stdlib.h>#include<string.h>#defin

3、e MaxNum 20 typedef struct Aint No; /* 車輛編號 */char Type; /* 車類型 */int Payment;/* 租費 */int fine; /* 罰金 */struct A *next;/* 指向下一個結點 */ car;typedef struct Bint No; /*顧客編號 */char Name20; /* 顧客姓名 */char License; /* 執照類別 */ int carNo; /* 租憑的車輛編號*/int Day; /* 租的天數 */int DelayDay;/* 延遲的天數*/struct B *next; c

4、lient;struct C/* 這個結構體是車輛鏈表的頭結點 ,A,B,C 每種類型有一種 */char Type;/* 車輛型號 */int avl; /* 可用數 */car *head;/* 指向車輛結點 */ headNode3='A',MaxNum,NULL,'B',MaxNum,NULL,'C',MaxNum,NULL ;client *allClien=NULL;int pay3=400,300,200,fine3=600,500,400;void init();/* 初始化 */int menu();/* 簡單菜單界面*/voi

5、d search();/* 查詢 */void carSc(); /* 查詢車輛 */void clientSc();/* 查詢顧客 */void rent(); /* 租車 */void giveback();/* 還車 */void addCli(client *cli);/* 向顧客鏈表增加顧客*/client* delCli(int clientNo);/* 從顧客鏈表刪除一個顧客*/void addCar();/* 向車輛鏈表歸還車輛*/car* delCar();/* 從車輛鏈表拿出一輛車*/void Exit();/* 退出 */void main() init();while(

6、1)switch(menu()case 1:search();break;case 2:rent();break;case 3:giveback();break;case 4:Exit();default:;void init()int i;car*ptr,*pa=headNode0.head,*pb=headNode1.head,*pc=headNode2.head;for(i=1;i<=MaxNum;i+)ptr=(car *)malloc(sizeof(car);ptr->No=100+i;ptr->Type='A'ptr->Payment=400

7、;ptr->fine=600;pa=ptr;pa=ptr->next;ptr=ptr=(car *)malloc(sizeof(car);ptr->No=200+i;ptr->Type='B'ptr->Payment=300;ptr->fine=500;pb=ptr;pb=ptr->next;ptr=(car *)malloc(sizeof(car);ptr->No=300+i;ptr->Type='C'ptr->Payment=200;ptr->fine=400;pc=ptr;pc=ptr-&g

8、t;next;pa=NULL;pb=NULL;pc=NULL;int menu()int choice;printf("nnn 選擇服務 :1.查詢 2.租車 3.歸還 4.退出 n");scanf("%d",&choice);while(choice!=1&&choice!=2&&choice!=3&&choice!=4)printf("n 輸入有誤,重新輸入:");scanf("%d",&choice);return choice;void sea

9、rch()int choice;printf("n 你想查詢 :1.汽車2.顧客3.返回n");scanf("%d",&choice);while(choice!=1&&choice!=2&&choice!=3)printf("n 輸入有誤,重新輸入:");scanf("%d",&choice);switch(choice)case 1:carSc(); break;case 2:clientSc(); break;case 3: ;default:;void car

10、Sc()printf("nn 所有汽車信息 :n");printf("nA類汽車還剩d輛.nB類汽車還剩d輛.nC類汽車還剩d輛.”, headNode0.avl,headNode1.avl,headNode2.avl);void clientSc()client *ptr=allClien;printf("nn 所有顧客信息 :n");while(ptr!=NULL) printf("nn 顧客編號 :%d",ptr->No);printf("n顧客姓名:%s",ptr->Name);pri

11、ntf("n駕照類型:%c",ptr->License);printf("n租賃車號:%d",ptr->carNo);printf("n租賃天數:%d",ptr->Day);printf("n延遲天數:%d",ptr->DelayDay);ptr=ptr->next;void addCli(client *cli)if(allClien)allClien=cli;elsecli->next=allClien->next;allClien=cli;client* delCli

12、(int clientNo)client *ptr,*prePtr;ptr=allClien;while(ptr!=NULL&&ptr->No!=clientNo) prePtr=ptr;ptr=ptr->next;if(ptr!=NULL)if(ptr=allClien)allClien=NULL;elseprePtr->next=ptr->next;return ptr;void rent()char name20,type,Yes_No;int num,day,No;car *carPtr;client *cli;printf("nn 輸

13、入執照類型(A/B/C):");scanf("%c",&type);while(type!='A'&&type!='B'&&type!='C')printf("輸入有誤,重新輸入:");scanf("%c",&type);if(type='A')num=headNode0.avl;else if(type='B')num=headNode1.avl;elsenum=headNode2.avl;pri

14、ntf("n%c 類汽車還剩 %d 輛,是否要租憑(Y/N):",type,num);scanf("%c",&Yes_No);while(Yes_No!='Y'&&Yes_No!='N'&&Yes_No!='y'&&Yes_No!='n') printf("Y 或 N:");scanf("%c",&Yes_No);/* 增加顧客*/if(Yes_No='Y'|Yes_No=

15、'y')printf("n 輸入你的名字:");scanf("%s",name);printf("n 輸入你的租賃天數:");scanf("%d",&day);No=rand()%60+200;carPtr=delCar(type);cli=(client *)malloc(sizeof(client);cli->No=No;strcpy(cli->Name,name);cli->License=type;cli->carNo=carPtr->No;cli-&g

16、t;Day=day;cli->DelayDay=0;cli->next=NULL;addCli(cli);/* 移出一輛車*/printf("n 你的顧客編號是:%d",No);printf("n 你所租賃的汽車是%c 類車 ,車號是 :%d",type,carPtr->No);printf("n你的租賃天數是d大二day);void giveback()int No;long int payment;client *ptr;printf("nn 顧客編號 :");scanf("%d",

17、&No);if(ptr=delCli(No)=NULL)printf("n 該顧客不存在,無法歸還 !");elseswitch(ptr->License)case 1:payment=ptr->Day*400+ptr->DelayDay*600;break;case 2:payment=ptr->Day*300+ptr->DelayDay*500;break;case 3:payment=ptr->Day*200+ptr->DelayDay*400;break;default:;printf("nn 顧客姓名:%

18、s",ptr->Name);printf("n駕照類型:%c",ptr->License);printf("n租賃車號:%d",ptr->carNo);printf("n租賃天數:%d",ptr->Day);printf("n延遲天數:%d",ptr->DelayDay);printf("nn 所需費用:%ld",payment);addCar(ptr->License,ptr->carNo);free(ptr);void addCar(char carType,int carNo)car *ptr;int index=carType-65;ptr=headNodeindex.head;if(ptr=NULL)ptr=(car *)mal

溫馨提示

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

評論

0/150

提交評論