综合设计报告87319_第1页
综合设计报告87319_第2页
综合设计报告87319_第3页
综合设计报告87319_第4页
综合设计报告87319_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

昆明理工大学《程序设计基础》课程综合设计实践教学课题报告课程名称:C语言课题名称:停车场停车及其收费问题组长: 学号201110104132 姓名吴迪组员: 学号201110104136 姓名尚登涛学号201110104140 姓名田超 学院:国土资源工程学院专业班级:采矿111指导教师:耿值林昆明理工大学计算中心2012年5月

昆明理工大学计算中心《程序设计基础》课程综合设计实践教学课题考核表课题名称:学院:专业班级学号姓名小组编号题号承担及完成的内容成绩备注小组自评教师评定201110104132吴迪选题,程序总设计95201110104140田超实验报告的填写93201110104136尚登涛程序调适修改93设计说明与功能描述(基本思路及关键语句说明)随着社会的发展,交通的问题变得日益严重,尤其是在各大停车场的管理问题上,针对这一现状,本小组选择了比较切实现实生活的停车场管理问题.程序设计的问题包括停车场的停车,占道,开走等问题的研讨!它是从键盘上输入一系列关于车辆的信息(如,牌照,),进入停车场的时间,停在那个停车位上或者停在走廊上以及车辆的驶离停车场的时间等一系列信息。并将其在显示屏上显示出来。从按照系统提示输入各个数据,此系统分为停车,离开,获取当前停车信息。采用主函数<stdio.h>控制,其他如<iostream>,<malloc.h>,<string>等函数进行辅助控制。对于各个函数计算法的具体应用参照算法程序代码。定义一个结构体,包括车辆的牌照信息,驶入时间,停车位置,驶离时间等信息.如下所示:typedefstruct{ inta; stringb; intc; intd;}Car;组长签名:吴迪2012年6月3日教师评语教师签名:201年月日第一部分:系统概述:一:程序功能随着社会的发展,交通的问题变得日益严重,尤其是在各大停车场的管理问题上,针对这一现状,本小组选择了比较切实现实生活的停车场管理问题.程序设计的问题包括停车场的停车,占道,开走等问题的研讨!它是从键盘上输入一系列关于车辆的信息(如,牌照,),进入停车场的时间,停在那个停车位上或者停在走廊上以及车辆的驶离停车场的时间等一系列信息。并将其在显示屏上显示出来。二:程序算法从按照系统提示输入各个数据,此系统分为停车,离开,获取当前停车信息。采用主函数<stdio.h>控制,其他如<iostream>,<malloc.h>,<string>等函数进行辅助控制。对于各个函数计算法的具体应用参照算法程序代码。第二部分数据结构体设计三:定义结构体定义一个结构体,包括车辆的牌照信息,驶入时间,停车位置,驶离时间等信息.如下所示:typedefstruct{ inta; stringb; intc; intd;}Car;四:算法要求

(1)要求以顺序栈模拟停车场,以链队列模拟便道。

