汽车租赁系统的c语言_第1页
汽车租赁系统的c语言_第2页
汽车租赁系统的c语言_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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>#defineMaxNum20typedefstructAintNo;/*

3、车辆编号*/charType;/*车类型*/intPayment;/*租费*/intfine;/*罚金*/structA*next;/*指向下一个结点*/car;typedefstructBintNo;/*顾客编号*/charName20;/*顾客姓名*/charLicense;/*执照类别*/intcarNo;/*租凭的车辆编号*/intDay;/*租的天数*/intDelayDay;/*延迟的天数*/structB*next;client;structC/*这个结构体是车辆链表的头结点,A,B,C每种类型有一种*/charType;/*车辆型号*/intavl;/*可用数*/car*hea

4、d;/*指向车辆结点*/headNode3='A',MaxNum,NULL,'B',MaxNum,NULL,'C',MaxNum,NULL;client*allClien=NULL;intpay3=400,300,200,fine3=600,500,400;voidinit();/*初始化*/intmenu();/*简单菜单界面*/voidsearch();/*查询*/voidcarSc();/*查询车辆*/voidclientSc();/*查询顾客*/voidrent();/*租车*/voidgiveback();/*还车*/voidaddCl

5、i(client*cli);/*向顾客链表增加顾客*/client*delCli(intclientNo);/*从顾客链表删除一个顾客*/voidaddCar();/*向车辆链表归还车辆*/car*delCar();/*从车辆链表拿出一辆车*/voidExit();/*退出*/voidmain()init();while(1)switch(menu()case1:search();break;case2:rent();break;case3:giveback();break;case4:Exit();default:;voidinit()(inti;car*ptr,*pa=headNode0.

6、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;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->

7、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;intmenu()(intchoice;printf("nnn选择服务:1.查询2.租车3.归还4.退出n");scanf("%d",&choice);while(choice!=

8、1&&choice!=2&&choice!=3&&choice!=4)(printf("n输入有误,重新输入:");scanf("%d",&choice);returnchoice;voidsearch()(intchoice;printf("n你想查询:1.汽车2.顾客3.返回n");scanf("%d",&choice);while(choice!=1&&choice!=2&&choice!=3)(printf(&q

9、uot;n输入有误,重新输入:");scanf("%d",&choice);switch(choice)(case1:carSc();break;case2:clientSc();break;case3:;default:;voidcarSc()(printf("nn所有汽车信息:n");printf("nA类汽车还剩%d辆.nB类汽车还剩%d辆.nC类汽车还剩%d辆.",headNode0.avl,headNode1.avl,headNode2.avl);voidclientSc()(client*ptr=allC

10、lien;printf("nn所有顾客信息:n");while(ptr!=NULL)(printf("nn顾客编号: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->Dela

11、yDay);ptr=ptr->next;voidaddCli(client*cli)(if(allClien)allClien=cli;else(cli->next=allClien->next;allClien=cli;client*delCli(intclientNo)(client*ptr,*prePtr;ptr=allClien;while(ptr!=NULL&&ptr->No!=clientNo)(prePtr=ptr;ptr=ptr->next;if(ptr!=NULL)(if(ptr=allClien)(allClien=NULL;e

12、lse(prePtr->next=ptr->next;returnptr;voidrent()(charname20,type,Yes_No;intnum,day,No;car*carPtr;client*cli;printf("nn输入执照类型(A/B/C):");scanf("%c”,&type);while(type!='A'&&type!='B'&&type!='C')(printf("输入有误,重新输入:");scanf("%

13、c",&type);if(type='A')num=headNode0.avl;elseif(type='B')num=headNode1.avl;elsenum=headNode2.avl;printf("n%c类汽车还剩%d辆,是否要租凭(Y/N):",type,num);scanf("%c”,&Yes_No);while(Yes_No!='Y'&&Yes_No!='N'&&Yes_No!='y'&&Yes_

14、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

15、(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天.&qu

16、ot;,day);voidgiveback()intNo;longintpayment;client*ptr;printf("nn顾客编号:");scanf("%d",&No);if(ptr=delCli(No)=NULL)printf("n该顾客不存在,无法归还!");elseswitch(ptr->License)case1:payment=ptr->Day*400+ptr->DelayDay*600;break;case2:payment=ptr->Day*300+ptr->DelayDay

17、*500;break;case3:payment=ptr->Day*200+ptr->DelayDay*400;break;default:;printf("nn顾客姓名:s",ptr->Name);printf("n驾照类型:%c",ptr->License);printf("n租赁车号:d",ptr->carNo);printf("n租赁天数:d",ptr->Day);printf("n延迟天数:d",ptr->DelayDay);printf(&q

18、uot;nn所需费用:%ld",payment);addCar(ptr->License,ptr->carNo);free(ptr);voidaddCar(charcarType,intcarNo)car*ptr;intindex=carType-65;ptr=headNodeindex.head;if(ptr=NULL)ptr=(car*)malloc(sizeof(car);headNodeindex.head=ptr;elsewhile(ptr->next)ptr=ptr->next;ptr->next=(car*)malloc(sizeof(car);ptr=ptr->next;ptr->No=carNo;ptr->Type=carType;ptr->Payment=payindex;ptr->fine=fineindex;ptr->next=NULL;car*delCar(chartype)car*rentcar;switch(type)(case'A':rentca

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论