基于C++的车辆信息管理系统.docx
《基于C++的车辆信息管理系统.docx》由会员分享,可在线阅读,更多相关《基于C++的车辆信息管理系统.docx(11页珍藏版)》请在冰豆网上搜索。
基于C++的车辆信息管理系统
哈尔滨理工大学软件学院
课程实践报告
课程设计
C++课程实践
车辆信息管理
软件15-7
***
***
管理系统的功能说明
1.存储数据的描述
2.概要设计说明书
3.源程序
4.测试分析(用户操作手册)
5.总结报告
1.管理系统功能说明
车辆管理系统有五项功能:
.增加车辆信息
二•浏览所有的车辆信息
三•查询车辆信息(按车辆品牌和型号)
四•修改车辆信息(通过型号查找再修改)
五•退出系统
2.存储数据的描述
由于本学期C++关于类的知识学的不精,我定义的是上学期学习
的结构体,并利用文件存储fopen与fclose产生一个名为information
的txt文件存储数据,方便程序的读写。
3.概要设计说明书
4.源程序#include#include#include#includeusingnamespacestd;
typedefstructcar
charBrand[20];
charModel[20];
charManufacturar[20];//manufacturer厂家
charPrice[30];
charLinkman[20];
structcar*next;
}car,*cheliang;
intinit(cheliang&s);
voidshuru(cheliang&s);
voidshuchu(cheliang&s);
voidfind(cheliang&s);
voidfindBrand(cheliang&s);
voidfindModel(cheliang&s);
voidchange(cheliang&s);
voidputfile(cheliang&s);
voidgetfile(cheliang&s);
voidwelcome。
;
voidPrintfSurface()
coutvv"
***********************************************************
***"vvendl;
coutvv"
*"vvendl;
系统
*"vvendl;
coutvv"*"vvendl;
coutvv"
By:
软件15-7刘子墨*"vvendl;
coutvv"
***********************************************************
***"vvendl;
coutvv"初始密码123456"vvendl;
intjud=O;
voidwelcome。
intb;
charcode[7];
coutvv"请输入密码:
"<while(b!
=3)
cin>>code;
b++;
if(strcmp(code,"123456")!
=0)
if(b!
=3)
else
intmain()
coutvv"密码错误,请重新输入:
"<continue;
jud=1;
break;
system("color1e");
PrintfSurface();
welcome。
;
if(jud==0)
return0;
cheliangs;
coutvv"\t\t\t&&&&&&&&&&&&&&&&&&&&&&&&&&&"<&"<coutvv"\t\t\t&
cout<<"\t\t\t&&&&&&&&&&&&&&&&&&&&&&&&&&&"<cout<<""<cout<while
(1)
inti;
mainint:
cout<<"请选择相关操作:
"<息."<cout<<"3.查询车辆信息."<息."<"<cin>>i;
if(i<=0||i>5)
cout<<"数字错误,请重新输入!
"<gotomainint;
switch(i)case1:
shuru(s);
break;
case2:
shuchu(s);
putfile(s);
break;
case3:
find(s);
break;
case4:
change(s);
break;
case5:
coutvv"感谢使用"<exit(0);
intinit(cheliang&s)
s=(cheliang)malloc(sizeof(car));//sizeofPasca的一种内存容量度量
函数malloc动态内存分配
if(s)
s->next二NULL;
return0;
elsereturn-1;
voidshuru(cheliang&s)//insert
coutvvendl;
cheliangp,q;
p=(cheliang)malloc(sizeof(car));
coutvv"请输入车辆信息:
"vvendl;
coutvv"品牌:
";
cin>>p->Brand;
coutvv"型号:
";
cin>>p->Model;
coutvvendl;
coutvv"厂家:
";
cin>>p->Manufacturar;
coutvvendl;
coutvv"价格:
";
cin>>p->Price;
coutvvendl;
coutvv"联系人:
";
cin>>p->Linkman;
coutvvendl;
q=s;
while(!
(q->next==NULL)&&(q->next->Modelvp->Model))
q二q->next;
p->next=q->next;
q->next二p;
voidshuchu(cheliang&s)
inta;
a=0;
cheliangp;
p二s->next;
coutvv"品牌"<<"型号"<<'厂家"<<"价格"<<"联系人"<while(p)
a++;
"<Model<<"
cout<Brand<<"
"<p二p->next;
cout<if(a==0)
cout<<"还没有车辆信息!
"<voidfind(cheliang&s)findl:
cout<<"请选择查找方法:
"<型号查找."<intk;
cin>>k;
if(kv0||k>2)
coutvv"请输入正确数字"<gotofindl;
switch(k)
case1:
findBrand(s);
break;
case2:
findModel(s);
break;
voidfindBrand(cheliang&s)//findbyname
cheliangp;
"<<"联系人"vvendl;
"<Modelvv"
charBrand[20];
intj;
j=0;
cin>>Brand;
coutvv"你要查找的资料是:
"<coutvv"品牌"<<"型号"<<'厂家"<<"价格
while(p)
if(strcmp(p->Brand,Brand)==0)
coutvvp->Brandvv"
"vvp->Manufacturarvv"
"vvp->Pricevv"
"vvp->Linkmanvv"
"vvendl;
j++;
p二p->next;
coutvvendl;
if(J==0)voidfindModel(cheliang&s)//findbynumber
cheliangp;
p二s->next;
charModel[20];
intj;
j=0;
cin>>Model;
coutvv"你要查找的资料是:
"<"vv"联系人"vvendl;
coutvv"品牌"vv"型号"vv"厂家"vv"价格
while(p)
if(strcmp(p->Model,Model)==0)
"vvp->Modelvv"
coutvvp->Brandvv"
"vvendl;
j++;
if(j==O)
coutvv"对不起,没这车。
"<voidchange(cheliang&s)//modifaycheliangq,p,l,m;
intj;
j=0;
q=s->next;
l=s;
m=s;
cout<<"请输入要修改的型号:
";
charModel[20];
cin>>Model;
cout<<"品牌"<<"型号"<<'厂家"<<"价格"<<"联系人"<while(q)
if(strcmp(q->Model,Model)==0)
"<j++;p=(cheliang)malloc(sizeof(car));
coutvv"请输入新的车辆信息:
"<coutvv"品牌:
";
cin>>p->Brand;
cout<cout<<"型号:
";
cin>>p->Model;
cout<cout<<"厂家:
";
cin>>p->Manufacturar;
cout<cout<<"价格:
";
cin>>p->Price;
cout<cout<<"联系人:
";
cin>>p->Linkman;
cout<<"修改完成"<free(q);
gotott;
tt:
else
l=q;
q二q->next;
coutvvendl;
if(j==0)coutvv"没找到你要的数据!
"<while(!
(m->next==NULL)&&(m->next->ModelModel))
m=m->next;
p->next=m->next;
m->next二p;
voidputfile(cheliang&s)
cheliangp;
p二s->next;
FILE*fp;
if((fp=fopen("information.txt","w"))==NULL)
exit(O);
while(p)
if(fwrite(p,sizeof(structcar),1,fp)!
=1)
return;
p二p->next;
fclose(fp);
voidgetfile(cheliang&s)cheliangp,q;
q=s;
FILE*fp1;
if((fp1=fopen("information.txt","r"))==NULL)
exit(0);
coutvv"品牌"<<"型号"<<'厂家"<<"价格"<<"联系人"<p=(cheliang)malloc(sizeof(car));
while(fread(p,sizeof(structcar),1,fp1)!
=0)
"<Model<<"
cout<Brand<<"
"<while(!
(q->next==NULL)&&(q->next->ModelModel))
q二q->next;
p->next=q->next;
q->next二p;
p=(cheliang)malloc(sizeof(car));
fclose(fp1);
cout<5.测试分析(用户操作手册)
进入开始界面
输入密码进入系统界面
密码可输入三次输入正确密码进入初始界面
输入1+回车键建立车辆信息
输入2+回车键进行信息浏览
输入3+回车键进入信息查询的选择界面此时输入1+回车将按照品牌查找车辆
返回主程序后输入4+回车键进行车辆信息修改并通过输入型号查找修改车辆主程序中输入4+回车键将修改车辆信息
主程序中输入5+回车键将退出系统
6.总结报告
程序有一部分直接套用上学期的程序,还向学长进行了请教,总算在规定时间内将程序写完,有很多地方是照着书现看现打的,总是出现一些莫名其妙的错误,后来也终于消除了基本上所有的BUG也感觉到了自己编程能力的下降,总算是没有大毛病。
总的来说,这学期的学习不甚满意,我需要好好看看类与对象还有复制构造函数和析构函数。
争取下次完全靠自己完成。