首页 > 其他分享 >考试

考试

时间:2024-09-29 18:49:52浏览次数:7  
标签:String int System plan println 考试 out

package com.kaoshi2;

import java.util.Scanner;

class PlanInformation { // 数据类
private int id; // 日报流水号
private String planid; // 产品生产批次号
private String planname; // 产品名称
private String process; // 当前工序名称
private String nextprocess; // 下一接收工序名称
private String operator; // 当前工序的操作者
private String recipient; // 下一道工序的接受者
private int plannumber; // 产品数量
private int innumber; // 合格产品总数
private int outnumber; // 转出总数
private int missnumber; // 丢失数量
private int badnumber; // 废品数量
private int inspectednumber; // 待检验数量
private int statement; // 日报状态

public PlanInformation(int id, String planid, String planname, String process, String nextprocess, String operator, String recipient, int plannumber, int innumber, int outnumber, int missnumber, int badnumber, int inspectednumber, int statement) {
    this.id = id;
    this.planid = planid;
    this.planname = planname;
    this.process = process;
    this.nextprocess = nextprocess;
    this.operator = operator;
    this.recipient = recipient;
    this.plannumber = plannumber;
    this.innumber = innumber;
    this.outnumber = outnumber;
    this.missnumber = missnumber;
    this.badnumber = badnumber;
    this.inspectednumber = inspectednumber;
    this.statement = statement;
}

// Getters and Setters
public int getId() {
    return id;
}

public String getPlanid() {
    return planid;
}

public String getPlanname() {
    return planname;
}

public String getProcess() {
    return process;
}

public String getNextprocess() {
    return nextprocess;
}

public String getOperator() {
    return operator;
}

public String getRecipient() {
    return recipient;
}

public int getPlannumber() {
    return plannumber;
}

public int getInnumber() {
    return innumber;
}

public int getOutnumber() {
    return outnumber;
}

public int getMissnumber() {
    return missnumber;
}

public int getBadnumber() {
    return badnumber;
}

public int getInspectednumber() {
    return inspectednumber;
}

public int getStatement() {
    return statement;
}

public void setStatement(int statement) {
    this.statement = statement;
}

public void setInnumber(int innumber) {
    this.innumber = innumber;
}

public void setOutnumber(int outnumber) {
    this.outnumber = outnumber;
}

public void setMissnumber(int missnumber) {
    this.missnumber = missnumber;
}

public void setBadnumber(int badnumber) {
    this.badnumber = badnumber;
}

public void setInspectednumber(int inspectednumber) {
    this.inspectednumber = inspectednumber;
}

}

class PlanUtils {
public static boolean dataFlatten(PlanInformation plan) {
// 数据压平逻辑
return plan.getOutnumber() == (plan.getMissnumber() + plan.getBadnumber() + plan.getInspectednumber());
}

public static boolean judgingProcess(PlanInformation plan) {
    // 判断工序逻辑
    return plan.getProcess().equals("90.检验");
}

public static int countPlan(PlanInformation[] plans) {
    // 统计最后一道工序成品的总数量
    int total = 0;
    for (PlanInformation plan : plans) {
        if (plan != null && judgingProcess(plan)) {
            total += plan.getOutnumber();
        }
    }
    return total;
}

}

