中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言如何實現單位車輛調度管理

發布時間:2022-03-15 16:47:22 來源:億速云 閱讀:136 作者:iii 欄目:開發技術

本篇內容主要講解“C語言如何實現單位車輛調度管理”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C語言如何實現單位車輛調度管理”吧!

單位車輛信息包括:車牌號、車型、載重(客)量,車牌,生產廠家,出廠日期,購買日期,購買單價等;車輛調度信息還應包括:用車人,用車單位,調度人,出車車牌,出車司機,出車用途,出車日期,出車時間,收車日期,收車時間及出車費用等信息等。設計“車輛調度管理系統”,使之能提供以下功能:

系統以菜單方式工作;

車輛調度信息錄入功能(車輛調度信息用文件vehicle.txt保存);

車輛信息及車輛調度信息瀏覽功能;

車輛調度查詢和排序功能: 

車輛信息及車輛調度信息的刪除與修改等功能。

代碼如下,完全原創,代碼功能完整!!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
 
int feature;//定義輸入的功能選項
char now_date[12];//定義系統當前日期存儲緩沖區
SYSTEMTIME sys; //定義系統時間變量
 
//定義車輛數據結構
typedef struct Vehicle
{
    char *ver_id;//定義車輛編號
    char *ver_no;//定義車輛牌號
    char *weight;//定義車輛對應載重量
    char *ver_trand;//定義車牌
    char *factory;//定義車輛生產廠家
    char *outdate;//定義車輛出廠日期
    char *buydate;//定義車輛購買日期
    char *section;//定義車輛調用單位
    char *purpose;//定義車輛出車用途
    char *usedate;//定義車輛出車日期
    char *usetime;//定義車輛調度時長
    char *useprice;//定義車輛出車費用
    char *price;//定義車輛購買單價
    char *ver_type;//定義車輛類型
    char *ver_status;//定義車輛狀態
    char *state;//定義車輛運營狀態
    char *service;//定義車輛維修情況
    char *violation;//定義車輛違章情況
    char *ver_last_date;//定義車輛歸還日期
    char *lender_name;//定義租車人姓名
    char *lender_id;//定義租車人身份證號碼
    char *return_time;//定義歸還時間
}Vehicle,*VData;
 
//定義車輛鏈表
typedef struct VNode
{
    Vehicle data;
    struct VNode *next;
}VNode,*VehicleList;
 
//聲明函數
VehicleList select_vehicle(VehicleList L, char * key);//定義車輛查詢函數
VehicleList InitList(VehicleList L);//定義鏈表初始化函數
VehicleList LoadData(VehicleList L, char *filename);//定義信息讀取函數
void SaveData(VehicleList L, char *filename);//定義存儲數據函數
int main_menu();//定義主菜單
int dispatch(VehicleList L, char *lender_name, char *lender_id, char *return_time, char *section,char *purpose,
             char *usedate,char *useprice,char *usetime);//定義車輛調度函數
void back_vehicle(VehicleList L, char * key, char *lender_name, char *lender_id);//定義車輛歸還函數
void list_all(VehicleList L);//定義車輛總覽函數
VehicleList select_vehicle(VehicleList L, char * key);//定義車輛查詢函數
VehicleList register_vehicle(VehicleList L);//定義車輛登記函數
void delete_vehicle(VehicleList L, char * key);//定義車輛刪除函數
int datecmp(char *a,char *b);//定義日期比較函數
int quit();//定義退出函數
char *getS();
 
//定義字符串輸入接口函數
char *getS()
{
    char *c;
    char s[30];
    scanf("%s",s);
    c=(char*)malloc(sizeof(char)*(strlen(s)+1));
    strcpy(c,s);
    return c;
}
 
//定義鏈表初始化函數
VehicleList InitList(VehicleList L)
{
    L=(VehicleList)malloc(sizeof(VNode));
    L->next=NULL;
    return L;
}
 
//定義比較日期大小函數
int datecmp(char *a,char *b)
{
    int i;
    for(i=0;i<11;i++)
    {
        if(a[i]>b[i])
            return 1;
        else if(a[i]==b[i])
            continue;
        else
            return -1;
 
    }
    return 0;
}
 
