汽车租赁管理系统

来源:互联网 发布:实时查询打车软件 编辑:程序博客网 时间:2024/04/28 13:33

①使用结构体数组输入至少5辆汽车信息

  (注意车辆状态最终存放到文件中,下次打开直接读取)

②车辆租借界面

根据车辆的状态显示不同的提示给用户

#include <stdio.h>void menu()   //建立系统菜单{    printf("\n\t\t\t欢迎租赁本公司的车辆\n\n");    printf("\t\t\t1.查询所有车辆\n\n");    printf("\t\t\t2.归还以租赁车辆\n\n");    printf("\t\t\t3.租借现有车辆\n\n");    printf("\t\t\t0.退出租赁系统\n\n");}//建立存放信息的结构体struct node{    int num,doing;    char carname[10],carnum[10],money[10],day[10],daymoney[10],;}INF[5];//输入车辆信息void input(struct node inf[5]){    int i;    FILE  *fp;   //定义文件指针    printf("\t\t\t租赁汽车公司系统\n\n");    printf("请输入汽车信息\n\n");    printf("0:以租出车辆   1:未租出车辆\n\n");    printf("|编号  |车型  |车牌号  |押金  |限制天数  |日租价  |当前状态\n");    printf("-----------------------------------------------------------\n");    if((fp = fopen("E:\\ABC.txt","wb")) == NULL)    {        printf("Cannot open file !\n");        return;    }    for(i = 0;i < 5;i++)    {        scanf("%d %s %s %s %s %s %d",&inf[i].num,inf[i].carname,inf[i].carnum,inf[i].money,inf[i].day,inf[i].daymoney,&inf[i].doing);    }    fwrite(inf,sizeof(struct node),5,fp);    rewind(fp);}//读取信息int Read(){    FILE  *fp;     if((fp = fopen("E:\\ABC.txt","rb")) == NULL)    {        return -1;    }else    {        fread(INF,sizeof(struct node),5,fp);        return 1;    }}//查询车辆信息功能void putout(struct node inf[5]){    int i;    printf("\n\n                        库存车辆信息总览\n\n\n");    printf("   |编号  |车型    |车牌号    |押金  |限制天数  |日租价  |当前状态\n");    printf("   ----------------------------------------------------------------\n");     for(i = 0;i < 5;i++)    {       printf("   %d     %s   %s    %s      %s       %s      ",inf[i].num,inf[i].carname,inf[i].carnum,inf[i].money,inf[i].day,inf[i].daymoney);        if(INF[i].doing == 1)            printf("未租出\n");        else            printf("以租出\n");    }    printf("\n\n");}//归还已租车辆函数void Return(int iNum){    if(INF[iNum].doing == 1)    {        printf("\n该车未出租\n\n");    }else    {        INF[iNum].doing = 1;        printf("   |编号  |车型    |车牌号    |押金  |限制天数  |日租价  |当前状态\n");        printf("   ----------------------------------------------------------------\n");        printf("   %d     %s   %s    %s      %s       %s      ",INF[iNum].num,INF[iNum].carname,INF[iNum].carnum,INF[iNum].money,INF[iNum].day,INF[iNum].daymoney);        printf("未租出\n\n");        printf("操纵成功…………\n");    }}//租借车辆函数void borrow(int iNum){    if(INF[iNum].doing == 0)    {        printf("\n该车已被租借\n");    }else    {        INF[iNum].doing = 0;        printf("   |编号  |车型    |车牌号    |押金  |限制天数  |日租价  |当前状态\n");        printf("   ----------------------------------------------------------------\n");        printf("   %d     %s   %s    %s      %s       %s      ",INF[iNum].num,INF[iNum].carname,INF[iNum].carnum,INF[iNum].money,INF[iNum].day,INF[iNum].daymoney);        printf("以租出\n\n");        printf("操纵成功…………\n");    }}int main(){    int choose = 0;    int fist;    fist = Read();
/*此处为本程序中重要的部分,
  通过fist来判断是否是第一次登录,如果是
第一次登录,则调用input函数,建立一个新文件,
如果是是第>1次登录,则直接读出文件内容
*/
    if(fist == -1)     {        printf("这是您第一次登录系统\n");        input(INF);        Read();    }    while(1)    {        menu();        int inum;        printf("\t\t\t请输入您所需的服务编号: ");        scanf("%d",&choose);        if(choose == 1)  //查询所有车辆函数        {            putout(INF);        }else if(choose == 2)  //归还租赁车辆        {            printf("请输入归还车辆编号: ");            scanf("%d",&inum);            Return(inum);        }else if(choose == 3)  //租借现有车辆        {            printf("请输入租借车辆编号: ");            scanf("%d",&inum);            borrow(inum);        }else if(choose == 0)  //退出租赁系统        {             printf("\n\n\t\t\t欢迎下次再来\n");             break;        }    }    return 0;}



本程序缺陷:只能输入五组汽车的信息,不能输入>5组的信息。

用到知识:

      1.结构体
      2.文件