某超市门口的自动寄存柜有n个寄存箱,并且有一个投币控制器。

顾客想要寄存小件物品时,只要在投币控制器中投入一个1元硬币,如果此时有空闲的箱子,寄存柜就会自动打开一个空的箱子,并且打印输出一张小小的密码纸条;如果没有空闲的箱子,则提示“本柜已满”。

当顾客离开超市时,用密码纸条上指定的数字密码依次输入到开箱控制器,则顾客所存包的箱子门就会自动打开,顾客取走物品后,关上门。

流程分析:

输入数据时,可先输入寄存箱总数n(10<=n<=100), 再由用户选择是“投硬币”还是“输密码”。

如果选择“投硬币”,则只有硬币值是1时才开箱。

如果有空闲的箱子,则输出箱子编号及密码(4位数字构成);

如果无空闲的箱子,则提示“本柜已满”。

如果选择“输密码”,若输入的密码与某一箱子密码相符,则显示打开的箱子编号,否则输出提示“密码错误”。

万能密码:假定有一个密码1168,该密码用于营业结束后整理寄存柜。先在菜单中输入隐藏的选项5,然后提示请输入万能密码,密码输入后,打开所有的箱子,如有箱子中客户没有取走东西,则提示:请重点检查某编号的箱子是否有物留存。

请编写开箱控制程序实现上述过程。

输入输出示例: (黑色字体内容为计算机输出,红色字体内容为用户输入)

寄存箱总数:10

----------------------------------------------------------

1.投硬币   2.输密码   0.退出

请选择:1

投币值:1

寄存箱编号:6 密码:9342

----------------------------------------------------------

1.投硬币 2.输密码 0.退出

请选择: 2

输入密码:9342

6号寄存箱已打开

----------------------------------------------------------

1.投硬币 2.输密码 0.退出

请选择:5

请输入万能密码:9999

箱子已经全部打开,请重点检查编号1,编号7的箱子是否有物留存

-----------------------------------------------------------

1.投硬币 2.输密码 0.退出

请选择:0

结束

提示:密码随机产生

重点:如何判断货柜是否为空