//定義從文件加載數據函數
VehicleList LoadData(VehicleList L,char *filename)
{
    VehicleList p,q;
    //Vehicle v,v2,v3;
    Vehicle vdata;
    FILE *fp;//定義文件指針
    char ver_id[20],ver_no[20],weight[20],ver_trand[20],factory[20],outdate[20];
    char buydate[20],price[20],ver_type[20],ver_status[20],ver_date[20],usetime[20];
    char section[20],purpose[20],usedate[20],useprice[20];
    char state[20],service[20],violation[20];
    char lender_name[20],lender_id[20],return_time[20];
    q=L;
    if((fp = fopen(filename,"r+")) == NULL)
    {
        printf("文件數據讀取失敗!\n");
    }
    else
    {
        while (!feof(fp))//將文件中數據讀取到鏈表中
        {
            fscanf(fp,"%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\r\n",
                   ver_id,ver_no,weight,ver_trand,factory,outdate,buydate,price,ver_type,ver_status,
                   ver_date,purpose,usedate,usetime,useprice,state,service,violation,
                   lender_name,lender_id,return_time);
            vdata.ver_id=(char*)malloc(sizeof(char)*(strlen(ver_id)+1));
            vdata.ver_no=(char*)malloc(sizeof(char)*(strlen(ver_no)+1));
            vdata.weight=(char*)malloc(sizeof(char)*(strlen(weight)+1));
            vdata.ver_trand=(char*)malloc(sizeof(char)*(strlen(ver_trand)+1));
            vdata.factory=(char*)malloc(sizeof(char)*(strlen(factory)+1));
            vdata.outdate=(char*)malloc(sizeof(char)*(strlen(outdate)+1));
            vdata.buydate=(char*)malloc(sizeof(char)*(strlen(buydate)+1));
            vdata.price=(char*)malloc(sizeof(char)*(strlen(price)+1));
            //vdata.section=(char*)malloc(sizeof(char)*(strlen(section)+1));
            vdata.purpose=(char*)malloc(sizeof(char)*(strlen(purpose)+1));
            vdata.usedate=(char*)malloc(sizeof(char)*(strlen(usedate)+1));
            vdata.usetime=(char*)malloc(sizeof(char)*(strlen(usetime)+1));
            vdata.useprice=(char*)malloc(sizeof(char)*(strlen(useprice)+1));
            vdata.ver_type=(char*)malloc(sizeof(char)*(strlen(ver_type)+1));
            vdata.state=(char*)malloc(sizeof(char)*(strlen(state)+1));
            vdata.service=(char*)malloc(sizeof(char)*(strlen(service)+1));
            vdata.violation=(char*)malloc(sizeof(char)*(strlen(violation)+1));
            vdata.ver_status=(char*)malloc(sizeof(char)*(strlen(ver_status)+1));
            vdata.ver_last_date=(char*)malloc(sizeof(char)*(strlen(ver_date)+1));
            vdata.lender_name=(char*)malloc(sizeof(char)*(strlen(lender_name)+1));
            vdata.lender_id=(char*)malloc(sizeof(char)*(strlen(lender_id)+1));
            vdata.return_time=(char*)malloc(sizeof(char)*(strlen(return_time)+1));
            strcpy(vdata.ver_id,ver_id);
            strcpy(vdata.ver_no,ver_no);
            strcpy(vdata.weight,weight);
            strcpy(vdata.ver_trand,ver_trand);
            strcpy(vdata.factory,factory);
            strcpy(vdata.outdate,outdate);
            strcpy(vdata.buydate,buydate);
            strcpy(vdata.price,price);
            strcpy(vdata.purpose,purpose);
            strcpy(vdata.usedate,usedate);
            strcpy(vdata.usetime,usetime);
            strcpy(vdata.useprice,useprice);
            strcpy(vdata.ver_type,ver_type);
            strcpy(vdata.ver_status,ver_status);
            strcpy(vdata.state,state);
            strcpy(vdata.service,service);
            strcpy(vdata.violation,violation);
            strcpy(vdata.ver_last_date,ver_date);
            strcpy(vdata.lender_name,lender_name);
            strcpy(vdata.lender_id,lender_id);
            strcpy(vdata.return_time,return_time);
            p=(VehicleList)malloc(sizeof(VNode));
            p->data=vdata;
            q->next=p;
            q=p;
        }
        fclose(fp);
    }
    q->next=NULL;
    return L;
 
}
//定義存儲數據函數
void SaveData(VehicleList L, char *filename)
{
    VehicleList p;
    FILE *fp;//定義文件指針
    p=L;
 
    if((fp = fopen(filename,"w+")) == NULL)
    {
        printf("文件寫入失敗!\n");
    }
    else
    {
        while (p->next != NULL)
        {
            fprintf(fp,"%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\r\n",p->next->data.ver_id,
                    p->next->data.ver_no,p->next->data.weight,p->next->data.ver_trand,p->next->data.factory,
                    p->next->data.outdate,p->next->data.buydate,p->next->data.price,
                    p->next->data.usedate,p->next->data.useprice,
                    p->next->data.ver_type,p->next->data.ver_status,p->next->data.usetime,
                    p->next->data.state,p->next->data.service,p->next->data.violation,
                    p->next->data.ver_last_date,p->next->data.lender_name,
                    p->next->data.lender_id,p->next->data.return_time);
            p=p->next;
        }
    }
 
    fclose(fp);
 
}
 
 
//定義主菜單
int main_menu()
{
    int i;
    printf("******************************************************\n");
    printf("*                     汽車調度程序                   *\n");
    printf("*                                         韓力毅     *\n");
    printf("******************************************************\n");
    printf("*                      1.汽車調度                    *\n");
    printf("*                      2.汽車歸還                    *\n");
    printf("*                      3.車輛總況一覽                *\n");
    printf("*                      4.車輛查詢                    *\n");
    printf("*                      5.新車登記                    *\n");
    printf("*                      6.車輛注銷                    *\n");
    printf("*                      7.退出系統                    *\n");
    printf("******************************************************\n");
    printf("*                      請選擇: 1-7                   *\n");
    printf("******************************************************\n");
    printf("請輸入您的選項:");
    scanf("%d", &i);
    feature=i;
    return i;
}
 
