简介

此程序是本人大一时期的C语言大作业,初学C语言一学期后所编写的一个C程序,是一个车辆信息管理系统,可简单的实现车辆信息的增删改查和维护管理等。
程序数据的存储使用文件存储(当时未学数据库),由于是大一时所写的程序,现在回头看发现程序其实有许多的不足之处,但总体上还是可以的。
在此记录一下自己的过往,程序源代码及程序设计说明书可在下方GitHub链接处进行下载,供各位初入C语言的萌新参考。
GitHub链接:车辆信息管理系统

目录

  • 简介
  • 程序流程
  • 功能展示
    • 欢迎界面
    • 菜单界面
    • 录入车辆信息
    • 浏览车辆信息
    • 查询车辆信息
    • 修改车辆信息
    • 删除车辆信息
    • 排序车辆信息
    • 初始化系统
  • 程序代码
    • 车辆信息结构体
    • 主函数
    • 录入车辆信息函数
    • 浏览车辆信息函数
    • 查询车辆信息函数
    • 修改车辆信息函数
    • 删除车辆信息函数
    • 排序车辆信息函数
    • 初始化系统函数
  • 后记

程序流程

程序大概流程如下图:

功能展示

在此展示部分功能,完整功能请至开头处GitHub链接下载程序,进行体验。

欢迎界面

系统首页,一个欢迎界面,按1进入系统菜单,按2退出系统。

菜单界面

系统的主界面,在此可进行各种功能选择。

录入车辆信息

录入车辆信息功能,依次输入车辆的信息,可将新的车辆信息录入系统并保存在系统中,可连续录入。

浏览车辆信息

浏览车辆信息功能,可统计系统中的车辆总数并显示所有车辆信息。

查询车辆信息

查询车辆信息功能,有四种查询方式,可按型号、厂商、车型、价格范围查询车辆。

如:按价格范围查询车辆。

修改车辆信息

修改车辆信息功能,可修改指定车辆的详细信息。

输入要修改车辆的记录号后,将显示该车辆的信息,选择要修改的参数,并对其进行修改。

删除车辆信息

删除车辆信息功能,可先按照型号、厂商查找车辆或查看全部车辆,再进行单一删除或全部删除。

如:查看全部,然后删除指定单一车辆。

排序车辆信息

排序车辆信息功能,可按价格、排量、座位数对车辆进行排序,排序后可浏览或保存。

如:按价格排序车辆。

初始化系统

初始化系统功能,可将系统初始化,将车辆信息还原至系统最初保存的信息。

程序代码

在此展示大部分程序代码,完整代码请至开头处GitHub链接下载程序,进行了解。
为了系统界面的美观 强迫症 ,所以本程序的输出语句很多且很长,请别介意。

车辆信息结构体

struct car
{int jlh;//记录号char xh[10];//型号char cs[10];//厂商char cx[10];//车型int zws;//座位数float pl;//排量char bsx[20];//变速箱char ys[10];//颜色float jg;//价格
}che[50];

主函数

