停车场管理系统C++课程设计报告 下载本文

重庆科技学院

《面向对象程序设计》

课程设计报告

学 院:电气与信息工程学院 专业班级: 计科升2013-01 学生姓名: 廖帅林 学 号: 2015520134 设计地点(单位)_____I514_______

设计题目:_ 停 车 场 管 理 系 统 设 计 ___ 完成日期: 2016 年 1月 8 日

指导教师评语: ______________________ _______________

_________________________________________________________________________________________________________________________________________________________________________________________________________

成绩(五级记分制):______ __________

指导教师(签字):________ ________

重庆科技学院《面向对象程序设计》课程设计报告

重庆科技学院 课程设计任务书

设计题目:停车场管理系统设计

学生姓名 课程名称 地 点 设计内容及要求 廖帅林 面向对象课程设计 I514 专业班级 计科升2013-01 起止时间 12月28日~1月8日 1)问题描述 定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。 定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。 2)功能要求 (1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息; (3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。 (5)删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。 (6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等。 3)问题的解决方案 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。 根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。 I

重庆科技学院《面向对象程序设计》课程设计报告

设计 参数 (1)系统分析、设计正确。 (2)结果以图表方式显示。 (3)界面简洁、美观。 (4)报告格式规范。 进周一:明确设计任务,学习相关基础知识 度 周二:熟悉各知识点,进行基础练习 要周三:根据题目要求,进行设计和实现 求 周四:根据题目要求,进行设计和实现 周五:程序测试 参考资料 其它 说[1]Richard Johnsonbaugh. Martin Kalin.《面向对象程序设计—C++语言描述》.机械工业出版社.2009年 [2]钱能.《C++语言程序设计教程》.清华大学出版社.2005年 1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。 明 3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。 教研室主任: 王双明 指导教师:焦晓军

2015年1月8

II

重庆科技学院《面向对象程序设计》课程设计报告

摘要

该系统是用C++语言编写的一个简单的操作系统,在汇编环境下,用户可以按照界面的提示,选择不同的功能。

该车库管理系统主要的设计方法是定义了两个类(Car和Manage)。Car类中定义了一些Car的基本属性,得到信息的函数和输出信息的函数,Manage(管理类)中主要实现车辆信息的添加,删除,查询,显示,统计和修改功能。该系统可以大大的节省管理者的时间和资源,也对所管理的对象的效率是非常高的。 关键词:C++ 停车场管理系统 函数 功能

III

重庆科技学院《面向对象程序设计》课程设计报告

目录

摘要 ................................................................................................................................................ III 目录 ................................................................................................................................................ IV 第一章 软件需求分析 ..................................................................................................................... 1

1.1 软件需求 ............................................................................................................................ 1 1.2 系统中各功能函数的关系图 ............................................................................................ 1 第二章 系统分析与设计 ................................................................................................................. 4

2.1系统运用的语言 ................................................................................................................. 4 2.2类的定义 ............................................................................................................................. 4 2.3类中各函数执行的流程图 ................................................................................................. 5 2.4 主要函数功能实现 .......................................................................................................... 17 第三章 软件的实现 ....................................................................................................................... 18 第四章 系统的调试 ....................................................................................................................... 26

4.1主界面的调试 ................................................................................................................... 26 4.3查询功能的调试 ............................................................................................................... 27 4.4编辑功能的调试 ............................................................................................................... 28 4.5统计的调试 ....................................................................................................................... 29 4.5删除的调试 ....................................................................................................................... 29 第五章 总结 ................................................................................................................................... 30 致 谢 .............................................................................................................................................. 31 参考文献......................................................................................................................................... 32

IV

重庆科技学院《面向对象程序设计》课程设计报告

第一章 软件需求分析

1.1 软件需求

本程序是运用C++语言编写的系统。其功能是对在库的车辆信息进行有效的管理,所以该系统主要面对的是停车场管理员。停车场管理员可以根据本系统的操作提示完成对所需要管理的对象进行有效的管理。在本系统中有很多功能,例如可以输入新的车辆信息,包括车辆的车牌号码、车的颜色、车的入库时间、车型、停车所交的费用等等。所以本系统不失为一个管理车辆的有效系统,尤其是面对对车辆需要有效管理的停车场、车站、二手车交易市场等等。

1.2 系统中各功能函数的关系图

主界面与各功能函数的关系:

主界面

添加功能 查询功能 显示功能 编辑功能 删除功能 统计功能 图 1.1 主界面与各功能函数关系图

添加函数功能:

主加

界页 判断不重复则添加 面 面

图1.2 添加函数功能图

1

完 成 添 加 不添加,返回主界面 继续添加

查询函数功能:

主 界 面

显示函数功能:

重庆科技学院《面向对象程序设计》课程设计报告

查 完 不再查询,返回主界面 询 成 页 查 面 询 继续查询 图1.3 查询函数功能图

显示界面 显示车库所有车辆信息 图1.4 显示函数功能图 主界面 库为空,提示记录为空 主界面 图1.5 库为空显示函数功能图

2

重庆科技学院《面向对象程序设计》课程设计报告

编辑函数功能:

主 界 面 编 辑 功 能 页 面 输入的车辆信息有误,提示记录不存在 找到要修改的车辆,并显示出具体的信息 按 照 提 示 进 行 修 改

图1.6 编辑函数功能图

删除函数功能:

主界面 删除车辆功能函数 选择要删除的车牌号 给出提示信息

图1.7 删除函数功能图

3

重庆科技学院《面向对象程序设计》课程设计报告

第二章 系统分析与设计

2.1系统运用的语言

本系统主要是运用面对对象C++语言所编写的软件。运用了类的定义以及一些成员

函数等等。本系统中主要运用面对对象C++语言对本系统的主要对象car进行类的定义,然后再运用Manage类的一些函数功能来实现。

2.2类的定义

其中Car中的类成员如下:

表2-1 Car类成员表 string number; string color; string type; string intime; string outtime; void setouttime( string s) string Getouttime() void setnumber( string s) string Getnumber() void setcolor( string s) string Getcolor() const void setintime( string s) void settype( string s) string Gettype() string Getintime() void output() void input()

4

车牌号(受保护成员变量) 车的颜色(受保护成员变量) 车型(受保护成员变量) 车入库时间(受保护成员变量) 车出库时间(受保护成员变量) 设置出库时间函数 得到出库时间 设置车牌号函数 得到车牌号函数 设置车的颜色 得到车得颜色 设置入库时间 函数 设置车型函数 得到车型原函数 得到入库时间函数 输出成员变量的函数 输入信息的函数 重庆科技学院《面向对象程序设计》课程设计报告

Manage中类成员如下:

表2-2 Manage类成员表

int count int capacity bool Add() Void Display() Void Search() Void Delete() Void Edit() Void Totle() Car car[500] 下标(私有成员变量) 最大存储容量(私有成员变量) 添加函数 显示函数 查找函数 删除函数 编辑函数 统计函数 定义一个Car类的对象 2.3类中各函数执行的流程图

添加函数流程图:

开始 输入值a

Y

判断车库是否已满 N N N a是否等于car[i].Getnumber() 否 Y

图2 结 束 添加到car数组 Count+1,给出提示信息 2.1添加函数流程图

5

重庆科技学院《面向对象程序设计》课程设计报告

显示函数流程图:

判断count是否为0 开 始 N Y 提示记录为空

2.2显示函数流程图

6

结 束 显示所有车辆总数 重庆科技学院《面向对象程序设计》课程设计报告

编辑函数流程图:

开始

a是否等于 N ca[i].Getnumber()输入车牌号a

Y

输出对应的车信息,并给出提示信息选择操

2.3 编辑函数流程图

7

调用修改函数 提示修改结果 结 束 重庆科技学院《面向对象程序设计》课程设计报告

删除函数流程图:

N 判断a是否等于

Y 、

2.4 删除函数流程图

8

开 始 输入要删除的车牌号a car[i].Getnumber() 删除并给出提示信息 结 束 重庆科技学院《面向对象程序设计》课程设计报告

按照本系统的功能,首先定义了一个类Car,其代码如下: class Car {

protected:

string number; //车牌号 string color; //车的颜色 string type; //车型

string intime; //车的入库时间 string outtime; //车出库时间

public:

void input() {

cout<<\请输入车牌号:\ }

void output() {

cout<<\车牌号:\ \车的颜色:\\车cin>>number;

cout<<\请输入车的颜色:\cin>>color;

cout<<\请输入车的类型:\cin>>type;

cout<<\请输入车进入库的时间:\cin>>intime;

cout<<\请输入车出库的时间:\cin>>outtime;

型:\车入库时间:\车出库时间:\

9

}

重庆科技学院《面向对象程序设计》课程设计报告

void setintime( string s) {

intime=s;

void setouttime( string s) {

string Getintime()//得到入库得到时间函数 { }

return intime; }

outtime=s;

void setnumber( string s)

10

}

string Getouttime()//得到出库时间函数 { }

return outtime;

{ }

number=s;

string Getnumber()//得到车牌号函数 { }

return number;

重庆科技学院《面向对象程序设计》课程设计报告

void setcolor( string s) { }

color=s;

string Getcolor() const //得到颜色函数

string Gettype()//得到类型函数 { }

return type;

void settype( string s) { }

type=s; {

return color; }

};

Manage的定义,其代码如下: Class Manage{

Car car[500];//定义一个存放的数组 int count;//下标

int capacity;//最大存储容量

public:

Manage( int capa=500,int ct=0) {

capacity=capa; count=ct;

11

重庆科技学院《面向对象程序设计》课程设计报告

} ~Manage(){}

bool Add()//添加函数 { string a;//定义存储需添加的车牌号的变量

cout<<\请输入你要添加车辆的信息\

cout<<\输入你要添加的车牌号:\ cin>>a; if(count==capacity) //判断容量是否已满

{ cout<<\车库已满\ return true;

}

for(int i=0;i

if(a==car[i].Getnumber()) { cout<<\本车辆已经添加!\ return true;

}

}

car[count++].input(); cout<<\添加成功\ return true;

}

void Search()//查找函数 {

cout<<\请输入你要查询车辆信息的方式: 1.按车牌号进行查询

12

按车型进

2.重庆科技学院《面向对象程序设计》课程设计报告

行查询\

int A; cin>>A; string B; string C; if(count==0)

{cout<<\记录为空!\switch(A) { case 1:{

cout<<\请输入你要查询的车牌号:\

cin>>B;

for(int i=0;i

{

if(B==car[i].Getnumber())

{

car[i].output(); break; }

cout<<\记录为空!\ }

};break;

case 2: {

cout<<\请输入你要查询的车的车型号:\

cin>>C;

for(int i=0;i

{

if(C==car[i].Gettype())

{

car[i].output();

13

重庆科技学院《面向对象程序设计》课程设计报告

}

}

break;

}

cout<<\记录为空!\

}

};break;

void Display()//显示全部车辆信息函数

{

if(count==0)

{cout<<\记录为空\for(int i=0;i

{

}

}

car[i].output();

bool Edit()//修改函数

{

string a;//定义存储需添加的车牌号的变量 int c;//可以选择多方式修改 string d;//要修改的对应的参数 int b;

cout<<\请输入你要修改车辆的车牌号:\cin>>a;

for(int i=0;i

{

if(a==car[i].Getnumber()) {

14

重庆科技学院《面向对象程序设计》课程设计报告

car[i].output(); b=i; break;

}

}

cout<<\修改车牌号 1.修改颜色 2.修改车型 3.修改入库时间 4.修改出库

cout<<\记录为空!\

时间 5.退出修改界面\

cout<<\请输入你的选择:\

cin>>c;

15

switch(c) {

case 0: cout<<\将车牌号修改为:\

cin>>d;

car[b].setnumber(d);

cout<<\修改成功!\ break;

case 1: cout<<\将车的颜色改为:\

cin>>d;

car[b].setcolor(d);

cout<<\修改成功!\ break;

case 2: cout<<\将车的车型改为:\

cin>>d;

car[b].settype(d);

cout<<\修改成功!\ break;

重庆科技学院《面向对象程序设计》课程设计报告

case 3: cout<<\将车的入库时间改为:\

cin>>d;

car[b].setintime(d);

cout<<\修改成功!\ break;

}

case 4: cout<<\将车出库时间改为:\

cin>>d;

car[b].setouttime(d);

cout<<\修改成功!\ break;

case 5: cout<<\你已成功退出修改界面\ }

return true;

break;

void Delete()//删除函数 {

string a;

}

cout<<\请输入你要删除车辆的信息:\cout<<\请输入删除车辆的车牌号:\cin>>a; if(count==0)

{cout<<\记录为空!\

for(int i=0;i

{

if(a==car[i].Getnumber())

16

重庆科技学院《面向对象程序设计》课程设计报告

}

}

{ }

for(int j=i;j

car[j]=car[j+1]; cout<<\删除成功\count--; break;

2.4 主要函数功能实现

另外一些需要一些函数来完成二级页面的界面显示,其代码如下:

17

重庆科技学院《面向对象程序设计》课程设计报告

void Add1()

{

int b;//编号

cout<<\

<

cout<<\

**********************\

cout<<\添加车辆具体信息

\

cout<<\退出添加功能界面

\

cout<<\请输入你选择的编号:\

cin>>b; switch(b)

{

case 1:a.Add();break;

case 0:cout<<\你已成功退出添加功能界面 \

} }

18

重庆科技学院《面向对象程序设计》课程设计报告

void Search1()

{

int b;//编号

cout<<\

<

cout<<\

**********************\

cout<<\查找车辆具体信息

\

cout<<\退出查询功能界面

\

cout<<\请输入你选择的编号:\

cin>>b; switch(b)

{

case 1: a.Search();break;

case 0: cout<<\你已成功退出查询功能界面\

} }

19

重庆科技学院《面向对象程序设计》课程设计报告

void Display1()

{

int b;//编号

cout<<\

<

cout<<\

**********************\

cout<<\显示车辆具体信息

\

cout<<\退出显示功能界面

\

cout<<\请输入你选择的编号:\

cin>>b; switch(b)

{

case 0: cout<<\你已成功退出显示功能界面 \

case 1: a.Display();break;

} }

20

重庆科技学院《面向对象程序设计》课程设计报告

void Delete1()

{

int b;//编号

cout<<\

<

cout<<\

**********************\

cout<<\删除车辆具体信息

\

cout<<\退出删除功能界面

\

cout<<\请输入你选择的编号:\

cin>>b; switch(b)

{

case 0:cout<<\你已成功退出删除功能界面 \

case 1:a.Delete();break;

}

21

重庆科技学院《面向对象程序设计》课程设计报告

} void Edit1()

{

int b;//编号

cout<<\

<

cout<<\

**********************\

cout<<\编辑车辆具体信息

\

cout<<\退出编辑功能界面

\

cout<<\请输入你选择的编号:\

cin>>b; switch(b)

{

case 0:cout<<\你已成功退出编辑功能界面\

case 1:a.Edit();break;

22

重庆科技学院《面向对象程序设计》课程设计报告

} }

void Totle1()

{

int b;//编号

cout<<\

<

cout<<\

**********************\

cout<<\统计车辆具体总数

\

cout<<\退出统计功能界面

\

cout<<\请输入你选择的编号:\

cin>>b; switch(b)

{

case 0:cout<<\你已成功退出统计功能界面 \

case 1:a.Totle();break;

23

重庆科技学院《面向对象程序设计》课程设计报告

} }

第三章 软件的实现

主函数主要代码如下:

Manage a;//定义一个Managede的全局对象 int main() {

cout<<\欢迎进入华瑞车库管理系统********************************\int a;//选择功能序号 do {

cout<<\

**********************************\

cout<<\************\

cout<<\添加车辆信息功能 ******\ cout<<\查询车辆信息功能 ******\ cout<<\显示车辆信息功能 ******\ cout<<\删除车辆信息功能 ******\ cout<<\修改车辆信息功能 ******\ cout<<\统计车库车辆数功能 ******\ cout<<\退出功能界面 ******\

24

重庆科技学院《面向对象程序设计》课程设计报告

cout<<\请输入你的选择:\ cin>>a; switch(a)

{

case 0:cout<<\你已经安全退出系统,欢迎你下次使用!\

case 1:Add1();break; case 2:Search1();break; case 3:Display1();break; case 4:Delete1();break; case 5:Edit1();break; case 6:Totle1();break;

}

}while(a!=0); return 0; }

以上便是在此次课程设计中所用到的主要代码

25

重庆科技学院《面向对象程序设计》课程设计报告

第四章 系统的调试

4.1主界面的调试

图4.1 主界面测试图

4.2添加功能的调试

26

重庆科技学院《面向对象程序设计》课程设计报告

图4.2 添加功能测试图

4.3查询功能的调试

图4.3 按车牌号查询功能测试图

27

重庆科技学院《面向对象程序设计》课程设计报告

图4.4 按车型查询功能测试图

4.4编辑功能的调试

图4.5 编辑功能测试图

28

重庆科技学院《面向对象程序设计》课程设计报告

4.5统计的调试

图4.6统计功能测试图

4.5删除的调试

29

重庆科技学院《面向对象程序设计》课程设计报告

图4.7 删除功能测试图

以上便为本系统功能调试结果。

第五章 总结

通过一周多的停车场管理系统课程设计,我深深地感觉到了面向对象C++语言在计算机领域的重要性,同时也加深了我对书本上的知识的应用,使我编程能力,逻辑思维能力以及整个动手能力都有了很大提高。通过编写一个微小的停车场管理系统,使我了解了什么是定义类,如何写一些成员函数等等。总之,学到了很多以前不知道的东西。

在这次课程设计中,我虽然将这个简单微小的停车场管理系统完成了,但是在编程的过程中仍有一些地方欠思考,使编写出来的程序还不够严谨,功能还不能完善,所以我会在以后编程的过程中不断的完善自己的一种思维模式,不断的提高自己,使自己的综合能力得到进一步的提升。

30

重庆科技学院《面向对象程序设计》课程设计报告

致 谢

经过接近一周多的课程设计,我顺利完成了停车场管理系统的设计。这次课程设计的顺利完成,要感谢老师的耐心辅导,还要感谢我们班的学习委员唐飞浪同学,在我思维混乱的时候,帮我理清思路,,感谢他在我编程时提出宝贵的意见和建议,还有班级的其他同学,感谢他们在我困难时给予了我帮助。

31

重庆科技学院《面向对象程序设计》课程设计报告

参考文献

[1]Richard Johnsonbaugh. Martin Kalin.《面向对象程序设计—C++语言描述》.机械工

业出版社.2009年

[2]钱能.《C++语言程序设计教程》.清华大学出版社.2005年

32