1、基于C的车辆信息管理系统242020年4月19日文档仅供参考哈尔滨理工大学软件学院课程实践报告课程设计 C+课程实践题 目 车辆信息管理班 级 软件15-7学 生 *学 号 * 指导教师 * 管理系统的功能说明1 存储数据的描述2 概要设计说明书3 源程序4 测试分析(用户操作手册)5 总结报告1. 管理系统功能说明车辆管理系统有五项功能:一. 增加车辆信息二. 浏览所有的车辆信息三. 查询车辆信息(按车辆品牌和型号)四. 修改车辆信息(经过型号查找再修改)五. 退出系统2. 存储数据的描述由于本学期c+关于类的知识学的不精,我定义的是上学期学习的结构体,并利用文件存储fopen与fclose
2、产生一个名为information的txt文件存储数据,方便程序的读写。3. 概要设计说明书4.对对应地址的信息进行修改对应地址信息进行输出输入查找内容,与对应信息类型内数据进行逐个比对,相同返回对应地址。3.对查找类型进行选择。1.利用指针将存储地址传给参数,储存数据2.浏览依次输出车辆信息5.退出对用户要求做出反应:1. 浏览2. 增加3. 查找4. 修改5. 退出系统初始界面并初始化数据内存。4. 源程序 #include#include#include#includeusing namespace std;typedef struct car char Brand20; char Mo
3、del20; char Manufacturar20;/manufacturer 厂家 char Price30 ; char Linkman20; struct car *next; car,*cheliang;int init(cheliang &s);void shuru(cheliang &s);void shuchu(cheliang &s);void find (cheliang &s);void findBrand(cheliang &s);void findModel(cheliang &s);void change(cheliang &s);void putfile(chel
4、iang &s);void getfile(cheliang &s);void welcome();void PrintfSurface() cout *endl; cout * *endl; cout * Welcome To Use 车辆信息管理系统 *endl; cout * *endl; cout * By:软件15-7刘子墨 *endl; cout *endl; cout初始密码123456endl;int jud=0;void welcome() int b; char code7; cout请输入密码:code; b+; if(strcmp(code,123456)!=0) if
5、(b!=3) cout密码错误,请重新输入:endl; continue; else jud=1; break; int main() system(color 1e); PrintfSurface(); welcome(); if (jud=0) return 0; system(cls); cheliang s; init(s); coutttt&endl; coutttt& &endl; coutttt& 车辆信息管理系统 &endl; coutttt& 软7 刘子墨 &endl; coutttt&endl; cout endl; coutendl; while(1) int i;mai
6、nint: cout请选择相关操作:endl1.建立车辆信息.endl2.浏览车辆信息.endl; cout3.查询车辆信息.endl4.修改车辆信息.endl5.退出管理系统. endl请选择:i; if(i5) cout数字错误,请重新输入!endlendl; goto mainint; switch(i) case 1: shuru(s); break; case 2: shuchu(s); putfile(s); break; case 3: find(s); break; case 4: change(s); break; case 5: cout感谢使用next=NULL; ret
7、urn 0; else return -1;void shuru(cheliang &s) /insert coutendl; cheliang p,q; p=(cheliang)malloc(sizeof(car); cout请输入车辆信息:endl; coutp-Brand; coutendl; coutp-Model; coutendl; coutp-Manufacturar; coutendl; coutp-Price; coutendl; coutp-Linkman; coutnext=NULL)&(q-next-ModelModel) q=q-next; p-next=q-next
8、; q-next=p;void shuchu(cheliang &s) int a; a=0; cheliang p; p=s-next; cout品牌 型号 厂家 价格 联系人 endl; while(p) a+; coutBrand Model Manufacturar Price Linkman next; coutendl; if (a=0) cout还没有车辆信息!endlendl ;void find (cheliang &s)findl: cout请选择查找方法:endl1.按品牌查找.endl2.按型号查找.endl; coutk; if(k2) cout请输入正确数字endl
9、next; coutBrand; cout你要查找的资料是:endl; cout品牌 型号 厂家 价格 联系人 Brand,Brand)=0) coutBrand Model Manufacturar Price Linkman next; coutendl; if(j=0) cout厂家错误!endlnext; coutModel; cout你要查找的资料是:endl; cout品牌 型号 厂家 价格 联系人 Model,Model)=0) coutBrand Model Manufacturar Price Linkman next; coutendl; if(j=0) cout对不起,没
10、这车。endlnext; l=s; m=s; coutModel; cout品牌 型号 厂家 价格 联系人 Model,Model)=0) cout你要修改的信息是:endl; coutBrand Model Manufacturar Price Linkman endl; j+; p=(cheliang)malloc(sizeof(car); cout请输入新的车辆信息:endl; coutp-Brand; coutendl; coutp-Model; coutendl; coutp-Manufacturar; coutendl; coutp-Price; coutendl; coutp-L
11、inkman; cout修改完成next=q-next; free(q); goto tt; else l=q; q=q-next; coutendl; if (j=0) cout没找到你要的数据!endlnext=NULL)&(m-next-ModelModel) m=m-next; p-next=m-next; m-next=p;void putfile(cheliang &s) cheliang p; p=s-next; FILE *fp; if(fp=fopen(information.txt,w)=NULL) exit(0); while(p) if(fwrite(p,sizeof(
12、struct car),1,fp)!=1 ) return; p=p-next; fclose(fp) ;void getfile(cheliang &s) cheliang p,q; q=s; FILE *fp1 ; if(fp1=fopen(information.txt,r)=NULL) exit(0); cout品牌 型号 厂家 价格 联系人 endl; p=(cheliang)malloc(sizeof(car); while(fread(p,sizeof(struct car),1,fp1)!=0) coutBrand Model Manufacturar Price Linkma
13、n next=NULL)&(q-next-ModelModel) q=q-next; p-next=q-next; q-next=p; p=(cheliang)malloc(sizeof(car); fclose(fp1); coutendl;5. 测试分析(用户操作手册)进入开始界面输入密码进入系统界面 密码可输入三次输入正确密码进入初始界面输入1+回车键建立车辆信息输入2+回车键进行信息浏览 输入3+回车键进入信息查询的选择界面 此时输入1+回车将按照品牌查找车辆 返回主程序后输入4+回车键进行车辆信息修改并经过输入型号查找修改车辆主程序中输入4+回车键将修改车辆信息主程序中输入5+回车键将退出系统6. 总结报告程序有一部分直接套用上学期的程序,还向学长进行了请教,总算在规定时间内将程序写完,有很多地方是照着书现看现打的,总是出现一些莫名其妙的错误,后来也终于消除了基本上所有的BUG,也感觉到了自己编程能力的下降,总算是没有大毛病。总的来说,这学期的学习不甚满意,我需要好好看看类与对象还有复制构造函数和析构函数。争取下次完全靠自己完成。