您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > C程序课程设计报告―停车场管理系统2
C程序设计报告C语言课程设计题目:停车场管理2设计者:龚阳俊所属院系:工程学院专业:安全工程班级:055102学号:20101003200指导教师:吴湘宁C程序设计报告前言设计目的:通过设计一个停车场管理系统,进一步消化和巩固已学过的C语言程序设计基础理论,学习和实践程序设计的各种技能,利用C语言来设计各种应用程序和管理系统,为社会提供各种现代化的管理工具,同时也掌握与数组有关的算法、函数的调用、结构体类型变量的定义和使用;文件打开、关闭、读、写等文件操作函数的使用,提高实际运用能力。设计内容题目要求:27题:停车场管理2内容:1.有一个两层的停车场,每层有6个车位,当第一层车位停满后才允许使用第二层(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共四项,其中停车时间按分钟计算。2.假设停车场初始状态为第二层已经有四辆车,其车位号依次为1-4,停车时间依次为20,15,10,5。即先将这四辆车的信息存入文件“car.dat”中(数组的对应元素也要进行赋值)3.停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空位则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件“car.dat”中,并将在此之前的停车时间加5。(此题简化时间的处理:当有一辆车进入时才对别的车加时间5分钟)4.收费管理(取车):当有车开走时,输入其车牌号,先按其停车时间计算费用,每5分钟2毛钱。同时从文件“car.dat”k删除该车的信息,并将该车对应的车位设置为可使用状态(即二维数组清零)。按用户的选择来判断是否要输出停车收费的总计。5.输出停车场中全部车辆的信息。6.退出系统。需求分析停车场有两层,为了表示每个车位需要用到二维数组;车辆信息要用文件存储,提供文件的输入输出操作,需要用到读取文件的相关操作;当车开走时要删除文件中该车的信息,因而要提供文件的删除操作;另外还要用键盘式菜单实现功能选择。总体设计整个管理系统可设计为停车、取车、车辆信息浏览、退出四个模块。其中主要是停车、取车、车辆信息浏览三个模块。C程序设计报告系统功能模块图详细设计1头文件,结构体的定义以及各功能函数的声明#includestdio.h#includestdlib.h#includeconio.h#includeio.h#includestring.h#defineN12voidtingche();voidquche();voidliulan();voidfenpeiweizhi();voidtianjiaxinxi();charshuchu();intsave();structcar{charchepaihao[10];intcenhao;intcheweihao;intshijian;}cl[N];inta[2][6]={1,2,3,4,0,0};staticinti=5;3主函数停车场管理系统停车模块车辆信息浏览模块取车模块C程序设计报告主函数流程图/***************************主函数***************************/voidmain()/*****************MENU***************/{intn,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/do{puts(\t\t*********欢迎来到车辆管理系统********\t\t);puts(\t\t****************MENU*****************\n\n);puts(\t\t\t\t1.停车);/*停车*/puts(\t\t\t\t2.取车);/*取车*/puts(\t\t\t\t3.浏览);/*浏览车辆信息*/puts(\t\t\t\t4.退出);/*退出*/puts(\n\n\t\t************************************\n);printf(choiceyournumber(1-4):[]\b\b);scanf(%d,&n);if(n1&&n4){开始显示一系列功能选项输入n,判断n是否在1—4?根据n值显示各功能模块函数结束C程序设计报告w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:tingche();break;case2:quche();break;case3:liulan();break;case4:exit(0);}}2各功能模块设计(1)停车模块停车模块流程图/******************停车模块*****************/开始输入车牌号分配位置添加信息结束C程序设计报告voidtingche(){printf(请先输入七位车牌号:按enter键结束);scanf(%s,cl[i].chepaihao);fenpeiweizhi();/*分配位置*/tianjiaxinxi();/*设置停车时间,并添加新的车辆信息*/save();}voidfenpeiweizhi()/*f分配车辆位置*/{intm,n;for(m=0;m2;m++){for(n=0;n6;n++){if(a[m][n]==0)cl[i].cenhao=m+1;cl[i].cheweihao=n+1;break;}}}voidtianjiaxinxi()/*添加车辆信息*/{intj,k;FILE*fp;cl[i].shijian=5;if((fp=fopen(d:\\car.txt,r))==NULL){printf(\ncannotopenthisfile\n);}for(i=0;!feof(fp);i++){fscanf(fp,%s%d%d%d\n,cl[i].chepaihao,&cl[i].cenhao,&cl[i].cheweihao,&cl[i].shijian);//printf(%s%d%d%d\n,cl[i].chepaihao,cl[i].cenhao,cl[i].cheweihao,cl[i].shijian);C程序设计报告}fclose(fp);for(j=0;ji;j++){cl[j].shijian=cl[j].shijian+5;}if((fp=fopen(d:\\car.txt,r))==NULL){printf(\ncannotopenthisfile\n);}for(k=0;k=i;k++)printf(%s%d%d%d\n,cl[k].chepaihao,cl[k].cenhao,cl[k].cheweihao,cl[k].shijian);fprintf(fp,%s%d%d%d\n,cl[k].chepaihao,cl[k].cenhao,cl[k].cheweihao,cl[k].shijian);fclose(fp);}intsave()/*保存*/{FILE*fp;intj;if((fp=fopen(car.dat,w))==NULL){printf(cannotopenfile\n);return0;}for(j=0;j=i;j++){fprintf(%s%d%d%d/n,&cl[j].chepaihao,&cl[j].cenhao,&cl[j].cheweihao,&cl[j].shijian);}fclose(fp);return1;}C程序设计报告(2)取车模块/******************取车模块******************/voidquche(){charstr[10];intn,w;printf(请先输入车牌号);scanf(%s,&str);printf(是否输出停车收费总计);do{puts(\t\t\t\t1.是);/*是*/puts(\t\t\t\t2.否);/*否*/puts(\n\n\t\t************************************\n);printf(choiceyournumber(1-2):[]\b\b);scanf(%d,&n);if(n1||n2){开始输入车牌号收取停车费用是否输出停车费总计?结束C程序设计报告w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:shuchu(str);break;case2:exit(0);}}w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:shuchu();break;case2:exit(0);}}charshuchu(char*str){doublea;intb,c,k;FILE*fp;if((fp=fopen(d:\\car.txt,r))==NULL){printf(\ncannotopenthisfile\n);}for(k=0;!feof(fp);k++){fscanf(fp,%s%d%d%d,cl[k].chepaihao,&cl[k].cenhao,&cl[k].cheweihao,&cl[k].shijian);}fclose(fp);C程序设计报告for(b=0;b=k;b++){if(strcmp(cl[b].chepaihao,str)==0)c=cl[b].shijian;printf(%s%d%d%d,cl[k].chepaihao,cl[k].cenhao,cl[k].cheweihao,cl[k].shijian);}a=(0.2)*c;printf(你的停车费用总计是:%d\n,a);printf(欢迎您的下次光临!\n);return(1);}(3)车辆信息浏览模块NYNY车辆浏览信息流程图/***********************车辆浏览模块*************************/voidliulan()/*浏览车辆信息*/{inti=0,j;FILE*fp;if((fp=fopen(D:\\car.txt,r))==NULL){printf(\ncannotopenthisfile\n);定义文件指针及循环计数器文件打开?读到末尾?关闭文件调用prinntf函数输出调用fscanf函数读入车辆信息输出错误C程序设计报告}for(i=0;!feof(fp);i++){fscanf(fp,%s%d%d%d,&cl[i].chepaihao,&cl[i].cenhao,&cl[i].cheweihao,&cl[i].shijian);}fclose(fp);for(j=0;j=i;j++){printf(%s%d%d%d\n,cl[j].chepaihao,cl[j].cenhao,cl[j].cheweihao,cl[j].shijian);}}运行与测试报告:车辆管理系统主菜单:C程序设计报告停车,并计算中停车费用:C程序设计报告车辆信息浏览:C程序设计报告后记设计感想:众所周知,C语言程序是一种最基本的应用程序,只有熟练的掌握和运用才能便于以后的编程。通过此次程序设计实习,我成功地完成了课堂上老师所要求的内容,更加理解和懂得运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试一个较长程序的的基本方法,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。在编程过程中我们需要多练习,多思考,要有耐心。在进行调试程序检错的时候,要从头开始,不要放过每一个小的环节。在实习中我也遇到了好多的问题,通过老师的细心讲解以及和同学们在一起讨论,不仅解决了许多问题,而且还学到了许多知识。C程序设计报告附录:源程序如下:#includestdio.h#includestdlib.h#includeconio.h#includeio.h
本文标题:C程序课程设计报告―停车场管理系统2
链接地址:https://www.777doc.com/doc-3969297 .html