《车辆综合业务管理系统说明书》由会员分享,可在线阅读,更多相关《车辆综合业务管理系统说明书(26页珍藏版)》请在金锄头文库上搜索。
1、*实践教学* 兰州理工大学计算机与通信学院2011年秋季学期 面 向 对 象 课程设计题 目: 车辆综合业务管理系统 专业班级: 10级计算机科学与技术四班 姓 名: 郭 绯 学 号: 10240404 指导教师: 张 其 文 成 绩: 目 录摘 要1序 言2一流程调查3二函数的调用关系图4三.调试分析51.调试过程中的主要问题.5 2.测试结果及主要操作6四总 结10五主要参考文献11六致 谢12附录13源程序代码(带注释):13摘 要循环队列是一种环状的队列并且对头元素指向队尾元素,车辆综合管理系统问题是典型的采用循环队列和栈解决的问题,再综合与类和结构,实验表明该算法的空间复杂度优于其他
2、算法。该车辆综合管理系统就是采用的这种算法。关键词:车辆综合管理;空间复杂度;循环队列;栈序 言在人们的生活中,机动车辆是我们每天都离不开的交通工具,因此,我们要想能更好的使用它们,充分的发挥它们的作用,使其能更好的服务于社会,就应该有一个良好的车辆管理系统。车辆综合业务管理系统的主要作用是对于一个中等规模的、独立运营的车队实现车辆调度和车队综合业务的有效管理。在对某车队的车辆调度、驾驶员管理、车辆管理以及业务管理的深入调研后,力争开发出一个实用性较强的车辆综合业务管理软件,基本上可以满足正常的车辆管理。通过本软件的设计、开发,使学生初步得到软件工程的训练,全面培养软件开发过程中的分析、设计、
3、编码、测试及文档规范书写的能力 一、 流程调查机动车辆是我们每天都离不开的交通工具,因此,我们要想能更好的使用它们,充分的发挥它们的作用,使其能更好的服务于社会,就应该有一个良好的车辆管理系统。车辆综合业务管理系统的主要作用是对于一个中等规模的、独立运营的车队实现车辆调度和车队综合业务的有效管理。在对某车队的车辆调度、驾驶员管理、车辆管理以及业务管理。深入调研后,通过实践,本程序可以实现车队的车辆调度、驾驶员管理、车辆管理及派出去的功能。二函数的调用关系图主函数用户界面结束驾驶员查看车辆查看车辆派出车辆回来驾驶员Leave车场ListLeaveArrival便道ListPRINT返回返回主函数
4、结束三调试分析1. 调试过程中的主要问题由于此停车场管理系统是分模块设计的,而且在程序的实现过程中又使用了清屏函数,所以,运行时用户选择任务并且执行完任务后,又会回到供用户选择功能的主界面,因此整个程序从整体上来讲结构清晰,使用方便。本程序的调试运行,总体上情况良好,但中间也出现了一些小问题。其中比较有代表性的主要问题有:当车场已经达到最大容量,但仍有车辆进入停车场的时候,运行界面上没有出现或者说出现了但又跳掉了“停车场已满,该车辆需在便道上等待!”的提示信息。我们小组成员经过反复商量讨论,并且在查阅了多种资料后,在那一个cin语句后加了一个cin,此时,程序运行结果就符合要求了。要将驾驶员信
5、息存入文本后,必须和读出的文本名称一致,否者讲初相乱码;设计更加合理,更加人性化,更加方面用户使用,同时也提高了用户的操作效率。调试中遇到的问题及对问题的解决方法1.问题:字符和括号的输写错误解决方法:把中文输入字母切换成英文输入2.问题:括号的对应解决方法:一个一个的补充括号和调整括号2.调试程序车辆管理界面;有车辆回来,录入信息;查看驾驶员界面; 派出任务的车辆;车库满界面;车库情况界面;退出系统界面;四总 结通过这两周的课程设计,加深了我对C+面向对象这门课程所学内容的进一步的理解与掌握;同时,通过对车辆管理系统的开发,使得我将计算机课程所学知识与实际问题很好地相联接在了一起。在这次课程
6、设计中,培养了我开发一个中小型程序的能力。在这次对停车场管理系统的开发过程中,有过程序功能成功实现时的欣喜,也有遇到问题、解决问题时的执着以及迷茫。在这次课程设计中,使得我很好地了解了在开发程序过程中合作的重要性。从课题的布置到完成课程设计,按时完成了相关任务。通过这次课程设计,我学习到了很多算法与数据结构的知识,同时对本学期的课本所学知识有了进一步巩固,特别是对栈和队列等的熟练运用。这次课程设计之后,我发现,动手比看书更能获取实际有用的知识。很多知识,在书本上看似很有道理,可是这些知识在与实际情况结合起来往往就会出现书本上没有见过的情况,或者说之前的理解与实际的使用是截然不同的。所以,真理是
7、从实践中得知的,而且也只有实践才能检验真理。而这次课设也加强了我们这些方面的理解能力,对书面上的东西实际操作在具体项目上有了一个更加清晰的认识。我们还意识到一个大的程序,在写代码前,一定要有良好的需求分析和结构设计,应该占整个程序设计的大部分时间,一个好的程序,分析设计应该要非常充分,这样才不至于代码写了一半才发现很多错误。在具体代码操作之前的设计规划与构建才是一个优秀的程序设计的灵魂。设计过程中,我另一个大的体会就是要及时参考图书馆借来的书,通过教程,大大的提高了工作的效率。同时我也发现自己的不足之处。对于很多自己以为很熟悉的东西,在细节上的把握有许多不足:有些想当然,认为它应该是这样,而忽
8、略的事实。这也让我明白,做事细心是必须的,所谓细节决定成败!程序还有好多不足,在今后的日子里,我会虚心向老师同学请教,尽自己最大的努力做到最好。五主要参考文献1C+面向对象 程序设计教程陈维兴、林小茶编著,清华大学出本社。2Jeraod V.Post.数据库管理系统(英文版.第三版)美清华大学出版社,2006.1 3张海藩,李劲,谢兆阳.SQL Server2000数据库设计与系统管理M.北京:清华大学出版社,2000.9六致 谢首先感谢我的指导老师张其文老师在我的课程设计过程中提出了指导性的方案和架构,并指引我阅读相关的资料和书籍,使我在面对从书本到实际应用的鸿沟之时有了一座坚固的桥。感谢我
9、的数据结构老师张永老师和C+语言老师刘嘉老师在以往的基础课学习中为我打下良好的基础,这是我这次课程设计能够顺利完成的前提。我的同学在设计过程及完成后的测试中起到了相当重要的作用,没有他们,我就不能发现后期测试过程出现的错误和漏洞,在此一并表示感谢。附录源程序代码(带注释):#include #include #include #include #include /常量定义#define MAX_STOP 6 /定义停车场最大停车数#define MAX_PLATE 10 /定义车牌号最大长度#define TIME_COUNT 秒 /定义时间单位#define TIME_MS_TO_CONUT
10、 1000 /定义时间进制using namespace std; /使用std命名空间typedef struct /数据结构定义,定义存储汽车信息的结构体 char license_plateMAX_PLATE; /汽车牌照号码,定义为一个字符指针类型 char state; /汽车当前状态,字符p表示停放在停车位上,字符s表示停放在便道上 int time; /汽车停入停车场时的时间,用来计时收费CAR;typedef struct /定义模拟停车场的栈结构 CAR STOPMAX_STOP; /汽车信息的存储空间 int top; /用来指示栈顶位置的静态指针SeqStack;type
11、def struct node /定义模拟便道的队列结构 CAR WAIT; /汽车信息的存储空间 struct node *next; /用来指示队列位置的动态指针QNode; /链队列节点的类型typedef struct/定义链队列的收尾指针 QNode *front,*rear;LQueue; /将头尾指针封装在一起的链队int write();/函数声明int read(); int Empty_LQueue(LQueue *q); /判队空/检查离开的车是否在停车场中int LeaveCheck(SeqStack parking , char *license_plate); in
12、t QueueLength(LQueue *q); /判队长度int Out_LQueue(LQueue *&sidewalk , char *license_plate); /出队操作int StackEmpty(SeqStack parking); /判断栈是否为空int StackFull(SeqStack parking); /判断栈是否为满int StackPop(SeqStack &parking); /出栈操作int StackTop(SeqStack parking , char *license_plate , int &time);/取栈顶元素void Car_come(S
13、eqStack &parking , LQueue *&sidewalk); /有车到来时的操作void Car_leave(SeqStack &parking , LQueue *&sidewalk); /有车离开的操作void Display(SeqStack parking); /显示停车场内的所有信息 调试时用void InitStack(SeqStack &parking); /初始化栈void InitList(LQueue *&sidewalk); /初始化队列void In_LQueue(LQueue *&sidewalk , char *license_plate); /进队操作void Input_Check(char *license_plate); /检验输入的车牌是否合法void StackPush(SeqStack &parki