C程序课程设计报告—停车场管理系统2.doc_第1页
C程序课程设计报告—停车场管理系统2.doc_第2页
C程序课程设计报告—停车场管理系统2.doc_第3页
C程序课程设计报告—停车场管理系统2.doc_第4页
C程序课程设计报告—停车场管理系统2.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

C 语 言 课 程 设 计题 目: 停车场管理2设 计 者: 龚阳俊所属院系:工程学院 专 业:安全工程 班 级:055102学 号:20101003200指导教师:吴湘宁前言设计目的:通过设计一个停车场管理系统,进一步消化和巩固已学过的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 退出系统。 需求分析 停车场有两层,为了表示每个车位需要用到二维数组;车辆信息要用文件存储,提供文件的输入输出操作,需要用到读取文件的相关操作;当车开走时要删除文件中该车的信息,因而要提供文件的删除操作;另外还要用键盘式菜单实现功能选择。总体设计 整个管理系统可设计为停车、取车、车辆信息浏览、退出四个模块。其中主要是停车、取车、车辆信息浏览三个模块。停车场管理系统停车模块车辆信息浏览模块取车模块系统功能模块图详细设计1 头文件,结构体的定义以及各功能函数的声明#include#include #include#include#include#define N 12void tingche();void quche();void liulan();void fenpeiweizhi();void tianjiaxinxi();char shuchu();int save();struct carchar chepaihao10;int cenhao;int cheweihao;int shijian;clN;int a26=1,2,3,4,0,0;static int i=5;3 主函数 结束根据n值显示各功能模块函数输入n,判断n是否在14?显示一系列功能选项开始 主函数流程图/*主函数*/void main() /*MENU*/ int n,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/ do puts(tt*欢迎来到车辆管理系统*tt); puts(tt*MENU*nn); puts(tttt 1.停车); /*停车*/ puts(tttt 2.取车); /*取车*/ puts(tttt 3.浏览); /*浏览车辆信息*/ puts(tttt 4.退出); /*退出*/ puts(nntt *n); printf(choice your number(1-4):bb); scanf(%d,&n); if(n4) w=1; getchar(); else w=0; while(w=1); switch(n) case 1:tingche();break; case 2:quche();break; case 3:liulan();break; case 4:exit(0); 2 各功能模块设计(1) 停车模块结束添加信息分配位置输入车牌号开始 停车模块流程图/*停车模块*/void tingche()printf(请先输入七位车牌号:按enter键结束);scanf(%s,cli.chepaihao);fenpeiweizhi(); /*分配位置*/tianjiaxinxi(); /*设置停车时间,并添加新的车辆信息*/save();void fenpeiweizhi()/*f分配车辆位置*/int m,n;for(m=0;m2;m+)for(n=0;n6;n+)if(amn=0)cli.cenhao=m+1;cli.cheweihao=n+1;break;void tianjiaxinxi()/*添加车辆信息*/int j,k;FILE *fp;cli.shijian=5;if(fp=fopen(d:car.txt,r)=NULL)printf(ncan not open this filen);for(i=0;!feof(fp);i+)fscanf(fp,%s %d %d %dn,cli.chepaihao,&cli.cenhao,&cli.cheweihao,&cli.shijian);/printf(%s %d %d %dn,cli.chepaihao,cli.cenhao,cli.cheweihao,cli.shijian);fclose(fp);for(j=0;ji;j+)clj.shijian=clj.shijian+5;if(fp=fopen(d:car.txt,r)=NULL)printf(ncan not open this filen);for(k=0;k=i;k+)printf(%s %d %d %dn,clk.chepaihao,clk.cenhao,clk.cheweihao,clk.shijian);fprintf(fp,%s %d %d %dn,clk.chepaihao,clk.cenhao,clk.cheweihao,clk.shijian);fclose(fp);int save() /*保存*/FILE *fp;int j;if(fp=fopen(car.dat,w)=NULL)printf(cannot open filen);return 0;for(j=0;j=i;j+)fprintf(%s%d%d%d/n,&clj.chepaihao,&clj.cenhao,&clj.cheweihao,&clj.shijian);fclose(fp);return 1;(2) 取车模块结束是否输出停车费总计?收取停车费用输入车牌号开始/*取车模块*/void quche()char str10;int n,w;printf(请先输入车牌号);scanf(%s,&str);printf(是否输出停车收费总计);doputs(tttt 1.是); /*是*/puts(tttt 2.否); /*否*/puts(nntt *n);printf(choice your number(1-2):bb);scanf(%d,&n);if(n2)w=1;getchar();else w=0;while(w=1);switch(n)case 1:shuchu(str);break;case 2:exit(0);w=1;getchar();else w=0;while(w=1);switch(n)case 1:shuchu();break;case 2:exit(0);char shuchu(char *str)double a;int b,c,k;FILE *fp;if(fp=fopen(d:car.txt,r)=NULL)printf(ncan not open this filen);for(k=0;!feof(fp);k+)fscanf(fp,%s %d %d %d,clk.chepaihao,&clk.cenhao,&clk.cheweihao,&clk.shijian);fclose(fp);for(b=0;b=k;b+)if(strcmp(clb.chepaihao,str)=0)c=clb.shijian;printf(%s %d %d %d,clk.chepaihao,clk.cenhao,clk.cheweihao,clk.shijian);a=(0.2)*c;printf(你的停车费用总计是:%dn,a);printf(欢迎您的下次光临!n);return(1);(3) 车辆信息浏览模块定义文件指针及循环计数器调用fscanf函数读入车辆信息调用prinntf函数输出关闭文件读到末尾?文件打开?输出错误N YN Y 车辆浏览信息流程图/*车辆浏览模块*/void liulan() /*浏览车辆信息*/int i=0,j;FILE *fp;if(fp=fopen(D:car.txt,r)=NULL)printf(ncan not open this filen);for(i=0;!feof(fp);i+)fscanf(fp,%s%d%d%d,&cli.chepaihao,&cli.cenhao,&cli.cheweihao,&cli.shijian);fclose(fp);for(j=0;j=i;j+)printf(%s %d %d %dn,clj.chepaihao,clj.cenhao,clj.cheweihao,clj.shijian);运行与测试报告:车辆管理系统主菜单:停车,并计算中停车费用:车辆信息浏览:后记设计感想:众所周知,C语言程序是一种最基本的应用程序,只有熟练的掌握和运用才能便于以后的编程。通过此次程序设计实习,我成功地完成了课堂上老师所要求的内容,更加理解和懂得运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试一个较长程序的的基本方法,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。在编程过程中我们需要多练习,多思考,要有耐心。在进行调试程序检错的时候,要从头开始,不要放过每一个小的环节。在实习中我也遇到了好多的问题,通过老师的细心讲解以及和同学们在一起讨论,不仅解决了许多问题,而且还学到了许多知识。附录:源程序如下:#include#include #include#include#include#define N 12void tingche();void quche();void liulan();void fenpeiweizhi();void tianjiaxinxi();char shuchu();int save();struct carchar chepaihao10;int cenhao;int cheweihao;int shijian;clN;int a26=1,2,3,4,0,0;static int i=5;/*主函数*/void main() /*MENU*/int n,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/doputs(tt*欢迎来到车辆管理系统*tt);puts(tt*MENU*nn);puts(tttt 1.停车); /*停车*/puts(tttt 2.取车); /*取车*/puts(tttt 3.浏览); /*浏览车辆信息*/puts(tttt 4.退出); /*退出*/puts(nntt *n);printf(choice your number(1-4):bb);scanf(%d,&n);if(n4)w=1;getchar();else w=0;while(w=1);switch(n)case 1:tingche();break;case 2:quche();break;case 3:liulan();break;case 4:exit(0);/*停车模块*/void tingche()printf(请先输入四位车牌号:按enter键结束);scanf(%s,cli.chepaihao);fenpeiweizhi(); /*分配位置*/tianjiaxinxi(); /*设置停车时间,并添加新的车辆信息*/save();/*取车模块*/void quche()char str10;int n,w;printf(请先输入车牌号);scanf(%s,&str);printf(是否输出停车收费总计);doputs(tttt 1.是); /*是*/puts(tttt 2.否); /*否*/puts(nntt *n);printf(choice your number(1-2):bb);scanf(%d,&n);if(n2)w=1;getchar();else w=0;while(w=1);switch(n)case 1:shuchu(str);break;case 2:exit(0);/*车辆浏览模块*/void liulan() /*浏览车辆信息*/int i=0,j;FILE *fp;if(fp=fopen(D:car.txt,r)=NULL)printf(ncan not open this filen);for(i=0;!feof(fp);i+)fscanf(fp,%s%d%d%d,&cli.chepaihao,&cli.cenhao,&cli.cheweihao,&cli.shijian);fclose(fp);for(j=0;j=i;j+)printf(%s %d %d %dn,clj.chepaihao,clj.cenhao,clj.cheweihao,clj.shijian);/*以下是各功能函数*/void fenpeiweizhi()int m,n;for(m=0;m2;m+)for(n=0;n6;n+)if(amn=0)cli.cenhao=m+1;cli.cheweihao=n+1;break;void tianjiaxinxi()/*添加车辆信息*/int j,k;FILE *fp;cli.shijian=5;if(fp=fopen(d:car.txt,r)=NULL)printf(ncan not open this filen);for(i=0;!feof(fp);i+)fscanf(fp,%s %d %d %dn,cli.chepaihao,&cli.cenhao,&cli.cheweihao,&cli.shijian);/printf(%s %d %d %dn,cli.chepaihao,cli.cenhao,cli.cheweihao,cli.shijian);fclose(fp);for(j=0;ji;j+)clj.shijian=clj.shijian+5;if(fp=fopen(d:car.txt,r)=NULL)printf(ncan not open this filen);for(k=0;k=i;k+)printf(%s %d %d %dn,clk.chepaihao,clk.cenhao,clk.cheweihao,clk.shijian);fprintf(fp,%s %d %d %dn,clk.chepaihao,clk.cenhao,clk.cheweihao,clk.shijian);fclose(fp);int save()FILE *fp;int j;if(fp=fopen(d:car.txt,w)=NULL)printf(cannot open filen);return 0;for(j=0;j=i;j+)printf(%s %d %d %dn,clj.chepaihao,clj.cenhao,clj.cheweihao,clj.shijian);fclose(fp);return 1;char shuchu(char *str)double a;int b,c,k;FILE *fp;if(fp=fopen(d:car.txt,r)=NULL)printf(ncan not open this filen);for(k=0;!feof(fp);k+)fscanf(fp,%s %d %d %d,clk.chepaihao,&clk.cenhao,&clk.cheweihao,&clk.shijian);fclose(fp);for(b=0;b=k;b+)if(strcmp(clb.chepaihao,str)=0)c=clb.shijian;printf(%s %d %d %d,clk.chepaihao,clk.cenhao,clk.cheweihao,clk.shijian);a=(0.2)*c;printf(你的停车费用总计是:%dn,a);printf(欢迎您的下次光临!n);return(1);袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃

温馨提示

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

评论

0/150

提交评论