c/c++语言开发共享C语言实现车辆信息管理系统

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

c/c++开发分享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;  /***********************************************************************   * 说明:  从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|%-5sn",          "车辆型号", "厂商", "车型级别", "座位数", "排量(l)", "变速箱", "车身颜色", "车辆价格(万)");      printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5sn",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|%-5sn",          "车辆型号", "厂商", "车型级别", "座位数", "排量(l)", "变速箱", "车身颜色", "车辆价格(万)");      for(;p!=null;p=p->next)      {          a++;          printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5sn",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|%-5sn",          "车辆型号", "厂商", "车型级别", "座位数", "排量(l)", "变速箱", "车身颜色", "车辆价格(万)");      while(p!=null)      {          if(strcmp(p->brand,brand)==0)          {              printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5sn",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|%-5sn",          "车辆型号", "厂商", "车型级别", "座位数", "排量(l)", "变速箱", "车身颜色", "车辆价格(万)");      while(p!=null)      {          if(strcmp(p->manufacturar,manufacturar)==0)          {              printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5sn",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|%-5sn",          "车辆型号", "厂商", "车型级别", "座位数", "排量(l)", "变速箱", "车身颜色", "车辆价格(万)");      while(p!=null)      {          if(strcmp(p->degree,degree)==0)          {              printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5sn",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|%-5sn",          "车辆型号", "厂商", "车型级别", "座位数", "排量(l)", "变速箱", "车身颜色", "车辆价格(万)");      while(p!=null)      {          if(atoi(p->price)>price_min && atoi(p->price)<price_max)          {              printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5sn",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|%-5sn",          "车辆型号", "厂商", "车型级别", "座位数", "排量(l)", "变速箱", "车身颜色", "车辆价格(万)");      while(q!=null)      {          if(strcmp(q->brand,brand)==0)          {              printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5sn",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%-5sn",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|%-5sn",          "车辆型号", "厂商", "车型级别", "座位数", "排量(l)", "变速箱", "车身颜色", "车辆价格(万)");      while(q->next!=null)      {          if(strcmp(q->next->brand,brand)==0)          {              printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5sn",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|%-5sn",          "车辆型号", "厂商", "车型级别", "座位数", "排量(l)", "变速箱", "车身颜色", "车辆价格(万)");      while(q->next!=null)      {          if(strcmp(q->next->manufacturar,manufacturar)==0)          {              printf("%-16s%-16s%-16s%-7d%-8.1f%-16s%-16s%-5sn",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/c++开发分享C语言实现车辆信息管理系统的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

需要了解更多c/c++开发分享C语言实现车辆信息管理系统,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/1082333.html

(0)
上一篇 2022年4月24日
下一篇 2022年4月24日

精彩推荐