//定義功能1--汽車調度
int dispatch(VehicleList L, char *lender_name, char *lender_id, char *return_time, char *section,char *purpose,
             char *usedate,char *useprice,char *usetime)
{
    char *vtype,*vid;//車型
    VehicleList p,q1,q2;
    char tmpdate[20];
    int i=0;
    p=L;
    q1=L;
    q2=L;
    strcpy(tmpdate,now_date);
    printf("\n請選擇您需要的車型(A.大型車 B.中型車 C.小型車 E.返回主菜單 請輸入大寫字母!):");
    vtype = getS();
    if (strcmp("E",vtype) == 0) return 0;//如果輸入E,返回主菜單
    printf("\n*************************************本次出車費用為200元*************************************\n");
    printf("\n****************************************可選車輛列表******************************************");
    printf("\n車輛編號   車牌號  載重量  車牌  車輛類型    車輛狀態    上次出車時間(DDYYMM)\n");
    while (L->next != NULL)
    {//顯示符合條件的在庫車輛信息
        if (strcmp("出車中",L->next->data.ver_status) !=0 && strcmp(vtype,L->next->data.ver_type) ==0)
        {
            if(datecmp(tmpdate,L->next->data.ver_last_date) > -1)//調用比較未調度時間的函數
            {
                q1=L;//獲得最長時間沒有被調度的車的節點指針
                strcpy(tmpdate,q1->next->data.ver_last_date);
            }
 
            printf("%6s %10s %-10s %3s %8s %13s %15s\n",
                   L->next->data.ver_id,L->next->data.ver_no,L->next->data.weight,L->next->data.ver_trand,L->next->data.ver_type,
                   L->next->data.ver_status,L->next->data.ver_last_date);
        }
        if (strcmp("NEW",L->next->data.ver_last_date) ==0 && strcmp(vtype,L->next->data.ver_type) ==0)
        {
            i++;//計算新車數量
            q2=L;//獲得新車的節點指針
        }
 
        L=L->next;
    }
    L=p;
    printf("**************************************************************************\n");
    printf("請輸入車輛編號或輸入W智能篩選(輸入E返回主菜單):");
    vid = getS();
    if (strcmp("W",vid) == 0)
    {
        if(i>0)
        {
            printf("\n****************************************車輛調度結果****************************************");
            printf("\n已調出車輛:%s,載重量:%s,車牌:%s,出車日期:%s\n",q2->next->data.ver_id,q2->next->data.weight,q2->next->data.ver_trand,now_date);
            printf("**********************************************************************************************\n");
            q2->next->data.ver_status="出車中";//修改車輛狀態和上次出車時間
            q2->next->data.ver_last_date=(char*)malloc(sizeof(char)*(strlen(now_date)+1));
            strcpy(q2->next->data.ver_last_date,now_date);
            strcpy(q2->next->data.lender_name,lender_name);
            strcpy(q2->next->data.lender_id,lender_id);
            strcpy(q2->next->data.return_time,return_time);
            strcpy(q2->next->data.section,section);
            strcpy(q2->next->data.purpose,purpose);
            strcpy(q2->next->data.usedate,usedate);
            strcpy(q2->next->data.useprice,useprice);
            strcpy(q2->next->data.usetime,usetime);
            return 1;
 
        }
        else
        {
            printf("\n****************************************車輛調度結果****************************************");
            printf("\n已調出車輛:%s,載重量:%s,車牌:%s,出車日期:%s\n",q1->next->data.ver_id,q1->next->data.weight,q1->next->data.ver_trand,now_date);
            printf("**********************************************************************************************\n");
            q1->next->data.ver_status="出車中";//修改車輛狀態和上次出車時間
            q1->next->data.ver_last_date=(char*)malloc(sizeof(char)*(strlen(now_date)+1));
            strcpy(q1->next->data.ver_last_date,now_date);
            strcpy(q1->next->data.lender_name,lender_name);
            strcpy(q1->next->data.lender_id,lender_id);
            strcpy(q1->next->data.return_time,return_time);
            strcpy(q2->next->data.section,section);
            strcpy(q2->next->data.purpose,purpose);
            strcpy(q2->next->data.usedate,usedate);
            strcpy(q2->next->data.useprice,useprice);
            strcpy(q2->next->data.usetime,usetime);
            return 1;
 
        }
 
    }
    else if ((p=select_vehicle(L,vid)) != NULL)
    {
        p->next->data.ver_status="出車中";//修改車輛狀態和上次出車時間
        p->next->data.ver_last_date=(char*)malloc(sizeof(char)*(strlen(now_date)+1));
        strcpy(p->next->data.ver_last_date,now_date);
        strcpy(p->next->data.lender_name,lender_name);
        strcpy(p->next->data.lender_id,lender_id);
        strcpy(p->next->data.return_time,return_time);
        strcpy(q2->next->data.section,section);
        strcpy(q2->next->data.purpose,purpose);
        strcpy(q2->next->data.usedate,usedate);
        strcpy(q2->next->data.useprice,useprice);
        strcpy(q2->next->data.usetime,usetime);
        printf("\n****************************************車輛調度結果****************************************");
        printf("\n已調出車輛:%s,載重量:%s,車牌:%s,出車日期:%s\n",p->next->data.ver_id,p->next->data.weight,p->next->data.ver_trand,now_date);
        printf("**********************************************************************************************\n");
        return 1;
    }
    else if (strcmp("E",vid) == 0)
    {
        return 0;
    }
    else
    {
        printf("輸入錯誤,請返回!\n");
        return 4;
    }
    return 4;
}
 