int main()
{FILE *fp;int i,n;do{system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                      欢迎使用车辆信息管理系统\n\n");printf("\t\t\t                          按1进入系统菜单\n\n");printf("\t\t\t                            按2退出系统\n\n");scanf("%d",&i);if(i==1)break;else if(i==2)exit(0);}while(1);do{if((fp=fopen("车辆信息.txt","rb"))==NULL){printf("无法打开文件\n");exit(0);}n=fread(che,sizeof(struct car),50,fp);fclose(fp);system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                         请选择要进行的操作\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                           1.录入车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                           2.浏览车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                           3.查询车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                           4.修改车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                           5.删除车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                           6.排序车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                           7.初始化系统\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                           8.退出系统\n");printf("\t\t\t                         ------------------\n\n");scanf("%d",&i);switch(i){case 1:system("cls");Input(che,n);break;//录入车辆信息case 2:system("cls");Browse(che,n);break;//浏览车辆信息case 3:system("cls");Query(che,n);break;//查询车辆信息case 4:system("cls");Modify(che,n);break;//修改车辆信息case 5:system("cls");Delet(che,n);break;//删除车辆信息case 6:system("cls");Sort(che,n);break;//排序车辆信息case 7:system("cls");Initialize();break;//初始化系统case 8:exit(0);//退出系统}}while(1);return 0;
}

录入车辆信息函数

void Input(struct car *p,int n)
{FILE *fp;int i,x;printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            录入车辆信息\n");printf("\t\t\t                         ------------------\n");do{n++;i=n-1;(p+i)->jlh=n;printf("\t\t\t请输入记录号%d车辆的型号:",n);scanf("%s",(p+i)->xh);printf("\t\t\t请输入记录号%d车辆的厂商:",n);scanf("%s",(p+i)->cs);printf("\t\t\t请输入记录号%d车辆的车型:",n);scanf("%s",(p+i)->cx);printf("\t\t\t请输入记录号%d车辆的座位数:",n);scanf("%d",&(p+i)->zws);printf("\t\t\t请输入记录号%d车辆的排量(单位:T):",n);scanf("%f",&(p+i)->pl);printf("\t\t\t请输入记录号%d车辆的变速箱:",n);scanf("%s",(p+i)->bsx);printf("\t\t\t请输入记录号%d车辆的颜色:",n);scanf("%s",(p+i)->ys);printf("\t\t\t请输入记录号%d车辆的价格(单位:万):",n);scanf("%f",&(p+i)->jg);if((fp=fopen("车辆信息.txt","ab"))==NULL){printf("无法打开文件\n");exit(0);}if(fwrite(&che[i],sizeof(struct car),1,fp)!=1)printf("文件写入失败\n");fclose(fp);printf("\n\n记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格");printf("\n\n  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);printf("记录号%d车辆信息录入完毕,信息如上,继续录入请按1,返回系统菜单请按其他键\n",n);scanf("%d",&x);if(x!=1)break;}while(1);
}

浏览车辆信息函数

void Browse(struct car *p,int n)
{int i;printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            浏览车辆信息\n");printf("\t\t\t                         ------------------\n");printf("系统共存有%d辆车的信息,具体如下:\n\n",n);printf("记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格\n\n");for(i=0;i<n;i++)printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);printf("\n");system("pause");
}

查询车辆信息函数

