2022年自动寄存柜 .pdf

上传人:Q****o 文档编号:27948279 上传时间:2022-07-26 格式:PDF 页数:9 大小:57.51KB
返回 下载 相关 举报
2022年自动寄存柜 .pdf_第1页
第1页 / 共9页
2022年自动寄存柜 .pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年自动寄存柜 .pdf》由会员分享,可在线阅读,更多相关《2022年自动寄存柜 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、“程序设计()”综合编程实验报告(2011-2012 学年第 2 学期)实验项目名称:自动寄存柜一、实验内容与要求某超市门口的自动寄存柜有n 个寄存箱,并且有一个投币控制器,顾客想要寄存小件物品时, 只要在投币控制器投入1 个 1元的硬币,如果此时有空闲的箱子,寄存柜就会自动打开一个空的箱子,并且打印输出一张小小的密码纸条;如果没有空闲的箱子,则提示“本柜已满”。当顾客离开超市时,用密码纸条上指定的数字密码依次输入到开箱控制器,则顾客所存包的箱子门就自动打开,顾客取走物品后,关上门。输入数据时,可先输入寄存箱总数n,再由用户选择是“投硬币”还是“输密码” 。如果选择“投硬币”,则只有硬币值是1

2、 才开箱。如果有空闲的箱子,则输出箱子编号及密码( 4 位数字) ;如果无空闲的箱子,则提示: “本柜已满”。如果选择“输密码” ,若输入的密码与某一箱子密码相符,则显示打开的箱子编号,否则输出提示: “密码错误”。请编写开箱控制程序实现上述过程。输入输出示例寄存箱总数 :10 1. 投硬币 2. 输密码 0. 退出 请选择 : 1 投币值:1 寄存箱编号 :1 密码:9342 1. 投硬币 2. 输密码 0. 退出 请选择 : 2 输入密码 :9342 1号寄存箱已打开1. 投硬币 2. 输密码 0. 退出 请选择 :0 结束名师资料总结 - - -精品资料欢迎下载 - - - - - -

3、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 二、系统设计1、解题思路(1)先输入寄存箱数量,并判断数量是否正确。(2) 先输出 1. 投硬币 2. 输密码 0. 退出 请选择 : , 再输入数字选择是“投硬币”还是“输密码” 。 。(3)若“投硬币”,则只有硬币值是1 才开箱,并判断是否有空闲的箱子。若有则输出箱子编号及密码。(4)若选择“输密码”,则判断输入的密码是否正确。2、数据结构描述3、程序框架结构4、关键算法描述(1)输入寄存箱数量 srand(int)time(0); prin

4、tf(寄存柜数量 :); scanf(%d,&num); printf(n); while(num=0) printf(寄存柜数量错误 , 请重新输入 nn); printf(寄存柜数量 :); scanf(%d,&num); printf(n); (2)判断是否有空闲的箱子。若有则输出箱子编号及密码。 if(x=1) printf(投币值 :); scanf(%d,&coin); printf(n); if(coin=1) if(countnum) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -

5、- - - 第 2 页,共 9 页 - - - - - - - - - bcount=rand()%num+1; while(fullbcount-1=1) bcount=rand()%num+1; for(i=0;icount;i+) if(bcount=bi) bcount=rand()%num+1; i=0; fullbcount-1=1; acount=rand()%9000+1000; for(i=0;icount;i+) if(acount=ai) acount=rand()%9000+1000; i=0; printf(寄存箱编号 :%d 密码:%dnn,bcount,acoun

6、t); count+; else printf(本柜已满 nn); (3)判断输入的密码是否正确 printf(输入密码 :); scanf(%d, &password); printf(n); if(count=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - printf(密码错误 nn); continue; for(i=0;icount;i+) if(fullbi-1=1&password=ai) printf(%d

7、号寄存箱已打开 nn,bi); fullbi-1=0; flag=1; for(k=i;kcount-1;k+) bk=bk+1; ak=ak+1; fullbk-1=fullbk+1-1; break; if(flag!=1) printf(密码错误 nn); else count-; flag=0; 三、测试用例测试用例 1:寄存柜数量: 10 1. 投硬币 2. 输密码 0. 推出 请选择: 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - -

8、 - - - - - 投硬币: 1 寄存箱编号: 10 密码: 7075 1. 投硬币 2. 输密码 0. 推出 请选择: 2 输入密码: 7075 10 号寄存箱已打开1. 投硬币 2. 输密码 0. 推出 请选择: 0 测试用例 2:寄存柜数量: 10 1. 投硬币 2. 输密码 0. 推出 请选择: 1 投硬币: 1 寄存箱编号: 5 密码:2738 1. 投硬币 2. 输密码 0. 推出 请选择: 2 输入密码: 2738 5 号寄存箱已打开1. 投硬币 2. 输密码 0. 推出 请选择: 0 四、总结#include #include #include #include int ma

9、in(void) int i,k,num,x,count,coin,temp; int b1000,a1000,full1000; int password,flag=0; srand(int)time(0); printf(寄存柜数量 :); scanf(%d,&num); printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - while(num=0) printf(寄存柜数量错误 , 请重新输入 nn); p

10、rintf(寄存柜数量 :); scanf(%d,&num); printf(n); /for(y=0;ynum;y+) /for(z=0;z4;z+) /syz=a; /*-*/ for(i=0;inum;i+) fulli=0; count=0;/check=0; while(1) printf(1.投硬币 2. 输密码 0. 退出 请选择:); scanf(%d,&x); printf(n); /*-*/ if(x=1) printf(投币值 :); scanf(%d,&coin); printf(n); if(coin=1) if(countnum) bcount=rand()%num

11、+1; while(fullbcount-1=1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - bcount=rand()%num+1; for(i=0;icount;i+) if(bcount=bi) bcount=rand()%num+1; i=0; fullbcount-1=1; acount=rand()%9000+1000; for(i=0;icount;i+) if(acount=ai) acount=rand(

12、)%9000+1000; i=0; printf(寄存箱编号 :%d 密码:%dnn,bcount,acount); count+; else printf(本柜已满 nn); else printf(投错硬币 , 请重新选择 nn); continue; else if(x=2) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - printf(输入密码 :); scanf(%d, &password); printf(n); i

13、f(count=0) printf(密码错误 nn); continue; for(i=0;icount;i+) if(fullbi-1=1&password=ai) printf(%d号寄存箱已打开 nn,bi); fullbi-1=0; flag=1; for(k=i;kcount-1;k+) bk=bk+1; ak=ak+1; fullbk-1=fullbk+1-1; break; if(flag!=1) printf(密码错误 nn); else count-; flag=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - else if(x=0) break; else printf(输入错误 , 请重新输入 nn); return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