雪墨810 2022-11-21 21:33 采纳率: 81.3%
浏览 24
已结题

将C语言转换成java语言

将C语言转换成java语言

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
 
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;
}

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-11-21 21:43
    关注

    结构体用类代替,输入用Scanner,比较相等用equals()
    输出printf改为System.out.printf()
    其他都一样了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 修改了问题 11月22日
  • 创建了问题 11月21日

悬赏问题

  • ¥15 使用yolov5-7.0目标检测报错
  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备