void Query(struct car *p,int n)
{int x;do{system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            查询车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                          1.按[型号]查询\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                          2.按[厂商]查询\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                          3.按[车型]查询\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                          4.按[价格范围]查询\n");printf("\t\t\t                         ------------------\n");scanf("%d",&x);switch(x){case 1:case 2:case 3:Chaxun1(p,n,x);break;case 4:Chaxun2(p,n);}if(x==1||x==2||x==3||x==4){printf("\n");system("pause");break;}}while(1);
}void Chaxun1(struct car *p,int n,int x)
{int i=0,j;char a[5],b[10];if(x==1)strcpy(a,"型号");else if(x==2)strcpy(a,"厂商");else if(x==3)strcpy(a,"车型");system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            查询车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                          按[%s]查询车辆\n\n",a);printf("\t\t\t请输入%s,以查询相应车辆:",a);scanf("%s",b);if(x==1){for(i=0,j=0;i<n;i++)if(strcmp((p+i)->xh,b)==0)j++;}else if(x==2){for(i=0,j=0;i<n;i++)if(strcmp((p+i)->cs,b)==0)j++;}else if(x==3){for(i=0,j=0;i<n;i++)if(strcmp((p+i)->cx,b)==0)j++;}if(j!=0){printf("\n%s为[%s]的车辆共有%d辆,信息如下:\n\n",a,b,j);printf("记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格\n\n");}elseprintf("\n\n\t\t\t                         无%s为[%s]的车辆\n\n",a,b);if(x==1){for(i=0;i<n;i++)if(strcmp((p+i)->xh,b)==0)printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);}else if(x==2){for(i=0;i<n;i++)if(strcmp((p+i)->cs,b)==0)printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);}else if(x==3){for(i=0;i<n;i++)if(strcmp((p+i)->cx,b)==0)printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);}
}void Chaxun2(struct car *p,int n)
{int i,j;float a,b;do{system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            查询车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                        按[价格范围]查询车辆\n\n");printf("\t\t\t请分别输入最低价格与最高价格(单位:万),以查询相应车辆:");scanf("%f%f",&a,&b);if(a>b){printf("\n\t\t\t                  价格范围输入错误,请3秒后重新输入!\n");Sleep(3000);continue;}else{for(i=0,j=0;i<n;i++)if(((p+i)->jg>=a)&&((p+i)->jg<=b))j++;}if(j!=0){printf("\n价格范围为%.2f万~%.2f万的车辆共有%d辆,信息如下:\n\n",a,b,j);printf("记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格\n\n");for(i=0;i<n;i++)if(((p+i)->jg>=a)&&((p+i)->jg<=b))printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);}elseprintf("\n\n\t\t\t                  无价格范围为%.2f万~%.2f万的车辆\n\n",a,b);break;}while(1);}

修改车辆信息函数

void Modify(struct car *p,int n)
{int i,j=0,x;printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            修改车辆信息\n");printf("\t\t\t                         ------------------\n");printf("记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格\n\n");for(i=0;i<n;i++)printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);printf("\n");printf("\t\t\t所有车辆信息如上,请输入要修改车辆的记录号:");do{scanf("%d",&x);for(i=0;i<n;i++){if((p+i)->jlh==x){j++;printf("\n\n记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格\n\n");printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);break;}}if(j==0){printf("\t\t\t无此记录号,请重新输入正确记录号:");continue;}break;}while(1);j=x;printf("\n\t\t\t                         请选择要修改的参数\n\t\t\t                           --------------\n");printf("\t\t\t                             1.车辆型号\n\t\t\t                           --------------\n");printf("\t\t\t                             2.厂商\n\t\t\t                           --------------\n");printf("\t\t\t                             3.车型级别\n\t\t\t                           --------------\n");printf("\t\t\t                             4.座位数\n\t\t\t                           --------------\n");printf("\t\t\t                             5.排量\n\t\t\t                           --------------\n");printf("\t\t\t                             6.变速箱\n\t\t\t                           --------------\n");printf("\t\t\t                             7.车身颜色\n\t\t\t                           --------------\n");printf("\t\t\t                             8.车辆价格\n\t\t\t                           --------------\n");do{scanf("%d",&x);switch(x){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:Xiugai(p,n,x,j);break;default:printf("\t\t\t                          请重新正确选择:");}if(x==1||x==2||x==3||x==4||x==5||x==6||x==7||x==8){printf("\n\t\t\t                          车辆信息修改成功!\n");system("pause");break;}}while(1);
}void Xiugai(struct car *p,int n,int x,int j)
{FILE *fp;int i=j-1,k;float f;char a[10];switch(x){case 1:printf("\t\t\t请输入新的车辆型号:");scanf("%s",a);strcpy((p+i)->xh,a);break;case 2:printf("\t\t\t请输入新的厂商:");scanf("%s",a);strcpy((p+i)->cs,a);break;case 3:printf("\t\t\t请输入新的车型级别:");scanf("%s",a);strcpy((p+i)->cx,a);break;case 4:printf("\t\t\t请输入新的座位数:");scanf("%d",&k);((p+i)->zws)=k;break;case 5:printf("\t\t\t请输入新的排量:");scanf("%f",&f);((p+i)->pl)=f;break;case 6:printf("\t\t\t请输入新的变速箱:");scanf("%s",a);strcpy((p+i)->bsx,a);break;case 7:printf("\t\t\t请输入新的颜色:");scanf("%s",a);strcpy((p+i)->ys,a);break;case 8:printf("\t\t\t请输入新的价格:");scanf("%f",&f);((p+i)->jg)=f;}if((fp=fopen("车辆信息.txt","wb"))==NULL){printf("无法打开文件\n");exit(0);}if(fwrite(che,sizeof(struct car),n,fp)!=n)printf("修改失败\n");else{printf("\n记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格\n\n");printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);}fclose(fp);
}

删除车辆信息函数

void Delet(struct car *p,int n)
{int x;do{system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            删除车辆信息\n");printf("\t\t\t                       ----------------------\n");printf("\t\t\t                        1.按[型号]查找,并删除\n");printf("\t\t\t                       ----------------------\n");printf("\t\t\t                        2.按[厂商]查找,并删除\n");printf("\t\t\t                       ----------------------\n");printf("\t\t\t                        3.查看全部,并删除\n");printf("\t\t\t                       ----------------------\n");scanf("%d",&x);switch(x){case 1:case 2:Shanchu1(p,n,x);break;case 3:Shanchu2(p,n);}if(x==1||x==2||x==3)break;}while(1);
}void Shanchu1(struct car *p,int n,int x)
{FILE *fp;int i,j,k,t,c[50];char a[5],b[10];if(x==1)strcpy(a,"型号");elsestrcpy(a,"厂商");system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            删除车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                            按[%s]查找\n\n",a);printf("\t\t\t请输入%s,以查找相应车辆:",a);scanf("%s",b);do{system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            删除车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                            按[%s]查找\n\n",a);if(x==1){for(i=0,j=0;i<n;i++)if(strcmp((p+i)->xh,b)==0){c[j]=i;j++;}}else if(x==2){for(i=0,j=0;i<n;i++)if(strcmp((p+i)->cs,b)==0){c[j]=i;j++;}}if(j!=0){printf("\n%s为[%s]的车辆共有%d辆,信息如下:\n\n",a,b,j);printf("记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格\n\n");}else{printf("\n\t\t\t                         无%s为[%s]的车辆\n\n\n",a,b);system("pause");break;}if(x==1){for(i=0;i<n;i++)if(strcmp((p+i)->xh,b)==0)printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);}else if(x==2){for(i=0;i<n;i++)if(strcmp((p+i)->cs,b)==0)printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);}printf("\n\t\t\t                         请选择要进行的操作\n");printf("\t\t\t                           --------------\n");printf("\t\t\t                             1.单个删除\n");printf("\t\t\t                           --------------\n");printf("\t\t\t                             2.全部删除\n");printf("\t\t\t                           --------------\n");printf("\t\t\t                             3.取消\n");printf("\t\t\t                           --------------\n");scanf("%d",&k);if(k==1){printf("\t\t\t请输入要删除车辆的记录号:");do{scanf("%d",&x);for(i=0,k=0;i<j;i++)if(c[i]==x-1)k++;if(k){for(i=0;i<n;i++){if((p+i)->jlh==x){printf("\n记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格\n\n");printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);break;}}}if(!k){printf("\t\t\t无%s为[%s]且记录号为%d的车辆,请重新输入正确记录号:",a,b,x);continue;}break;}while(1);for(i=x-1;i<n;i++){*(p+i)=*(p+i+1);}for(i=0;i<n-1;i++)(p+i)->jlh=i+1;if((fp=fopen("车辆信息.txt","wb"))==NULL){printf("无法打开文件\n");exit(0);}if(fwrite(che,sizeof(struct car),n-1,fp)!=n-1)printf("删除失败\n");elseprintf("\n\t\t\t                          车辆信息删除成功!\n\t\t\t                     (记录号已按顺序重新赋值)\n");fclose(fp);system("pause");break;}else if(k==2){for(i=0,k=0,t=0;k<n;i++,k++){if(k==c[t]){t++;i--;continue;}*(p+i)=*(p+k);}for(i=0;i<n-j;i++)(p+i)->jlh=i+1;if((fp=fopen("车辆信息.txt","wb"))==NULL){printf("无法打开文件\n");exit(0);}if(fwrite(che,sizeof(struct car),n-j,fp)!=n-j)printf("删除失败\n");elseprintf("\t\t\t                  %s为[%s]的车辆全部删除成功!\n\t\t\t                     (记录号已按顺序重新赋值)\n",a,b);fclose(fp);system("pause");break;}else if(k==3)break;}while(1);
}void Shanchu2(struct car *p,int n)
{FILE *fp;int i,x;do{system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            删除车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                              查看全部\n\n");printf("记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格\n\n");for(i=0;i<n;i++)printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);printf("\n\t\t\t                          全部车辆信息如上\n");printf("\t\t\t                         请选择要进行的操作\n");printf("\t\t\t                           --------------\n");printf("\t\t\t                             1.单个删除\n");printf("\t\t\t                           --------------\n");printf("\t\t\t                             2.全部删除\n");printf("\t\t\t                           --------------\n");printf("\t\t\t                             3.取消\n");printf("\t\t\t                           --------------\n");scanf("%d",&x);if(x==1){printf("\t\t\t请输入要删除车辆的记录号:");do{scanf("%d",&x);for(i=0;i<n;i++){if((p+i)->jlh==x){printf("\n\n记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格\n\n");printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);break;}}if(x<1||x>n){printf("\t\t\t无此记录号,请重新输入正确记录号:");continue;}break;}while(1);for(i=x-1;i<n;i++){*(p+i)=*(p+i+1);}for(i=0;i<n-1;i++)(p+i)->jlh=i+1;if((fp=fopen("车辆信息.txt","wb"))==NULL){printf("无法打开文件\n");exit(0);}if(fwrite(che,sizeof(struct car),n-1,fp)!=n-1)printf("删除失败\n");elseprintf("\n\t\t\t                          车辆信息删除成功!\n\t\t\t                     (记录号已按顺序重新赋值)\n");fclose(fp);system("pause");break;}else if(x==2){if((fp=fopen("车辆信息.txt","wb"))==NULL){printf("删除失败\n");exit(0);}printf("\t\t\t                           全部删除成功!\n");system("pause");break;}else if(x==3)break;}while(1);
}

排序车辆信息函数

void Sort(struct car *p,int n)
{int x;do{system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            排序车辆信息\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                          1.按[价格]排序\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                          2.按[排量]排序\n");printf("\t\t\t                         ------------------\n");printf("\t\t\t                          3.按[座位数]排序\n");printf("\t\t\t                         ------------------\n");scanf("%d",&x);switch(x){case 1:case 2:case 3:Paixu(p,n,x);break;}if(x==1||x==2||x==3)break;}while(1);
}void Paixu(struct car *p,int n,int x)
{FILE *fp;struct car t;int i,j,k;do{system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                            排序车辆信息\n");printf("\t\t\t                         ------------------\n");switch(x){case 1:printf("\t\t\t                          按[价格]排序车辆\n\n");for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(((p+i)->jg)>((p+j)->jg)){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}break;case 2:printf("\t\t\t                          按[排量]排序车辆\n\n");for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(((p+i)->pl)>((p+j)->pl)){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}break;case 3:printf("\t\t\t                         按[座位数]排序车辆\n\n");for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(((p+i)->zws)>((p+j)->zws)){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}}for(i=0;i<n;i++)(p+i)->jlh=i+1;printf("记录号    车辆型号     厂商        车型级别    座位数    排量    变速箱     车身颜色    车辆价格\n\n");for(i=0;i<n;i++)printf("  %-8d%-13s%-12s%-12s%d座       %-0.1fT    %-11s%-12s%-0.2f万\n",(p+i)->jlh,(p+i)->xh,(p+i)->cs,(p+i)->cx,(p+i)->zws,(p+i)->pl,(p+i)->bsx,(p+i)->ys,(p+i)->jg);printf("\n\n\t\t\t              排序完成,排序后信息如上,是否确定保存?\n");printf("\t\t\t                     (记录号已按顺序重新赋值)\n\n");printf("\t\t\t                          1.确定   2.取消\n");scanf("%d",&k);if(k==1){if((fp=fopen("车辆信息.txt","wb"))==NULL){printf("无法打开文件\n");exit(0);}if(fwrite(che,sizeof(struct car),n,fp)!=n)printf("文件写入失败\n");fclose(fp);printf("\t\t\t                             保存成功!\n");system("pause");break;}else if(k==2)break;}while(1);
}

初始化系统函数

void Initialize()
{FILE *old,*neww;int i;do{system("cls");printf("\t\t\t                         *车辆信息管理系统*\n");printf("\t\t\t====================================================================\n\n");printf("\t\t\t                             初始化系统\n");printf("\t\t\t                         ------------------\n\n");printf("\t\t\t           是否确定初始化系统,将车辆信息还原至最初信息?\n\n");printf("\t\t\t                          1.确定   2.取消\n");scanf("%d",&i);if(i==1){if((old=fopen("车辆信息.txt","wb"))==NULL){printf("无法打开文件\n");exit(0);}if((neww=fopen("初始化信息.txt","rb"))==NULL){printf("无法打开文件\n");exit(0);}if(fread(che,sizeof(struct car),10,neww)!=10)printf("初始化信息读入出错\n");if(fwrite(che,sizeof(struct car),10,old)!=10)printf("初始化信息写入出错\n");fclose(old);fclose(neww);printf("\t\t\t                          系统初始化成功!\n");system("pause");break;}else if(i==2)break;}while(1);
}

后记

本程序仅供参考学习,请勿抄袭或另作他用。
感谢观看,有什么问题可在下方评论区进行评论,若觉得本文章写得不错,还请点个赞呢 ( • ̀ω•́ )✧

C语言大作业-车辆信息管理系统相关推荐

  1. 学委作业管理系统c语言,c语言大作业-学生信息管理系统.doc

    c语言大作业-学生信息管理系统.doc 课程设计报告书 题目:学生信息管理系统设计 学 院 电子与信息学院 专 业 电子信息类 学生姓名 学生学号 指导教师 课程编号 135160 课程学分 1学分 ...

  2. C语言大作业:车辆管理系统

    C语言大作业:车辆管理系统 声明 此代码使用VS2019编译器进行编译 使用 vc 和 dev-c 的有可能会出现编译警告,需要自己去网上查找相关的编译环境的问题 其次使用vs编译器也可能会报 C49 ...

  3. 哈工大C语言大作业-学生成绩管理系统

    哈工大C语言大作业-学生成绩管理系统 完整项目地址:https://github.com/944613709/Student-Performance-Management-System-ByC 说明 ...

  4. 【C】C语言大作业——学生学籍管理系统

    文章目录 学生管理系统 界面 主界面 登陆界面 注册界面 管理界面 学生界面 退出界面 链接 注意 学生管理系统 学C语言时写的一个大作业,弄了一个带图形界面的,使用的是VS配合EasyX图形库进行实 ...

  5. 安卓期末大作业——图书信息管理系统

    前言 随着信息技术的高速发展,科技逐渐走进各行各业,帮助人们快速.便利地完成一些工作.BMS系统是基于Android移动设备的应用软件,该系统能够帮助用户在家里通过手机查看相应图书馆的馆藏情况,而不用 ...

  6. c语言大作业书店图书管理系统,c语言课程设计 书店管理系统.pdf

    c语言课程设计 书店管理系统 计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一 ...

  7. c语言大作业书店图书管理系统,C语言_课程设计—书店图书管理系统.doc

    计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24日 一.选题背景: 设计一个图书管理系统,管理员通过登陆账 ...

  8. c语言大作业书店图书管理系统,C语言课程设计书店管理系统.pdf

    计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一个图书管理系统,管理员通过登陆 ...

  9. c语言大作业教室预约管理系统,C语言程序设计——教室管理系统(源代码))

    C语言程序设计--教室管理系统(源代码) 非常有用的. #include #include #include #define szSTR 64 #define fileDB "c:\\con ...

  10. 数据库大作业-学生信息管理系统

    软件:SQL Server:Visual Studio 语言:C#,SQL 两个身份,管理员和学生. 管理员功能:管理学生专业信息.课程信息.选课信息(增删改查),查看已注册过的同学信息(密码不可见, ...

最新文章

  1. 有趣的计算机课的作文,有趣的电脑课作文500字
  2. 使用dex2jar反编译APK时出现的问题
  3. BigDecimal 比较大小需要注意的事项
  4. Nginx-从零开始使用nginx实现反向代理及负载均衡
  5. (转)CXF学习笔记一:如何创建、发布和访问基于CXF的服务
  6. Android开发之利用动画做出Activity悬浮滑动效果
  7. tcp client.cs
  8. Python 字符串(一)
  9. 强烈推荐 16 款 IDEA 插件,让你的开发速度飞起来!
  10. iOS 网络与多线程--3.异步Get方式的网络请求(非阻塞)
  11. VB.NET C++ VB 编程语言
  12. Jtag接口定义及含义
  13. python计算程序运行时间毫秒_Python获取秒级时间戳与毫秒级时间戳方法
  14. 阿里云域名转入/转出操作教程
  15. winrar破解注册
  16. 隐私保护 举例_完美保护隐私
  17. 基于人工智能(AI)的蛋白结构预测工具合集
  18. python列表切片习题(一)
  19. 高定价预计将降低iPhone XS的需求
  20. 金融业务知识(2):股票交易的基本流程

热门文章

  1. ThinkPHP自定义错误页面
  2. 百度地图 - js获取行政区边界范围
  3. MQTT测试工具推荐
  4. 欧姆龙nj与nx哪个高端_没想到还有比三菱更垃圾的PLC,欧姆龙隆重登场
  5. WINHTTP的API接口说明
  6. sklearn实现lda主题模型LatentDirichletAllocation
  7. 电子口岸客户端控件首次安装
  8. PHP教程一环境搭建 Wampserve 下载和安装
  9. Terms of Service - Screen Capture
  10. 优道在线屏幕截图控件(UUDoc Screen Capture Control)