#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
FILE*fp;
typedef struct cars//定义结构体
{char idcar[5];//车辆编号char pai[10];//车辆品牌char hao[10];//车辆型号float mile;//车程float year;//车龄float old;//原价char xiu[5];//是否有大修char gu[5];//是否有故障char state[5];//出入库状态char date[15];//入库日期char namesell[10];//卖家姓名char numsell[15];//卖家电话float guprice;//估计价float shiprice;//实际售价char namexiao[10];//销售员名字char idxiao[5];//销售员工号char nameke[10];//客户姓名char numke[15];//客户号码float jinprice;//车辆进价char namejing[10];//经手人姓名char numjing[15];//经手人号码
} data; //定义结构体data car[60];//初始化结构体
void password1(char trueword[]);//密码函数
void xiugai(char tureword[]);//修改密码
void password2(void);//口令函数
void pressanykey();//输入任意键继续
int input(char filename[60],data *car);//数据从文件读取
void output(data *car,int n);//浏览全部信息
char mainscreen(void);//主菜单
char ziscreen1(void);//普通员工菜单
char ziscreen2(char tureword[]);//管理员菜单
void search(data *p,int n);//查询车辆信息
void search1(data *p,int n);//按车辆品牌查询
void search2(data *p,int n);//按汽车年龄查询
void search3(data *p,int n);//按车辆编号查询
void search4(data *p,int n);//按车辆状态查询
void search5(data *p,int n);//按车辆估计价查询
void search6(data *p,int n);//按车辆入库时间查询
void searchd1(data *p,int n);//按车辆品牌-车辆状态查询
void searchd2(data *p,int n);//按车辆品牌-车辆里程查询
void searchd3(data *p,int n);//按车辆品牌-车辆入库日期查询
void searchd4(data *p,int n);//按车辆品牌-车辆估计价查询
void sort(int n);//排序函数
void sortfloat(char choice1,char choice2,int n,data *car);//实数型数据的排序
void sortchar(char choice1,char choice2,int n,data *car);//字符串数据的排序
void Xiugai();//修改函数
void xiugai1(data *p,int i,int n);//修改车辆日期
void xiugai2(data *p,int i,int n);//修改车辆状态
void xiugai3(data *p,int i,int n);//修改车辆卖家联系方式
void xiugai4(data *p,int i,int n);//修改车辆卖家姓名
void xiugai5(data *p,int i,int n);//修改车辆故障状态
void xiugai6(data *p,int i,int n);//修改汽车品牌
int delet(data *p,int n);//删除函数
void newcar(int *p);//新增车辆
void newcar1(data *car,int *p);//新增一条信息
void newcar2(data *car,int *p);//以文件方式新增多条信息
void keep(data *car,char filename[50],int *p );//将结构体中新增的数据保存到文件中
void tongji(data *car,int n);//统计车辆信息
void tongji1(data *car,int n,int a[]);//统计各品牌车辆数量
void tongji2(data *car,int n,int a[]);//统计各品牌车辆受欢迎度
void tongji3(data *car,int n);//统计各销售员业绩
void tongji4(data *car,int n);//统计无故障的车辆并输出部分相关信息int main()
{printf("\n");printf("┌════════┐...┌════════┐...┌.═════════┐   ╭═════╮\n");printf("║        ║ ═ ║        ║ ═ ║          ║═  ║    ║\n");printf("└⊙═⊙═⊙═⊙ ⊙═⊙═⊙═⊙  └⊙═⊙═⊙═⊙~~ ╰⊙═⊙╯\n");printf("\n");int n=0;//保存数据的总条数n=input("data.txt",car);char a,b;char trueword[10]="123456";//密码的初始化a=mainscreen();//记录主菜单用户的选择do{if(a=='1'){getchar();//读取回车符b=ziscreen1();//记录子菜单用户的选择switch(b){case '0'://返回上一层菜单getchar();a=mainscreen();if(a=='0')return 0;break;case '1':search(car,n);//查询函数break;case '2':sort(n);//排序函数break;case '3':output(car,n);//浏览全部信息break;}}if(a=='2'){getchar();//读取回车符b=ziscreen2(trueword);//记录子菜单用户的选择switch(b){case '0'://返回上一层菜单getchar();a=mainscreen();if(a=='0')return 0;break;case '1':search(car,n);//查询函数break;case '2':sort(n);//排序函数break;case '3':output(car,n);//浏览全部信息break;case '4':Xiugai(car,n);//修改函数break;case '5':newcar(&n);//新增函数break;case '6':delet(car,n);//删除函数break;case '7':tongji(car,n);//统计函数break;case '8':xiugai(trueword);//修改密码break;}}if(a=='0')return 0;}while(1);return 0;
}
void pressanykey()   //显示“敲任意键继续”并等待
{printf("=========请敲任意键继续========");getch();fflush(stdin);printf("\n");
}
void xiugai(char trueword[])//修改密码
{printf("*****欢迎进入密码修改系统*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");password1(trueword);printf("请输入您要修改的新密码:");getchar();gets(trueword);//输入新的密码pressanykey();
}
void password1(char trueword[])//密码函数
{char pass[10];//保存用户输入的密码int i=0;printf("请输入密码:");while((pass[i]=getch())!='\r'){putch('*');//屏幕上输出“*”i++;}pass[i]='\0';if(!strcmp(pass,trueword))//验证口令是否正确{printf("\n密码正确!!!\n");}else{printf("\n密码错误,");password1(trueword);//若口令错误,重新进入函数}
}
void password2(void)//口令函数
{char pass[10];//保存用户输入的密码int i=0;printf("请输入口令:");while((pass[i]=getch())!='\r'){putch('*');//屏幕上输出“*”i++;}pass[i]='\0';if(!strcmp(pass,"123456"))//验证口令是否正确{printf("\n口令正确!!!\n");}else{printf("\n口令错误,");password2();//若口令错误,重新进入函数}
}
int input(char filename[50],data *car)//数据从文件读取
{FILE *fp;//进行文件操作fp=fopen(filename,"r");//以只读不写的方式打开文件int i=0,n=0;//记录文件中数据的总条数if(fp==NULL){printf("file not found");return 0;}else{while(!feof(fp)){fscanf(fp,"%s %s %s %f %f %f %s %s %s %s %s %s %f %f %s %s %s %s %f %s %s",car[i].idcar,car[i].pai,car[i].hao,&car[i].mile,&car[i].year,&car[i].old,car[i].xiu,car[i].gu,car[i].state,car[i].date,car[i].namesell,car[i].numsell,&car[i].guprice,&car[i].shiprice,car[i].namexiao,car[i].idxiao,car[i].nameke,car[i].numke,&car[i].jinprice,car[i].namejing,car[i].numjing);i++;//统计数据的总条数}}n=i;n--;//减掉空白行fclose(fp);//关闭文件return n;//返回数据的条数
}
char mainscreen(void)//主菜单
{printf("*****欢迎使用二手车销售管理系统*****\n");char a;printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("             请选择您的登陆方式:\n");printf("             1.普通员工\n");printf("             2.管理员\n");printf("             0.退出\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(0-2):");scanf("%c",&a);return a;
}//主屏幕函数
char ziscreen1(void)//普通员工菜单
{char a;//记录用户的选择printf("*****欢迎进入普通员工系统*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("*******您可以进行以下操作*****\n");printf("             1.查询二手车信息\n");printf("             2.排序\n");printf("             3.浏览全部二手车信息\n");printf("             0.返回上级菜单\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(0-3):");scanf("%c",&a);return a;
}//普通员工菜单
char ziscreen2(char tureword[])//管理员菜单
{password1(tureword);char a;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("             8.修改管理员密码\n");printf("             0.返回上一级菜单\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(0-8):");scanf("%c",&a);return a;//返回用户的选择
}//管理员菜单
void search(data *p,int n)//查询函数
{int a;//记录单独查询还是组合查询printf("*****欢迎进入查询系统*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("******请选择您的查询方式******\n");printf("         1.单独查询\n");printf("         2.组合查询\n");printf("         0.退出查询系统\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(0-2):");scanf("%d",&a);if(a==1)//单独查询{int b;//记录要查询的内容do{system("cls");//清屏printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("******您可以查询以下信息******\n");printf("             1.按车辆品牌查询\n");printf("             2.按汽车车龄查询\n");printf("             3.按车辆编号查询\n");printf("             4.按车辆状态查询\n");printf("             5.按车辆估计价查询\n");printf("             6.按车辆入库日期查询\n");printf("             0.返回查询方式菜单\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(0-6):");scanf("%d",&b);switch(b){case 1:search1(p,n);break;//按车辆品牌查询case 2:search2(p,n);break;//按汽车车龄查询case 3:search3(p,n);break;//按车辆编号查询case 4:search4(p,n);break;//按车辆状态查询case 5:search5(p,n);break;//按车辆估计价查询case 6:search6(p,n);break;//按车辆入库日期查询case 0:search(p,n);//返回上级菜单if(b==0)return;break;}if(b==1||b==2||b==3||b==4||b==5||b==6){printf("\n");system("pause");//显示按任意键继续break;}}while(1);}if(a==2){int b;do{system("cls");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("******请选择您想要的组合查询方式******\n");printf("       1.按车辆品牌-车辆状态查询\n");printf("       2.按车辆品牌-车辆里程查询\n");printf("       3.按车辆品牌-车辆入库日期查询\n");printf("       4.按车辆品牌-车辆估计价查询\n");printf("       0.返回查询方式菜单\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(0-4):");scanf("%d",&b);switch(b){case 1:searchd1(p,n);break;//按车辆品牌-车辆状态查询case 2:searchd2(p,n);break;//按车辆品牌-车辆里程查询case 3:searchd3(p,n);break;//按车辆品牌-车辆入库日期查询case 4:searchd4(p,n);break;//按车辆品牌-车辆估计价查询case 0:search(p,n);if(b==0)return ;break;//返回查询菜单}if(b==1||b==2||b==3||b==4){printf("\n");system("pause");//显示按任意键继续break;}}while(1);}
}
void search1(data *p,int n)//按车辆品牌查询
{int find=-1,i;char chepai[15];printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("******您可以查询以下车辆品牌******\n");printf("             奥迪\n");printf("             奔驰\n");printf("             宝马\n");printf("             法拉利\n");printf("             大众\n");printf("             奔腾\n");printf("             宝骏\n");printf("             保时捷\n");printf("             五菱宏光\n");printf("             比亚迪\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请输入您要查询的品牌:");scanf("%s",chepai);printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\n");printf("*****您查询的车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=0; i<n; i++){if(strcmp(chepai,(p+i)->pai)==0){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}if(find!=1){printf("******没有找到!!!******\n");}
}
void search2(data *p,int n)//按汽车年龄查询
{int find=-1,i,c;//c用来记录要查询的车龄printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("******您可以获取以下信息******\n");printf("   1.车龄在1年(包括1年)以下的汽车\n");printf("   2.车龄在1-3年(不包括1、3年)的汽车\n");printf("   3.车龄在3年(包括3年)以上的汽车\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(1-3):");scanf("%d",&c);printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\n");printf("*****您查询的车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");if(c==1)//车龄在1年(包括1年)以下的汽车{for(i=0; i<n; i++){if((p+i)->year<=1){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}}if(c==2)//车龄在1-3年(不包括1、3年)的汽车{for(i=0; i<n; i++){if((p+i)->year<3&&(p+i)->year>1){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}}if(c==3)//车龄在3年(包括3年)以上的汽车{for(i=0; i<n; i++){if((p+i)->year>=3){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}}if(find!=1)//找不到{printf("******没有找到!!!******\n");}
}
void search3(data *p,int n)//按车辆编号查询
{int i,find=-1;//find用来记录是否找到车辆编号char bianhao[10];printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请输入您要查询的车辆编号:");scanf("%s",bianhao);printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\n");printf("*****您查询的车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");for(i=0; i<n; i++){if(strcmp(bianhao,(p+i)->idcar)==0)//判断是否是要查询的车辆编号{find=1;printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}if(find!=1)//找不到车辆编号printf("没有找到该编号车辆\n");
}
void search4(data *p,int n)//按车辆状态查询
{int i,find=-1;char zhuang[5];printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("******您可以查询以下几种状态******\n");printf("            入库\n");printf("            出库\n");printf("            预定\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请输入您的选择:");scanf("%s",zhuang);printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\n");printf("*****您查询的车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=0; i<n; i++){if(strcmp(zhuang,(p+i)->state)==0){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}if(find!=1)//找不到车辆编号printf("没有找到该状态车辆\n");
}
void search5(data *p,int n)//按车辆估计价查询
{int i,c,find=-1;//c记录要查询的信息,find记录是否找到要查询的信息printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("******您可以获取以下信息******\n");printf("   1.估计价小于等于30万的车辆\n");printf("   2.估计价大于30万小于等于100万的车辆\n");printf("   3.估计价大于100万的车辆\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(1-3):");scanf("%d",&c);printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\n");printf("*****您查询的车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");if(c==1)//车龄在3年(包括3年)以上的汽车{for(i=0; i<n; i++){if((p+i)->guprice<=30){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}}if(c==2)//估计价大于30万小于等于100万的车辆{for(i=0; i<n; i++){if((p+i)->guprice<=100&&(p+i)->guprice>30){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}}if(c==3)//估计价大于100万的车辆{for(i=0; i<n; i++){if((p+i)->guprice>100){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}}if(find!=1)//找不到车辆编号printf("没有找到该估计价车辆\n");
}
void search6(data *p,int n)//按车辆入库时间查询
{int i,find=-1;char riqi[15];printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请输入您要查询的车辆入库日期:");scanf("%s",riqi);printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\n");printf("*****您查询的车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=0; i<n; i++){if(strcmp(riqi,(p+i)->date)==0){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}if(find!=1)//printf("没有找到该入库时间的车辆\n");
}
void searchd1(data *p,int n)//按车辆品牌-车辆状态查询
{char pinpai[10];char zhuang[5];int i,find=-1;printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请输入您要查询的品牌:");scanf("%s",pinpai);printf("请输入您要查询的车辆状态:");scanf("%s",zhuang);printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\n");printf("*****您查询的车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=0;i<n;i++){if(strcmp(pinpai,(p+i)->pai)==0){if(strcmp(zhuang,(p+i)->state)==0){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}}if(find!=1)printf("没有找到");
}
void searchd2(data *p,int n)//按车辆品牌-车辆里程查询
{char pinpai[10];int i,find=-1,c;printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请输入您要查询的品牌:");scanf("%s",pinpai);printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("******您可以获取以下信息******\n");printf("   1.里程小于等于10万公里的车辆\n");printf("   2.里程大于10万公里小于等于30万公里的车辆\n");printf("   3.里程大于30万的车辆\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(1-3):");scanf("%d",&c);printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\n");printf("*****您查询的车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=0; i<n; i++){if(strcmp(pinpai,(p+i)->pai)==0){if(c==1){if((p+i)->mile<=10){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}if(c==2){if((p+i)->mile<=30&&(p+i)->mile>10){find=2;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}if(c==3){if((p+i)->mile>30){find=3;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}}}if(find!=1){printf("***********************\n");printf("******没有找到!!!******\n");printf("***********************\n");}
}
void searchd3(data *p,int n)//按车辆品牌-车辆入库日期查询
{char pinpai[10];char riqi[15];int i,find=-1;printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请输入您要查询的品牌:");scanf("%s",pinpai);printf("请输入您要查询的入库日期:");scanf("%s",riqi);printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\n");printf("*****您查询的车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=0;i<n;i++){if(strcmp(pinpai,(p+i)->pai)==0){if(strcmp(riqi,(p+i)->date)==0){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}}if(find!=1)printf("没有找到");
}
void searchd4(data *p,int n)//按车辆品牌-车辆估计价查询
{char pinpai[10];int i,find=-1,c;printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请输入您要查询的品牌:");scanf("%s",pinpai);printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("******您可以获取以下信息******\n");printf("   1.估计价小于等于10万的车辆\n");printf("   2.估计价大于50万小于等于100万的车辆\n");printf("   3.估计价大于100万的车辆\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(1-3):");scanf("%d",&c);printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\n");printf("*****您查询的车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=0; i<n; i++){if(strcmp(pinpai,(p+i)->pai)==0){if(c==1){if((p+i)->guprice<=50){find=1;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}if(c==2){if((p+i)->guprice<=100&&(p+i)->guprice>50){find=2;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}if(c==3){if((p+i)->guprice>100){find=3;printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}}}}if(find==-1){printf("***********************\n");printf("******没有找到!!!******\n");printf("***********************\n");}
}
void sort(int n)//排序函数
{char a,b;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("             0.返回上一级菜单\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(0-6):");getchar();scanf("%c",&a);//a记录用户的排序内容if(a=='0'){return;}printf("*****排序方式*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("*******您可以进行以下选择*****\n");printf("             1.升序\n");printf("             2.降序\n");printf("             0.返回上一级菜单\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(0-2):");getchar();scanf("%c",&b);//b记录用户的排序方式printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");switch(a)//进入相应的排序系统{case '1':sortchar(a,b,n,car);//字符串数据的排序//按车辆编号排序break;case '2':sortfloat(a,b,n,car);//实数型数据的排序//按车辆里程数(万公里)排序break;case '3':sortfloat(a,b,n,car);//按车龄(年)排序break;case '4':sortfloat(a,b,n,car);//按车辆进价(万元)排序break;case '5':sortfloat(a,b,n,car);//按车辆估价(万元)排序break;case '6':sortchar(a,b,n,car);//按日期排序break;default:break;}
}
void sortfloat(char choice1,char choice2,int n,data *car)//实数型数据的排序
{int i,j;data t;//t作为结构体变量交换的辅助变量switch(choice1)//排序内容的选择{case '2'://按车辆里程数(万公里)排序if(choice2=='1')//升序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(car[j].mile>car[j+1].mile){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}else if(choice2=='2')//降序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(car[j].mile<car[j+1].mile){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}break;case '3'://按车龄(年)排序if(choice2=='1')//升序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(car[j].year>car[j+1].year){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}else if(choice2=='2')//降序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(car[j].year<car[j+1].year){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}break;case '4'://按车辆进价(万元)排序if(choice2=='1')//升序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(car[j].jinprice>car[j+1].jinprice){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}else if(choice2=='2')//降序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(car[j].jinprice<car[j+1].jinprice){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}break;case '5'://按车辆估价(万元)排序if(choice2=='1')//升序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(car[j].guprice>car[j+1].guprice){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}else if(choice2=='2')//降序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(car[j].guprice<car[j+1].guprice){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}break;}printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期         卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=0; i<n; i++){printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",car[i].idcar,car[i].pai,car[i].hao,car[i].mile,car[i].year,car[i].old,car[i].xiu,car[i].gu,car[i].state,car[i].date,car[i].namesell,car[i].numsell,car[i].guprice,car[i].shiprice,car[i].namexiao,car[i].idxiao,car[i].nameke,car[i].numke,car[i].jinprice,car[i].namejing,car[i].numjing);}pressanykey();
}
void sortchar(char choice1,char choice2,int n,data *car)//字符串数据的排序
{int i,j;data t;switch(choice1)//排序内容的选择{case '1'://按车辆编号排序if(choice2=='1')//升序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(strcmp(car[j].idcar,car[j+1].idcar)>0){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}else if(choice2=='2')//降序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(strcmp(car[j].idcar,car[j+1].idcar)<0){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}break;case '6'://按日期排序if(choice2=='1')//升序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(strcmp(car[j].date,car[j+1].date)>0){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}else if(choice2=='2')//降序{for(i=0; i<n-1; i++)//冒泡排序{for(j=0; j<n-1-i; j++){if(strcmp(car[j].date,car[j+1].date)<0){t=car[j];car[j]=car[j+1];car[j+1]=t;}}}}break;}printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期         卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=0; i<n; i++){printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",car[i].idcar,car[i].pai,car[i].hao,car[i].mile,car[i].year,car[i].old,car[i].xiu,car[i].gu,car[i].state,car[i].date,car[i].namesell,car[i].numsell,car[i].guprice,car[i].shiprice,car[i].namexiao,car[i].idxiao,car[i].nameke,car[i].numke,car[i].jinprice,car[i].namejing,car[i].numjing);}pressanykey();
}
void output(data *car,int n)//浏览全部信息
{int i;printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("*****全部车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=0;i<n;i++)//输出全部信息{printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",car[i].idcar,car[i].pai,car[i].hao,car[i].mile,car[i].year,car[i].old,car[i].xiu,car[i].gu,car[i].state,car[i].date,car[i].namesell,car[i].numsell,car[i].guprice,car[i].shiprice,car[i].namexiao,car[i].idxiao,car[i].nameke,car[i].numke,car[i].jinprice,car[i].namejing,car[i].numjing);if((i+1)%10==0)    //这里是每10条信息一屏pressanykey();}if(i%10)//判断还有没有信息输出pressanykey();//显示按任意键继续
}
void Xiugai(data *p,int n)//修改函数
{password2();//口令函数,口令正确才能进行修改int x,find=-1,i,index=0;char bianhao[5],b,c;//b记录输入错误编号后是否要继续查询,c记录是否要修改信息printf("\n*****欢迎进入修改系统*****\n");printf("请输入您要修改的车辆编号:");scanf("%s",bianhao);printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");for(i=0; i<100; i++){if(strcmp(bianhao,(p+i)->idcar)==0)//判断是否有要修改的车辆{index=i;find=1;printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);break;}}if(find==-1){printf("没有找到该编号车辆\n");printf("如果您想继续修改,请按'1'键确认,或者按'2'退出修改系统:");getchar();scanf("%c",&b);if(b=='1')Xiugai(p,n);//放回修改菜单}if(find==1)//查找到车辆信息,进行修改{printf("请确认您是否要修改此条信息?是(y)或否(n):");getchar();scanf("%c",&c);//记录是否要修改if(c=='y'){printf("\n******请选择您要修改的内容*****\n");printf("         1.车辆入库日期\n");printf("         2.车辆状态\n");printf("         3.车辆卖家联系方式\n");printf("         4.车辆卖家姓名\n");printf("         5.车辆故障状态\n");printf("         6.车辆品牌\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(0-6):");do{scanf("%d",&x);//记录修改选择switch(x){case 1:xiugai1(p,index,n);//修改车辆入库日期break;case 2:xiugai2(p,index,n);//修改车辆状态break;case 3:xiugai3(p,index,n);//修改车辆卖家联系方式break;case 4:xiugai4(p,index,n);//修改车辆卖家姓名break;case 5:xiugai5(p,index,n);//修改车辆故障状态break;case 6:xiugai6(p,index,n);//修改车辆品牌break;}if(x==1||x==2||x==3||x==4||x==5||x==6){system("pause");//输出“按任意建继续”break;}}while(1);}elsesystem("pause");//输出“按任意建继续”}
}
void xiugai1(data *p,int j,int n)//车辆入库日期
{FILE *fp;char ned[20],c;int i;printf("请输入新的车辆入库日期:");scanf("%s",ned);strcpy((p+j)->date,ned);//修改结构体中的车辆入库日期printf("车辆信息修改成功!!!\n");printf("请选择是(‘y’)否(‘n')要保存修改后的文件:");getchar();scanf("%c",&c);//判断是否要保存修改后的文件if(c=='y'){fp = fopen("data.txt","w");for(i=0; i<n; i++)//文件中写入修改后的数据{fprintf(fp,"%s %s %s %.2f %.2f %.2f %s %s %s %s %s %s %.2f %.2f %s %s %s %s %.2f %s %s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}fclose(fp);input("data.txt",p);printf("********************\n");printf("新的车辆信息为:\n");//输出新的车辆信息printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+j)->idcar,(p+j)->pai,(p+j)->hao,(p+j)->mile,(p+j)->year,(p+j)->old,(p+j)->xiu,(p+j)->gu,(p+j)->state,(p+j)->date,(p+j)->namesell,(p+j)->numsell,(p+j)->guprice,(p+j)->shiprice,(p+j)->namexiao,(p+j)->idxiao,(p+j)->nameke,(p+j)->numke,(p+j)->jinprice,(p+j)->namejing,(p+j)->numjing);}else;
}
void xiugai2(data *p,int j,int n)//修改车辆状态
{FILE *fp;char ned[15],c;int i;printf("请输入新的车辆状态:");scanf("%s",ned);strcpy((p+j)->state,ned);//修改结构体中的车辆状态printf("车辆信息修改成功!!!\n");printf("请选择是(‘y’)否(‘n')要保存修改后的文件:");getchar();scanf("%c",&c);//判断是否要保存修改后的数据if(c=='y')//保存修改后的数据{fp = fopen("data.txt","w");for(i=0; i<n; i++)//文件中写入更改后的数据{fprintf(fp,"%s %s %s %.2f %.2f %.2f %s %s %s %s %s %s %.2f %.2f %s %s %s %s %.2f %s %s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}fclose(fp);input("data.txt",p);printf("********************\n");printf("新的车辆信息为:\n");//输出文件中更改后的数据printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+j)->idcar,(p+j)->pai,(p+j)->hao,(p+j)->mile,(p+j)->year,(p+j)->old,(p+j)->xiu,(p+j)->gu,(p+j)->state,(p+j)->date,(p+j)->namesell,(p+j)->numsell,(p+j)->guprice,(p+j)->shiprice,(p+j)->namexiao,(p+j)->idxiao,(p+j)->nameke,(p+j)->numke,(p+j)->jinprice,(p+j)->namejing,(p+j)->numjing);}else;
}
void xiugai3(data *p,int j,int n)//修改车辆卖家联系方式
{FILE *fp;char ned[15],c;int i;printf("请输入新的卖家联系方式:");scanf("%s",ned);strcpy((p+j)->numsell,ned);//修改结构体中的卖家联系方式printf("车辆信息修改成功!!!\n");printf("请选择是(‘y’)否(‘n')要保存修改后的文件:");getchar();scanf("%c",&c);//判断是否要保存修改后的数据if(c=='y')//保存修改后的数据{fp = fopen("data.txt","w");for(i=0; i<n; i++)//文件中写入修改后的数据{fprintf(fp,"%s %s %s %.2f %.2f %.2f %s %s %s %s %s %s %.2f %.2f %s %s %s %s %.2f %s %s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}fclose(fp);input("data.txt",p);printf("********************\n");printf("新的车辆信息为:\n");//输出更改后的文件中的数据printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+j)->idcar,(p+j)->pai,(p+j)->hao,(p+j)->mile,(p+j)->year,(p+j)->old,(p+j)->xiu,(p+j)->gu,(p+j)->state,(p+j)->date,(p+j)->namesell,(p+j)->numsell,(p+j)->guprice,(p+j)->shiprice,(p+j)->namexiao,(p+j)->idxiao,(p+j)->nameke,(p+j)->numke,(p+j)->jinprice,(p+j)->namejing,(p+j)->numjing);}else;
}
void xiugai4(data *p,int j,int n)//修改车辆卖家姓名
{FILE *fp;char ned[15],c;int i;printf("请输入新的卖家姓名:");scanf("%s",ned);strcpy((p+j)->namesell,ned);//修改结构体中的卖家姓名printf("车辆信息修改成功!!!\n");printf("请选择是(‘y’)否(‘n')要保存修改后的文件:");getchar();scanf("%c",&c);//确认是否要保存修改后的数据if(c=='y')//保存修改后的数据{fp = fopen("data.txt","w");for(i=0; i<n; i++)//文档中写入修改后的数据{fprintf(fp,"%s %s %s %.2f %.2f %.2f %s %s %s %s %s %s %.2f %.2f %s %s %s %s %.2f %s %s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}fclose(fp);input("data.txt",p);printf("********************\n");printf("新的车辆信息为:\n");//输出新的数据printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+j)->idcar,(p+j)->pai,(p+j)->hao,(p+j)->mile,(p+j)->year,(p+j)->old,(p+j)->xiu,(p+j)->gu,(p+j)->state,(p+j)->date,(p+j)->namesell,(p+j)->numsell,(p+j)->guprice,(p+j)->shiprice,(p+j)->namexiao,(p+j)->idxiao,(p+j)->nameke,(p+j)->numke,(p+j)->jinprice,(p+j)->namejing,(p+j)->numjing);}else;
}
void xiugai5(data *p,int j,int n)//修改车辆故障状态
{FILE *fp;char ned[15],c;int i;printf("请输入新的卖家姓名:");scanf("%s",ned);strcpy((p+j)->gu,ned);//修改结构体中的故障状态printf("车辆信息修改成功!!!\n");printf("请选择是(‘y’)否(‘n')要保存修改后的文件:");getchar();scanf("%c",&c);//记录是否要保存修改后的数据if(c=='y')//保存更改后的数据{fp = fopen("data.txt","w");for(i=0; i<n; i++)//文档中写入修改后的数据{fprintf(fp,"%s %s %s %.2f %.2f %.2f %s %s %s %s %s %s %.2f %.2f %s %s %s %s %.2f %s %s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}fclose(fp);input("data.txt",p);//更新结构体printf("********************\n");printf("新的车辆信息为:\n");//输出更改后的车辆信息printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+j)->idcar,(p+j)->pai,(p+j)->hao,(p+j)->mile,(p+j)->year,(p+j)->old,(p+j)->xiu,(p+j)->gu,(p+j)->state,(p+j)->date,(p+j)->namesell,(p+j)->numsell,(p+j)->guprice,(p+j)->shiprice,(p+j)->namexiao,(p+j)->idxiao,(p+j)->nameke,(p+j)->numke,(p+j)->jinprice,(p+j)->namejing,(p+j)->numjing);}else;
}
void xiugai6(data *p,int j,int n)//修改车辆品牌
{FILE *fp;char ned[15],c;int i;printf("请输入新的车辆品牌:");scanf("%s",ned);strcpy((p+j)->pai,ned);//更改输入后的车辆品牌printf("车辆信息修改成功!!!\n");printf("请选择是(‘y’)否(‘n')要保存修改后的文件:");getchar();scanf("%c",&c);if(c=='y'){fp = fopen("data.txt","w");for(i=0; i<n; i++)//文档中写入修改后的数据{fprintf(fp,"%s %s %s %.2f %.2f %.2f %s %s %s %s %s %s %.2f %.2f %s %s %s %s %.2f %s %s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}fclose(fp);input("data.txt",p);//重新读入数据,以便下面输出修改后的信息printf("********************\n");printf("新的车辆信息为:\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+j)->idcar,(p+j)->pai,(p+j)->hao,(p+j)->mile,(p+j)->year,(p+j)->old,(p+j)->xiu,(p+j)->gu,(p+j)->state,(p+j)->date,(p+j)->namesell,(p+j)->numsell,(p+j)->guprice,(p+j)->shiprice,(p+j)->namexiao,(p+j)->idxiao,(p+j)->nameke,(p+j)->numke,(p+j)->jinprice,(p+j)->namejing,(p+j)->numjing);}else;
}
int delet(data *p,int n)//删除函数
{password2();//输入口令,口令正确才能继续删除char bianhao[10];int find=-1,i,j;printf("\n*****欢迎进入删除系统*****\n");printf("请输入要删除的车辆信息所在行的编号:");scanf("%s",bianhao);for(i=0; i<n; i++){if(strcmp(bianhao,(p+i)->idcar)==0)//找到要删除的信息所在行{printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);printf("**********************************\n");printf("请确认是(‘y’)否(‘n')要删除词条信息:");char c;getchar();scanf("%c",&c);if(c=='y'){find=i;for(j=find; j<n-1; j++)//删除第i行函数,后面往前覆盖p[j]=p[j+1];n--;//更新结构体变量的个数i--;//确保所有信息都删除}else{find=-2;}}}if(find==-1)printf("没有找到该编号车辆\n");if(find!=-1&&find!=-2){printf("**********************************\n");printf("删除信息成功!!!\n");printf("请选择是(‘y’)否(‘n')要保存删除后的文件:");char c;getchar();scanf("%c",&c);//记录是否要保存文件if(c=='y'){FILE *fp;fp=fopen("data.txt","w");//以只写的方式打开文件,若文件已存在,删除里面信息再写入for(i=0; i<n; i++)//文件中写入删除后的信息{fprintf(fp,"%s %s %s %.2f %.2f %.2f %s %s %s %s %s %s %.2f %.2f %s %s %s %s %.2f %s %s\n",(p+i)->idcar,(p+i)->pai,(p+i)->hao,(p+i)->mile,(p+i)->year,(p+i)->old,(p+i)->xiu,(p+i)->gu,(p+i)->state,(p+i)->date,(p+i)->namesell,(p+i)->numsell,(p+i)->guprice,(p+i)->shiprice,(p+i)->namexiao,(p+i)->idxiao,(p+i)->nameke,(p+i)->numke,(p+i)->jinprice,(p+i)->namejing,(p+i)->numjing);}fclose(fp);printf("**********************************\n");printf("文件保存成功!!!\n");}else;}system("pause");//按任意键继续return n;
}
void newcar(int *p)//新增车辆
{password2();//口令函数printf("*****新增二手车信息*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("*******您可以进行以下选择*****\n");printf("             1.新增一条信息\n");printf("             2.以文件方式新增多条信息\n");printf("             0.返回上一级菜单\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");char a;//记录用户选择的新增方式printf("请选择:");getchar();//读掉回车符scanf("%c",&a);switch(a){case '1':newcar1(car,p);//新增一条信息break;case '2':newcar2(car,p);//以文件的方式新增多条信息break;}
}
void newcar1(data *car,int *p)//新增一条信息
{int i;printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");scanf("%s %s %s %f %f %f %s %s %s %s %s %s %f %f %s %s %s %s %f %s %s",car[*p].idcar,car[*p].pai,car[*p].hao,&car[*p].mile,&car[*p].year,&car[*p].old,car[*p].xiu,car[*p].gu,car[*p].state,car[*p].date,car[*p].namesell,car[*p].numsell,&car[*p].guprice,&car[*p].shiprice,car[*p].namexiao,car[*p].idxiao,car[*p].nameke,car[*p].numke,&car[*p].jinprice,car[*p].namejing,car[*p].numjing);//用户输入想要新增的信息(*p)++;//总数据的总条数加一printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^未买出的车辆,相关信息皆以-1替代          ^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("\n");printf("*****全部车辆信息如下*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=0; i<*p; i++){printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f %-7.2f %-7s %-4s %-7s %-12s %-7.2f %-7s %-12s\n",car[i].idcar,car[i].pai,car[i].hao,car[i].mile,car[i].year,car[i].old,car[i].xiu,car[i].gu,car[i].state,car[i].date,car[i].namesell,car[i].numsell,car[i].guprice,car[i].shiprice,car[i].namexiao,car[i].idxiao,car[i].nameke,car[i].numke,car[i].jinprice,car[i].namejing,car[i].numjing);//输出新增后的全部数据}printf("新增成功!!!\n");printf("是否要保存?:");char a;getchar();scanf("%c",&a);if(a=='y'){keep(car,"data.txt",p);//保存函数,将新增的数据保存到文件中printf("保存成功!!!\n");pressanykey();}elsereturn;
}
void newcar2(data *car,int *p)//以文件方式新增多条信息
{char filename[20];//文件名printf("请输入追加信息的文件名:");getchar();//读掉多余的回车符gets(filename);printf("请选择想要追加的信息条数(1-10):");int s,i;scanf("%d",&s);//记录用户想要新增的信息条数printf("请输入想要追加的信息:\n");*p=*p+s;//更新数据总条数printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期        卖家姓名 卖家联系方式 估价    实价    销售员  工号 客户    客户电话     进价    经手人  经手人电话\n");for(i=*p-s; i<*p; i++)//输入用户想要新增的数据{scanf("%s %s %s %f %f %f %s %s %s %s %s %s %f %f %s %s %s %s %f %s %s",car[i].idcar,car[i].pai,car[i].hao,&car[i].mile,&car[i].year,&car[i].old,car[i].xiu,car[i].gu,car[i].state,car[i].date,car[i].namesell,car[i].numsell,&car[i].guprice,&car[i].shiprice,car[i].namexiao,car[i].idxiao,car[i].nameke,car[i].numke,&car[i].jinprice,car[i].namejing,car[i].numjing);}FILE *fp;//开始进行文件的操作fp=fopen(filename,"a+");//以追加的方式打开文件if(fp==NULL){printf("file not found");return;}else{for(i=*p-s; i<*p; i++)//在文件中输出新增的全部数据{fprintf(fp,"%s %s %s %.2f %.2f %.2f %s %s %s %s %s %s %.2f %.2f %s %s %s %s %.2f %s %s\n",car[i].idcar,car[i].pai,car[i].hao,car[i].mile,car[i].year,car[i].old,car[i].xiu,car[i].gu,car[i].state,car[i].date,car[i].namesell,car[i].numsell,car[i].guprice,car[i].shiprice,car[i].namexiao,car[i].idxiao,car[i].nameke,car[i].numke,car[i].jinprice,car[i].namejing,car[i].numjing);}}printf("保存成功!!!\n");pressanykey();fclose(fp);//关闭文件
}
void keep(data *car,char filename[20],int *p )//将结构体中新增的数据保存到文件中
{FILE *fp;int i=(*p)-1;//方便后续输出fp=fopen(filename,"a+");//以追加的方式打开文件if(fp==NULL){printf("file not found");return;}else//在文件中输出新增的一条数据{fprintf(fp,"%s %s %s %.2f %.2f %.2f %s %s %s %s %s %s %.2f %.2f %s %s %s %s %.2f %s %s\n",car[i].idcar,car[i].pai,car[i].hao,car[i].mile,car[i].year,car[i].old,car[i].xiu,car[i].gu,car[i].state,car[i].date,car[i].namesell,car[i].numsell,car[i].guprice,car[i].shiprice,car[i].namexiao,car[i].idxiao,car[i].nameke,car[i].numke,car[i].jinprice,car[i].namejing,car[i].numjing);}fclose(fp);//关闭文件
}
void tongji(data *car,int n)//统计车辆信息
{char b;//记录用户选择要统计的内容int a[10]= {0};//统计汽车数量printf("*****欢迎进入统计系统*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("*******请选择您要统计的内容*****\n");printf("             1.各品牌车辆数量统计\n");printf("             2.各品牌车辆受欢迎度\n");printf("             3.销售员业绩统计\n");printf("             4.无故障的车辆统计\n");printf("             0.返回上一级菜单\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("请选择(0-6):");getchar();scanf("%c",&b);switch(b){case '1':tongji1(car,n,a);//统计各品牌车辆数量break;case '2':tongji2(car,n,a);//统计各品牌车辆受欢迎度break;case '3':tongji3(car,n);//统计各销售员业绩break;case '4':tongji4(car,n);//统计无故障的车辆并输出部分相关信息break;}
}
void tongji1(data *car,int n,int a[])//统计各品牌车辆数量
{int i;for(i=0; i<n; i++)//遍历数据,统计数据{if(strcmp(car[i].pai,"奥迪")==0)a[0]++;else if(strcmp(car[i].pai,"奔驰")==0)a[1]++;else if(strcmp(car[i].pai,"宝马")==0)a[2]++;else if(strcmp(car[i].pai,"法拉利")==0)a[3]++;else if(strcmp(car[i].pai,"大众")==0)a[4]++;else if(strcmp(car[i].pai,"奔腾")==0)a[5]++;else if(strcmp(car[i].pai,"宝骏")==0)a[6]++;else if(strcmp(car[i].pai,"保时捷")==0)a[7]++;else if(strcmp(car[i].pai,"五菱宏光")==0)a[8]++;else if(strcmp(car[i].pai,"比亚迪")==0)a[9]++;}printf("车辆品牌       数量\n");printf("奥迪           %d\n",a[0]);printf("奔驰           %d\n",a[1]);printf("宝马           %d\n",a[2]);printf("法拉利         %d\n",a[3]);printf("大众           %d\n",a[4]);printf("奔腾           %d\n",a[5]);printf("宝骏           %d\n",a[6]);printf("保时捷         %d\n",a[7]);printf("五菱宏光       %d\n",a[8]);printf("比亚迪         %d\n",a[9]);pressanykey();
}
void tongji2(data *car,int n,int a[])//统计各品牌车辆受欢迎度
{int i,b[10]= {0};//数组b用来统计状态为‘预定’的车辆数for(i=0; i<n; i++)//遍历数据,统计各品牌车辆数{if(strcmp(car[i].pai,"奥迪")==0)a[0]++;else if(strcmp(car[i].pai,"奔驰")==0)a[1]++;else if(strcmp(car[i].pai,"宝马")==0)a[2]++;else if(strcmp(car[i].pai,"法拉利")==0)a[3]++;else if(strcmp(car[i].pai,"大众")==0)a[4]++;else if(strcmp(car[i].pai,"奔腾")==0)a[5]++;else if(strcmp(car[i].pai,"宝骏")==0)a[6]++;else if(strcmp(car[i].pai,"保时捷")==0)a[7]++;else if(strcmp(car[i].pai,"五菱宏光")==0)a[8]++;else if(strcmp(car[i].pai,"比亚迪")==0)a[9]++;}for(i=0; i<n; i++)//统计状态为‘预定’的车辆数{if(strcmp(car[i].pai,"奥迪")==0&&strcmp(car[i].state,"入库")==0)b[0]++;else if(strcmp(car[i].pai,"奔驰")==0&&strcmp(car[i].state,"入库")==0)b[1]++;else if(strcmp(car[i].pai,"宝马")==0&&strcmp(car[i].state,"入库")==0)b[2]++;else if(strcmp(car[i].pai,"法拉利")==0&&strcmp(car[i].state,"入库")==0)b[3]++;else if(strcmp(car[i].pai,"大众")==0&&strcmp(car[i].state,"入库")==0)b[4]++;else if(strcmp(car[i].pai,"奔腾")==0&&strcmp(car[i].state,"入库")==0)b[5]++;else if(strcmp(car[i].pai,"宝骏")==0&&strcmp(car[i].state,"入库")==0)b[6]++;else if(strcmp(car[i].pai,"保时捷")==0&&strcmp(car[i].state,"入库")==0)b[7]++;else if(strcmp(car[i].pai,"五菱宏光")==0&&strcmp(car[i].state,"入库")==0)b[8]++;else if(strcmp(car[i].pai,"比亚迪")==0&&strcmp(car[i].state,"入库")==0)b[9]++;}char c[10]= {0};//数组c用来统计各车辆的受欢迎度for(i=0; i<10; i++)//统计各车辆的受欢迎度{if((a[i]-b[i])*1.0/a[i]>=0.75&&(a[i]-b[i])*1.0/a[i]<=1.0)c[i]='A';else if((a[i]-b[i])*1.0/a[i]>=0.50&&(a[i]-b[i])*1.0/a[i]<0.75)c[i]='B';else if((a[i]-b[i])*1.0/a[i]>=0.25&&(a[i]-b[i])*1.0/a[i]<0.50)c[i]='C';elsec[i]='D';}printf("车辆品牌       受欢迎度\n");printf("奥迪           %c\n",c[0]);printf("奔驰           %c\n",c[1]);printf("宝马           %c\n",c[2]);printf("法拉利         %c\n",c[3]);printf("大众           %c\n",c[4]);printf("奔腾           %c\n",c[5]);printf("宝骏           %c\n",c[6]);printf("保时捷         %c\n",c[7]);printf("五菱宏光       %c\n",c[8]);printf("比亚迪         %c\n",c[9]);pressanykey();
}
void tongji3(data *car,int n)//统计各销售员业绩
{int i,s[10]= {0};//统计销售员卖出的车辆for(i=0; i<n; i++)//统计销售员的业绩{if(strcmp(car[i].namexiao,"刘宗")==0)s[0]++;else if(strcmp(car[i].namexiao,"汪斯年")==0)s[1]++;else if(strcmp(car[i].namexiao,"杨晁")==0)s[2]++;else if(strcmp(car[i].namexiao,"罗雨灵")==0)s[3]++;else if(strcmp(car[i].namexiao,"冯骢")==0)s[4]++;else if(strcmp(car[i].namexiao,"杨溢")==0)s[5]++;else if(strcmp(car[i].namexiao,"陈俊一")==0)s[6]++;else if(strcmp(car[i].namexiao,"何贞")==0)s[7]++;else if(strcmp(car[i].namexiao,"郭彬")==0)s[8]++;else if(strcmp(car[i].namexiao,"朱宜年")==0)s[9]++;}printf("销售员姓名     业绩\n");printf("刘宗           %d单\n",s[0]);printf("汪斯年         %d单\n",s[1]);printf("杨晁           %d单\n",s[2]);printf("罗雨灵         %d单\n",s[3]);printf("冯骢           %d单\n",s[4]);printf("杨溢           %d单\n",s[5]);printf("陈俊一         %d单\n",s[6]);printf("何贞           %d单\n",s[7]);printf("郭彬           %d单\n",s[8]);printf("朱宜年         %d单\n",s[9]);pressanykey();
}
void tongji4(data *car,int n)//统计无故障的车辆并输出部分相关信息
{int i,s=0;printf("--------------------------------------------\n");printf("*****关于二手车信息的注释*****\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("^车龄的单位为:年                          ^\n");printf("^车辆里程的单位为:万公里                  ^\n");printf("^涉及到价格的单位皆为:万元                ^\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");printf("编号  品牌      型号      里程   车龄   原价     大修 故障 状态  日期      卖家姓名 卖家联系方式 估价\n");for(i=0; i<n; i++){if(strcmp(car[i].gu,"否")==0)//遍历数据,找到无故障的车辆,并输出部分相关信息{s++;//统计无故障车辆数printf("%-5s %-9s %-9s %-6.2f %-6.2f %-8.2f %-4s %-4s %-5s %-11s %-8s %-12s %-7.2f\n",car[i].idcar,car[i].pai,car[i].hao,car[i].mile,car[i].year,car[i].old,car[i].xiu,car[i].gu,car[i].state,car[i].date,car[i].namesell,car[i].numsell,car[i].guprice);}}printf("--------------------------------------------\n");printf("无故障的车一共有%d辆\n",s);pressanykey();
}

C语言大作业 管理系统相关推荐

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

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

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

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

  3. C语言大作业:旅游资讯管理系统

    C语言大作业:旅游资讯管理系统 题目: 一.主体功能点要求: 1.设计主菜单实现用户交互 a.添加旅游资讯记录 每条记录至少包含如下项:编号.日程安排.费用.点赞数.添加旅游资讯记录时,要求键盘输入对 ...

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

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

  5. 1008c语言答案,c语言大作业题目01008.doc

    c语言大作业题目01008 一.学生信息管理程序 基本要求: 1.要求实现学生信息的查找.添加.删除.修改.浏览.保存.从文件读取.查看奖学金信息8个功能,每个功能模块均能实现随时从模块中退出,而且可 ...

  6. 大一期末C语言大作业—结构体和链表框架

    有很多大一的小白兔,学习C语言,在期末会有大作业 类似学生管理系统,酒店管理系统,电话簿管理系统 这种xxx管理系统大都是要求使用结构体和链表 本着授之以渔不如授之以渔的思想 我现在给出结构体和链表的 ...

  7. c语言大作业参考书,C语言大作业设计-

    <C语言大作业设计->由会员分享,可在线阅读,更多相关<C语言大作业设计-(17页珍藏版)>请在人人文库网上搜索. 1.常州工学院c语言作业设计规格标题:通信记录管理系统二级学 ...

  8. 大一c语言大作业课题大全,昆明理工大学大一C语言大作业题目.doc

    昆明理工大学大一C语言大作业题目 综合性实践排序求平均值(包括将数拆散求最大最小值).函数ReadDat()随机产生100个存放到数组aa中00个jsSort()函数的功能是:进行降序排列.最后调用函 ...

  9. c语言大作业旋转,c语言大作业全-20210412035629.docx-原创力文档

    Document number:PBGCG-0857-BTDO-0089-PTT1998 Document number:PBGCG-0857-BTDO-0089-PTT1998 C语言大作业全 #i ...

最新文章

  1. 个人作业3——个人总结(Alpha阶段)
  2. Identity 验证,Authorize 特性
  3. python PyQt5 QLabel()(可以用来显示文字、图片或作为放置一些控件提示信息的容器)
  4. LoadRunner 12.02 安装教程及中文语言包安装
  5. python拼接两个数组_在Python中连接两个数组
  6. numpy ndarry格式新增一行,将格式从(k,)变为(k,1)
  7. 十、JAVA抽象类的定义使用
  8. 在子窗体中点击超级链接,关闭子窗体并刷新打开它的父窗体
  9. 计算机更换配件导致系统,旧电脑怎么升级 旧电脑要换哪些配件
  10. Unity报错:InvalidOperationException:You are tring to read lnput using the UnityEngine. ……的解决办法
  11. C#中感叹号(!) 的作用总结
  12. 2020-05-13
  13. Tableau笔记(10)转置和拆分
  14. C# 压缩PDF文档
  15. matlab运行LCT跟踪算法代码
  16. pycharm左侧的导航栏有时候不见了
  17. 《Eolink 征文活动- -RESTful接口全解测试-全方位了解Eolink-三神技超亮点》
  18. 人脸验证与识别——从模型训练到项目部署
  19. 泛微OA使用笔记-测试
  20. JSP SSH图书系统myeclipse开发sql数据库BS模式java编程mvc结构 详细设计

热门文章

  1. 微信小程序趋势及前景,写给正在求职的安卓开发
  2. 【敏捷】项目管理——精益思想
  3. 微信小程序系列之注册小程序
  4. svn: 'D:\Dfiles\EclipseWorkspaceForLine\stqb-web' is already locked.
  5. ipad iphone开发_如何强制重启任何iPhone或iPad
  6. 让IE浏览器兼容HTML5
  7. JavaScript-BOM对象
  8. 专利的权利范围怎么理解?
  9. 一键部署LNMP平台脚本
  10. 计算机网络技术人员的内容,计算机网络技术人员标准规范.doc