




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言课程实习报告【要求】 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进来的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应依据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟停车场管理。【提示】 汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。 基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。根据题目要求,停车场可以用一个长度为n的堆栈来模拟。由于停车场内如有某辆车要开走,在它之后进来的车辆都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场,所以可以设两个堆栈。一、需求分析 根据题目要求,程序应该提供“到达/离去,汽车牌照号码,到达/离去”的输入、输出操作;在程序中需要浏览停车场的车位信息,应提供显示、查找、排序等操作;此外还应提供键盘式菜单实现功能选择。二、总体设计:根据需求分析,可以将系统的设计分为以下五大模块:(1)车辆进入;(2)车辆退出;(3)车辆等待;(4)车辆查询;(5)退出。停车场管理系统车辆进入车辆退出车辆等待车辆信息显示车辆查询退出系统一、 详细设计:主函数中只包含菜单函数,菜单部分单独写成函数,只提供输入、功能处理和输出部分的函数调用,其中各功能模块用菜单方式选择。程序#define N 30 /*等待车辆*/#define M 20 /*车位*/#define P 2 /*单位时间所收费用*/#include#include#includestruct cars /*定义车辆信息*/ char state; int num; int in_time; int out_time; int time_spend; int money_to_pay;carM;struct carleft char state; int num;waitN;1、主函数模块流程图主菜单输入n,判断n是否是1-4N根据n的值调用各功能模块函数程序main() /*主函数*/ pre_manage(); menu(); /*调用主菜单函数*/ return 0;void menu() /*主菜单函数*/int n,w;doputs(tt*MENU*nn); puts(tttt 1.car_arrive); /*有车到来*/ puts(tttt 2.car_depart); /*有车离开*/ puts(tttt 3.car_browse); /*浏览车位信息*/ puts(tttt 4.exit); /*退出*/ puts(nntt *n)printf(Choice your number(1-4): bb); /*选择所需服务*/ scanf(%d,&n); getchar(); if(n4) w=1; getchar(); else w=0; while(w=1); switch(n)case 1: car_arrive();break; case 2: car_depart();break; case 3: car_browse();break; case 4: exit(0); void pre_manage() /*循环结构*/int i;for(i=0;iM;i+)cari.state=E;for(i=0;iN;i+)waiti.state=E;2、各功能模块设计:(1)、车辆进入模块分析车辆进入停车场后,判断车位和等待车位是否有剩余。若车位有空余则输入车辆编号和进入时间,记录在已停放车辆信息中;若车位无剩余而等待车位有剩余则输入车辆编号和进入时间,记录在等待车辆信息中;若两者都无剩余则提示无剩余空间。流程图车辆进入是否有空余车位NY是否有空余等待车位输入车辆编号和进入时间输入车辆编号和进入时间显示车位已满返回主菜单NY程序车辆到来模块void car_arrive() /*车辆到来模块*/ int s,w1,w2,t; void menu(); /*显示主菜单*/ s=whether(); /*判断是否有空余车位*/ w1=whether_cars_full();w2=whether_carwait_full(); if(s=1) /*有空余车位*/puts(ttInput the NO. of the coming car! n ); /*输入车辆编号*/ carw1.state=A; scanf(%d,&carw1.num); puts(nttInput the in_time!n); /*输入车辆进入时间*/ scanf(%d,&carw1.in_time);else if(s=2) /*有空余等待车位*/puts(ttInput the NO. of the coming car! n ); /*输入车辆编号*/ waitw2.state=A; scanf(%d,&waitw2.num);else printf(No extra space); /*无剩余空间*/printf(what do you want to do next?n);/*选择所需服务*/puts(tt*MENU*nn);puts(tttt 1).Another car is coming);puts(tttt 2).Back to Menu);puts(nntt *n);printf(nttChoice your number(1-2): bb); scanf(%d,&t); getchar();if(t=1) /*另一辆车进入*/car_arrive();else /*返回主菜单*/menu();判断车位是否空余模块int whether() /*判断车位是否空余模块*/int w1,w2,s; w1=whether_cars_full();w2=whether_carwait_full(); if(w1M) s=1; /*有空余车位*/ else if(w1=M&w2N) s=2; /*车位已满,等待车位有空余*/ else s=3; /*车位和等待车位都已满*/ return s; 判断停泊车位是否空余模块int whether_cars_full() /*判断停泊车位是否有空余模块*/ int i,k;for(i=0;iM;i+)if(cari.state=E) break; /*当输入为“E”的时候退出系统*/ k=i;return k; 判断等待车位是否空余模块int whether_carwait_full() /*判断等待车位是否有空余模块*/ int i,k=N; for(i=0;iN;i+)if(waiti.state=E) k=i;break; /*当输入为“E”的时候退出系统*/ return k;(2)、车辆退出模块分析 该部分需要实现功能:用户选择车辆离开后,先查询该车位于停泊车位还是等待车位,若位于停泊车位则在输入离开时间后显示所需交纳费用;若位于等待车位则不需交费。流程图车辆退出系统该车处于停泊车位输入车辆编号该车处于等待车位提示未找到该车输入离开时间计算需交纳费用退出系统YNNY程序停泊车辆离开模块void car_in_left(int k) /*停泊车辆离开模块*/int w1,i,j,n,s;void car_wait_left(int n); struct cars tempM;w1=whether_cars_full();n=w1-k-1;for(i=w1,j=0;j=0;i+,j-)cari=tempj;carM.state=wait1.state;carM.in_time=s;carM.num=wait1.num;car_wait_left(1);等待车辆离开模块void car_wait_left(int n) /*等待车辆离开模块*/int i;for(i=n;iN-1;i+)waiti=waiti+1; waitN-1.state=E;车辆所处车位查询模块int search() /*查询模块*/ int temp_num,n1,n2,w=0,n;doprintf(Input the num of the leaving car!); /*输入离开车辆编号*/scanf(%d,&temp_num); if(temp_num=-1)exit(0);n1=search_car(temp_num); /*调用查询已用停泊车位模块*/n2=search_carwait(temp_num); /*调用查询已用等待车位模块*/if(n1M) whether_in=1; n=n1; /*车辆处于停泊车位*/else if(n1=M&n2N) /*车辆处于等待车位*/ whether_in=0; return n=n2; else /*无该车辆信息*/ printf(Not Found!Input again! nOr input -1 to exit ); w=1;n=-1; while(w=1);return n;查询已用停泊车位模块:int search_car(int temp_num) /*查询已用停泊车位*/ int i,k;for(i=0;iM;i+)if(cari.state=A&cari.num=temp_num) break;k=i; /*车辆处于停泊车位,返回车辆编号*/return k;查询已用等待车位模块:int search_carwait(int temp_num) /*查询已用等待车位*/ int i,k;for(i=0;iN;i+)if(waiti.state=A&waiti.num=temp_num) break;k=i; /*车辆处于等待车位,返回车辆编号*/return k; int whether_in; /*判断是否存在*/ 车辆离开模块void car_depart() /*车辆离开模块*/ int n,w; void menu();int search(); /*调用车辆位置查询模块*/n=search();if(whether_in=1) car_in_left(n); else car_wait_left(n); printf(ntt_ Do it successful_n); puts(nn);printf(what do you want to do?n); /*选择所需服务*/puts(tt*MENU*nn); puts(tttt 1).Another car depart); /*另一车辆离开*/ puts(tttt 2).Back to Menu); /*返回主菜单*/ puts(nntt *n); printf(nnChoice your number(1-2): bb); scanf(%d,&w); getchar();if(w=1)car_depart(); /*调用车辆离开模块*/elsemenu(); /*返回主菜单*/(3)、车位信息浏览模块分析该模块需要实现功能:用户选择浏览车位信息时进入该模块,查询并显示车位使用信息。流程图车位信息浏览系统显示车位使用信息返回主菜单程序void car_browse() /*车位信息浏览模块*/ int s,w1,w2;void menu(); s=whether(); w1=whether_cars_full(); /*判断是否还有空闲停泊车位*/w2=whether_carwait_full(); /*判断是否还有空闲等待车位*/if(s=1) /*停泊车位未满*/printf(There are %d lot in the parking lotn,M);printf(And there are %d cars in it.,w1); /*显示剩余车位*/else if(s=2) /*停泊车位已满,等待车位未满*/printf(No spcce in the parking lot.nYou should wait in street.nThere are %d space in street.,w2);else /*无剩余停车空间*/printf(No space both in parking lot and street.);getchar();menu(); /*返回主菜单*/三、运行结果:1、 主菜单 2、 选择1,输入车辆编号及进入时间3、 选择2,返回主菜单4、 选择1,再进入一辆车5、 输入车辆编号及进入时间6、 重复操作几次,返回主菜单,选择3浏览车位信息7、 返回主菜单,选择2,车辆离开 8、 选择2返回主菜单,选择4退出。三、实习心得在这次实习之前我从未自己写过什么较长一点的程序,而且自C语言课程结束之后基本上没有看过书,忘记了相当多的知识,所以在编写程序时感觉很困难。我觉得在之前的学习当中我根本没注意培养一种正确的编程的思维,在拿到程序题时脑海里没有一个清晰的思路。所以经过这次实习之后我会在以后的学习当中强化对一些编程思想的学习,通过多写程序多体会来提升自己。就我个人来说我是很希望能在编程上有所提升,我对计算机是很感兴趣的,所以我选了华中科技大学计算机科学与技术专业读双学位。我有计划准备在以后的时间里花一个学期好好强化一下C语言,大三再开始学C+,并把C+作为以后唯一学习的一门计算机编程语言来学习。袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025医院三基考试通关题库附参考答案详解(模拟题)
- 2024年反射疗法师3级练习题(培优A卷)附答案详解
- 2024-2025学年重庆科创职业学院单招《职业适应性测试》高分题库含答案详解【B卷】
- 康复医学治疗技术副高级职称高频难、易错点题及完整答案详解【有一套】
- 2025年事业单位工勤技能考试考试历年机考真题集及完整答案详解(名师系列)
- 2024施工员综合提升测试卷含答案详解(综合卷)
- 2024自考专业(会计)常考点试卷及参考答案详解【黄金题型】
- 2024-2025学年自考专业(金融)模拟试题含完整答案详解【夺冠】
- 2025执业药师过关检测试卷附参考答案详解【培优B卷】
- 2025年法律职业资格考试题库(培优B卷)附答案详解
- 公寓物业管理规定
- ICT保养作业指导书
- SL-T+712-2021河湖生态环境需水计算规范
- 成吉思汗课件
- 2024上海高考英语句子翻译模拟试题及答案解析
- JTS 206-2-2023 水运工程桩基施工规范
- 音乐培训学校可行性方案
- 2024年中国人寿招聘笔试参考题库含答案解析
- 山体滑坡安全隐患评估报告
- 规范贷款中介合作协议书范本
- 宠物行为分析与心理健康研究
评论
0/150
提交评论