范文一:起个大气一点的名字
13330?2班
20133?531蒋国?奇
20124?733马美?玲
20133?543 施晨
2014年?12月31?日
课题名称
课题名称:
任务分工:
20133?531蒋国?奇:
负责部分代?码编写,程序代码修?改,课程设计报?告书编写工?作 20133?543施晨?:
负责部分代?码编写,程序调试以?及测试,课程设计报?告书编写工?作 20124?733马美?玲:
负责部分代?码编写,程序代码修?改以及课程?设计报告书?编写工作
目 录
目 录
第1章 引言 ...................................................................................................1
1.1摘要.....................................................................................................1
1.2问题的提?出.........................................................................................1
1.3目的及意?义.........................................................................................1 第2章 需求分析.............................................................................................2
2.1 概述....................................................................................................2
2.2 系统目标............................................................................................2
2.3 功能需求............................................................................................2
2.4非功能性?需求.....................................................................................3
2.5数据需求?.............................................................................................3
2.6 将来可能提?出的需求........................................................................3 第3章 系统分析与?设计.................................................................................3
3.1概述.....................................................................................................3
3.1.1功能............................................................................................3
3.1.2数据............................................................................................3
3.1.3操作............................................................................................3
3.2系统框架?图.........................................................................................3
3.3函数设计?.............................................................................................4
3.3.1主函数........................................................................................4
3.3.2初始化函?数................................................................................5
3.3.3车的入场?登记函数....................................................................6
3.3.4车的出场?登记函数....................................................................6
3.3.5车辆显示?函数............................................................................7
3.4模块设计?.............................................................................................9
3.4.1主函数模?块................................................................................9
3.4.2车辆入场?登记模块....................................................................9
3.4.3车辆出场?登记模块..................................................................10
3.4.4车辆停靠?查询选择..................................................................11
3.4.5查看场内?车模块......................................................................13
3.4.6查看便道?车模块......................................................................14 第4章 编码与测试?.......................................................................................15
4.1典型界面?实现代码...........................................................................15
4.1.1车辆入场?模块..........................................................................15
目 录
4.1.2车辆离开?车场模块...................................................................17
4.2源程序 ..............................................................................................18 第5章 结束语................................................................................................27 参考文献..........................................................................................................27 附录一..............................................................................................................30 附录二..............................................................................................................32
第1章 引言
第一章 引言
1.1摘要
本课程设计?所选课题的?主要目标是?采用B/S模式,基于J2E?E架构,实现网站构?建管理系统?的基本功能?。
本次设计的?主要工作及?报告的主要?内容可以归?结如下:
(1)分析网站构?建管理系统?的功能需求?和非功能需?求。
(2)设计网站构?建管理系统?的技术体系?结构,应用设计模?式,设计数据库?实体联系模?型。
(3)实现网站构?建管理系统?的组件管理?、模块管理、界面模板管?理等诸多系?统管理功能?,提供留言板?、滚动新闻、计数器等常?用组件和模?块。
(4)完成网站构?建管理系统?的单元测试?、功能测试及?性能测试,并给出测试?分析。
1.2问题的提?出
我们选择停?车场管理系?统是因为随?着经济的发?展,生活水平的?不断提高,家庭车辆、社会车辆的?拥有量在迅?速地增长, 停车场管理?的重要性也?会越来越受?到重视,而其技术的?核心是对车?辆的自动监?控、识别和自动?管理。现在车越来?越多,导致停车拥?挤,散乱,无秩序,所以我们想?通过设计出?一种管理停?车的系统来?解决现在私?家车辆增多?带来的违停?乱停问题,于是在施晨?的建议下,提出了“停车场管理?系统”的开发。
1.3目的及意?义
有效保证车?辆停放平安?,提高管理效?率,封堵收费漏?洞使停车场?秩序有条不?紊,提高停车场?车位利用率?。自动化、智能化水平?高,智能停车场?系统采用了?多种先进技?术。如采用车牌?识别可以做?到无人化值?守,或者一个管?理中心可以?管理多个进?出口,大大提高了?管理效率,同时也降低?了人手,节省管理本?钱。另外智能停?车场系统科?学严谨的收?费方式,防止管理人?员私吞停
0
第1章 引言
车?费
1
第1章 引言
用,保证了停车?场的利益。能通过停车?场系统中的?车位引导系?统可以让客?户快速的找?到剩余车位?,会起到有效?的引导作用?。自动化、智能化水平?高,智能停车场?系统采用了?多种先进技?术。如采用车牌?识别可以做?到无人化值?守,或者一个管?理中心可以?管理多个进?出口,大大提高了?管理效率,同时也降低?了人手,节省管理本?钱。另外智能停?车场系统科?学严谨的收?费方式,防止管理人?员私吞停车?费用,保证了停车?场的利益。一般的停车?场,蹭车位也是?停车场管理?的一个难题 ?。
2
第2章 需求分析
第2章 需求分析
2.1 概述
根据停车场?管理系统的?问题分析及?设计要求,可以把系统?分为三个查?询模块:车辆入场登?记模块、车辆出场登?记模块、车辆停靠查?询查询模块?。通过需求与?问题提出相?结合,将需求关系?分为以下几?种:系统目标、功能需求、非功能性需?求、数据需求。
2.2 系统目标
(1)总体目标:解决车辆进?入停车场秩?序问题。
(2)具体目标:解决车辆入?场问题,解决车辆等?候问题。 2.3 功能需求
结合程序与?实际,将提炼出其?程序所执行?的功能,并按功能挖?掘其所有需?求或部分需?求。
(1)管理车辆信?息数据
(2)管理车辆到?达停车场时?间数据
(3)管理车辆离?开停车场时?间数据
(4)管理车辆位?置信息数据?
2.4非功能性?需求 :
根据程序的?执行情况以?及C++语言的特点?,在非功能性?如安全性、程序健壮性?、可扩展性方?面十分突出?。
2.5数据需求?:
该系统要处?理的数据有?车辆信息数?据,车辆到达停?车场时间数?据,车辆离开停?车场时间数?据,车辆位置信?息数据等,并根据具体?的实际问题?指定数据的?流向。
2.6将来可能?提出的需求?:
根据本系统?可能提出的?需求如:
维护需求、管理需求、资源分配需?求等。
3
第3章 系统分析与?设计
第3章 系统分析与?设计
3.1概述
3.1.1功能
设停车场内?只有一个可?停放n辆汽?车的狭长通?道,且只有一个?大门可供汽?车进出。汽车在停车?场内按车辆?到达时间的?先后顺序,依次由北向?南排列(大门在最南?端,最先到达的?第一辆车停?放在车场的?最北端),若车场内已?停满n辆汽?车,则后来的汽?车只能在门?外的便道上?等候,一旦有车开?走,则排在便道?上的第一辆?车即可开入?;当停车场内?某辆车要离?开时,在它之后开?入的车辆必?须先退出车?场为它让路?,待该辆车开?出大门外,其它车辆再?按原次序进?入车场,每辆停放在?车场的车在?它离开停车?场时必须按?它停留的时?间长短交纳?费用。试为停车场?编制按上述?要求进行管?理的模拟程?序。
3.1.2数据
设n=2,输入数据为?:(?A?,1,5),(?A?,2,10),(?D?,1,15),(?A?,3, 20), (?A?,4,25),(?A?,5,30),(?D?,2,35),(?D?,4,40),(?E?,0,0)。每一组输入?数据包括三?个数据项:汽车“到达”或“离去”信息、汽车牌照号?码及到达或?离去的时刻?,其中,?A?表示到达;?D?表示离去,?E?表示输入结?束。
3.1.3操作
1) 可以输入车?辆的进入时?间和车辆的?车牌号;
2) 能查询停车?场的信息;
1.系统实际遵?循的系统设?计的原则及?方法
用C++编程以及采?用系统功能?模块化,用结构体数?组的存储结?构进行存储?,将所需要的?停车场和便?道抽象为栈?和队列。
1.此系统采用?栈和队列的?存储结构存?储,定义了五个?结构体数组?: 1.定义时间结?点
typed?ef struc?t time
4
第3章 系统分析与?设计 2.定义每辆车?的牌号,进入时刻,开出时刻
typed?ef struc?t node
3.用栈定义,构造停车场?
typed?ef struc?t NODE
4.用队列结点?定义,构造停车场?外的单个等?候车辆 typed?ef struc?t car
5.用队列定义?,构造停车场?外的等候便?道
typed?ef struc?t Node
3.2系统构架?图
主菜单
车辆到达登记车辆离开登记车辆停靠查询退出系统
车场列表便道列表返回主菜单
3.3函数设计?
3.3.1主函数v?oid main()
1.{
初始栈,中转栈 SeqSt?ackCa?r Enter?,Temp;
定义便道队?列 LinkQ?ueueC?ar Wait
对已定义的?栈初始化 InitS?tack(&Enter?); InitS?tack(&Temp);
对已定义的?队初始化I?nitQu?eue(&Wait);/
5
第3章 系统分析与?设计
进入提示w?hile(1)
当输入不再?范围1至4?时提示错误?重新输入
使用swi?tch函数?进入其他模?块
}
2.主函数中用?到了2个w?hile语?句,一个进入主?菜单,一个提示错?误输入:
while(1)
主菜单
2车辆离开登记1车辆到达登记3车辆停靠查询4退出系统
While(1)
输入有误
提示输入1~4
2.用到了sw?itch(a)语句:
6
第3章 系统分析与?设计
函数switch(a)
1停车场函数2出停车场函数3查看函数
Arrival(&EnteLeave(&Enter,List(Enter,Wa4exit(0)
r,&wait)&Temp,&Wait)it) 3.3.2初始化函?数
栈堆初始化?void InitS?tack(SeqSt?ackCa?r *s),将栈顶设置?为NULL?,s->stack?[s->top]=NULL;
队列初始化?int InitQ?ueue(LinkQ?ueueC?ar *Q),设置头结点?,将头结点设?置为NUL?L,令队的头等?于尾
3.3.3车的入场?登记函数i?nt Arriv?al(SeqSt?ackCa?r *Enter?,LinkQ?ueueC?ar *W)
1.提示车辆登?记开始,输入该车的?车牌号。
进入if条?件判断停车?位是否已经?满,若未满则需?输入该车的?到达时间,输出车辆所?在位置。
cout<<"时:";><"时:";>
cin>>p->reach?.hour;
cout<<"分:";><"分:";>
cin>>p->reach?.min;
若车位已满?,则提示车位?已满,须在便道等?待,利用已定义?的队,将其排列在?队中即便道?。
7
第3章 系统分析与?设计
车辆到达登记函数
Arrival(SeqStackCar *Enter,LinkQueueCar *w)
YNIf语句判断车位剩余情况
停在便车道输入车辆信息
3.3.4车的出场?登记函数L?eave(Seqst?ackca?r *Enter?,Seqst?ackca?r *Temp,LinkQ?ueueC?ar *w)
1.提示车辆离?开登记开始?,输入车位位?置。
2.if语句判?断是否输入?满足要求,满足则进入?while?,从停车场堆?栈向中转堆?栈移动车辆?直到要离开?车辆的位置?停止Tem?p->stack?[Temp->top]=Enter?->stack?[Enter?->top];
Enter?->stack?[Enter?->top]=NULL;
3.用whli?e(1)语句提示输?入车辆位置?信息,
4.用whli?e(1)语句判断位?置信息输入?正确与否,
5.用whil?e(Temp->top>=1)语句判断中?转栈车辆,if语句判?断便道车辆?。
8
第3章 系统分析与?设计
车辆离开登记函数
Leave(SeqStackCar
*Enter,SeqStackCar
*Temp,LinkQueueCar *w)
N
YIf语句判断车场内有没有车
提示车场内没while(1)输入车N
有车的位置信息If语句判断输入是
否正确
while(Enter-
>top>room栈顶
大于输入位置N
将停车场向中将栈顶车辆移转栈转移车辆出Y
while(Temp-
>top>=1为真
将中转栈车辆
移入停车
Y
N
离开的车进行
结算
If语句判断便道
有无车
便道内的车进3.3.5车辆显示?函数Lis?t(SeqSt?ackCa?r S,LinkQ?ueueC?ar w) 入车场便道无车YN1.用Whil?e(1)语句输出查?询列表。
2.用Whil?e(1)语句提示输?入1~3。
9
第3章 系统分析与?设计 3.if语句判?断输入是否?正确。
4.用swit?ch(tag)进入相应查?询列表。
车辆显示函数
List(SeqStackCar S,LinkQueueCar w)
while(1)输出查询列表
While(1)提示输入1-3N
If判断输入是否正确
Y
Switch(tag)
List1List2返回主菜单
List1?函数:
10
第3章 系统分析与?设计
List1(SeqStackCar *s)
查看场内情况
If判断场内是否有车
YN
for循环输出车车场无车辆信息
List2?函数:
List2查看便道内情况
Link(LinkQueueCar
*w)
YIf语句判断队列是
否为空
N
while(p!=Null)
输出车牌号便道没有车
11
第3章 系统分析与?设计 3.4模块设计?
3.4.1主函数模?块
开始
主菜单
N提示输入1~4
输入是否正
确
Y
车辆到达登记车辆离开登记车辆停靠查询退出系统模块模块模块
结束
3.4.2车辆入场?登记模块
12
第3章 系统分析与?设计
开始
输入车牌号
NY
有无车位
输入到达停在便车
时间道
3.4.3车辆出场?登记模块
开始
YN结束
车场是否
有车
输入位置
YN
是否在额定
位置
车场里没有车车辆结算返回主菜单
便车道入场车道无车结束
13
第3章 系统分析与?设计
3.4.4车辆停靠?查询选择模?块
开始
输出列表
输入数字
N判断是否为
1~3
Y
车场列表便道列表回主菜单
结束
3.4.5查看场内?车模块
14
第3章 系统分析与?设计
开始
输出位置
输出到达时
间
输出车牌号
3.4.6查看便道?车模块
开始
结束
YN是否有开车
输出车牌便道里没
号有车
结束
15
第4章 编码与测试?
第4章 编码与测试? 4.1典型界面?即实现代码?。
4.1.1车辆入场?模块
int Arriv?al(SeqSt?ackCa?r *Enter?,LinkQ?ueueC?ar *W) {
CarNo?de *p;
Queue?Node *t;
p=new CarNo?de;
cout<>
cout<<"><">
cout<><<"请输入车牌?号:";><"请输入车牌?号:";>
cin>>p->num;
if(Enter?->top
{
Enter?->top++;
cout<><> cout<><> cout<<"时:";><"时:";> cin>>p->reach?.hour; cout<<"分:";><"分:";> cin>>p->reach?.min; cout<><<"><"> 车辆到达登?记完毕!" Enter?->stack?[Enter?->top]=p; retur?n 1; } else //如果车位已?满,则停靠在便?道上 { cout<> cout<><> 16 第4章 编码与测试? t=new Queue?Node ; t->data=p; t->next=NULL; W->rear->next=t; W->rear=t; retur?n 1; } } 4.1.2车辆离开?车场模块 void Leave?(SeqSt?ackCa?r *Enter?,SeqSt?ackCa?r *Temp,LinkQ?ueueC?ar *W) { int room; CarNo?de *p,*t; Queue?Node *q; if(Enter?->top>0) { while?(1) { cout<> cout<<"><"> 始:" cout<><> /1--" 17 第4章 编码与测试? cin>>room; if(room>=1&&room<=enter?->top) break?; 18 第4章 编码与测试? } while?(Enter?->top>room)//从停车场堆?栈向中转堆?栈移动车辆?,直到要离开?车辆的位置?停止 { Temp->top++; Temp->stack?[Temp->top]=Enter?->stack?[Enter?->top]; Enter?->stack?[Enter?->top]=NULL; Enter?->top--; } p=Enter?->stack?[Enter?->top]; Enter?->stack?[Enter?->top]=NULL; Enter?->top--; while?(Temp->top>=1)//将中转堆栈?中的车辆移?回停车场堆?栈 { Enter?->top++; Enter?->stack?[Enter?->top]=Temp->stack?[Temp->top]; Temp->stack?[Temp->top]=NULL; Temp->top--; } cout<> cout<<"><"> PRINT?(p,room); if((W->head!=W->rear)&&Enter?->top { q=W->head->next; t=q->data; Enter?->top++; cout<><> cout cout<> cout<<"时:";><"时:";> cin>>t->reach?.hour; cout<<"分:";><"分:";> 19 第4章 编码与测试? cin>>t->reach?.min; W->head->next=q->next; if(q==W->rear) W->rear=W->head; Enter?->stack?[Enter?->top]=t; delet?e q; } else cout<><> } else cout<><> 4.2源程序 #inclu?de #inclu?de 20 第4章 编码与测试? using? names?pace std; #defin?e MAX 2 //停车场车位?数 #defin?e price? 0.05 //每分钟收取?的费用 typed?ef struc?t time { int hour; int min; }Time;//定义时间结?点 typed?ef struc?t node { strin?g num; Time reach?; Time leave?; }CarNo?de;//定义每辆车?的牌号,进入时刻,开出时刻 typed?ef struc?t NODE { CarNo?de *stack?[MAX+1]; int top; }SeqSt?ackCa?r;//用栈定义,构造停车场? typed?ef struc?t car { CarNo?de *data; struc?t car *next; }Queue?Node;//用队列结点?定义,构造停车场?外的单个等?候车辆 typed?ef struc?t Node { Queue?Node *head; Queue?Node *rear; }LinkQ?ueueC?ar;//用队列定义?,构造停车场?外的等候便?道 void InitS?tack(SeqSt?ackCa?r *); //初始化堆栈?函数声明 int InitQ?ueue(LinkQ?ueueC?ar *); //初始化队列?头结点函数?声明 int Arriv?al(SeqSt?ackCa?r *,LinkQ?ueueC?ar *); //车辆进入时?登记函数声?明 void Leave?(SeqSt?ackCa?r *,SeqSt?ackCa?r *,LinkQ?ueueC?ar *);//车辆离开时?函 数声明 void List(SeqSt?ackCa?r,LinkQ?ueueC?ar); /*查看停车场?内车辆情况?及 便道上车辆?情况的函数?声明*/ 21 第4章 编码与测试? void main( ) { SeqSt?ackCa?r Enter?,Temp;//初始栈,中转栈 LinkQ?ueueC?ar Wait;//便道队列 int a; InitS?tack(&Enter?); InitS?tack(&Temp); InitQ?ueue(&Wait);//初始化 while?(1) { cout<> ****************" cout<<" 欢迎光临停?车场~";=""><"> cout<<"(*^__^*) ~";=""><"(*^__^*)> cout<><<" 车辆到达登?记-="">请按 1" cout<<" 车辆离开登?记-="">请按 2" cout<<" 车辆停靠查?询-="">请按 3" cout<<" 退出系统="" -="">请按 4" cout<> ****************" while?(1) { cin>>a; if(a>=1&&a<=4) break?;="">=4)> else cout<><<"输入有误:请选择: 1~4.";=""><"输入有误:请选择:> } switc?h(a) { case 1:Arriv?al(&Enter?,&Wait);break?;//调用入停车?场函数 case 2:Leave?(&Enter?,&Temp,&Wait);break?;//调用出停车?场函数 case 3:List(Enter?,Wait);break?;//调用查看函?数 case 4:exit(0); defau?lt: break?; } 22 第4章 编码与测试? } } void InitS?tack(SeqSt?ackCa?r *s) //堆栈初始化? { s->top=0; s->stack?[s->top]=NULL; } int InitQ?ueue(LinkQ?ueueC?ar *Q)//队列初始化? { Q->head=new Queue?Node ; if(Q->head!=NULL) { Q->head->next=NULL; Q->rear=Q->head; retur?n 1; } else retur?n -1; } void PRINT?(CarNo?de *p,int room) //输出离开停?车场的车辆?情况 { int A,B,C,D; cout<> cout<<"时:";><"时:";> cin>>p->leave?.hour; cout<<"分:";><"分:";> cin>>p->leave?.min; cout<<"离开车辆的?车牌号为:";><"离开车辆的?车牌号为:";> cout cout<><<"其到达时间?为:><"其到达时间?为:> ?.min<> cout<<"离开时间为?:><"离开时间为?:> A=p->reach?.hour; B=p->reach?.min; C=p->leave?.hour; D=p->leave?.min; cout<><<"应交费用为?:><"应交费用为?:><><> cout<<"><"> 23 第4章 编码与测试? 离开登?记完毕!" delet?e p; } int Arriv?al(SeqSt?ackCa?r *Enter?,LinkQ?ueueC?ar *W) { CarNo?de *p; Queue?Node *t; p=new CarNo?de; cout<> cout<<"><"> " cout<><<"请输入车牌?号:";><"请输入车牌?号:";> cin>>p->num; if(Enter?->top { Enter?->top++; cout<><> cout<><> cout<<"时:";><"时:";> cin>>p->reach?.hour; cout<<"分:";><"分:";> cin>>p->reach?.min; cout<><<"><"> 车辆到达登?记完毕!" Enter?->stack?[Enter?->top]=p; retur?n 1; } else //如果车位已?满,则停靠在便?道上 { cout<> cout<><> " t=new Queue?Node ; t->data=p; t->next=NULL; W->rear->next=t; 24 第4章 编码与测试? W->rear=t; retur?n 1; } } void Leave?(SeqSt?ackCa?r *Enter?,SeqSt?ackCa?r *Temp,LinkQ?ueueC?ar *W) { int room; CarNo?de *p,*t; Queue?Node *q; if(Enter?->top>0) { while?(1) { cout<> cout<<"><"> cout<><<"请输入车在?车场的位置?><"请输入车在?车场的位置?> cin>>room; if(room>=1&&room<=enter?->top) break?; } while?(Enter?->top>room)//从停车场堆?栈向中转堆?栈移动车辆?,直到要离开?车辆的位置?停止 { Temp->top++; Temp->stack?[Temp->top]=Enter?->stack?[Enter?->top]; Enter?->stack?[Enter?->top]=NULL; Enter?->top--; } p=Enter?->stack?[Enter?->top]; Enter?->stack?[Enter?->top]=NULL; Enter?->top--; while?(Temp->top>=1)//将中转堆栈?中的车辆移?回停车场堆?栈 { Enter?->top++; Enter?->stack?[Enter?->top]=Temp->stack?[Temp->top]; Temp->stack?[Temp->top]=NULL; 25 第4章 编码与测试? Temp->top--; } cout<> cout<<"><"> PRINT?(p,room); if((W->head!=W->rear)&&Enter?->top { q=W->head->next; t=q->data; Enter?->top++; cout<><> cout cout<> cout<<"时:";><"时:";> cin>>t->reach?.hour; cout<<"分:";><"分:";> cin>>t->reach?.min; W->head->next=q->next; if(q==W->rear) W->rear=W->head; Enter?->stack?[Enter?->top]=t; delet?e q; } else cout<><> } else cout<><> void List1?(SeqSt?ackCa?r *S) //查看停车场?内车辆情况?的函数定义? { int i; if(S->top>0) { cout<> cout<><> for(i=1;i<=s->top;i++) 26 第4章 编码与测试? { cout<<"><"><><<"辆车><"辆车> cout<<" 位置:";=""><"> cout<> cout<<"到达时间:";><"到达时间:";> cout ?.min<> cout<<" 车牌号:";=""><"> cout } } else cout<> cout<><> } void List2?(LinkQ?ueueC?ar *W) //查看便道上?停靠车辆情?况的函数定?义 { Queue?Node *p; p=W->head->next; if(W->head!=W->rear) { cout<> cout<><> while?(p!=NULL) { cout<><<"车辆牌号:";><"车辆牌号:";> cout p=p->next; } } else cout<> cout<><> } 27 第4章 编码与测试? void List(SeqSt?ackCa?r S,LinkQ?ueueC?ar W) //车辆列表显?示函数 { int flag,tag; flag=1; while?(flag) { cout<> cout<> cout<><<"请选择><"请选择> cout<><><><><> while?(1) { cin>>tag; if(tag>=1||tag<=3) break?;="">=3)> else cout cout<<"请选择 1~3:";=""><"请选择> } switc?h(tag) { case 1:List1?(&S); cout<><><> case 2:List2?(&W); cout<><><> case 3:flag=0;break?; defau?lt: break?; } } } 28 第5章 结束语 第5章 结束语 在课程设计?的过程中,虽然遇到了?很多问题,但最终差不?多也都一一?解决了。有的时候是?一些很小的?逻辑错误,需要的是细?心。同学之间互?相帮助,多个人思考?多个力量,遇到自己解?决不了的问?题,向同学求助?,能更好的帮?我们解决所?面临的难题?。由于此次课?程设计用到?数据文件的?知识,而这些知识?老师都没讲?,自学起来稍?微有点困难?,但也不是完?全看不懂,只是对一些?函数的应用?不太熟悉,经过此次课?程设计,对文件的读?写有了更深?的了解,也相应的培?养了我的自?学能力。 经过数据结?构的学习,我发现数据?结构有许多?需要考虑的?地方,数据结构前?期的整体规?划和构思非?常重要,先确立合理?的存储结构?,再来编写算?法,实际上一旦?存储结构确?立了,算法的实现?相对来说简?单很多,难就难在如?何确立合理?的存储结构?。 能够把此次?课程设计做?出来,是一个很大?的挑战,但我经过自?己的不懈努?力,终于完成了?,看着自己的?作品,心里还是说?不出的高兴?,虽然做的过?程很艰难。人生就是要?把困难踩在?脚下。 参考文献 [1] 《数据结构(C语言版)》,严蔚敏,吴伟民编著?,清华大学出?版社,2002年?9月 [2] 《C语言程序?设计教程》,杨路明,郭浩志,北京邮电大?学出版社,2005年?12月 [3] 《C程序设计?(第三版)》,谭浩强,清华大学出?版社,2005年?2月 [4] 《数据结构实?用教程》,徐孝凯,清华大学出?版社,2006年?8月 [5] 《数据结构》(C语言版),严蔚敏,清华大学出?版社,2003 [6] 《数据结构题?集》,严蔚敏,清华大学出?版社,2005 [7] 《数据结构》(C语言版),刘大有,高等教育出?版社,2004 29 附录 1 部分系统界?面 附录1 部分系统界?面 30 附录 1 部分系统界?面 31 附录 2 附录2 部分源程序? #inclu?de #inclu?de using? names?pace std; #defin?e MAX 2 //停车场车位?数 #defin?e price? 0.05 //每分钟收取?的费用 typed?ef struc?t time { int hour; int min; }Time;//定义时间结?点 typed?ef struc?t node { strin?g num; Time reach?; Time leave?; }CarNo?de;//定义每辆车?的牌号,进入时刻,开出时刻 typed?ef struc?t NODE { CarNo?de *stack?[MAX+1]; int top; }SeqSt?ackCa?r;//用栈定义,构造停车场? typed?ef struc?t car { CarNo?de *data; struc?t car *next; }Queue?Node;//用队列结点?定义,构造停车场?外的单个等?候车辆 typed?ef struc?t Node { Queue?Node *head; Queue?Node *rear; }LinkQ?ueueC?ar;//用队列定义?,构造停车场?外的等候便?道 32 附录 2 void InitS?tack(SeqSt?ackCa?r *); //初始化堆栈?函数声明 int InitQ?ueue(LinkQ?ueueC?ar *); //初始化队列?头结点函数?声明 int Arriv?al(SeqSt?ackCa?r *,LinkQ?ueueC?ar *); //车辆进入时?登记函数声?明 void Leave?(SeqSt?ackCa?r *,SeqSt?ackCa?r *,LinkQ?ueueC?ar *);//车辆离开时?函数声明 void List(SeqSt?ackCa?r,LinkQ?ueueC?ar); /*查看停车场?内车辆情况?及 便道上车辆?情况的函数?声明*/ void main( ) { SeqSt?ackCa?r Enter?,Temp;//初始栈,中转栈 LinkQ?ueueC?ar Wait;//便道队列 int a; InitS?tack(&Enter?); InitS?tack(&Temp); InitQ?ueue(&Wait);//初始化 while?(1) { cout<> ****************" cout<<" 欢迎光临停?车场~";=""><"> cout<<"(*^__^*) ~";=""><"(*^__^*)> cout<><<" 车辆到达登?记-="">请按 1" cout<<" 车辆离开登?记-="">请按 2" cout<<" 车辆停靠查?询-="">请按 3" cout<<" 退出系统="" -="">请按 4" cout<> ****************" while?(1) { cin>>a; if(a>=1&&a<=4) break?;="">=4)> else cout<><<"输入有误:请选择: 1~4.";=""><"输入有误:请选择:> } switc?h(a) { 33 附录 2 case 1:Arriv?al(&Enter?,&Wait);break?;//调用入停车?场函数 case 2:Leave?(&Enter?,&Temp,&Wait);break?;//调用出停车?场函数 case 3:List(Enter?,Wait);break?;//调用查看函?数 case 4:exit(0); defau?lt: break?; } 34 133302班 20133531蒋国奇 20124733马美玲 20133543 施晨 2014年12月31日 课题名称 课题名称: 任务分工: 20133531蒋国奇: 负责部分代码编写,程序代码修改,课程设计报告书编写工作 20133543施晨: 负责部分代码编写,程序调试以及测试,课程设计报告书编写工作 20124733马美玲: 负责部分代码编写,程序代码修改以及课程设计报告书编写工作 目 录 目 录 第1章 引言 ...................................................................................................1 1.1摘要.....................................................................................................1 1.2问题的提出.........................................................................................1 1.3目的及意义.........................................................................................1 第2章 需求分析.............................................................................................2 2.1 概述....................................................................................................2 2.2 系统目标............................................................................................2 2.3 功能需求............................................................................................2 2.4非功能性需求.....................................................................................3 2.5数据需求.............................................................................................3 2.6 将来可能提出的需求........................................................................3 第3章 系统分析与设计.................................................................................3 3.1概述.....................................................................................................3 3.1.1功能............................................................................................3 3.1.2数据............................................................................................3 3.1.3操作............................................................................................3 3.2系统框架图.........................................................................................3 3.3函数设计.............................................................................................4 3.3.1主函数........................................................................................4 3.3.2初始化函数................................................................................5 3.3.3车的入场登记函数....................................................................6 3.3.4车的出场登记函数....................................................................6 3.3.5车辆显示函数............................................................................7 3.4模块设计.............................................................................................9 3.4.1主函数模块................................................................................9 3.4.2车辆入场登记模块....................................................................9 3.4.3车辆出场登记模块..................................................................10 3.4.4车辆停靠查询选择..................................................................11 3.4.5查看场内车模块......................................................................13 3.4.6查看便道车模块......................................................................14 第4章 编码与测试.......................................................................................15 4.1典型界面实现代码...........................................................................15 4.1.1车辆入场模块..........................................................................15 I 目 录 4.1.2车辆离开车场模块...................................................................17 4.2源程序 ..............................................................................................18 第5章 结束语................................................................................................27 参考文献..........................................................................................................27 附录一..............................................................................................................30 附录二..............................................................................................................32 II 第1章 引言 第一章 引言 1.1摘要 本课程设计所选课题的主要目标是采用B/S模式,基于J2EE架构,实现网站构建管理系统的基本功能。 本次设计的主要工作及报告的主要内容可以归结如下: (1)分析网站构建管理系统的功能需求和非功能需求。 (2)设计网站构建管理系统的技术体系结构,应用设计模式,设计数据库实体联系模型。 (3)实现网站构建管理系统的组件管理、模块管理、界面模板管理等诸多系统管理功能,提供留言板、滚动新闻、计数器等常用组件和模块。 (4)完成网站构建管理系统的单元测试、功能测试及性能测试,并给出测试分析。 1.2问题的提出 我们选择停车场管理系统是因为随着经济的发展,生活水平的不断提高,家庭车辆、社会车辆的拥有量在迅速地增长, 停车场管理的重要性也会越来越受到重视,而其技术的核心是对车辆的自动监控、识别和自动管理。现在车越来越多,导致停车拥挤,散乱,无秩序,所以我们想通过设计出一种管理停车的系统来解决现在私家车辆增多带来的违停乱停问题,于是在施晨的建议下,提出了“停车场管理系统”的开发。 1.3目的及意义 有效保证车辆停放平安,提高管理效率,封堵收费漏洞使停车场秩序有条不紊,提高停车场车位利用率。自动化、智能化水平高,智能停车场系统采用了多种先进技术。如采用车牌识别可以做到无人化值守,或者一个管理中心可以管理多个进出口,大大提高了管理效率,同时也降低了人手,节省管理本钱。另外智能停车场系统科学严谨的收费方式,防止管理人员私吞停车费 1 第1章 引言 用,保证了停车场的利益。能通过停车场系统中的车位引导系统可以让客户快速的找到剩余车位,会起到有效的引导作用。自动化、智能化水平高,智能停车场系统采用了多种先进技术。如采用车牌识别可以做到无人化值守,或者一个管理中心可以管理多个进出口,大大提高了管理效率,同时也降低了人手,节省管理本钱。另外智能停车场系统科学严谨的收费方式,防止管理人员私吞停车费用,保证了停车场的利益。一般的停车场,蹭车位也是停车场管理的一个难题。 2 第2章 需求分析 第2章 需求分析 2.1 概述 根据停车场管理系统的问题分析及设计要求,可以把系统分为三个查询模块:车辆入场登记模块、车辆出场登记模块、车辆停靠查询查询模块。通过需求与问题提出相结合,将需求关系分为以下几种:系统目标、功能需求、非功能性需求、数据需求。 2.2 系统目标 (1)总体目标:解决车辆进入停车场秩序问题。 (2)具体目标:解决车辆入场问题,解决车辆等候问题。 2.3 功能需求 结合程序与实际,将提炼出其程序所执行的功能,并按功能挖掘其所有需求或部分需求。 (1)管理车辆信息数据 (2)管理车辆到达停车场时间数据 (3)管理车辆离开停车场时间数据 (4)管理车辆位置信息数据 2.4非功能性需求 : 根据程序的执行情况以及C++语言的特点,在非功能性如安全性、程序健壮性、可扩展性方面十分突出。 2.5数据需求: 该系统要处理的数据有车辆信息数据,车辆到达停车场时间数据,车辆离开停车场时间数据,车辆位置信息数据等,并根据具体的实际问题指定数据的流向。 2.6将来可能提出的需求: 根据本系统可能提出的需求如: 维护需求、管理需求、资源分配需求等。 3 第3章 系统分析与设计 第3章 系统分析与设计 3.1概述 3.1.1功能 设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 3.1.2数据 设n=2,输入数据为:(?A?,1,5),(?A?,2,10),(?D?,1,15),(?A?,3, 20), (?A?,4,25),(?A?,5,30),(?D?,2,35),(?D?,4,40),(?E?,0,0)。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,?A?表示到达;?D?表示离去,?E?表示输入结束。 3.1.3操作 1) 可以输入车辆的进入时间和车辆的车牌号; 2) 能查询停车场的信息; 1.系统实际遵循的系统设计的原则及方法 用C++编程以及采用系统功能模块化,用结构体数组的存储结构进行存储,将所需要的停车场和便道抽象为栈和队列。 1.此系统采用栈和队列的存储结构存储,定义了五个结构体数组: 1.定义时间结点 typedef struct time 4 第3章 系统分析与设计 2.定义每辆车的牌号,进入时刻,开出时刻 typedef struct node 3.用栈定义,构造停车场 typedef struct NODE 4.用队列结点定义,构造停车场外的单个等候车辆 typedef struct car 5.用队列定义,构造停车场外的等候便道 typedef struct Node 3.2系统构架图 主菜单 车辆到达登记车辆离开登记车辆停靠查询退出系统 车场列表便道列表返回主菜单 3.3函数设计 3.3.1主函数void main() 1.{ 初始栈,中转栈 SeqStackCar Enter,Temp; 定义便道队列 LinkQueueCar Wait 对已定义的栈初始化 InitStack(&Enter); InitStack(&Temp); 5 第3章 系统分析与设计 对已定义的队初始化InitQueue(&Wait);/ 进入提示while(1) 当输入不再范围1至4时提示错误重新输入 使用switch函数进入其他模块 } 2.主函数中用到了2个while语句,一个进入主菜单,一个提示错误输入: while(1) 主菜单 2车辆离开登记1车辆到达登记3车辆停靠查询4退出系统 While(1) 输入有误 提示输入1~4 2.用到了switch(a)语句: 6 第3章 系统分析与设计 函数switch(a) 1停车场函数2出停车场函数3查看函数 Arrival(&EnteLeave(&Enter,List(Enter,Wa4exit(0) r,&wait)&Temp,&Wait)it) 3.3.2初始化函数 栈堆初始化void InitStack(SeqStackCar *s),将栈顶设置为NULL,s->stack[s->top]=NULL; 队列初始化int InitQueue(LinkQueueCar *Q),设置头结点,将头结点设置为NULL,令队的头等于尾 3.3.3车的入场登记函数int Arrival(SeqStackCar *Enter,LinkQueueCar *W) 1.提示车辆登记开始,输入该车的车牌号。 进入if条件判断停车位是否已经满,若未满则需输入该车的到达时间,输出车辆所在位置。 cout<<"时:";><"时:";> cin>>p->reach.hour; cout<<"分:";><"分:";> cin>>p->reach.min; 若车位已满,则提示车位已满,须在便道等待,利用已定义的队,将其排列在队中即便道。 7 第3章 系统分析与设计 车辆到达登记函数 Arrival(SeqStackCar *Enter,LinkQueueCar *w) YNIf语句判断车位剩余情况 停在便车道输入车辆信息 3.3.4车的出场登记函数Leave(Seqstackcar *Enter,Seqstackcar *Temp,LinkQueueCar *w) 1.提示车辆离开登记开始,输入车位位置。 2.if语句判断是否输入满足要求,满足则进入while,从停车场堆栈向中转 堆栈移动车辆直到要离开车辆的位置停止 Temp->stack[Temp->top]=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; 3.用whlie(1)语句提示输入车辆位置信息, 4.用whlie(1)语句判断位置信息输入正确与否, 5.用while(Temp->top>=1)语句判断中转栈车辆,if语句判断便道车辆。 8 第3章 系统分析与设计 车辆离开登记函数 Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *w) N YIf语句判断车场内有没有车 提示车场内没while(1)输入车N 有车的位置信息If语句判断输入是 否正确 while(Enter- >top>room栈顶 大于输入位置N 将停车场向中将栈顶车辆移转栈转移车辆出Y while(Temp- >top>=1为真 将中转栈车辆 移入停车 Y N 离开的车进行 结算 If语句判断便道 有无车 便道内的车进 入车场便道无车YN3.3.5车辆显示函数List(SeqStackCar S,LinkQueueCar w) 1.用While(1)语句输出查询列表。 9 第3章 系统分析与设计 2.用While(1)语句提示输入1~3。 3.if语句判断输入是否正确。 4.用switch(tag)进入相应查询列表。 车辆显示函数 List(SeqStackCar S,LinkQueueCar w) while(1)输出查询列表 While(1)提示输入1-3N If判断输入是否正确 Y Switch(tag) List1List2返回主菜单 List1函数: 10 第3章 系统分析与设计 List1(SeqStackCar *s) 查看场内情况 If判断场内是否有车 YN for循环输出车车场无车辆信息 List2函数: List2查看便道内情况 Link(LinkQueueCar *w) YIf语句判断队列是 否为空 N while(p!=Null) 输出车牌号便道没有车 11 第3章 系统分析与设计 3.4模块设计 3.4.1主函数模块 开始 主菜单 N提示输入1~4 输入是否正 确 Y 车辆到达登记车辆离开登记车辆停靠查询退出系统模块模块模块 结束 3.4.2车辆入场登记模块 12 第3章 系统分析与设计 开始 输入车牌号 NY 有无车位 输入到达停在便车 时间道 3.4.3车辆出场登记模块 开始 YN结束 车场是否 有车 输入位置 YN 是否在额定 位置 车场里没有车车辆结算返回主菜单 便车道入场车道无车结束 13 第3章 系统分析与设计 3.4.4车辆停靠查询选择模块 开始 输出列表 输入数字 N判断是否为 1~3 Y 车场列表便道列表回主菜单 结束 3.4.5查看场内车模块 14 第3章 系统分析与设计 开始 输出位置 输出到达时 间 输出车牌号 3.4.6查看便道车模块 开始 结束 YN是否有开车 输出车牌便道里没 号有车 结束 15 第4章 编码与测试 第4章 编码与测试 4.1典型界面即实现代码。 4.1.1车辆入场模块 int Arrival(SeqStackCar *Enter,LinkQueueCar *W) { CarNode *p; QueueNode *t; p=new CarNode; cout<> cout<<"><"> cout<><<"请输入车牌号:";><"请输入车牌号:";> cin>>p->num; if(Enter->top { Enter->top++; cout<><> cout<><> cout<<"时:";><"时:";> cin>>p->reach.hour; cout<<"分:";><"分:";> cin>>p->reach.min; cout<><<"><"> 车辆到达登记完毕!" Enter->stack[Enter->top]=p; return 1; } else //如果车位已满,则停靠在便道上 { cout<> cout<><> 16 第4章 编码与测试 t=new QueueNode ; t->data=p; t->next=NULL; W->rear->next=t; W->rear=t; return 1; } } 4.1.2车辆离开车场模块 void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W) { int room; CarNode *p,*t; QueueNode *q; if(Enter->top>0) { while(1) { cout<> cout<<"><"> 始:" cout<><<"请输入车在车场的位置><"请输入车在车场的位置> 17 第4章 编码与测试 cin>>room; if(room>=1&&room<=enter->top) break; 18 第4章 编码与测试 } while(Enter->top>room)//从停车场堆栈向中转堆栈移动车辆,直到要离开车辆的位置停止 { Temp->top++; Temp->stack[Temp->top]=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; } p=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; while(Temp->top>=1)//将中转堆栈中的车辆移回停车场堆栈 { Enter->top++; Enter->stack[Enter->top]=Temp->stack[Temp->top]; Temp->stack[Temp->top]=NULL; Temp->top--; } cout<> cout<<"><"> PRINT(p,room); if((W->head!=W->rear)&&Enter->top { q=W->head->next; t=q->data; Enter->top++; cout<><> cout cout<> cout<<"时:";><"时:";> cin>>t->reach.hour; cout<<"分:";><"分:";> 19 第4章 编码与测试 cin>>t->reach.min; W->head->next=q->next; if(q==W->rear) W->rear=W->head; Enter->stack[Enter->top]=t; delete q; } else cout<><> } else cout<><> 4.2源程序 #include #include 20 第4章 编码与测试 using namespace std; #define MAX 2 //停车场车位数 #define price 0.05 //每分钟收取的费用 typedef struct time { int hour; int min; }Time;//定义时间结点 typedef struct node { string num; Time reach; Time leave; }CarNode;//定义每辆车的牌号,进入时刻,开出时刻 typedef struct NODE { CarNode *stack[MAX+1]; int top; }SeqStackCar;//用栈定义,构造停车场 typedef struct car { CarNode *data; struct car *next; }QueueNode;//用队列结点定义,构造停车场外的单个等候车辆 typedef struct Node { QueueNode *head; QueueNode *rear; }LinkQueueCar;//用队列定义,构造停车场外的等候便道 void InitStack(SeqStackCar *); //初始化堆栈函数声明 int InitQueue(LinkQueueCar *); //初始化队列头结点函数声明 int Arrival(SeqStackCar *,LinkQueueCar *); //车辆进入时登记函数声明 void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *);//车辆离开时函 数声明 void List(SeqStackCar,LinkQueueCar); /*查看停车场内车辆情况及 便道上车辆情况的函数声明*/ 21 第4章 编码与测试 void main( ) { SeqStackCar Enter,Temp;//初始栈,中转栈 LinkQueueCar Wait;//便道队列 int a; InitStack(&Enter); InitStack(&Temp); InitQueue(&Wait);//初始化 while(1) { cout<> ****************" cout<<" 欢迎光临停车场~";=""><"> cout<<"(*^__^*) ~";=""><"(*^__^*)> cout<><<" 车辆到达登记-="">请按 1" cout<<" 车辆离开登记-="">请按 2" cout<<" 车辆停靠查询-="">请按 3" cout<<" 退出系统="" -="">请按 4" cout<> ****************" while(1) { cin>>a; if(a>=1&&a<=4) break;="">=4)> else cout<><<"输入有误:请选择: 1~4.";=""><"输入有误:请选择:> } switch(a) { case 1:Arrival(&Enter,&Wait);break;//调用入停车场函数 case 2:Leave(&Enter,&Temp,&Wait);break;//调用出停车场函数 case 3:List(Enter,Wait);break;//调用查看函数 case 4:exit(0); default: break; } 22 第4章 编码与测试 } } void InitStack(SeqStackCar *s) //堆栈初始化 { s->top=0; s->stack[s->top]=NULL; } int InitQueue(LinkQueueCar *Q)//队列初始化 { Q->head=new QueueNode ; if(Q->head!=NULL) { Q->head->next=NULL; Q->rear=Q->head; return 1; } else return -1; } void PRINT(CarNode *p,int room) //输出离开停车场的车辆情况 { int A,B,C,D; cout<> cout<<"时:";><"时:";> cin>>p->leave.hour; cout<<"分:";><"分:";> cin>>p->leave.min; cout<<"离开车辆的车牌号为:";><"离开车辆的车牌号为:";> cout cout<><<"其到达时间为:><"其到达时间为:> " cout<<"离开时间为:><"离开时间为:> A=p->reach.hour; B=p->reach.min; C=p->leave.hour; D=p->leave.min; cout<><<"应交费用为:><"应交费用为:><><> cout<<"><"> 23 第4章 编码与测试 离开登记完毕!" delete p; } int Arrival(SeqStackCar *Enter,LinkQueueCar *W) { CarNode *p; QueueNode *t; p=new CarNode; cout<> cout<<"><"> cout<><<"请输入车牌号:";><"请输入车牌号:";> cin>>p->num; if(Enter->top { Enter->top++; cout<><> cout<><> cout<<"时:";><"时:";> cin>>p->reach.hour; cout<<"分:";><"分:";> cin>>p->reach.min; cout<><<"><"> 车辆到达登记完毕!" Enter->stack[Enter->top]=p; return 1; } else //如果车位已满,则停靠在便道上 { cout<> cout<><> t=new QueueNode ; t->data=p; t->next=NULL; W->rear->next=t; 24 第4章 编码与测试 W->rear=t; return 1; } } void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W) { int room; CarNode *p,*t; QueueNode *q; if(Enter->top>0) { while(1) { cout<> cout<<"><"> cout<><> /1--" cin>>room; if(room>=1&&room<=enter->top) break; } while(Enter->top>room)//从停车场堆栈向中转堆栈移动车辆,直到要离开车辆的位置停止 { Temp->top++; Temp->stack[Temp->top]=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; } p=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; while(Temp->top>=1)//将中转堆栈中的车辆移回停车场堆栈 { Enter->top++; Enter->stack[Enter->top]=Temp->stack[Temp->top]; Temp->stack[Temp->top]=NULL; 25 第4章 编码与测试 Temp->top--; } cout<> cout<<"><"> PRINT(p,room); if((W->head!=W->rear)&&Enter->top { q=W->head->next; t=q->data; Enter->top++; cout<><> cout cout<> cout<<"时:";><"时:";> cin>>t->reach.hour; cout<<"分:";><"分:";> cin>>t->reach.min; W->head->next=q->next; if(q==W->rear) W->rear=W->head; Enter->stack[Enter->top]=t; delete q; } else cout<><> } else cout<><> void List1(SeqStackCar *S) //查看停车场内车辆情况的函数定义 { int i; if(S->top>0) { cout<> cout<><> for(i=1;i<=s->top;i++) 26 第4章 编码与测试 { cout<<"><"><><<"辆车><"辆车> cout<<" 位置:";=""><"> cout<> cout<<"到达时间:";><"到达时间:";> cout cout<<" 车牌号:";=""><"> cout } } else cout<> cout<><> } void List2(LinkQueueCar *W) //查看便道上停靠车辆情况的函数定义 { QueueNode *p; p=W->head->next; if(W->head!=W->rear) { cout<> cout<><> while(p!=NULL) { cout<><<"车辆牌号:";><"车辆牌号:";> cout p=p->next; } } else cout<> cout<><> } 27 第4章 编码与测试 void List(SeqStackCar S,LinkQueueCar W) //车辆列表显示函数 { int flag,tag; flag=1; while(flag) { cout<> cout<> cout<><<"请选择><"请选择> cout<><><><><> while(1) { cin>>tag; if(tag>=1||tag<=3) break;="">=3)> else cout cout<<"请选择 1~3:";=""><"请选择> } switch(tag) { case 1:List1(&S); cout<><><> case 2:List2(&W); cout<><><> case 3:flag=0;break; default: break; } } } 28 第5章 结束语 第5章 结束语 在课程设计的过程中,虽然遇到了很多问题,但最终差不多也都一一解决了。有的时候是一些很小的逻辑错误,需要的是细心。同学之间互相帮助,多个人思考多个力量,遇到自己解决不了的问题,向同学求助,能更好的帮我们解决所面临的难题。由于此次课程设计用到数据文件的知识,而这些知识老师都没讲,自学起来稍微有点困难,但也不是完全看不懂,只是对一些函数的应用不太熟悉,经过此次课程设计,对文件的读写有了更深的了解,也相应的培养了我的自学能力。 经过数据结构的学习,我发现数据结构有许多需要考虑的地方,数据结构前期的整体规划和构思非常重要,先确立合理的存储结构,再来编写算法,实际上一旦存储结构确立了,算法的实现相对来说简单很多,难就难在如何确立合理的存储结构。 能够把此次课程设计做出来,是一个很大的挑战,但我经过自己的不懈努力,终于完成了,看着自己的作品,心里还是说不出的高兴,虽然做的过程很艰难。人生就是要把困难踩在脚下。 参考文献 [1] 《数据结构(C语言版)》,严蔚敏,吴伟民编著,清华大学出版社,2002年9月 [2] 《C语言程序设计教程》,杨路明,郭浩志,北京邮电大学出版社,2005年12月 [3] 《C程序设计(第三版)》,谭浩强,清华大学出版社,2005年2月 [4] 《数据结构实用教程》,徐孝凯,清华大学出版社,2006年8月 [5] 《数据结构》(C语言版),严蔚敏,清华大学出版社,2003 [6] 《数据结构题集》,严蔚敏,清华大学出版社,2005 [7] 《数据结构》(C语言版),刘大有,高等教育出版社,2004 29 附录 1 部分系统界面 附录1 部分系统界面 30 附录 1 部分系统界面 31 附录 2 附录2 部分源程序 #include #define price 0.05 //每分钟收取的费用 typedef struct time { int hour; int min; }Time;//定义时间结点 typedef struct node { string num; Time reach; Time leave; }CarNode;//定义每辆车的牌号,进入时刻,开出时刻 typedef struct NODE { CarNode *stack[MAX+1]; int top; }SeqStackCar;//用栈定义,构造停车场 typedef struct car { CarNode *data; struct car *next; }QueueNode;//用队列结点定义,构造停车场外的单个等候车辆 typedef struct Node { QueueNode *head; QueueNode *rear; }LinkQueueCar;//用队列定义,构造停车场外的等候便道 32 附录 2 void InitStack(SeqStackCar *); //初始化堆栈函数声明 int InitQueue(LinkQueueCar *); //初始化队列头结点函数声明 int Arrival(SeqStackCar *,LinkQueueCar *); //车辆进入时登记函数声明 void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *);//车辆离开时函数声明 void List(SeqStackCar,LinkQueueCar); /*查看停车场内车辆情况及 便道上车辆情况的函数声明*/ void main( ) { SeqStackCar Enter,Temp;//初始栈,中转栈 LinkQueueCar Wait;//便道队列 int a; InitStack(&Enter); InitStack(&Temp); InitQueue(&Wait);//初始化 while(1) { cout<> ****************" cout<<" 欢迎光临停车场~";=""><"> cout<<"(*^__^*) ~";=""><"(*^__^*)> cout<><<" 车辆到达登记-="">请按 1" cout<<" 车辆离开登记-="">请按 2" cout<<" 车辆停靠查询-="">请按 3" cout<<" 退出系统="" -="">请按 4" cout<> ****************" while(1) { cin>>a; if(a>=1&&a<=4) break;="">=4)> else cout<><<"输入有误:请选择: 1~4.";=""><"输入有误:请选择:> } switch(a) { 33 附录 2 case 1:Arrival(&Enter,&Wait);break;//调用入停车场函数 case 2:Leave(&Enter,&Temp,&Wait);break;//调用出停车场函数 case 3:List(Enter,Wait);break;//调用查看函数 case 4:exit(0); default: break; } 34 古诗教学的一点感悟 古诗文是我们民族文化的精华,千百年间,万口传诵,哺育了一代又一代人,成为祖国文化的命脉。经过千百年的沉淀,流传下来的能够选入小学课本里的古诗更是精华中的精华,可谓字字珠玑。它是中华文化的一部分,是学生近距离接触、感受中华文化的一个窗口。它是激发学生对祖国传统文化的热爱的一个切入点,尤其是小学语文新课程标准推荐背诵的70 首古诗词,都是历代名篇,不仅内涵丰富,具有很高的审美价值和很强的艺术感染力,而且短小精悍,词句优美,韵体和谐,节奏性强,易读易记。这对于学生了解中国古代灿烂的文化,品位中国古代文学作品的内涵,培养学生热爱祖国,热爱中国文化的情操有着不可估量的作用。 小学古诗文教学要能较好地调动学生学习积极性,提高课堂教学效率,使学生自然融入学习之中,深刻领会古诗文的精髓,使课堂生动活泼起来。 小学古诗的教学,对于小学生认识中华文化的丰厚博大,吸收民族文化智慧,提高文化品位和审美情趣,培养热爱祖国语言文字的情感,受到高尚情操与趣味的熏陶,发展个性,丰富学生的精神世界有着举足轻重的意义,新课程标准指出: “小学语文教学应该立足于促进学生的发展,为他们的终身学习、生活和工作奠定基础”, “以生为本 ” 的教学理念始终警策着我们。 一、在古诗教学中,感受人文熏陶 如何在古诗教学中渗透人文精神,让学生时刻感受语文带给他们的人文享受,提高学生的语文素养,提升学生的品德修养和审美情趣,使他们逐步形成正确的价值观,通过拓展式的古诗阅读教学,注重学生的读悟和积累,不失为学习古诗的有效方法。“书读百遍,其义自见”,要想体会古诗中的优美意境,首先就要读。教学开始时,我先有感情地朗读一遍,扫清基本字词障碍后,放手让学生自由朗读,通过各种形式的自读,能读懂多少就读懂多少,让诗的优美语言带动学生在反复诵读中很好地理解体会。这样几遍下来,大部分学生都基本了解了《宿新市徐公店》的内容。学生充分展开美的想象,用自己的语言去描述、赞美儿童可爱的形象,并将这种美的感受融入自己的朗读之中,在朗读中体验美、感受美、表达美,提高了审美能力,受到人文精神的熏陶。 “学生是语文学习的主人”小学语文教学要实现从“要我学”到“我要学”的转变。教学的每一部分都应该让学生尝试在前,学生能学会的就不教,确实不能学会的也先学后教。教师让学生尝试朗读,尝试讲诗意,尝试自己解答疑难,学生的积极性很高。这说明小学生尽管年龄小,但也有自学的能力,何况他们已经学过不少古诗,并非“白纸一张”,我们完全可以放手让他们自己学习。自学,也要提高“含金量”,这个“含金量”就要让学生从中领悟一些语言文字的规律,受到人文精神的熏陶。让学生在试讲的过程中感悟学习古诗的方法,就使教材的教育价值得到更深的发掘。 在尊重学生的内心体验中,体现人文关怀:“阅读是学生的个性 化行为,不应以教师的分析来代替学生的阅读实践,应让学生在主动积极的思维和情感活动中,加深理解和体验,有所感悟和思考,受到情感熏陶,获得思想启迪,享受审美乐趣。”古人也早已认识到“诗无达诂”,就是说没有惟一正确的解释。一首好诗,正因为可以作多种理解,才让人觉得回味无穷。同时,由于读者的人生经历不同以及文化背景的差异,对作品也会有不同的解释。鼓励学生提出多种假设,就是为了让学生探讨答案的多样性。这种对作品的多元解读,有利于学生从小就形成一种观念:问题的答案不只一个,解决问题的方法有很多种。这对学生的人生会产生积极的影响。在教学中,只要教师从考虑张扬学生的个性出发,巧妙引导,精心整合,定能点燃创造的火花。 二、结合学生的已有知识,理解字词意思,体会诗意 小学语文古诗教学是个难点,在以往的教学过程中,许多教师基本上是一个路子教学:老师讲解,学生识记,最后背诵。虽然现在已经有很多人做了各种各样的尝试来试图改变这一局面:如创设情境教学古诗,利用音乐欣赏古诗,进行美的古诗教学研究,利用网络进行古诗教学,体现学生的主体性,培养学生创新能力等等,但总觉得这些教学模式内容丰富,且只留于形式,这样的模式教学,也只能是强硬地灌给学生一些知识,而学生的自学能力得不到培养,更何况中国的古诗诗情画意充满了美感,这种模式教学却又让学生失去了那一双发现美的眼睛。反思过去,我们说小学语文古诗教学应该注重培养学生自主探究的能力,重视学生的自主性,重视以读为本,读中感 悟,使学生终生受益。我们面对的是一个个活生生的人,他们有思想,有感情,有独立的人格,是具有主观能动性的生命体,每个学生都蕴藏着独立学习的巨大潜能,古诗的教学就要打破这种传统的教学模式,教师要放开自己,放开学生,让学生自主探究,深切体会古诗的意境美、语言美、音韵美和形象美。同时,新课标也强调学科之间的交流与整合,这种古诗教学模式启发学生自求自得,自主探究,让学生在语文古诗教学中,能力与素质得到全面发展与提高。我在教学二年级教材《登上鹳雀楼》时,根据二年级孩子对汉字的理解和方法出发,如理解“鹳”,从这个字可以看出它与什么有关,为什么,“雀”我们来看这个字,它可以分成哪两个部分,下面教zhui字旁指鸟的羽毛,也与鸟有关,是指小鸟。鹳雀楼就是因为常有鸟停在上面故而得名。这是根据汉字(形声字、会意字)的特点来理解;“白日” “依” “尽” 是什么意思,借助文本,都可以看图理解;古诗中还有一些字有引申意思,如:理解“目” “目”本来是指眼睛,在这里指看。“千里”什么意思,真指一千里吗,不是,它指很远很远。 三、结合古诗教学,培养观察力、想象力 观察,是感知的高级阶段,是思维的直接基础。诗歌创作离不开观察,古诗的作者无论是状物、写景、叙事、记人,都是通过自己对事物的深刻细致的观察,有了体验,才能用准确、生动的语言把自己的思想情感表达出来。课程标准强调,语文学习是学生的个性化行为。而古诗教学作为语文教学的重要组成部分更应是一次自主体验的过程。近十年来,在美国兴起的建构主义心理学认为,学生学习的过程 是主动建构知识的过程,而不是被动接受外界的刺激;学生以自己已有的知识、经验为基础,对新的知识信息进行加工、理解,由此建构起新知识的意义,同时原有的知识经验又因为新知识经验的进入而发生调整和改变。所以学习过程不是对新信息的直接吸收和积累,而是新旧知识之间的相互作用。 抓住诗歌中关键词语,让学生咀嚼品味。如“白日依山尽”这一诗句,“依”字“尽”字用得非常准确,这两个字逼真地再现了山衔落日一丝丝地下降而逐渐沉没的过程。太阳落山时,人们看到的一般是一轮红日,为什么这里却说白日呢,这正显示出当地山岭极其高峻的特征。在那绵延叠嶂的山区里,由于山高,太阳下山较之海边和平原地区要早,太阳依山时,阳光还强,因而人们看到的太阳呈白色。如果诗人不经过细心观察深入体验,就不会表达得这样准确、形象;古文文笔精湛,浓缩着我们民族的优秀的传统文化,有时看起来短短的几句话却包含着深刻的意境和感情,那么读好古文在意境中去体会然后培养学生的想象能力是非常必要的,培养小学生的想象力是学生创造性思维的一个重要方面,教师在进行古诗文的教学中,以古文为支点,在读古文中,在空白处,在画古诗中,在体验意境中,在改写古文中充分发挥想象,从而让学生的想象得以真实的再现,如“黄河入海流”这一是诗句。 四、结合古诗教学,感受意境,体会哲理 意境是由作者的主观感受和客观景象融合而成的,而作为主观感受的“意”又往往寄寓在客观景象的“境”中,因此,教师在古诗教 学中要引导学生入其“境”,才能使学生“悟其神”,会其“意”,真正领悟到古诗的意境美。叶圣陶曾说过:“诗歌的讲授,重在陶冶性情,扩展想象,如果抓住精要之处,指导一二句话,也许就够了,不一定要繁复冗长的讲说。”古诗的教学,一定要将学生领入诗的意境,体验诗人的感情,引导学生借助诗人的丰富联想,展开想象,领略诗人雄伟的气魄,以及诗人热爱生活、热爱大自然的情怀。我们要诗情画意地教古诗,学生要诗情画意地学古再现意境是关键。古诗固然以抒情见长,重在以情感人,但其艺术的魅力总是与思想的光辉水乳交融、契合无间的。因而更能震撼人心,益人神智,令人久诵不厌,正是那些在理智上独见机巧,给人以深刻启示的诗篇。这些诗在鲜明生动的形象中蕴含着“理趣”,闪耀着真理与智慧之光,具有一种独特的艺术力量,这就是诗中的哲理美。在教学中,我还引导学生进入角色、换位思考,设身处地,帮助学生明像入境,让文字所代表的客观事物的图像,在学生脑海里明晰出现,让学生真切感知那种美好的情境,感悟出古诗所蕴含的“站得高,看得远”的道理,知道了要想取得更大的进步,还要不断努力。《登上鹳雀楼》这首诗之所以能流传至今,是因为有这么一句千古佳句“欲穷千里目,更上一层楼”同学们,你们在什么地方看过或听过这句诗,(学生回答老师的评语中出现过,老师希望学习通过努力学得更好;妈妈在试卷上写过这句话是希望我继续努力更上一层楼;教师补充:还告诉我们一个深刻的哲理,只有站得高,才能看得远。) 最后,有感情地朗读,培养学生的审美情趣,用语言来表达美 古诗作者一般都把丰富的感情、美好的理想、浪温的想象、壮观美丽的画面都熔入古诗凝炼的语言之中。古诗在古代是用来吟唱的,因而具有较强的音乐性和节奏感,并且古诗讲究平仄和押韵,读起来很有韵味。因此,教师在教学时要抓住这一特征,让学生反复朗读,领会只能意会无法言传的意境,感受诗的语言美和意境美。如在古诗《登鹳雀楼》教学中,在学生已体会了作者的思想感情后,可让他们听配乐诗朗诵,然后教师范读,注意哪些地方要停顿,哪些字读重音,作如下提示: 白日,依山尽, 黄河,入海流。 欲穷,千里目, 更上,一层楼。 教师范读完后,可让学生自己通过多种形式朗读,形成乐读的氛围。这样,学生便可以从中读出诗的音韵美和节奏感。 《语文课程标准》提出:“工具性与人文性的统一,是语文课程的基本特点”。人文精神的培养需要儿时潜移默化的影响,小学语文课程理应承担起促进发展,提高素质,弘扬人文精神的责任,让学生从语文学习中得到人文精神的熏陶和感染,受到人文思想的教育。而中华民族几千年的传统文化??古诗,是一笔宝贵的文化遗产,它本身在一定程度上体现了很强的人文性。 前苏联教育家赞可夫说:“教 学一旦触及学生的情感和意志领域,触及学生的精神需要,便能发挥其高效的作用”。因此,古诗教学不但要进行语言文字基本功的训练,理解诗的主要内容,还要学生深入诗人的内心深处,让诗人的美好情操犹如春雨润物般溶化在自己的血液里。学习古诗能使儿童热爱祖国的文化,有助于他们了解我国的历史,可以培养孩子的自信心和审美情感。在孩子学习古诗的过程中对孩子进行人文教育,这符合于现代教育的指导思想,对培养学生健全的人格有一种“润物细无声”的妙处。 对小学阶段古诗文学习的一些体会 去年公布的“十一五”时期文化发展规划纲要里面提出了我们中小学各个学科都应该融入关于中华优秀文化传统的教育,我想我们语文课程在这方面应该担当起自己的使命,而且也具有我们的优势。在小学阶段如何教学古诗文呢?根据《语文课程标准》的要求,重点还是在积累。这个积累,在课程标准里做了量的规定,对小学六年要求我们的学生能够熟读甚至背诵不少于160篇的古诗文。这个量的要求表明了我们在积累方面的重视。古诗词包括文言文的积累,我们不要仅仅把它看成一种语言的积累,语言材料的积累,其实它也是思想、情感、形象多方面的积累,包括古人生活经验的积累。这些诗篇融入他们的血液中成为他们的一种营养,我想是终生受用的。为了加强积累,可以采取各种方法,课程标准里特别重视诵读的方法。诵读非常有利于我们去感受中国汉语言的一种民族特征,那种音律之美、声调之美、节奏之美。诵读也有利于通过学生的发声器官,让他在视觉器官就是阅读,和思维器官,就是我们的心、我们的思想之间直接建立起一种联系的通道。这样非常有利于学生对这些语言的模块,对这些优秀的古诗文整体的储存。所以诵读的方法,我认为可以形成一种积累的快速反应机制。但它只是方法之一。除了积累和诵读之外,在小学阶段还可以有欣赏的要求,但是恐怕不能求之过剩。这是我们容易犯的毛病。也就是在小学阶段的古诗文教学中求之过剩,做过多的理性分析,这是应该避免的。这个现在选在小学语文教材中的古诗文,一般都是篇幅比较短小,思想情感积极向上,意境比较优美单纯,画面比较鲜明,而语言上相对来说比较朗朗上口的。像这样的一些作品,主要是引导学生去感受体验它,甚至可以不求甚解。有些作品它是不可能让学生一下子就了解它的非常深厚的内蕴的。比方说杜甫那个《绝句》。小学生从小就会背,“两只黄鹂鸣翠柳,一行白鹭上青天”,它具有非常优美的画面和非常鲜明的节奏,朗朗上口。小学生一读就会,一读就能记住。但是后面两句“窗寒西岭千秋雪,门泊东吴万里船”它表达的是什么意思?其实诗人杜甫的诗意是在那个千秋雪的“千秋”和万里船的“万里”,是一种漂泊之感和对祖国命运的担忧。但这个小学生就未必能够了解。我想让他们慢慢地去消化,随着他们人生阅历的增长,知识的丰富,情感世界的拓宽,他们就会对它的深刻的内蕴会有所理解。所以我想通过古诗词的教学,积累诵读感受体验,就能让我们的孩子从小打下比较好的精神修养的底子。同时也打好语言修养的底子。 这是我对于小学阶段的古诗词教学的一些粗浅的理解。 简单大气的网名,大气一点的QQ网名,大气的男生女生网名 不再为你停留? 只差一个转身的距离 这首歌?只想唱给你听 旧容颜 说再见谈何容易 :骄傲的不可一世 Smileヾ浅笑 那年的星空,繁星点点 夏晴∞ 堇陌离歌ら 戒罘了纳緞情 爱?全剧终 卟愛。埥离閞 Ω浮夸 一个人去看海丶 是梦终会空 文笔再好也写不出完美结局 半世流离? 思念终成灰烬 緈諨の约定 那年迩笑靥如花 ㄗs″絕戀灬 不乖、就罚你跪搓衣板 精心整理大气的网名大全 捂着心脏说疼 Summer_未了 犯花痴ing 那一抹如夏天般的浅笑 阳光刺透我的心, 一个人的自言自语 綄羙?落幕ゾ MO沫小诺 我是失败他老妈 因太酷被判十年 时光斑驳了的青春 可以输、但绝不能哭 留着半颗心好好的爱自己 月色妖娆 放肆的思念い 梦里,你依旧笑颜如花 流光年华 本文来自:http://www.jfdown.com/zhuanti/wanmeiguoji/ 完美国际范文二:起个大气一点的名字《精选文档》
范文三:古诗教学的一点感悟
范文四:对古诗的一点体会
范文五:简单大气的网名,大气一点的QQ网名,大气的男生女生网名