#include <stdio.h>
#include <string.h>
#include <time.h>
#include <windows.h>int main()
{int n, mode = 1, cion, code,codeing, num, box[101] = { 0 }, tex=0;              //n为箱子总数(待输入) mode为用户选择模式(投硬币/输密码)  box为每一个箱子 cion投入硬币  code为用户输入的密码int code_origin = 1168, sum = 0;                                      //万能密码int i,k;                                                  //i检查密码用,k统计箱子数srand(time(NULL));printf("寄存箱总数:");scanf_s("%d", &n);while (mode != 0){srand(time(NULL));printf("------------------------------------------------------------------------------------------\n");printf("1.投硬币             2.输密码               0.退出\n");printf("请选择:");scanf_s("%d", &mode);if (mode == 1){printf("投币值:");scanf_s("%d", &cion);if (cion == 1){if (sum == n){printf("储物箱已满,抱歉\n");continue;}choose_num:num = 1 + rand() % n;                                    //随机选择箱子choose_code:codeing = 1000 + rand() % 9000;                       //随机密码if (box[num] != 0){goto choose_num;                                          //避免储物箱重复,若重复,重新选择储物箱}for (i = 1; i < n + 1; i++){if (codeing == box[i]){goto choose_code;                                           //避免储物箱重复,若重复,重新选择储物箱}}box[num] = codeing;printf("寄存箱编号:%d           密码:%d\n", num, box[num]);sum++;Sleep(5000);}else{printf("投币数错误,请重试\n");}}else if (mode == 2){printf("输入密码:");scanf_s("%d", &code);for (i = 1; i < n+1; i++){if (box[i] == code){printf("%d号寄存箱已打开\n", i);box[i] = 0;tex = 0;sum--;break;}else{tex = 1;}}if (tex == 1){printf("密码错误,5s后重试\n");}Sleep(5000);}else if (mode == 5){printf("请输入万能密码:");scanf_s("%d", &code);k = 0;if (code_origin == code){printf("箱子已全部打开,请重点检查", i);for (i = 1; i < 101; i++){if (box[i] != 0){k++;if (k == 1){printf("编号%d", i);}else{printf("、编号%d", i);}}}printf("的箱子是否有物留存\n");}else{printf("密码错误,5s后重试\n");}Sleep(5000);}else if (mode == 0){printf("结束\n");break;}else{printf("输入错误,请重试\n");}}}

总结:认识了Sleep()函数[S必须是大写]【Sleep(5000) 表示暂停5000ms(不同语言可能不同)】

复习了之前所学的知识

寄存柜程序模拟(C语言)相关推荐

  1. c语言模仿atm源代码,C语言ATM程序模拟

    <C语言ATM程序模拟>由会员分享,可在线阅读,更多相关<C语言ATM程序模拟(18页珍藏版)>请在人人文库网上搜索. 1.一. 课题要求1. 当输入给定的卡号和密码(初始卡号 ...

  2. C语言程序模拟流星雨,C语言_流星雨的实现.doc

    C语言_流星雨的实现 HUNAN UNIVERSITY 程序设计训练报告 题目 流 星 雨 的 实 现 学生姓名毛 宇 锋学生学号201208060116专业班级信息安全一班学院名称信息科学与工程学院 ...

  3. 关于c语言排序计时器完整程序,先来先服务调度算法模拟实验程序源代码(C语言)...

    先来先服务调度算法模拟实验程序源代码(C语言) 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水 ...

  4. c语言大作业之自动寄存柜,关于自动寄存柜的问题求解

    关于自动寄存柜的问题求解 红字部分看不懂,求解答 #include #include #include #include int main(void) { int i,k,num,x,count,co ...

  5. 数码管在c语言中显示时间,如何利用单片机数码管程序模拟是时钟显示时间?...

    数码管是一种半导体发光器件,其基本单元是发光二极管.数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP)这个小数点可以更精确的表示数码管想要 ...

  6. c语言小学生加法考试题程序4,c语言编程题及答案.doc

    c语言编程题及答案.doc C C 语言编程题及答案(三)语言编程题及答案(三) 1. 给小学生出加法考试题 编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列 要求以循序渐 ...

  7. 黑马程序员C语言基础(第五天)运算符与表达式、程序流程结构、数组和字符串、函数

    https://www.bilibili.com/video/BV15W411K7k6?p=93&spm_id_from=pageDriver 黑马程序员C语言基础(第五天)运算符与表达式.程 ...

  8. 飞鸽快递系统代码_自动售卖机、视觉+重力柜、自动寻址机、智能寄存柜解决方案及整套源代码...

    智能售卖机.自动寻址机.快递柜系统整套源代码及解决方案,产品已成型,可快速部署,且有成功运作案例. 智能售卖机.自动寻址机.快递柜系统系统包括(后台数据管理中心,智能售卖机.自动寻址机.快递柜系统终端 ...

  9. 深入解析JNA—模拟C语言结构体

    原帖:http://blog.csdn.net/shendl/article/details/3599849 深入解析JNA-模拟C语言结构体 前言 前几天写<JNA--JNI终结者>一文 ...

  10. 程序设计基础c语言第二版巫,程序设计基础 (C语言)---2版

    图书特色: 1. 实例丰富 本书不仅理论完备,还通过 100 多个实例夯实基础,100 多个课后习题巩固练习,并通过分布在本书第 6.8 和 10 章的 3 个综合应用案例 学生成绩统计程序.学生成绩 ...

最新文章

  1. Nature:人工甜味剂改变小鼠肠道菌群组成及功能
  2. SpringBoot报错:Could not autowire. No beans of ‘DiscussantMapper‘ type found
  3. ORACLE查询表数据占用存储空间大小
  4. 转Delphi中Create(nil),Create(self),Create(Application)区别
  5. 调用Xvid编码器流程(基于xvid1.1.0)
  6. webstorm 运行android,Windows React Native环境搭建:webstorm+android studio 及解决热更新
  7. 【精彩实况】第三届大数据科学与工程国际会议
  8. c# 子窗口与父窗口之间的传值
  9. 关于Romoting又一例
  10. query string parameter前端怎么传参_Substrate 前端开发-1: 用 Polkadot-JS API 轻松搭建前端
  11. Android 各国语言包字符串缩写
  12. 权限管理模块数据库设计
  13. vb6.0开发的单片机串口温度采集系统(单片机测温、串口传输、温度曲线显示)
  14. Visio流程图模具:国标1526-89(V2.0.5)
  15. SAP FICO模块-财务账期的打开和关闭
  16. python读取文件报错:‘utf-8‘ 或“gbk” codec can‘t decode byte 0xbe in position 627: invalid start byte
  17. 十几套JavaWeb项目,拿去当毕业设计简直太爽了(源码)
  18. 英特尔(中国)架构师夏磊先生一行到访云创
  19. Solo.io发布Gloo Mesh Enterprise 2.0
  20. [随笔]关于如何实现鼠标穿透窗口和窗口半透明

热门文章

  1. IDEA 2019 激活码(注册码)
  2. ZooKeeper JMX enabled by default
  3. mapgis矢量化怎么打分数_MAPGIS矢量化步骤
  4. Instrument详解
  5. 线性稳压芯片的选取要素
  6. hr面试十大经典提问
  7. 《活着》余华——有庆的死亡
  8. python源文件改写
  9. linux删除文件名的文件夹,Linux删除文件夹和修改文件名
  10. 有趣的23000 同(近)意词