class PlanManagement { // 系统类
private PlanInformation[] plans = new PlanInformation[5]; // 存储最多5个日报记录
private int num = 0; // 当前存储的日报数量

public static void main(String[] args) {
    PlanManagement management = new PlanManagement();
    management.mainFrame();
}

public void mainFrame() {
    Scanner scanner = new Scanner(System.in);
    while (true) {
        System.out.println("***********************************************************");
        System.out.println("           石家庄铁道大学无限23软件开发有限公司");
        System.out.println("                      Mes系统2023版");
        System.out.println("***********************************************************");
        System.out.println("                        1、生成计划");
        System.out.println("                        2、提交日报");
        System.out.println("                        3、确认日报");
        System.out.println("                        4、统计进度");
        System.out.println("**********************************************************");
        System.out.print("请选择功能(1-4):");
        int choice = scanner.nextInt();
        switch (choice) {
            case 1:
                generatePlan();
                break;
            case 2:
                submitReport();
                break;
            case 3:
                confirmReport();
                break;
            case 4:
                countSchedule();
                break;
            default:
                System.out.println("该选项不存在,请重新选择。");
        }
    }
}

public void generatePlan() {
    Scanner scanner = new Scanner(System.in);
    if (num >= plans.length) {
        System.out.println("存储已满,无法生成新计划。");
        return;
    }

    String planid;
    while (true) {
        System.out.print("请输入产品批次(格式:YYYY-XXX):");
        planid = scanner.next();
        if (checkValidity(planid, "\\d{4}-\\d{3}")) {
            break;
        } else {
            System.out.println("录入错误,格式应为YYYY-XXX");
        }
    }

    System.out.print("请输入产品名称:");
    String planname = scanner.next();

    System.out.print("请输入计划数量:");
    int plannumber = scanner.nextInt();

    // 生成当前工序和下一工序
    String process = "10.00.射蜡";
    String nextprocess = "20.00.修蜡";
    String operator = "柳泽羽";
    String recipient = "藤艺哲";

    PlanInformation pi = new PlanInformation(num + 1, planid, planname, process, nextprocess, operator, recipient, plannumber, 0, 0, 0, 0, 0, 0);
    plans[num] = pi;
    num++;

    System.out.println("***********************************************************");
    System.out.println("                      产品批次:" + pi.getPlanid());
    System.out.println("                      产品名称:" + pi.getPlanname());
    System.out.println("                      计划数量:" + pi.getPlannumber());
    System.out.println("***********************************************************");
    System.out.print("该产品入库操作已完成,是否提交(Y/N):");
    char ch = scanner.next().charAt(0);
    if (ch == 'Y' || ch == 'y') {
        pi.setStatement(0); // 设置为初始计划状态
        System.out.println("计划已提交。");
    } else {
        System.out.println("计划未提交,返回主界面。");
    }
}

public void submitReport() {
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入产品批次号:");
    String planid = scanner.next();
    PlanInformation plan = findPlan(planid);
    if (plan == null) {
        System.out.println("库中没有该产品计划,返回提交界面。");
        return;
    }

    if (plan.getStatement() != 0) {
        System.out.println("该产品已提交日报,无法再次提交。");
        return;
    }

    // 显示计划信息并获取用户输入
    System.out.println("1、产品批次:" + plan.getPlanid());
    System.out.println("2、产品名称:" + plan.getPlanname());
    System.out.println("3、计划数量:" + plan.getPlannumber());
    System.out.println("4、当前工序:" + plan.getProcess());
    System.out.println("5、下一工序:" + plan.getNextprocess());
    System.out.println("6、操作员:" + plan.getOperator());
    System.out.println("7、接收员:" + plan.getRecipient());

    System.out.print("8、上一道工序转入数量:");
    int innumber = scanner.nextInt();
    if (innumber > plan.getPlannumber()) {
        System.out.println("转入数量不能大于计划数量,请重新输入。");
        return;
    }

    System.out.print("9、转出总数:");
    int outnumber = scanner.nextInt();
    System.out.print("10、丢失数量:");
    int missnumber = scanner.nextInt();
    System.out.print("11、废品数量:");
    int badnumber = scanner.nextInt();
    System.out.print("12、待检验数量:");
    int inspectednumber = scanner.nextInt();

    // 验证数据一致性
    if (!PlanUtils.dataFlatten(new PlanInformation(0, "", "", "", "", "", "", 0, innumber, outnumber, missnumber, badnumber, inspectednumber, 0))) {
        System.out.println("转出总数应等于丢失数量 + 废品数量 + 待检验数量,请重新输入。");
        return;
    }

    // 保存日报信息
    plan.setInnumber(innumber);
    plan.setOutnumber(outnumber);
    plan.setMissnumber(missnumber);
    plan.setBadnumber(badnumber);
    plan.setInspectednumber(inspectednumber);
    plan.setStatement(1); // 设置为已提交状态

    System.out.println("日报已提交。");
}

public void confirmReport() {
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入产品批次号:");
    String planid = scanner.next();
    PlanInformation plan = findPlan(planid);
    if (plan == null) {
        System.out.println("库中没有该产品计划,返回确认日报界面。");
        return;
    }

    if (plan.getStatement() != 1) {
        System.out.println("该产品日报未提交或已确认,无法确认。");
        return;
    }

    // 显示日报信息
    System.out.println("产品批次:" + plan.getPlanid());
    System.out.println("产品名称:" + plan.getPlanname());
    System.out.println("计划数量:" + plan.getPlannumber());
    System.out.println("转入数量:" + plan.getInnumber());
    System.out.println("转出数量:" + plan.getOutnumber());
    System.out.println("丢失数量:" + plan.getMissnumber());
    System.out.println("废品数量:" + plan.getBadnumber());
    System.out.println("待检验数量:" + plan.getInspectednumber());

    System.out.print("是否确认日报(Y/N):");
    char ch = scanner.next().charAt(0);
    if (ch == 'Y' || ch == 'y') {
        // 生成新的生产任务记录
        plan.setStatement(2); // 设置为确认状态
        System.out.println("日报已确认,状态已更新。");
    } else {
        System.out.println("日报未确认,返回主界面。");
    }
}

public void countSchedule() {
    int totalFinished = PlanUtils.countPlan(plans);
    System.out.println("最后一道工序成品的总数量:" + totalFinished);
}

private PlanInformation findPlan(String planid) {
    for (PlanInformation plan : plans) {
        if (plan != null && plan.getPlanid().equals(planid)) {
            return plan;
        }
    }
    return null;
}

private boolean checkValidity(String str, String regex) {
    return str.matches(regex);
}

}