//定義功能2--汽車歸還
void back_vehicle(VehicleList L, char * key, char *lender_name,
                  char *lender_id)
{
    VehicleList p;
    if ((p=select_vehicle(L,key)) != NULL)
    {
        if (strcmp(lender_name,p->next->data.lender_name) == 0 &&
            strcmp(lender_id,p->next->data.lender_id) == 0)//姓名和身份證號輸入正確才可還車
        {
            if (datecmp(now_date,p->next->data.return_time) < 1)//如果實際歸還時間超出預定歸還時間,提示到服務臺辦理
            {
                p->next->data.ver_status="可調出";//恢復車輛狀態及租車人信息為初始狀態
                p->next->data.lender_name="N/A";
                p->next->data.lender_id="N/A";
                p->next->data.return_time="N/A";
                printf("\n汽車歸還成功!\n\n");
            }
            else
            {
                printf("\n歸還失敗,您的車輛已超期,請到總服務臺辦理超期還車手續!\n\n");
            }
        }
        else
        {
            printf("\n租車人姓名或身份證號輸入有誤!\n\n");
        }
 
    }else{
        printf("\n沒有查詢到編號為:%s的車輛信息!\n\n",key);
    }
 
}
 
//定義功能3--車輛總況一覽
void list_all(VehicleList L)
{
    printf("\n車輛編號  車 牌 號  載重量  車 牌  生產廠家  出 廠 日 期  購 買 日 期  購買單價  車型  車輛狀態  車輛運營狀態  車輛維修情況  車輛違章情況  上次出車時間  租車人姓名  計劃歸還時間\n");
    while (L->next != NULL)
    {
        //顯示所有已登記車輛信息
        //if(strcmp("出車中",L->next->data.ver_status) !=0)
        printf("%6s %10s %6s %8s %9s %11s %12s %9s %4s %10s %10s %12s %13s %13s %18s %14s\n",
               L->next->data.ver_id,L->next->data.ver_no,L->next->data.weight,
               L->next->data.ver_trand,L->next->data.factory,
               L->next->data.outdate,L->next->data.buydate,L->next->data.price,
               L->next->data.ver_type,L->next->data.ver_status,L->next->data.state,
               L->next->data.service,L->next->data.violation,L->next->data.ver_last_date,
               L->next->data.lender_name,L->next->data.return_time);
        L=L->next;
    }
    printf("\n");
    system("pause");
}
 
