c语言编程 汽车租赁问题

c语言编程 汽车租赁问题,第1张

亲测可以运行 自己的课程设计  搞得很累 代码如下我的课程设计 汽车租赁系统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=1i<20i++){ 

            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=1i<20i++){ 

            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=1i<20i++){ 

            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("\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==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("\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*600break 

       case 2:payment=ptr->Day*300+ptr->DelayDay*500break 

       case 3:payment=ptr->Day*200+ptr->DelayDay*400break 

       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 

       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("\n欢迎使用.....888888888886666....") 

   exit(0) 

}

要点有很多,而且都是必不可少的,很多东西之间都是相互衔接的,你需要的是找一个又稳定又 *** 作起来容易上手的汽车租赁管理系统,因为 *** 作起来很麻烦的话,也不适合于公司员工的办公,如果不稳定的话也会耽误很多事,设置出现租赁上的错误,造成极大的损失,所以,这些东西必须要考虑到的,汽车租赁系统是汽车租赁公司的办公系统,包括从车辆的购置预算,审核购置,车辆预定,合同签订,车辆交接,收款结算,车辆维修,保险,违章车辆处置等业务。汽车租赁系统是基于Internet互联网、ERP、GPS及数据库技术开发的软件,实现汽车租赁行业全业务流程的信息化。其中,迪蒙汽车租赁系统软件后台由车辆信息管理、租赁业务管理、车辆服务管理、财务管理、客户管理、统计管理、线下门店管理和系统管理八大模块组成。其中车辆信息管理系统业务模块,包括车辆管理、租金设置、车辆调度和车辆优惠管理四大模块。租赁业务管理系统业务模块,包括汽车租赁业务设置、订单管理、车辆预定管理、订单变更管理、车辆续租管理、出/还车管理、押金管理、合同管理等各种业务管理功能等等。

谢谢!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6935365.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存