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

溫馨提示×

溫馨提示×

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

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

如何使用C語言實現車輛信息管理系統

發布時間:2022-03-15 12:43:21 來源:億速云 閱讀:217 作者:小新 欄目:開發技術

小編給大家分享一下如何使用C語言實現車輛信息管理系統,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

具體內容如下

車輛信息管理系統

問題描述:建立車輛信息管理系統,實現車輛信息的添加和維護管理。

系統存儲數據要求:每臺車輛至少需要包含以下屬性,系統中保存多臺車輛的信息:

  • 車輛型號(如思域、卡羅拉、天籟等)

  • 廠商(如廣汽本田、一汽大眾、東風日產等)

  • 車型級別(如緊湊型車、中型車、SUV等)

  • 座位數(如5座、7座等)

  • 排量(如1.2T、1.4T、1.5T、1.6T等)

  • 變速箱(如手動、手自一體、無級變速等)

  • 車身顏色(白色、黑色等)

  • 車輛價格(單位為萬)

程序基本要求:

1、 要有系統菜單,選擇不同選項執行不同功能。每個功能執行結束后,需返回到系統菜單,繼續進行功能選擇操作。

2、系統需要完成以下基本功能,每個功能的代碼封裝在單獨的函數里:

(1) 系統初始化時,至少要有10條車輛記錄信息。

(2) 錄入車輛信息:錄入某臺車輛的基本信息,為新記錄自動生成一個記錄號。輸入數據時要有提示語,錄入結束后在屏幕上輸出新增的車輛信息。

車輛信息輸出格式如下:

車輛型號 廠商 車型級別 座位數 排量 變速箱 車身顏色 車輛價格
雅閣 本田 中型車 5座 1.5T 無級變速 白色 19.98萬

(3) 瀏覽所有車輛信息:統計共有多少臺車輛,并在屏幕中顯示所有車輛信息。

(4) 按不同字段查詢車輛信息,包括按照廠商、車型級別、車輛價格范圍(輸入最低價格、最高價格)

(5) 修改車輛信息:對車輛的基本信息進行修改,要求提供菜單選擇某一項參數信息進行修改,而不是重新覆蓋錄入整條信息。

(6) 刪除車輛信息:將滿足條件的車輛信息刪除,包括按型號、廠商刪除。要求刪除前,先按照型號或者廠商查找需要刪除的車輛信息,如果找不到則給出對應的提示信息。

擴展要求:

(1) 實現排序功能。例如按車輛價格、座位數、排量等對車輛信息進行排序。

(2) 所有車輛信息存儲在文件中。

(3) 每次打開程序,把文件中的信息導入到程序中。

(4) 可自己定義其他功能需求,并編碼實現。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <conio.h>
    typedef struct car Car,*cheliang;
    struct car
    {
    char brand[20];//型號
    char manufacturar[15];//產商
    char degree[15];//等級
    int seats;//座位數
    float displacement;//排量
    char biansuxiang[20];//變速箱 
    char color[20];//顏色
    char price[30];//價格
    cheliang next;
    };
cheliang head,tail;
/***********************************************************************
 * 說明:  從data.dat中讀取車輛信息保存為單鏈表
 ***********************************************************************/
void read_cars(); 
/***********************************************************************
 * 說明:  把車輛信息寫入data.dat中
 ***********************************************************************/
void write_cars();
/***********************************************************************
 * 說明:  新增車輛信息
 ***********************************************************************/
void add_car();//沒問題
/***********************************************************************
 * 說明:  把所有的車輛信息輸出到電腦
 ***********************************************************************/
void display_cars();//沒問題
/***********************************************************************
 * 說明:  修改車輛信息
 ***********************************************************************/
void change();
/***********************************************************************
 * 說明:  查找車輛信息
 ***********************************************************************/
void find();
/***********************************************************************
 * 說明:  按車輛型號來查找車輛信息
 ***********************************************************************/
void find_brand();
/***********************************************************************
 * 說明:  按產商來查找車輛信息
 ***********************************************************************/
void find_manufacturar();//沒問題
/***********************************************************************
 * 說明:  按車輛等級來查找車輛信息
 ***********************************************************************/
void find_degree();
/***********************************************************************
 * 說明:  按車輛價格來查找車輛信息
 ***********************************************************************/
void find_price();
/***********************************************************************
 * 說明:  刪除車輛信息
 ***********************************************************************/
void delete_car();
/***********************************************************************
 * 說明:  通過車輛型號來刪除車輛信息
 ***********************************************************************/
void delete_car_brand();
/***********************************************************************
 * 說明:  通過產商來刪除車輛信息
 ***********************************************************************/