//定義功能4--車輛查詢
VehicleList select_vehicle(VehicleList L, char * key)
{
    VehicleList p;
    p=L;
    while (p->next != NULL)
    {
        //如果查找到符合條件的車輛信息,則返回這個車輛信息節點的指針,strcmp,字符串比較函數
        if (strcmp(key,p->next->data.ver_id) == 0 || strcmp(key,p->next->data.ver_no) == 0)
        {
            return p;//P為該車輛信息節點的指針
        }
        else
        {
            p=p->next;
        }
    }
    return NULL;
}
 
//定義功能5--新車登記
VehicleList register_vehicle(VehicleList L)
{
    VehicleList p,q;
    Vehicle v;//定義新增車輛結構體
    int id=1001;//初始車輛編號起始ID
    char tmpID[5];//車輛編號格式化為字符串
    q=L;
    while (q->next != NULL)
    {
        q=q->next;//將指針調至鏈表尾部以插入新數據
    }
    //printf("請輸入車輛編號: ");
    //v.ver_id=getS();
    printf("請輸入車牌號: ");
    v.ver_no=getS();
    printf("請輸入載重量: ");
    v.weight=getS();
    printf("請輸入車牌: ");
    v.ver_trand=getS ();
    printf("請輸入生產廠家: ");
    v.factory=getS();
    printf("請輸入出廠日期:(格式,如2012-02-22) ");
    v.outdate=getS();
    printf("請輸入購買日期:(格式,如2012-02-22) ");
    v.buydate=getS();
    printf("請輸入購買單價: ");
    v.price=getS();
    printf("請選擇車輛類型(A/B/C): ");
    v.ver_type=getS();
    printf("請輸入車輛運營狀態(正常/報廢): ");
    v.state=getS();
    printf("請輸入車輛維修情況(否/幾次): ");
    v.service=getS();
    printf("請輸入車輛違章情況(否/幾次): ");
    v.violation=getS();
    v.ver_status="可調出";
    v.ver_last_date="NEW";
    v.lender_name=(char*)malloc(10);
    strcpy(v.lender_name, "N/A       ");
    v.lender_id=(char*)malloc(10);
    strcpy(v.lender_id, "N/A       ");
    v.return_time=(char*)malloc(10);
    strcpy(v.return_time, "N/A       ");
    v.section=(char*)malloc(10);
    strcpy(v.section,"N/A       ");
    v.purpose=(char*)malloc(10);
    strcpy(v.purpose,"N/A       ");
    v.usedate=(char*)malloc(10);
    strcpy(v.usedate,"N/A       ");
    v.useprice=(char*)malloc(10);
    strcpy(v.useprice,"N/A       ");
    v.usetime=(char*)malloc(10);
    strcpy(v.usetime,"N/A       ");
    //自動生成車輛編號
    sprintf(tmpID, "%d", id);
    while(select_vehicle(L,tmpID) != NULL)
    {
        id++;
        sprintf(tmpID, "%d", id);//將id轉為字符串存儲到tmpID中
    }
 
    v.ver_id=(char*)malloc(sizeof(char)*(strlen(tmpID)+1));//分配內存空間
    strcpy(v.ver_id,tmpID);//將tmpID拷貝到車輛信息結構中
    if(select_vehicle(L,v.ver_no) == NULL)
    {
        //檢查是否已有該車牌號
        p=(VehicleList)malloc(sizeof(VNode));//創建新的車輛節點
        p->data=v;
        q->next=p;//連接新的車輛節點
        q=p;    //將q指針移至最后節點
        q->next=NULL;//將最后一個節點的next設為NULL
        printf("\n成功登記牌號為:%s的車輛,車輛編號為:%s!\n\n",v.ver_no,v.ver_id);
    }
    else
    {
        printf("\n已存在該車輛!\n\n");
    }
    return L;
}
 
