汽车租赁系统的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

提交评论