(2)从终端读入汽车到达或离去的数据,每组数据包括三项:①是“到达”还是“离去”;②汽车牌照号码;③“到达”或“离去”的时刻。与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和应交的费五:函数定义定义了对个函数,以便于可以处理各种情况,并增强程序的健壮性,一边可以抵御可以遇到的非法输入。主流程示意图主函数入口↓用户可视化操作↓输入信息↓停车查询驶离↓输出信息(时间,费用)六:程序的操作性测试主界面:驶入车辆(1)驶入车辆(2)驶入车辆(3)由于此系统设计为了便于进行程序操作实验,所以,此停车场只有两个车位,进入的第三辆车只能停靠在便道上。驶离操作。此程序可以进行持续操作,所以退出系统只需关闭操作窗口。第四部分:总结和体会5、总结和体会重点写明本次设计以及该课程学习、应用过程中的收获和体会组长:通过本次的综合作业的程序设计,我们小组大家一起努力,反复调试,经过不断地改正错误的程序,终于调试出来了,心中充满了成就感,让我首次体会到了团队协作的力量,C语言这门课程起初真的很难学进去,看着一个个的字母,一个个的程序语言,感到头皮发麻,可是后来学进去了,其实还是挺有趣的,看着程序成功的运行,心中的喜悦感是别人无法体会的。通过这门课程我也收获到了很多,从开始看着天书一般的课本,到现在可以编出简单的程序了,我觉得这就是我的收获,这就是我这个学期学到的知识,这就是成功,这就是我不断努力地结果,一分耕耘一分收获,我相信只要努力,无论再难的事,我们也能成功。世上无难事只怕有心人!组员:我们在组长的带领下,在课余时间,三次一起来到计算中心,一起研究这份综合程序设计,开始有点丈二的和尚摸不到头脑,不知从何下手,后来我们选择了这个题目之后就朝着这个方向不断调试,终于功夫不负有心人,我们调试出来了。我们都十分高兴,毕竟是我们自己设计出来的,很有成就感。这门课程刚开始学觉得很枯燥,密密麻麻的字符看着就头痛,可是后来静下心来学习,感觉越不算太难,可以学懂。总之,这也算是一门比较有意思的课程吧,我们每个人都可以学好的。五:程序代码#include<stdio.h>#include<string>#include<iostream>#include<malloc.h>usingnamespacestd;typedefstruct{ inta; stringb; intc; intd;}Car;typedefstruct{ Carelem[2]; inttop;}SeqStack;typedefstructNode{ Card; intn; structNode*next;}LQNode;typedefstruct{ LQNode*front; LQNode*rear;}LinkQueue;//------------------------------------------voidinitstack(SeqStack*S){ S->top=-1;}intpush(SeqStack*S,Carx){ if(S->top==1)return(0); S->top++; S->elem[S->top]=x; return(1);}intpop(SeqStack*S,Car*x){ if(S->top==-1)return(0); else { *x=S->elem[S->top]; S->top--; return(1); }}//------------------------------------------intinitQueue(LinkQueue*Q){ Q->front=(LQNode*)malloc(sizeof(LQNode)); if(Q->front!=NULL) { Q->rear=Q->front; Q->front->next=NULL; Q->rear->n=0; return(1); } elsereturn(0);}intenterQueue(LinkQueue*Q,CarX){ LQNode*NewNode=newLQNode; //NewNode=(LQNode*)malloc(sizeof(LQNode));//不知道为什么,用malloc会出错。 if(NewNode!=NULL) { NewNode->d=X; NewNode->next=NULL; Q->rear->next=NewNode; Q->rear->next->n=Q->rear->n+1;//用当前的Q->rear->n来存放编导车辆数目信息。 Q->rear=NewNode; return(1); } elsereturn(0);}intdeletQueue(LinkQueue*Q,Car*X){ LQNode*p; if(Q->front==Q->rear) { return(0); } p=Q->front->next; Q->front->next=p->next; Q->rear->n--; if(Q->rear==p) { Q->rear=Q->front; Q->rear->n=0; } *X=p->d; deletep; return(1);}intin(SeqStack*S,LinkQueue*Q,CarX){ if(S->top<1) { push(S,X); cout<<"车辆"<<X.b<<"已经存在停车场"<<S->top<<"号车位,存车时间为"<<X.c<<":"<<X.d<<"。\n"; } else { enterQueue(Q,X); cout<<"车辆"<<X.b<<"已经存在便道"<<Q->rear->n<<"号车位,存车时间为"<<X.c<<":"<<X.d<<"\n"; } return(1);}intout(SeqStack*S,SeqStack*L,LinkQueue*Q,CarA){ CarX; floatmoney; if(S->top==-1) { cout<<"车场已空,没有您的车。\n"; return(0); } else { pop(S,&X); if(X.b!=A.b&&S->top==-1)push(L,X); while(X.b!=A.b&&S->top!=-1) { pop(S,&X); push(L,X); } } if(X.b==A.b) { if(A.c<X.c)cout<<"时间输入错误\n"; elsemoney=(A.c-X.c)*6+(A.d-X.d)*0.1; cout<<"车辆"<<A.b<<"存车时间为"<<X.c<<":"<<X.d<<",离开时间为"<<A.c<<":"<<A.d<<","; cout<<"停车费用为"<<money<<"元,祝您一路顺风!\n"; while(L->top!=-1) { pop(L,&X); push(S,X); } if(Q->rear->n!=0) { deletQueue(Q,&X); X.c=A.c;X.d=A.d;//将离开车辆的时间赋给从便道进入车场车辆的时间。 if(push(S,X)==1) {cout<<"车辆"<<X.b<<"已由便道开进车场"<<S->top<<"号车位,"; cout<<"存车时间从"<<X.c<<":"<<X.d<<""<<"算起。\n";} } return(1); } else { intl=Q->rear->n;//便道出车会打乱车次,将存有编导车辆数目信息的Q->rear->n备份。 LinkQueueE;//定义临时便道帮助遍历便道上车辆。 initQueue(&E); while(deletQueue(Q,&X)!=0&&X.b!=A.b) {enterQueue(&E,X);} if(X.b!=A.b) printf("输入错误,没有您的车。\n\n"); if(X.b==A.b) { l--;//有车离开,则l=l-1。 cout<<"车辆"<<X.b<<"已从便道离开,停车费用为0元。\n"; } while(deletQueue(&E,&X)!=0) { enterQueue(Q,X); } Q->rear->n=l;//将l的值及便道车辆数目信息付给新的Q->rear->n。 }}intmain(){ cout<<"************************欢迎来到停车场***************************\n"; cout<<"停车费用每小时6元\n\n"; CarA; SeqStackS,L; initstack(&S); initstack(&L); LinkQueueQ; initQueue(&Q); while(1) { cout<<"输入1停车,输入0离开,输入-1可获取当前停车信息:"; cin>>A.a; if(A.a!=1&&A.a!=0&&A.a!=-1) { cout<<"输入错误,请重新输入。\n"; continue; } if(A.a!=-1) { cout<<"请输入车牌号:";cin>>A.b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论