//定義功能6--車輛注銷
void delete_vehicle(VehicleList L, char * key)
{
    VehicleList p,q;
    p=L;
 
    if ((p=select_vehicle(L,key)) != NULL)
    {
        q=p->next;
        p->next=q->next;//將節點p連接到下下一個節點,即刪除找到的節點
        free(q);
        printf("\n已注銷編號為%s的車輛!\n\n",key);
 
    }
    else
    {
        printf("\n沒有找到符合條件的車輛!\n\n");
    }
 
    system("pause");
}
 
//定義功能7--退出系統函數
int quit()
{
    char *temp;
    temp=getS();//接受用戶輸入
 
    if(strcmp("Y",temp)==0)
    {
        return 1;//返回1,為確實退出
    }
    else if(strcmp("N",temp)==0)
    {
        return 0;//返回0,則不退出,并清屏,加載主菜單
    }
    else
    {
        return 2;//返回2,說明輸入錯誤,任意鍵返回主菜單
    }
 
    return 2;//默認返回2
 
}
 
int main()
{
    VehicleList L1,tmpL;
    char *vehicle_key,*lender_name,*lender_id,*return_time,*section,*purpose,*usedate,*useprice,*usetime;
    char *filename="vehicle.txt";//設置數據文件
    GetLocalTime(&sys);
    sprintf(now_date,"%4d-%02d-%02d",sys.wYear,sys.wMonth,sys.wDay);
 
    L1=(VehicleList)malloc(sizeof(VNode));
    L1=InitList(L1);
    L1=LoadData(L1,"vehicle.txt");
 
    main_menu:
    //SaveData(L1,filename);//每完成一個操作都保存數據到文件,默認選擇7程序退出時才保存數據
    main_menu();//加載主菜單
    switch (feature)
    {
        case 1:
        {
            int i;
            printf("請輸入租車人姓名: ");
            lender_name = getS();
            printf("請輸入租車人身份證號: ");
            lender_id = getS();
            printf("請輸入用車單位: ");
            section = getS();
            printf("請輸入出車用途: ");
            purpose = getS();
            printf("請輸入出車時長(格式N天): ");
            usetime = getS();
            printf("請輸入出車日期(格式YYYY-MM-DD,如 %s): ",now_date);
            usedate = getS();
            printf("請輸入計劃歸還時間(格式YYYY-MM-DD,如 %s): ",now_date);
            return_time = getS();
            useprice = "200";
            if (datecmp(now_date,return_time) > 0)
            {
                printf("\n歸還時間輸入錯誤,最少需要租一天,即時間應該大于等于 %s\n\n",now_date);
                system("pause");
                system("cls");
                goto main_menu;
            }
            i=dispatch(L1,lender_name,lender_id,return_time,section,purpose,usedate,useprice,usetime);        //調用車輛調度函數
            if (i==0)
            {
                system("cls");
                goto main_menu;
            }
            else
            {
                system("pause");
                system("cls");
                goto main_menu;
            }
        }
 
        case 2:
        {
            printf("請輸入汽車編號: ");
            vehicle_key = getS();
            printf("請輸入租車人姓名: ");
            lender_name = getS();
            printf("請輸入租車人身份證號: ");
            lender_id = getS();
            back_vehicle(L1,vehicle_key,lender_name,lender_id);//調用車輛歸還函數
            system("pause");
            system("cls");
            goto main_menu;
        }
 
        case 3:
        {
            list_all(L1);//調用車輛總覽函數
            system("cls");
            goto main_menu;
        }
 
        case 4:
        {
            printf("請輸入汽車編號或車牌號: ");
            vehicle_key=getS();
            tmpL=select_vehicle(L1,vehicle_key);//調用車輛查找函數
            if (tmpL != NULL)//返回不為空,說明找到了
            {
                printf("\n*****************************找到了符合條件的車輛信息****************************\n");
                printf("\n車輛編號  車 牌 號  載重量  車 牌  車 型  車輛狀態  上次出車時間  租車人姓名  計劃歸還時間\n");
                printf("\n%6s %10s %6s %8s %4s %10s %10s %18s %14s\n",
                       tmpL->next->data.ver_id,tmpL->next->data.ver_no,tmpL->next->data.weight,tmpL->next->data.ver_trand,
                       tmpL->next->data.ver_type,tmpL->next->data.ver_status,
                       tmpL->next->data.ver_last_date,tmpL->next->data.lender_name,
                       tmpL->next->data.return_time);
                system("pause");
            }
            else
            {
                printf("\n\n沒有找到符合條件的車輛信息!\n\n");
                system("pause");//按任意鍵繼續
            }
            system("cls");
            goto main_menu;
        }
 
        case 5:
        {
            L1=register_vehicle(L1);//調用車輛登記函數
            system("pause");
            system("cls");
            goto main_menu;
        }
 
        case 6:
        {
            vehicle_key = "0008";
            printf("請輸入需要注銷的車輛編號: ");
            vehicle_key=getS();
            delete_vehicle(L1,vehicle_key);//調用車輛注銷函數
            system("cls");
            goto main_menu;
        }
 
        case 7:
        {
            int temp;
            printf("您確定要退出系統?輸入Y確定,輸入N返回主菜單\n");
            temp = quit();
            if(1 == temp)
            {
                SaveData(L1,filename);//保存數據
                return 0;
            }
            else if(0 == temp){
                system("cls");
                goto main_menu;//如果返回真則退出,否則返回主菜單
            }
            else
            {
                printf("輸入錯誤!");
                system("pause");
            }
        }
 
        default:
        {
            system("cls");
            getchar();
            goto main_menu;//如果輸入不在1-7內,則返回主菜單
        }
 
    }
 
    return 0;
}

到此,相信大家對“C語言如何實現單位車輛調度管理”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

密云县| 永兴县| 旬阳县| 芜湖市| 远安县| 龙江县| 仲巴县| 津市市| 馆陶县| 霍林郭勒市| 江津市| 英吉沙县| 海安县| 芦山县| 中宁县| 广丰县| 汨罗市| 蓬莱市| 华坪县| 九龙坡区| 泌阳县| 永嘉县| 牙克石市| 卢龙县| 犍为县| 云梦县| 莆田市| 盘锦市| 南郑县| 台州市| 石林| 绵阳市| 桐庐县| 澎湖县| 宜阳县| 孟连| 尤溪县| 新津县| 巩留县| 开原市| 若尔盖县|