c语言汽车租赁系统实验报告,汽车租赁系统的c语言,数据结构的语言程序
刚写完,好累。还有很多bug,你看看会不会改,不行的话我有时间再帮你改。各位有什么意见的也可以告诉我
编译器是VC6
#include
#include
#include
#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;iNo=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("
选择服务: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)
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("
输入执照类型(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()` 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; }
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("
欢迎使用。
。。。。888888888886666。。。。");
exit(0);
}。
全部
c语言汽车租赁系统实验报告,汽车租赁系统的c语言,数据结构的语言程序相关推荐
- matlab信号系统实验报告,信号与系统 MATLAB实验报告
信号与系统 MATLAB 实验报告 <信号与系统>MATLAB 实验报告 院系: 专业: 年级: 班号: 姓名: 学号: 实验时间: 实验地点: 实验一 连续时间信号的表示及可视化 实验题 ...
- 用C语言学生成绩数据库排序功能设计,[c语言学生成绩管理系统]C语言学生成绩管理系统实验报告...
篇一 : C语言学生成绩管理系统实验报告 实 验 四:结构体(6学时) 实验目的: 1.更加灵活的使用数组作为函数参数: 2.初步掌握开发一个小型实用系统的基本方法: 3.初步掌握书写程序设计开发文档 ...
- c语言飞机票实验报告格式,c语言航班信息查询系统实验报告
<c语言航班信息查询系统实验报告>由会员分享,可在线阅读,更多相关<c语言航班信息查询系统实验报告(21页珍藏版)>请在人人文库网上搜索. 1.希昌丸會软件学院大作业任务书题目 ...
- c语言课设航班信息管理软件管理系统,c语言航班信息查询系统实验报告.doc
c语言航班信息查询系统实验报告.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...
- c语言程序设计航空查询系统,c语言航班信息查询系统实验报告.doc
c语言航班信息查询系统实验报告 PAGE 13 - 软件学院大作业任务书 题 目:航班信息查询系统 专 业: 班 级: 姓 名: 学 号: 完成人数: 起讫日期: 任课教师: 职称: 讲师 部分管主任 ...
- c语言链表做歌手比赛系统,大型实验报告(歌手比赛系统)
<大型实验报告(歌手比赛系统)>由会员分享,可在线阅读,更多相关<大型实验报告(歌手比赛系统)(5页珍藏版)>请在人人文库网上搜索. 1.呀歩垂不主邂目蜃轨运(Z)SIO乙/讥 ...
- 杭电c语言课程设计短学期第七次作业,杭电短学期数字电子钟整点报时系统实验报告...
杭电数字电子钟整点报时系统实验报告 链接: http://pan.杭电baidu.杭电com杭电/s杭电/1nuxwOdz 密杭电码: k4yy 1. 自主设计: 1.1选题目的 数字电子钟是一种用数 ...
- c语言课题设计字符串处理函数报告,C语言输入输出库函数设计实验报告.doc
C语言输入输出库函数设计实验报告 第 PAGE \* MERGEFORMAT I页 共 SECTIONPAGES \* MERGEFORMAT 1页 华中科技大学计算机科学与技术学院 C语言课程设计报 ...
- 《c语言程序设计》实验(上机)报告,《c语言程序设计》上机实验报告要求
<c语言程序设计>上机实验报告要求 1. 实验环境: 软件系统:使用的软件环境 硬件系统:机型说明 2. 实验目的:掌握如何编辑.编译.链接调试运行c程序 3. 实验内容: (1) 掌握顺 ...
- java学生考勤系统实验报告,程序设计实验报告学生考勤系统).doc
程序设计实验报告学生考勤系统) C语言程序设计 课程报告 所在学院计算机科学学院所在班级计算机科学与技术1班 小组成员XX(组长) XXX(副组长) XXX(组员) XXX(组员) 指导老师XXX X ...
最新文章
- 如何在修改checkbox状态,不触发事件
- Spring Boot使用maven打包成jar后将依赖jar一起打进jar文件
- php和java语言_JAVA语言和PHP语言的比较
- Python - 按天算年龄
- Linux du指令
- mysql触发器新元组_MySQL触发器-条件触发器语法
- 推荐几个在大厂996,却一心想要按时下班的公众号主和他们的工作(摸鱼)心得...
- 导入了jar包但是无法import方法
- VS开发中,常见编译问题解决方案
- 幅频特性和相频特性的物理意义
- edk2中的全局变量gST和gBS
- 信息 按顺序打印commit_Git 工作流,看这一篇就够了
- 计算机桌面分页,你的电脑桌面还会一团糟吗?这款软件可以帮你整理文件
- Rhythmbox中mp3中文乱码问题
- 人工智能计算机技术图片,这是人工智能眼中它自己的样子
- 华为27asph是什么型号_华为官宣新增P40 Pro+等27款机型支持换原装电池,有你的手机吗?...
- 网络游戏服务器端架构设计
- windows画图板 ESL转RGB 实现区间渐变色
- (Swift)Missing argument for parameter #1 in call
- 如何进行自媒体创业?你是否能把握住,短视频都有哪些变现方式?