程序设计与实践 自动寄存柜 C语言

您所在的位置:网站首页 程序设计及实践c是c语言吗 程序设计与实践 自动寄存柜 C语言

程序设计与实践 自动寄存柜 C语言

2024-07-12 17:11:46| 来源: 网络整理| 查看: 265

实验内容:

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

    如果选择“投硬币”,则只有硬币值是1时才开箱。如果有空闲的箱子,则输出箱子编号及密码(4位数字); 如果无空闲的箱子,则提示“本柜已满”。

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

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

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

    输入输出示例:

    寄存箱总数:10

    1.投硬币  2.输密码  0.退出   请选择:1

    投币值:1

    寄存箱编号:1  密码:9342

    1.投硬币  2.输密码  0.退出   请选择:2

    输入密码:9342

1号寄存箱已打开

1.投硬币  2.输密码  0.退出   请选择:5

请输入万能密码:000086

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

    1.投硬币  2.输密码  0.退出   请选择:0

#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include typedef struct { int number; //box的编号 int password; //四位密码 int status; //box的状态 空为 0 有留存 1 }BOX; void friuse(BOX* box, int btot) //初始化 { int i = 0; while (btot--) { box[i].number = i + 1; box[i].status = 0; box[i].password = 0; i++; } } void Menu() { printf("1.投硬币(支持币值:壹)\n"); printf("2.------输密码--------\n"); printf("0.-------退出---------\n"); printf("--------请选择:"); } int YNempty(BOX*box,int btot) //box是否为空 { for (int i = 0; i < btot; i++) { if (box[i].status == 0) return i; //返回下标 } return 1399; //为空 } int backbox(BOX* box,int password,int btot) //打开一个box { for (int i = 0; i < btot; i++) { if (box[i].password == password) { printf("%d号寄存箱已打开\n", box[i].number); box[i].password = 0; box[i].status = 0; return 0; } } return printf("密码错误!\n"); } int Password(BOX*box ,int btot) //返回一个不重复的四位密码 { srand((unsigned)time(NULL)); int x = 0, jude = 1; while (jude) { x = rand() % 9000 + 1000; for (int i = 0; i < btot; i++) { if (x != box[i].password) jude = 0; } } return x; } void Allbox(BOX* box,int btot) //列出所有box,并指出重点检查的box { int impt[100]; int j = 0; printf("---寄存箱编号-----状态----\n"); for (int i = 0; i < btot; i++) { if (box[i].status == 0) { printf("-----%d------------空-----\n", box[i].number); } else { printf("-----%d-----------有留存---\n", box[i].number); impt[j] = box[i].number; j++; } } if (j == 0) { printf("箱子已经全部打开,无重点检查的箱子\n"); } else { printf("箱子已经全部打开,请重点检查"); for (int i = 0; i < j; i++) { printf("编号%d ", impt[i]); } printf("的箱子是否有物留存。\n"); } } int main() { int btot = 0; int input = 122; int pword = 0, coin = 0; char arr[10]="000086"; printf(" 寄存箱总数:"); scanf("%d", &btot); BOX box[100]; friuse(box, btot); while (input) { Menu(); scanf("%d", &input); switch (input) { case 1: printf("投币值:"); scanf("%d", &coin); if (coin == 1) { pword = Password(box, btot); int f = YNempty(box, btot); if (f != 1399) { box[f].password = pword; box[f].status = 1; printf("寄存箱编号:%d 密码:%d\n", box[f].number, box[f].password); } else { printf("寄存箱已满!\n"); } } else { printf("不支持此类硬币\n"); printf("已退还:%d\n", coin); } Sleep(2000); system("cls"); break; case 2: printf("输入密码:"); scanf("%d", &pword); backbox(box, pword, btot); Sleep(2000); system("cls"); break; case 0: break; case 5: printf("请输入万能密码:"); scanf("%s", arr); if (!strcmp(arr, "000086")) { system("cls"); Allbox(box,btot); } else { printf("密码错误!"); } Sleep(10000); system("cls"); break; default: printf("输入错误!"); Sleep(2000); system("cls"); break; } } return 0; }



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