在超市、健身房、游泳馆或休闲中心,相信大家都会看到存包柜的存在和知道它的使用意义。在存包柜当中,有条码电子和密码等种类,它可节省人力看管的费用,并提高服务品质,帮助客户自行保管随身物品,免承担看管责任,减少浪费人力资源。
1. 按“存”字键;
2. 从密码出口取出开箱密码纸;
3. 自动开门;
4. 按屏示柜号存入物品;
5. 关好柜门。
取:1. 用开柜密码纸在密码输入处输入密码;2. 自动开门;3. 取出物品后请随手关门,密码作废。 解题思路:存包柜一般由多行多列的若干小柜子组成,显然,需要定义两个二维数组:
(1)定义二维数组,如locker[M][N],表示存包柜是否有物品,用0表示无物品,1表示有物品。
(2)定义二维数组,如ps[M][N],表示存放物品时,系统随机生成的密码。
存包时,用穷举法判断每行每列的柜子是否为空,即判断locker[i][j]是否为0,若为0,则该柜可以存放物品,此时系统自动生成6位数密码,开门,存入物品,即locker[i][j]=1;关好柜门。在此还需要定义一个标志,若flag表示是否有空柜,flag=0,表示没有空柜,flag=1,表示有空柜。
取包时,需要先输入密码,密码正确,则取出物品,同时密码作废,即ps[m][n]=0;该柜locker[m][n]=0表示为空,可以继续存放物品。若密码输入不正确,可以再次输入密码,最多输入3次。
程序中,涉及到新的函数及头文件:
time.h:声明日期和时间操作所用到的数据结构和函数
srand函数:随机数发生器的初始化函数。srand一般与rand()配合使用产生随机数序列。
rand函数:产生随机整数。在产生随机数前,需要srand函数提供生成伪随机数序列的种子,rand根据这个种子产生一系列随机整数。如果没有srand提供种子,每次调用rand函数生成的伪随机数序列都是一样的。
srand函数与rand函数包含在头文件stdlib.h之中。
![7c85a760df2dd4819bf557df37800368.png](https://i-blog.csdnimg.cn/blog_migrate/13e0dd5f04c62d8c43d2fe5311c9073f.jpeg)