停车场管理系统C++课程设计报告.docx
《停车场管理系统C++课程设计报告.docx》由会员分享,可在线阅读,更多相关《停车场管理系统C++课程设计报告.docx(37页珍藏版)》请在冰点文库上搜索。
停车场管理系统C++课程设计报告
重庆科技学院
《面向对象程序设计》
课程设计报告
学 院:
电气与信息工程学院专业班级:
计科升2013—01
学生姓名:
廖帅林 学号:
2015520134
设计地点(单位)_____I514_______
设计题目:
_停车场 管 理系统设计 ___
完成日期:
2016 年1月8日
指导教师评语:
______________________ _______________
_________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________ﻫ 指导教师(签字):
________________
重庆科技学院
课程设计任务书
设计题目:
停车场管理系统设计
学生姓名
廖帅林
课程名称
面向对象课程设计
专业班级
计科升2013—01
地 点
I514
起止时间
12月28日~1月8日
设计内容及要求
1)问题描述
定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。
定义一个管理类,完成对停车场的管理。
停车场的具体要求:
设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用.
2)功能要求
(1)添加功能:
程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:
可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;
(3)显示功能:
可显示当前系统中所有车辆的信息,每条记录占据一行。
(4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。
(5)删除功能:
主要实现对已添加的车辆记录进行删除。
如果当前系统中没有相应的人员记录,则提示“记录为空!
”并返回操作。
(6)统计功能:
能统计停车场中车辆的总数、按车型、按到达时间进行统计等。
3)问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告.
根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。
设计
参数
(1)系统分析、设计正确。
(2)结果以图表方式显示。
(3)界面简洁、美观。
(4)报告格式规范。
进度
要求
周一:
明确设计任务,学习相关基础知识
周二:
熟悉各知识点,进行基础练习
周三:
根据题目要求,进行设计和实现
周四:
根据题目要求,进行设计和实现
周五:
程序测试
参考资料
[1]RichardJohnsonbaugh。
MartinKalin。
《面向对象程序设计—C++语言描述》.机械工业出版社。
2009年
[2]钱能.《C++语言程序设计教程》。
清华大学出版社.2005年
其它
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别.
教研室主任:
王双明 指导教师:
焦晓军 2015年1月8
摘要
该系统是用C++语言编写的一个简单的操作系统,在汇编环境下,用户可以按照界面的提示,选择不同的功能。
该车库管理系统主要的设计方法是定义了两个类(Car和Manage).Car类中定义了一些Car的基本属性,得到信息的函数和输出信息的函数,Manage(管理类)中主要实现车辆信息的添加,删除,查询,显示,统计和修改功能.该系统可以大大的节省管理者的时间和资源,也对所管理的对象的效率是非常高的.
关键词:
C++停车场管理系统函数 功能
目录ﻩIV
第一章软件需求分析ﻩ1
1。
1 软件需求1
1。
2系统中各功能函数的关系图ﻩ1
第二章系统分析与设计ﻩ4
2。
3类中各函数执行的流程图5
2.4主要函数功能实现ﻩ17
第三章软件的实现19
第四章系统的调试20
4。
1主界面的调试ﻩ20
4.3查询功能的调试22
4.4编辑功能的调试23
4.5统计的调试ﻩ23
4.5删除的调试ﻩ24
第五章总结ﻩ25
参考文献ﻩ27
第一章软件需求分析
1。
1 软件需求
本程序是运用C++语言编写的系统.其功能是对在库的车辆信息进行有效的管理,所以该系统主要面对的是停车场管理员.停车场管理员可以根据本系统的操作提示完成对所需要管理的对象进行有效的管理.在本系统中有很多功能,例如可以输入新的车辆信息,包括车辆的车牌号码、车的颜色、车的入库时间、车型、停车所交的费用等等。
所以本系统不失为一个管理车辆的有效系统,尤其是面对对车辆需要有效管理的停车场、车站、二手车交易市场等等。
1。
2系统中各功能函数的关系图
主界面与各功能函数的关系:
图1.1主界面与各功能函数关系图
添加函数功能:
判断不重复则添加
图1.2 添加函数功能图
查询函数功能:
图1。
3查询函数功能图
显示函数功能:
图1.4显示函数功能图
图1。
5库为空显示函数功能图
编辑函数功能:
图1.6编辑函数功能图
删除函数功能:
图1.7删除函数功能图
第二章 系统分析与设计
2.1系统运用的语言
本系统主要是运用面对对象C++语言所编写的软件.运用了类的定义以及一些成员函数等等。
本系统中主要运用面对对象C++语言对本系统的主要对象car进行类的定义,然后再运用Manage类的一些函数功能来实现。
2.2类的定义
其中Car中的类成员如下:
表2-1Car类成员表
string number;
车牌号(受保护成员变量)
stringcolor;
车的颜色(受保护成员变量)
stringtype;
车型(受保护成员变量)
stringintime;
车入库时间(受保护成员变量)
stringouttime;
车出库时间(受保护成员变量)
voidsetouttime( strings)
设置出库时间函数
stringGetouttime()
得到出库时间
void setnumber(string s)
设置车牌号函数
stringGetnumber()
得到车牌号函数
void setcolor( strings)
设置车的颜色
stringGetcolor()const
得到车得颜色
void setintime(strings)
设置入库时间函数
voidsettype(strings)
设置车型函数
stringGettype()
得到车型原函数
stringGetintime()
得到入库时间函数
voidoutput()
输出成员变量的函数
void input()
输入信息的函数
Manage中类成员如下:
表2-2Manage类成员表
intcount
下标(私有成员变量)
intcapacity
最大存储容量(私有成员变量)
boolAdd()
添加函数
VoidDisplay()
显示函数
VoidSearch()
查找函数
VoidDelete()
删除函数
VoidEdit()
编辑函数
Void Totle()
统计函数
Carcar[500]
定义一个Car类的对象
2.3类中各函数执行的流程图
添加函数流程图:
Y
ﻩN
N N
否
Y
图2
2。
1添加函数流程图
显示函数流程图:
N
ﻩY
2.2显示函数流程图
编辑函数流程图:
N
Y
ﻩ
ﻩ
2.3编辑函数流程图
删除函数流程图:
N
Y
、
2。
4 删除函数流程图
按照本系统的功能,首先定义了一个类Car,其代码如下:
classCar
{
protected:
ﻩstring number; //车牌号
ﻩstringcolor; //车的颜色
ﻩstringtype; //车型
ﻩstringintime; //车的入库时间
ﻩstringouttime; //车出库时间
public:
ﻩﻩﻩﻩﻩ
void input()
{
ﻩ cout〈〈"请输入车牌号:
”;
ﻩﻩcin>>number;
ﻩcout<<"请输入车的颜色:
";
cin>>color;
cout<〈"请输入车的类型:
”;
ﻩﻩcin>>type;
ﻩcout<<"请输入车进入库的时间:
";
ﻩcin>>intime;
ﻩcout〈<"请输入车出库的时间:
”;
cin〉>outtime;
ﻩ}
void output()
ﻩ{
ﻩﻩcout〈<"车牌号:
”〈<number<〈""〈〈”车的颜色:
"<<color<〈”"〈<”车型:
"<<type<<”"<〈"车入库时间:
"<<intime〈〈"”〈<”车出库时间:
"<<outtime<〈endl;
}
void setintime( string s)
ﻩ{
intime=s;
ﻩ}
ﻩstring Getintime()//得到入库得到时间函数
ﻩ{
ﻩﻩreturnintime;
}
ﻩvoidsetouttime(strings)
ﻩ{
outtime=s;
}
ﻩstringGetouttime()//得到出库时间函数
{
return outtime;
ﻩ}
void setnumber(strings)
ﻩ{
number=s;
}
stringGetnumber()//得到车牌号函数
{
ﻩﻩreturn number;
}
ﻩvoid setcolor( strings)
{
ﻩﻩcolor=s;
}
stringGetcolor()const//得到颜色函数
{
return color;
}
voidsettype(string s)
{
type=s;
ﻩ}
ﻩstringGettype()//得到类型函数
ﻩ{
ﻩreturntype;
}
};ﻩ
Manage的定义,其代码如下:
ClassManage{
ﻩCar car[500];//定义一个存放的数组
ﻩint count;//下标
int capacity;//最大存储容量ﻩ
public:
Manage( int capa=500,intct=0)
{
capacity=capa;
count=ct;
}
ﻩ~Manage(){}
ﻩbool Add()//添加函数
ﻩ{
ﻩstringa;//定义存储需添加的车牌号的变量
cout〈<"请输入你要添加车辆的信息"<cout<<"输入你要添加的车牌号:
";
ﻩcin>>a;
ﻩif(count==capacity)//判断容量是否已满
ﻩ{
ﻩﻩﻩcout<〈"车库已满"<ﻩreturntrue;
ﻩ}
ﻩ
ﻩfor(int i=0;iﻩ{ﻩ
ﻩﻩ if(a==car[i].Getnumber())
ﻩﻩ{
ﻩﻩﻩcout<〈”本车辆已经添加!
"〈〈endl;
ﻩﻩreturntrue;
ﻩﻩ}
ﻩﻩ}
ﻩﻩcar[count++]。
input();
ﻩcout<<”添加成功"<〈endl;
ﻩreturntrue;
}
ﻩ
voidSearch()//查找函数
ﻩ{
ﻩﻩcout〈<”请输入你要查询车辆信息的方式:
1.按车牌号进行查询2.按车型进行查询"<<endl;
ﻩﻩint A;
ﻩﻩcin〉>A;
ﻩﻩstringB;
ﻩstringC;
ﻩif(count==0)
ﻩﻩ{cout<〈”记录为空!
”<ﻩswitch(A)
{
ﻩcase1:
{
ﻩﻩcout<<"请输入你要查询的车牌号:
”;
ﻩ cin>>B;
ﻩﻩ for(inti=0;i<count;i++)
ﻩﻩ{
ﻩ if(B==car[i].Getnumber())
ﻩﻩ{
ﻩﻩﻩ car[i]。
output();
ﻩﻩﻩ break;
ﻩﻩ}
ﻩﻩ cout〈〈"记录为空!
"〈<endl;
ﻩﻩﻩ}
ﻩ };break;
ﻩcase2:
{
ﻩ cout〈〈"请输入你要查询的车的车型号:
";
ﻩﻩ cin〉>C;
for(inti=0;i<count;i++)
ﻩﻩﻩﻩ{
ﻩ if(C==car[i]。
Gettype())
ﻩﻩ{
ﻩﻩﻩﻩ car[i].output();
ﻩﻩﻩﻩbreak;
ﻩﻩﻩ}
ﻩﻩcout〈<”记录为空!
"<<endl;
ﻩ }
ﻩ};break;
ﻩ}
}
void Display()//显示全部车辆信息函数
ﻩ{
ﻩif(count==0)
ﻩ{cout<〈"记录为空"<<endl;}
for(inti=0;i{
ﻩcar[i].output();
}
ﻩ}
bool Edit()//修改函数
ﻩ{
ﻩstringa;//定义存储需添加的车牌号的变量
ﻩﻩintc;//可以选择多方式修改
stringd;//要修改的对应的参数
int b;
ﻩcout〈<”请输入你要修改车辆的车牌号:
";
ﻩﻩcin>>a;
ﻩ for(inti=0;i<count;i++)
ﻩ{
if(a==car[i]。
Getnumber())
ﻩﻩ{
ﻩﻩcar[i]。
output();
ﻩﻩﻩb=i;
ﻩﻩbreak;ﻩ
}
ﻩﻩcout〈<”记录为空!
”<<endl;
ﻩﻩ}
cout〈〈"0。
修改车牌号 1.修改颜色2.修改车型3。
修改入库时间 4.修改出库时间5。
退出修改界面"〈<endl;
cout<〈"请输入你的选择:
”;
cin>〉c;
ﻩswitch(c)
{
ﻩﻩcase 0:
cout〈<”将车牌号修改为:
";
cin〉>d;
ﻩ car[b].setnumber(d);
ﻩﻩﻩ cout<<”修改成功!
"<<endl;
ﻩbreak;
ﻩcase1:
cout<<”将车的颜色改为:
";
ﻩﻩ cin〉〉d;
ﻩﻩﻩ car[b].setcolor(d);
ﻩﻩcout<<"修改成功!
"〈<endl;
ﻩﻩbreak;
ﻩcase2:
cout<〈"将车的车型改为:
";
ﻩﻩ cin〉〉d;
ﻩ car[b].settype(d);
ﻩﻩﻩﻩcout<<"修改成功!
"〈ﻩﻩbreak;
case 3:
cout<<”将车的入库时间改为:
”;
ﻩﻩ cin>〉d;
ﻩﻩﻩcar[b].setintime(d);
ﻩﻩﻩcout〈<"修改成功!
"<ﻩﻩﻩ break;
ﻩﻩ case4:
cout〈〈"将车出库时间改为:
";
ﻩcin>>d;
ﻩﻩ car[b].setouttime(d);
ﻩcout〈〈"修改成功!
”<<endl;
ﻩﻩbreak;
ﻩcase5:
cout〈<"你已成功退出修改界面"〈〈endl;
ﻩﻩbreak;
ﻩ }
ﻩreturntrue;
}
void Delete()//删除函数
{
ﻩ string a;
cout〈<”请输入你要删除车辆的信息:
"〈ﻩcout〈<"请输入删除车辆的车牌号:
";
ﻩﻩcin>〉a;
ﻩif(count==0)
ﻩﻩ{cout〈<"记录为空!
”<<endl;
ﻩ}
for(inti=0;i〈count;i++)
ﻩ {
ﻩ
ﻩif(a==car[i]。
Getnumber())
ﻩ{
ﻩfor(intj=i;j〈count-1;j++)//查找到删除并进行移位
ﻩﻩﻩ
ﻩcar[j]=car[j+1];
ﻩﻩﻩﻩcout〈<"删除成功”<ﻩﻩcount—-;
ﻩﻩﻩbreak;
ﻩ}
}
}
2.4 主要函数功能实现
另外一些需要一些函数来完成二级页面的界面显示,其代码如下:
voidAdd1()
{
ﻩintb;//编号
cout<<”****************************************************************”〈<endl;
cout<〈”************** **********************”〈ﻩcout<<” 1。
添加车辆具体信息 "<〈endl;
ﻩcout<〈” 0.退出添加功能界面 "<<endl;
ﻩcout<〈"请输入你选择的编号:
";
cin>>b;
switch(b)
{
case1:
a。
Add();break;
case0:
cout〈〈"你已成功退出添加功能界面 ”〈ﻩ
ﻩ}
}
voidSearch1()
{
ﻩ
ﻩintb;//编号
ﻩcout<<"****************************************************************”〈<endl;
cout〈〈"************** **********************"<〈endl;
cout<<" 1.查找车辆具体信息 "<cout〈<" 0.退出查询功能界面 ”〈〈endl;
ﻩcout<〈"请输入你选择的编号:
”;
ﻩcin>〉b;
ﻩswitch(b)
ﻩ{
case1:
a。
Search();break;
case 0:
cout<<”你已成功退出查询功能界面"〈<endl;break;
}
}
void Display1()
{
int b;//编号
ﻩcout〈<"****************************************************************”<ﻩcout<<"************** **********************"<<endl;
ﻩcout<<" 1.显示车辆具体信息 "<<endl;
cout<<" 0。
退出显示功能界面 "<〈endl;
cout<<"请输入你选择的编号:
";
ﻩcin〉>b;
ﻩswitch(b)
{
ﻩcase0:
cout<<”你已成功退