返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言实现车辆信息管理系统
  • 131
分享到

C语言实现车辆信息管理系统

2024-04-02 19:04:59 131人浏览 泡泡鱼
摘要

本文实例为大家分享了C语言实现车辆信息管理系统的具体代码,供大家参考,具体内容如下 车辆信息管理系统 问题描述:建立车辆信息管理系统,实现车辆信息的添加和维护管理。 系统存储数据要求

本文实例为大家分享了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;

void read_cars(); 

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);
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C语言实现车辆信息管理系统

本文链接: https://lsjlt.com/news/142510.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言实现车辆信息管理系统
    本文实例为大家分享了C语言实现车辆信息管理系统的具体代码,供大家参考,具体内容如下 车辆信息管理系统 问题描述:建立车辆信息管理系统,实现车辆信息的添加和维护管理。 系统存储数据要求...
    99+
    2024-04-02
  • 如何使用C语言实现车辆信息管理系统
    小编给大家分享一下如何使用C语言实现车辆信息管理系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下车辆信息管理系统问题描述:建立车辆信息管理系统,实现...
    99+
    2023-06-29
  • C语言实现单位车辆调度管理
    本文实例为大家分享了C语言实现单位车辆调度管理的具体代码,供大家参考,具体内容如下 单位车辆信息包括:车牌号、车型、载重(客)量,车牌,生产厂家,出厂日期,购买日期,购买单价等;车辆...
    99+
    2024-04-02
  • C语言实现停车管理系统
    本题为大家分享了C语言实现停车管理系统的具体代码,供大家参考,具体内容如下 设计题目 设停车场是一个可以停放n辆汽车的南北方向的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按...
    99+
    2024-04-02
  • C语言实现车票管理系统
    本文实例为大家分享了C语言实现车票管理系统的具体代码,供大家参考,具体内容如下 一、项目简介 设计一个车票管理系统实现录入、查看班次信息,售票,退票等基本功能。设计中要求综合运用所学...
    99+
    2024-04-02
  • C语言实现超市信息管理系统
    本文实例为大家分享了C语言实现超市信息管理系统的具体代码,供大家参考,具体内容如下 设计要求:设计一个超市信息管理系统,利用结构体存储货物信息和所购买商品的信息,并使用链表保存购物车...
    99+
    2024-04-02
  • C语言实现学籍信息管理系统
    本文实例为大家分享了C语言实现学籍信息管理系统的具体代码,供大家参考,具体内容如下 系统功能:录入、修改、添加、删除、查找、读取、删除数据系统主要技术:基本就是函数的调用,只用到结构...
    99+
    2024-04-02
  • C语言实现学生信息管理系统
    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 #define _CRT_SECURE_NO_WARNINGS #include <stdi...
    99+
    2024-04-02
  • C语言如何实现单位车辆调度管理
    本篇内容主要讲解“C语言如何实现单位车辆调度管理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言如何实现单位车辆调度管理”吧!单位车辆信息包括:车牌号、车型、载重(客)量,车牌,生产厂家,出...
    99+
    2023-06-29
  • C语言实现火车票管理系统
    本文为大家分享了C语言实现火车票管理系统课程设计的具体代码,供大家参考,具体内容如下 1、前言 这是大一刚学C语言一个学期完成的课设项目,里面的功能还可以进一步的完善,仅供分享、参考...
    99+
    2024-04-02
  • C语言实现自行车管理系统
    在大家学完C语言后,经常会被学校要求做很多管理系统,主流做法当选链表,但是很多问题就来了,在学习阶段写过最多基本上就是50行代码左右了,一下子做个小型管理系统问题就比较多。小编当然也...
    99+
    2024-04-02
  • 钉钉车辆管理系统
    近年来,随着城市化进程的加速和人们生活水平的提高,汽车已成为了人们日常生活中不可或缺的交通工具。车辆的数量不断增加,也对城市交通管理带来了挑战。传统的管理方式往往需要投入大量人力、物力和财力,而且效率低下,无法满足日益增长的车辆管理需求。因...
    99+
    2023-10-28
    管理系统 车辆
  • C语言实现学生宿舍信息管理系统
    本文实例为大家分享了C语言实现学生宿舍信息管理系统的具体代码,供大家参考,具体内容如下 功能描述 该学生宿舍信息管理系统主要实现的功能有:创建学生宿舍信息,显示学生宿舍信息,查询学生...
    99+
    2024-04-02
  • C语言实现简单职工信息管理系统
    本文实例为大家分享了C语言实现职工信息管理系统的具体代码,供大家参考,具体内容如下 代码实现如下: #include <stdio.h>//输入、输出指令 #includ...
    99+
    2024-04-02
  • C语言实现简单学生信息管理系统
    学生信息管理系统的功能有,也可以自己增加或者改进一些函数功能。 在main函数里调用这8个函数 学生信息包含姓名、年龄、学号、成绩,需要定义一个结构体(结构体是全局变量,所以需要全...
    99+
    2024-04-02
  • C语言实现学生信息管理系统(链表)
    目录1.头文件和预处理2.定义学生结构体的数据结构3.定义每条记录或节点的数据结构4.函数接口代码.1).定义提示菜单2).增加学生记录3).输入学号接口·4).遍历表...
    99+
    2024-04-02
  • C语言实现学生信息管理系统开发
    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 程序介绍 运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图所示...
    99+
    2022-11-13
    C语言学生信息系统 C语言学生管理系统 C语言信息管理系统
  • C语言实现共享单车管理系统
    本文实例为大家分享了C语言实现共享单车管理系统的具体代码,供大家参考,具体内容如下 1.功能模块图; 2.各个模块详细的功能描述。 1.登陆:登陆分为用户登陆,管理员登陆以及维修员...
    99+
    2024-04-02
  • C语言如何实现车票管理系统
    今天小编给大家分享一下C语言如何实现车票管理系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、项目简介设计一个车票管理系...
    99+
    2023-06-30
  • C++实现信息管理系统
    本文实例为大家分享了C++实现信息管理系统的具体代码,供大家参考,具体内容如下 有一个信息管理系统,要求检查每一个登录系统的用户(User)的用户名和口令,系统检查合格以后方可登录系...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作