目录
一、题目:车辆信息管理系统 1
二、内容: 1
(1)概述或引言 1
(2)程序概要设计 1
(3)程序详细设计 2
(4)程序使用说明 4
(5)总结 8
三、参考文献 10
一、题目:车辆信息管理系统
二、内容:
(1)概述或引言
本程序使用Visual C++ 2010进行编写,是一个车辆信息管理系统,可实现车辆信息的添加和维护管理。
拥有7大功能,包括:
1、录入车辆信息:可将新的车辆信息录入系统并保存在系统中。
2、浏览车辆信息:可统计车辆总数并显示所有车辆信息。
3、查询车辆信息:可按照型号、厂商、车型、价格范围查询车辆。
4、修改车辆信息:可对某一辆车的某项参数进行修改。
5、删除车辆信息:可先按照型号、厂商查找车辆或查看全部车辆,再进行单一删除或全部删除。
6、排序车辆信息:可按价格、排量、座位数对车辆进行排序,排序后可浏览或保存。
7、初始化系统:可将系统初始化,将车辆信息还原至系统最初保存的信息。
(2)程序概要设计
运行程序进入欢迎界面,按1可进入系统菜单,按2可退出系统,系统菜单可选择包括以上介绍的7大功能及退出系统。
本程序共编写了14个函数,包括1个主函数和13个功能函数,详细如下:
1、main函数:用于实现欢迎界面及系统菜单的显示。
2、Input函数:用于实现录入车辆信息功能。
3、Browse函数:用于实现浏览车辆信息功能。
4、Query函数:用于实现查询车辆信息的界面显示及引导。
5、Chaxun1函数:用于实现按照型号、厂商、车型查询车辆。
6、Chaxun2函数:用于实现按照价格范围查询车辆。
7、Modify函数:用于实现修改车辆信息的界面显示及车辆选择。
8、Xiugai函数:用于实现对指定车辆的某一参数进行修改。
9、Delet函数:用于实现删除车辆信息的界面显示及引导。
10、Shanchu1函数:用于实现按型号、厂商查找车辆,再进行删除。
11、Shanchu2函数:用于实现查看全部车辆信息,再进行删除。
12、Sort函数:用于实现排序车辆信息的界面显示及引导。
13、Paixu函数:用于实现按价格、排量、座位数排序车辆。
14、Initialize函数:用于实现系统的初始化。
程序大概流程如下图:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<Windows.h>
void Input(struct car *p,int n);//录入车辆信息函数
void Browse(struct car *p,int n);//浏览车辆信息函数
void Query(struct car *p,int n);//查询车辆信息函数
void Chaxun1(struct car *p,int n,int x);//查询车辆信息子函数1
void Chaxun2(struct car *p,int n);//查询车辆信息子函数2
void Modify(struct car *p,int n);//修改车辆信息函数
void Xiugai(struct car *p,int n,int x,int j);//修改车辆信息子函数
void Delet(struct car *p,int n);//删除车辆信息函数
void Shanchu1(struct car *p,int n,int x);//删除车辆信息子函数1
void Shanchu2(struct car *p,int n);//删除车辆信息子函数2
void Sort(struct car *p,int n);//排序车辆信息函数
void Paixu(struct car *p,int n,int x);//排序车辆信息子函数
void Initialize();//初始化系统函数
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");
}
else
printf("\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);
}
}
//查询车辆信息子1
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);
}
else
printf("\n\n\t\t\t 无价格范围为%.2f万~%.2f万的车辆\n\n",a,b);
break;
}while(1);
}