void delete_car_manufacturar();
int main()
{
    read_cars();//讀取文件
    int i;
    while(1)
    {
        while(1)
        {
            printf("請選擇相關操作:\n1.增加車輛信息\n2.瀏覽車輛信息\n");
            printf("3.查詢車輛信息\n4.修改車輛信息\n5.刪除車輛信息\n6.保存數據并退出管理系統\n");
            printf("請輸入數字選擇要實現的功能:\n");
            scanf("%d",&i);
            if(i>=1&&i<=6)
            {
                break;
            }
            else
            {
                printf("數字錯誤,請重新輸入");
            }
        }
        switch(i)
        {
        case 1: add_car();break;
        case 2: display_cars();break;
        case 3: find();break;
        case 4: change();break;
        case 5: delete_car();break;
        case 6: write_cars();//把數據信息保存到文件里
            printf("謝謝使用!\n");
            exit(0);
        }
    }
    return 0;
}
void read_cars()
{
    FILE *fp;
    if (0 != fopen_s(&fp, "data.dat", "a+b"))//fopen_s方法返回值是0或非0,0代表打開成功,非0代表打開失敗
    {
        perror("打開文件失敗,原因是");//perror(s) 用來將上一個函數發生錯誤的原因輸出到標準設備(stderr)
        getch();
        exit(1);
    }
    cheliang car;
    head = (cheliang)malloc(sizeof(Car));
    if (NULL == head)
    {
        printf("內存分配失敗!\n");
        exit(EXIT_FAILURE);
    }
    head->next = NULL;
    tail = head;
    while (1)
    {
        car = (cheliang)malloc(sizeof(Car));
        if (fread(car, sizeof(Car), 1, fp) == 0)
        {
            free(car);
            break;
        }
        car->next = NULL;
        tail->next = car;
        tail = car;
    }
    fclose(fp);
}
void write_cars()
{
    FILE *fp;
    if (0 != fopen_s(&fp, "data.dat", "w+"))//打開文件
    {
        perror("打開文件失敗,原因是");
        _getch();
        return;
    }
    cheliang car = head->next;
    while (car != NULL)
    {
        fwrite(car, sizeof(Car), 1, fp);
        car = car->next;
    }
    fclose(fp);//關閉文件
}
void add_car()
{
    cheliang p,temp;
    p=(cheliang)malloc(sizeof(Car));
    if(p==NULL)
    {
        printf("內存分配失敗");
        exit(1);
    }
    printf("請輸入車輛信息\n型號:");
    scanf("%s",p->brand);
    printf("商家:");
    scanf("%s",p->manufacturar);
    printf("等級:");
    scanf("%s",p->degree);
    printf("座位數:");
    scanf("%d",&p->seats);
    printf("排量:");
    scanf("%f",&p->displacement);
    printf("變速箱:");
    scanf("%s",p->biansuxiang);
    printf("顏色:");
    scanf("%s",p->color);
    printf("價格:");
    scanf("%s",p->price);
    if(NULL == head->next)
    {
    head->next = p;
    p->next = NULL;
    }
    else
    {
    temp = head->next;//頭插法
    head->next = p;
    p->next = temp;
    }
    printf("%-15s|%-15s|%-15s|%5s|%5s|%-15s|%-15s|%-5s\n",
        "車輛型號", "廠商", "車型級別", "座位數", "排量(L)", "變速箱", "車身顏色", "車輛價格(萬)");
    printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5s\n",p->brand,p->manufacturar,p->degree,p->seats,p->displacement,p->biansuxiang,p->color,p->price);
    
}
void display_cars()
{
    int a=0;
    cheliang p=head->next;
    if(NULL == head->next)
    {
    printf("無車輛信息\n");
    return ;
    }
    printf("%-15s|%-15s|%-15s|%5s|%5s|%-15s|%-15s|%-5s\n",
        "車輛型號", "廠商", "車型級別", "座位數", "排量(L)", "變速箱", "車身顏色", "車輛價格(萬)");
    for(;p!=NULL;p=p->next)
    {
        a++;
        printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5s\n",p->brand,p->manufacturar,p->degree,p->seats,p->displacement,p->biansuxiang,p->color,p->price);
        
    }
    printf("一共有%d臺車輛信息",a);
}
void find()
{
    int k;
    while(1)
    {
        printf("請選擇查找方式:1.按照型號查找 2.按照產商查找 3.按照等級查找 4.按照價格查找");
        printf("請選擇:");
        scanf("%d",&k);
        if(k>=1&&k<=4){
            break;
        }
        else{
            printf("數字錯誤,請重新輸入");
        }
    }
    switch(k)
    {
    case 1: find_brand();break;
    case 2: find_manufacturar();break;
    case 3: find_degree();break;
    case 4:find_price();break;
    }
}
void find_brand()
{
    cheliang p;
    p=head->next;
    printf("請輸入要查找的型號:");
    char brand[20];
    scanf("%s",brand);
    int j=0;
    printf("您要找的資料是:\n");
    printf("%-15s|%-15s|%-15s|%5s|%5s|%-15s|%-15s|%-5s\n",
        "車輛型號", "廠商", "車型級別", "座位數", "排量(L)", "變速箱", "車身顏色", "車輛價格(萬)");
    while(p!=NULL)
    {
        if(strcmp(p->brand,brand)==0)
        {
            printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5s\n",p->brand,p->manufacturar,p->degree,p->seats,p->displacement,p->biansuxiang,p->color,p->price);
            p=p->next;
            j++;
        }
        else
         p=p->next;
    }
        if(j==0)
        {
            printf("該系統無該產商的車輛信息");
        }
}
void find_manufacturar()
{
    cheliang p;
    p=head->next;
    printf("請輸入要查找的產商:");
    char manufacturar[15];
    int j=0;
    scanf("%s",manufacturar);
     fflush(stdin);
    printf("您要找的資料是:\n");
    printf("%-15s|%-15s|%-15s|%5s|%5s|%-15s|%-15s|%-5s\n",
        "車輛型號", "廠商", "車型級別", "座位數", "排量(L)", "變速箱", "車身顏色", "車輛價格(萬)");
    while(p!=NULL)
    {
        if(strcmp(p->manufacturar,manufacturar)==0)
        {
            printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5s\n",p->brand,p->manufacturar,p->degree,p->seats,p->displacement,p->biansuxiang,p->color,p->price);
            p=p->next;
            j++;
        }
        else
         p=p->next;
    }
        if(j==0)
        {
            printf("該系統無該產商的車輛信息");
        }
}
void find_degree()
{
    cheliang p;
    p=head->next;
    printf("請輸入找要尋找的等級:");
    char degree[15];
    int j=0;
    scanf("%s",degree);
    printf("您要找的資料是:\n");
     fflush(stdin);
    printf("%-15s|%-15s|%-15s|%5s|%5s|%-15s|%-15s|%-5s\n",
        "車輛型號", "廠商", "車型級別", "座位數", "排量(L)", "變速箱", "車身顏色", "車輛價格(萬)");
    while(p!=NULL)
    {
        if(strcmp(p->degree,degree)==0)
        {
            printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5s\n",p->brand,p->manufacturar,p->degree,p->seats,p->displacement,p->biansuxiang,p->color,p->price);
            p=p->next;
            j++;
        }
        else
            p=p->next;

    }
        if(j==0)
        {
            printf("該系統無該等級的車輛信息");
        }
}
void find_price()
{
    cheliang p;
    p=head->next;
    //char price_max[30],price_min[30];
    int price_max,price_min;
    int j=0;
    printf("請輸入價格的最大值:");
    scanf("%d",&price_max);
     fflush(stdin);
    printf("請輸入價格的最小值:");
    scanf("%d",&price_min);
     fflush(stdin);
    printf("您要找的資料是:\n");
    printf("%-15s|%-15s|%-15s|%5s|%5s|%-15s|%-15s|%-5s\n",
        "車輛型號", "廠商", "車型級別", "座位數", "排量(L)", "變速箱", "車身顏色", "車輛價格(萬)");
    while(p!=NULL)
    {
        if(atoi(p->price)>price_min && atoi(p->price)<price_max)
        {
            printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5s\n",p->brand,p->manufacturar,p->degree,p->seats,p->displacement,p->biansuxiang,p->color,p->price);
            j++;
        }
            p=p->next;
    }
    if(j==0)
    {
        printf("該系統無該價格范圍的車輛信息");
    }
}
void change()
{
    cheliang q;
    int i;
    q=head->next;
    int j=0;
    printf("請輸入要修改車輛的型號:\n");
    char brand[20];
    scanf("%s",brand);
     fflush(stdin);
    printf("%-15s|%-15s|%-15s|%5s|%5s|%-15s|%-15s|%-5s\n",
        "車輛型號", "廠商", "車型級別", "座位數", "排量(L)", "變速箱", "車身顏色", "車輛價格(萬)");
    while(q!=NULL)
    {
        if(strcmp(q->brand,brand)==0)
        {
            printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5s\n",q->brand,q->manufacturar,q->degree,q->seats,q->displacement,q->biansuxiang,q->color,q->price);
            j++;
            while(1){
                printf("1.改變型號 2.改變產商 3.改變等級 4.改變座位數 5.改變排量 6.改變變速箱 7.改變顏色 8.改變價格");
                printf("請輸入要修改的車輛信息的類型:");
                scanf("%d",&i);
                if(i>=1&&i<=8){
                    break;
                }
                else{
                    printf("請輸入正確的數字");
                }
            }
              switch(i)
              {
              case 1:
                   printf("型號:");
                   char str1[20];
                   scanf("%s",str1);
                   strcpy(q->brand,str1);break;
              case 2:
                   printf("產商:");
                   char str2[15];
                   scanf("%s",str2);
                   strcpy(q->manufacturar,str2);break;
              case 3:
                     printf("等級:");
                    char str3[15];
                    scanf("%s",str3);
                   strcpy(q->degree,str3);break;
              case 4:
                    printf("座位數:");
                    int str4;
                    scanf("%d",&str4);
                   q->seats=str4;break;
              case 5:
                    printf("排量:");
                    float str5;
                    scanf("%f",&str5);
                    q->displacement=str5;break;
              case 6:
                    printf("變速箱:");
                    char str6[20];
                    scanf("%s",str6);
                   strcpy(q->biansuxiang,str6);break;
              case 7:
                    printf("顏色:");
                    char str7[20];
                    scanf("%s",str7);
                   strcpy(q->color,str7);break;
              case 8:
                    printf("價格:");
                    char str8[30];
                    scanf("%s",str8);
                   strcpy(q->price,str8);break;
              }
            printf("修改成功\n");
            printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5s\n",q->brand,q->manufacturar,q->degree,q->seats,q->displacement,q->biansuxiang,q->color,q->price);
            q=q->next;
            break;
        }
        
        else
        {
            q=q->next;
        }
    }
    if(j==0)
    {
         printf("沒找到你要的型號");
    }
}
void delete_car()
{
    int i;
    while(true){
        printf("按什么的方式尋找車輛:1.型號 2.產商\n");
        scanf("%d",&i);
        if(i>=1&&i<=2){
           break;
        }
        else{
            printf("數字錯誤,請重新輸入");
        }
    }
    switch(i)
    {
    case 1: delete_car_brand();break;
    case 2: delete_car_manufacturar();break;
    }
}
void delete_car_brand()
{
    cheliang p,q;
    int j=0;
    char brand[20];
    printf("請輸入要刪除的車輛的型號:");
    scanf("%s",brand);
     fflush(stdin);
    //p=head;
    q=head;
    printf("%-15s|%-15s|%-15s|%5s|%5s|%-15s|%-15s|%-5s\n",
        "車輛型號", "廠商", "車型級別", "座位數", "排量(L)", "變速箱", "車身顏色", "車輛價格(萬)");
    while(q->next!=NULL)
    {
        if(strcmp(q->next->brand,brand)==0)
        {
            printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5s\n",q->next->brand,q->next->manufacturar,q->next->degree,q->next->seats,q->next->displacement,q->next->biansuxiang,q->next->color,q->next->price);
            j++;
            p=q->next;
            q->next = q->next->next;
            printf("數據刪除成功!\n");
            free(p);
            break;
        }
        else
         q=q->next;
    }
    if(j==0)
    {
        printf("該系統無你所要刪除的車輛信息!\n");
    }
}
void delete_car_manufacturar()
{
    cheliang p,q;
    int j=0;
    char manufacturar[15];
    printf("請輸入要刪除的車輛的產商:");
    scanf("%s",manufacturar);
     fflush(stdin);
    q=head;
    printf("%-15s|%-15s|%-15s|%5s|%5s|%-15s|%-15s|%-5s\n",
        "車輛型號", "廠商", "車型級別", "座位數", "排量(L)", "變速箱", "車身顏色", "車輛價格(萬)");
    while(q->next!=NULL)
    {
        if(strcmp(q->next->manufacturar,manufacturar)==0)
        {
            printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5s\n",q->next->brand,q->next->manufacturar,q->next->degree,q->next->seats,q->next->displacement,q->next->biansuxiang,q->next->color,q->next->price);
            j++;
            p=q->next;
            q->next = q->next->next;
            printf("數據刪除成功!\n");
            free(p);
            break;
        }
        else
         q=q->next;
    }
    if(j==0)
    {
        printf("該系統無你所要刪除的車輛信息!\n");
            exit(0);
    }
}

以上是“如何使用C語言實現車輛信息管理系統”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

龙海市| 环江| 娄底市| 海阳市| 邵阳县| 新晃| 苗栗市| 龙泉市| 化州市| 娄底市| 舟山市| 大方县| 遂平县| 张家港市| 时尚| 南澳县| 科技| 遵义市| 宿松县| 深水埗区| 永泰县| 丰台区| 泰安市| 越西县| 黎城县| 宜兴市| 泸溪县| 姚安县| 庄浪县| 新泰市| 安吉县| 海盐县| 杭州市| 南皮县| 东丽区| 道真| 达尔| 井研县| 东阿县| 陈巴尔虎旗| 景宁|