当前位置:文档之家› 停车场管理系统 c语言

停车场管理系统 c语言

2015-2016学年第二学期《高级语言程序设计》课程设计报告题目:停车场管理系统专业:计算机科学与技术班级:15级计科<1>班**:*******:***成绩:计算机学院2016 年 4月 25 日目录1. 设计内容及要求 (1)1.1 课程设计内容 (1)1.2 课程设计的要求 (2)2概要设计 (3)2.1 设计思路 (3)2.2 程序基本框架结构图 (4)3设计过程或程序代码 (5)3.1 主要程序代码及解释 (5)4设计结果与分析 (13)4.1 程序运行结果截图与分析 (13)5参考文献 (16)1.设计内容及要求1.1 课程设计内容①通过本次课程设计,强化上级动手能力,在理论和实践的基础上巩固《C语言程序设计》课程的学习内容。

掌握软件设计的基本方法。

②熟悉C语言的基本内容从而掌握C语言的基本知识以及了解C语言的基本编写及运行。

③了解程序的分模块编写并对程序的每个模块进行详细的设计并且能理解一般C语言编写的程序。

④掌握书写程序设计说明文档的能力。

⑤熟悉C程序设计的开发环境及C程序的调试过程1.2 课程设计的要求①分析课程设计题目的要求。

②写出详细设计说明。

③编写程序代码,调试程序使其能正确运行。

④设计完成的软件要便于操作和使用。

⑤设计完成后提交课程设计报告。

2.概要设计2.1设计思路停车场是一个可停放n辆汽车的狭长通道,并只有一个大门可供汽车进出,汽车在停车场内按车辆到达的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),如车长内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理.每一组输入数据包括三个数据项:汽车”到达”或”离去”信息,汽车牌照号码以及到达或离去的时刻(到达或离去的时刻也可用计算机控制).对每一组输入数据进行操作后的输入信息为:如是车辆到达,则输入汽车在停车场。

2.2程序基本框架结构图3.设计过程或程序代码3.1 主要程序代码及解释#include<stdio.h>#include <cstdlib>#include<string.h>#define N 3#define MAX 50#define sign 10#define price 10char part[N][sign];char Rpart[MAX][sign];char time[N][20];int P,R;partadd(char *t){strcpy(&part[P][0],t);printf("请输入时间:\n");scanf("%s",&time[P][0]);getchar();P++;}Rpartadd(char *t){if(R<MAX){strcpy(&Rpart[R][0],t);R++;}else{printf("过道已满无法停车\n");}}newcar(){char temp[sign];printf("请输入车牌号码:");scanf("%s",temp);getchar();if(P<N){partadd(temp);}else if(R<MAX){Rpartadd(temp);}}int timed(char *t1,char *t2) {int i=0,y=0,x=0,j,n=1;while(1){if(t1[i]=='.'){for(j=i-1;j>=0;j--){y=y+(t1[j]-'0')*(60*n);n=n*10;}while(1){if(t1[j]==NULL){for(n=1;j>i;j--){y=y+(t1[j]-'0')*n;n=n*10;}break;}j++;}i=0;while(1){if(t2[i]=='.'){for(j=i-1;j>=0;j--){x=x+(t2[j]-'0')*(60*n);n=n*10;}while(1){if(t2[j]==NULL){for(n=1;j>i;j--){x=x+(t2[j]-'0')*n;n=n*10;}break;}j++;}y=(x-y)*price;return y;}i++;}}i++;}}Rpartcarout(int i){int j;for(j=i;j<R;j++){strcpy(&Rpart[j][0],&Rpart[j+1][0]);R--;}}partcarout(int i){int j,money;char t[20];printf("请输入现在的时间:\n");scanf("%s",t);getchar();money=timed(t,&time[i][0]);printf("收费:%d\n",money);for(j=i;j<P;j++){strcpy(&part[j][0],&part[j+1][0]);P--;}if(R!=0){strcpy(&part[N-1][0],&Rpart[0][0]);P++;strcpy(&time[P][0],t);Rpartcarout(0);}}carout(){char t[sign];int i,get=0;printf("请输入要离开的车牌号:");scanf("%s",t);getchar();for(i=0;i<P;i++){if(strcmp(t,&part[i][0])==0){get=1;partcarout(i);break;}}for(i=0;i<R&&get==0;i++){if(strcmp(t,&Rpart[i][0])==0){get=1;Rpartcarout(i);break;}}if(get==0){printf("cha wu ci che\n");}}jopart(){int i;for(i=0;i<P;i++){printf("%d.%s\n",i,&part[i][0]);}}joRpart(){int i;for(i=0;i<R;i++){printf("%d.%s\n",i,&Rpart[i][0]);}}main(){int c;while(1){printf("请选择要做的事:\n");printf("1.加入新车\n");printf("2.有车离开\n");printf("3.显示在停车场内的车\n");printf("4.显示在过道上的车\n");printf("5.退出\n");c=getchar();getchar();switch (c){case '1':newcar();break;case '2':carout();break;case '3':jopart();break;case '4':joRpart();break;case '5':exit(1);break;}}}4.设计结果与分析4.1 程序运行结果截图与分析程序主页截图(图1)说明:图1是运行后进入的主页截图1.加入新车输入车牌号输入开进时间(图2)2.有车离开输入车牌号输入离开时间收费金额(图3)3. 停车场内的车(图4)4.过道上的车(图5)5.退出(图6)5.参考文献1. [美]Mark Allen Weiss,数据结构与算法分析——C 语言描述(中文版第2 版,人民邮电出版社。

2.严蔚敏,吴伟民《数据结构题集(C语言版)》清华大学出版社。

3.谭浩强《c语言程序设计》清华大学出版社。

6. 总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。

我的题目是停车场管理系统,对于我们这些新手来说,这是很大的考验,我一千次一万次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的业余更靠近专业?怎样让自己的计划更具有序性,而不会忙无一用?机会是老师,学校,以及无数代教育工作者给的,而能力是自己的,耐性是需要的。

经过自己的琢磨,听取了师姐,师兄们的建议,还查阅了很多书籍,才做到了心中有数,才了解了C语言课程设计的真正用意——培养自学能力,养成程序编辑的好习惯。

我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。

回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。

相关主题