租車c語言
『壹』 汽車租賃系統的c語言,數據結構的語言程序
剛寫完,好累.還有很多bug,你看看會不會改,不行的話我有時間再幫你改.各位有什麼意見的也可以告訴我
編譯器是VC6
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MaxNum 20
typedef struct A{
int No; /*車輛編號*/
char Type; /*車類型*/
int Payment;/*租費*/
int fine; /*罰金*/
struct A *next;/*指向下一個結點*/
} car;
typedef struct B{
int No; /*顧客編號*/
char Name[20]; /*顧客姓名*/
char License; /*執照類別*/
int carNo; /*租憑的車輛編號*/
int Day; /*租的天數*/
int DelayDay;/*延遲的天數*/
struct B *next;
} client;
struct C{/*這個結構體是車輛鏈表的頭結點,A,B,C每種類型有一種*/
char Type;/*車輛型號*/
int avl; /*可用數*/
car *head;/*指向車輛結點*/
} headNode[3]={{'A',MaxNum,NULL},{'B',MaxNum,NULL},{'C',MaxNum,NULL}} ;
client *allClien=NULL;
int pay[3]={400,300,200},fine[3]={600,500,400};
void init();/*初始化*/
int menu();/*簡單菜單界面*/
void 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(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=headNode[0].head,*pb=headNode[1].head,*pc=headNode[2].head;
for(i=1;i<=MaxNum;i++)
{
ptr=(car *)malloc(sizeof(car));
ptr->No=100+i;
ptr->Type='A';
ptr->Payment=400;
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->next;
}
pa=NULL;pb=NULL;pc=NULL;
}
int menu()
{
int choice;
printf("\n\n\n選擇服務: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 search()
{
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 carSc()
{
printf("\n\n所有汽車信息:\n");
printf("\nA類汽車還剩%d輛.\nB類汽車還剩%d輛.\nC類汽車還剩%d輛.",
headNode[0].avl,headNode[1].avl,headNode[2].avl);
}
void clientSc()
{
client *ptr=allClien;
printf("\n\n所有顧客信息:\n");
while(ptr!=NULL)
{ printf("\n\n顧客編號:%d",ptr->No);
printf("\n顧客姓名:%s",ptr->Name);
printf("\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;
else
{
cli->next=allClien->next;
allClien=cli;
}
}
client* delCli(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;
}
else
{
prePtr->next=ptr->next;
}
}
return ptr;
}
void rent()
{
char name[20],type,Yes_No;
int num,day,No;
car *carPtr;
client *cli;
printf("\n\n輸入執照類型(A/B/C):");
scanf("%c",&type);
while(type!='A'&&type!='B'&&type!='C')
{
printf("輸入有誤,重新輸入:");
scanf("%c",&type);
}
if(type=='A')
num=headNode[0].avl;
else if(type=='B')
num=headNode[1].avl;
else
num=headNode[2].avl;
printf("\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=='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->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("\n\n顧客編號:");
scanf("%d",&No);
if((ptr=delCli(No))==NULL)
printf("\n該顧客不存在,無法歸還!");
else
{
switch(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("\n\n顧客姓名:%s",ptr->Name);
printf("\n駕照類型:%c",ptr->License);
printf("\n租賃車號:%d",ptr->carNo);
printf("\n租賃天數:%d",ptr->Day);
printf("\n延遲天數:%d",ptr->DelayDay);
printf("\n\n所需費用:%ld",payment);
addCar(ptr->License,ptr->carNo);
free(ptr);
}
}
void addCar(char carType,int carNo)
{
car *ptr;
int index=carType-65;
ptr=headNode[index].head;
if(ptr==NULL)
{ptr=(car *)malloc(sizeof(car));
headNode[index].head=ptr;
}
else
{while(ptr->next)
ptr=ptr->next;
ptr->next=(car *)malloc(sizeof(car));
ptr=ptr->next;
}
ptr->No=carNo;
ptr->Type=carType;
ptr->Payment= pay[index];
ptr->fine=fine[index];
ptr->next=NULL;
}
car* delCar(char type)
{
car *rentcar;
switch(type)
{
case 'A':rentcar=headNode[0].head;
headNode[0].head=rentcar->next;
break;
case 'B':rentcar=headNode[1].head;
headNode[1].head=rentcar->next;
break;
case 'C':rentcar=headNode[2].head;
headNode[2].head=rentcar->next;
break;
default:;
}
return rentcar;
}
void Exit()
{
printf("\n歡迎使用.....888888888886666....");
exit(0);
}
『貳』 C語言車租車問題
#include <stdio.h>
void main()
{
int km;float m;
printf(「please enter your distance.」);
scanf(「%d」,&km);
if(km<=8)m=10;
else if(km<=10)m=10+(km-8)*1.6;
else if(km<=15)m=10+3.2+(km-10)*2.5;
else m=10+3.2+12.5+(km-15)*3;
printf(「your should pay %d」,m);
}
『叄』 用C語言要寫,計程車收費,3公里內收5元,超3公里部分每公收1.2元。
#include<stdio.h>
intmain()
{
inta;
floatv;
scanf("%d",&a);
if(a<=3)v=5;
elsev=5+1.2*(v-3);
printf("%.1f ",v);
return0;
}
『肆』 求一汽車租賃的編程,用C語言(急……)
劉黎志老師知道
『伍』 用C語言編寫汽車租賃系統
考察點就是結構體,用數組或者鏈表都可以搞定。
我也可以幫你哈
『陸』 C語言編程:請編計程車計費程序
#include
"iostream"
using
namespace
std;
int
main()
{
int
index;
double
per;
double
qibu;
int
kilometre;
double
pay
=
0;
cout
<<"輸入里程數(公里):";
cin
>>
kilometre;
cout
<<"選擇車輛:1.桑塔納
2.夏利"<<endl;
cin>>index;
if(index==1)
{
per
=
2.7;
qibu
=
4;
}
else
{
per
=
2.1;
qibu=3;
}
if(kilometre>3)
pay
=
qibu
+
(kilometre-3)*per;
else
pay
=
qibu;
cout
<<"總價為:"<<pay<<endl;
return
0;
}
你也可以用結構數組來保存單價和起步費
『柒』 C語言編程:計程車計費
「每5分鍾按1公里租費」這里的1公里租費你沒有說清,我按照2元每公里算的,程序如下:
#include
"stdio.h"
int
main(int
argc,
char*
argv[])
{
int
length,time,sum;
start:
printf("請輸入行駛里程(公里):");
scanf("%d",&length);
printf("請輸入等待時間(分鍾):");
scanf("%d",&time);
if(length<0||time<0)
{
printf("行駛里程和等待時間不能為負數!\n");
goto
start;
}
else
if(length<=3)
{
sum=10;
}
else
if(length<=13)
{
sum=10+(length-3)*2;
}
else
sum=10+10*2+(length-13)*3;
sum=sum+(int)(time*(0.4));
//等待的每分鍾0.4元
printf("乘客應支付的車費(元):\t%d\n",sum);
return
0;
}
『捌』 C語言 計程車收費標准
#include<stdlib.h>
#include<stdio.h>
int main(void)
{
float money,road,time;
printf("input road and time:\n");
scanf("%f%f",&road,&time);//少了個 %號
if(road<=3)
money=10;
else if(road<=10)
money=10+2*(road-3)+time/5*2;
else
money=10+2*7+(road-10)*3+time/5*3;
printf(" money =%.0f\n ",money);//輸出 單位為元,不含小數
system("pause");
return 0;
}
『玖』 c語言編程 汽車租賃問題
親測可以運行 自己的課程設計 搞得很累 代碼如下我的課程設計 汽車租賃系統c語言
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MaxNum 20
typedef struct A{
int No; /*車輛編號*/
char Type; /*車類型*/
int Payment;/*租費*/
int fine; /*罰金*/
struct A *next;/*指向下一個結點*/
} car;
typedef struct B{
int No; /*顧客編號*/
char Name[20]; /*顧客姓名*/
char License; /*執照類別*/
int carNo; /*租憑的車輛編號*/
int Day; /*租的天數*/
int DelayDay;/*延遲的天數*/
struct B *next;
} client;
struct C{/*這個結構體是車輛鏈表的頭結點,A,B,C每種類型有一種*/
char Type;/*車輛型號*/
int avl; /*可用數*/
car *head;/*指向車輛結點*/
} headNode[3]={{'A',MaxNum,NULL},{'B',MaxNum,NULL},{'C',MaxNum,NULL}} ;
client *allClien=NULL;
int pay[3]={400,300,200},fine[3]={600,500,400};
void init();/*初始化*/
int menu();/*簡單菜單界面*/
void search();/*查詢*/
void carSc(); /*查詢車輛*/
void clientSc();/*查詢顧客*/
void rent(); /*租車*/
void giveback();/*還車*/
void addCli(client *cli);/*向顧客鏈表增加顧客*/
client* delCli(int clientNo);/*從顧客鏈表刪除一個顧客*/
void addCar(char carType,int carNo);
car* delCar(char type);
void Exit();/*退出*/
void main()
{
init();
while(1)
{
switch(menu())
{
case 1:search();break;
case 2:rent();break;
case 3:giveback();break;
case 4:Exit();
default:;
}
}
}
void init()
{
int i=0;
car *ptr,*pa,*pb,*pc;
headNode[0].head=NULL,headNode[1].head=NULL,headNode[2].head=NULL;
ptr=(car *)malloc(sizeof(car));
ptr->No=100;
ptr->Type='A'
ptr->Payment=400;
ptr->fine=600;
headNode[0].head=ptr;
pa=ptr;
pa->next=NULL;
for( i=1;i<20;i++){
ptr=(car *)malloc(sizeof(car));
ptr->No=100+i;
ptr->Type='A'
ptr->Payment=400;
ptr->fine=600;
pa->next=ptr;
pa=ptr;
pa->next=NULL;
}
free(ptr);
ptr=(car *)malloc(sizeof(car));
ptr->No=200;
ptr->Type='B'
ptr->Payment=300;
ptr->fine=500;
headNode[1].head=ptr;
pb=ptr;
pb->next=NULL;
for( i=1;i<20;i++){
ptr=(car *)malloc(sizeof(car));
ptr->No=200+i;
ptr->Type='A'
ptr->Payment=400;
ptr->fine=600;
pb->next=ptr;
pb=ptr;
pb->next=NULL;
}
free(ptr);
ptr=(car *)malloc(sizeof(car));
ptr->No=300;
ptr->Type='C'
ptr->Payment=200;
ptr->fine=400;
headNode[2].head=ptr;
pc=ptr;
pc->next=NULL;
for( i=1;i<20;i++){
ptr=(car *)malloc(sizeof(car));
ptr->No=300+i;
ptr->Type='A'
ptr->Payment=400;
ptr->fine=600;
pc->next=ptr;
pc=ptr;
pc->next=NULL;
}
free(ptr);
}
int menu()
{
int choice;
printf(" 選擇服務:1.查詢 2.租車 3.歸還 4.退出 ");
scanf("%d",&choice);
while(choice!=1&&choice!=2&&choice!=3&&choice!=4)
{
printf(" 輸入有誤,重新輸入:");
scanf("%d",&choice);
}
return choice;
}
void search()
{
int choice;
printf(" 你想查詢:1.汽車 2.顧客 3.返回 ");
scanf("%d",&choice);
while(choice!=1&&choice!=2&&choice!=3)
{
printf(" 輸入有誤,重新輸入:");
scanf("%d",&choice);
}
switch(choice)
{
case 1:carSc(); break;
case 2:clientSc(); break;
case 3: ;
default:;
}
}
void carSc()
{
printf(" 所有汽車信息: ");
printf(" A類汽車還剩%d輛. B類汽車還剩%d輛. C類汽車還剩%d輛.",
headNode[0].avl,headNode[1].avl,headNode[2].avl);
}
void clientSc()
{
client *ptr=allClien;
printf(" 所有顧客信息: ");
while(ptr!=NULL)
{ printf(" 顧客編號:%d",ptr->No);
printf(" 顧客姓名:%s",ptr->Name);
printf(" 駕照類型:%c",ptr->License);
printf(" 租賃車號:%d",ptr->carNo);
printf(" 租賃天數:%d",ptr->Day);
printf(" 延遲天數:%d",ptr->DelayDay);
ptr=ptr->next;
}
}
void addCli(client *cli)
{
if(allClien==NULL)
allClien=cli;
else
{
cli->next=allClien;
allClien=cli;
}
}
client* delCli(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;
}
else
{
prePtr->next=ptr->next;
}
}
return ptr;
}
void rent()
{
char name[20],type,Yes_No;
int num,day,No;
car *carPtr;
client *cli;
printf(" 輸入執照類型(A/B/C):");
scanf("%c",&type);
while(type!='A'&&type!='B'&&type!='C')
{
printf("輸入有誤,重新輸入:");
scanf("%c",&type);
}
if(type=='A')
num=headNode[0].avl;
else if(type=='B')
num=headNode[1].avl;
else
num=headNode[2].avl;
printf(" %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=='y')
{
printf(" 輸入你的名字:");
scanf("%s",name);
printf(" 輸入你的租賃天數:");
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->Day=day;
cli->DelayDay=0;
cli->next=NULL;
addCli(cli);
/*移出一輛車*/
printf(" 你的顧客編號是:%d",No);
printf(" 你所租賃的汽車是%c類車,車號是:%d",type,carPtr->No);
printf(" 你的租賃天數是%d天.",day);
}
void giveback()
{
int No;
long int payment;
client *ptr;
printf(" 顧客編號:");
scanf("%d",&No);
if((ptr=delCli(No))==NULL)
printf(" 該顧客不存在,無法歸還!");
else
{
switch(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(" 顧客姓名:%s",ptr->Name);
printf(" 駕照類型:%c",ptr->License);
printf(" 租賃車號:%d",ptr->carNo);
printf(" 租賃天數:%d",ptr->Day);
printf(" 延遲天數:%d",ptr->DelayDay);
printf(" 所需費用:%ld",payment);
addCar(ptr->License,ptr->carNo);
free(ptr);
}
}
void addCar(char carType,int carNo)
{
car *ptr;
int index=carType-65;
ptr=headNode[index].head;
if(ptr==NULL)
{ptr=(car *)malloc(sizeof(car));
headNode[index].head=ptr;
headNode[index].avl++;
}
else
{while(ptr->next)
ptr=ptr->next;
ptr->next=(car *)malloc(sizeof(car));
ptr=ptr->next;
headNode[index].avl++;
}
ptr->No=carNo;
ptr->Type=carType;
ptr->Payment= pay[index];
ptr->fine=fine[index];
ptr->next=NULL;
}
car* delCar(char type)
{
car *rentcar;
car *pp;
switch(type)
{
case 'A':
rentcar=headNode[0].head;
headNode[0].head=rentcar->next;
headNode[0].avl--;
break;
case 'B':rentcar=headNode[1].head;
headNode[1].head=rentcar->next;
headNode[1].avl--;
break;
case 'C':rentcar=headNode[2].head;
headNode[2].head=rentcar->next;
headNode[2].avl--;
break;
default:;
}
return rentcar;
}
void Exit()
{
printf(" 歡迎使用.....888888888886666....");
exit(0);
}
『拾』 用C語言寫一租車管理系統
這個太簡單了。。。我都不想說了。用雙向鏈表就可以輕松實現,自己花時間看一看《數據結構》吧。連腦子都不想動,還學個蛋蛋C語言....