标签:String,int,System,plan,println,考试,out
From: https://www.cnblogs.com/Ma-yr/p/18440591

相关文章

  • 9月28日,工信部人才交流中心&CUUG-PGCA/PGCP/PGCM认证考试完成!
    2024年9月28日,由工业和信息化部人才交流中心主办,北京神脑资讯技术有限公司承办的PostgreSQL管理员岗位能力认证考试(PGCP中级/PGCM高级)顺利完成。中级PG认证专家:PGCP(PostgreSQLCertifiedProfessional),是对PostgreSQL数据库技术能力的一种认可,达到了专家级别,可以对PostgreSQL数据......
  • 2024年华为OD机试真题-找终点-Python-OD统一考试(E卷)
    最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客     每一题都含有详细的解题思路和代码注释,精选c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,发现新题及时跟新。题目描述给定一个正整数数组,设......
  • 开学考试
    importjava.util.Scanner;classPlanInformation{privateintid;privateStringplanid;privateStringplanname;privateStringprocess;privateStringnextprocess;privateStringoperator;privateStringrecipient;privateintplannumber;privateintin......
  • [CKA]CKA预约和考试
    CKA预约和考试一、预约1、登录LinuxFoundationhttps://trainingportal.linuxfoundation.org/learn/dashboard2、首页点"Resume"进行预约3、进入考试准备界面后,按要求分别验证AgreetoGlobalCandidateAgreement(同意全球候选人协议):*点击"ReadNow"进行阅读同意......
  • 基于JavaWeb技术的在线考试系统设计与实现(11551)
     有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发四、项......
  • java计算机毕业设计青少年编程在线考试系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,编程能力已成为衡量青少年综合素质的重要指标之一。在全球化竞争日益激烈的今天,掌握编程技能不仅能够提升学生的逻辑思维、问......
  • 考试改进代码
    importjava.util.Scanner;importjava.util.regex.Pattern;classPlanInformation{privatestaticintidCounter=1;//用于生成唯一的idprivateintid;//日报流水号privateStringplanid;//产品生产批次号privateStringplanname;//产品名称privateString......
  • java入学考试修改版
    以下是java入学测试经过模块化修改的源代码。packagemes;publicclassMesmain{publicstaticvoidmain(String[]args){PlanManagementa=newPlanManagement();a.menu();}}packagemes;publicclassPlanInformation{privateintid;//日报流水表privateString......
  • 【小白必看】2025年PMP备考指南,pmp考试是什么?有没有含金量?值得考吗?(附资料)
    一、PMP考试是什么PMP全称是项目管理专业人士资格认证,它是由PMI(美国项目管理协会)组织和出题的,用于筛选项目管理人才的考试。从本意上理解就跟我们平时的资格认证考试差不多,门槛低,是个入门考试,目前为止选择题,通过率还挺高的。PMP认证在世界上两百多个国家和地区得到高度认可......
  • PMI-ACP认证考试内容将于2025年第一期考试更新
    PMI敏捷管理专业人士(PMI-ACP®)认证即将在2025年迎来引入中国大陆的十周年纪念。十年时间,我们见证了敏捷实践方法普及和敏捷项目管理的“知行合一”,采用敏捷方法的中国企业团队比例的快速持续增长,中国PMI-ACP专业人士的全球占比也从零增长到目前的34%。十年间,为了让PMI-ACP认证的知......