考试

news/2024/9/29 19:00:54

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);
}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/66272.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

[clickhouse] Clickhouse 关键特性的版本支持与演变

clickhouse 21.10 Feature : UDF用户可通过添加lambda表达式,创建自定义FunctionCREATE FUNCTION linear_equation AS (x, k, b) -> k*x + b; SELECT number, linear_equation(number, 2, 1) FROM numbers(3);CREATE FUNCTION parity_str AS (n) -> if(n % 2, odd, even…

RTE 大会报名丨智能编解码和 AI 生成视频 ,RTE2024 技术专场第五弹!

AI 视频的爆炸增长,给新一代编解码技术提出了什么新挑战?语音 AI 实现 human-like 的最后一步是什么?当大模型进化到实时多模态,又将诞生什么样的新场景和玩法?所有 AI Infra 都在探寻规格和性能的最佳平衡,如何构建高可用的云边端协同架构?AI 加持下,空间计算和新硬件…

在docker安装Python环境提供给其他docker使用

1. 在宿主机新建一个目录 2. 在app目录下新建一个Dockerfile文件 本文永久更新地址:1. 在宿主机新建一个目录 在宿主机上新建一个目录如app/,在app目录里面导入项目需要依赖的包 在项目根目录下输入命令,导出python项目所有的依赖包 pip freeze > requirements.txt把导出的…

南沙C++信奥赛陈老师解一本通题 1942:【08NOIP普及组】ISBN号码

​【题目描述】每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版…

9.29每日总结

今天做完了“四则运算”和“生成验证码”,其中“生成验证码”这道题暑假的时候跟着网课做过初级版的,今天又加以改进了不少,为此把黑马的字符串章节差不多看完了,收获比较大的除了StringBuilder和StringJoiner之外,就是“验证码”这道题中用到的字符串转为字符数组(toCha…

《密码系统设计》第四周

第四周预习报告 学习内容Head First C 嗨翻 C 语言 第5章 《Windows C/C++加密解密实战》第 6,8,13,14 章 重点第14 章,第 6 章了解 ,第 8,13 参考 课程 mindmap 报告内容参考第一周AI 对学习内容的总结(1分) 要求让AI阅读学习内容并进行总结总结 1. Head First C 嗨翻 …

自然资源领域的组件报批:守护绿水青山的智慧钥匙

在追求绿色发展的今天,自然资源的合理利用与有效保护成为了社会关注的焦点。组件报批作为自然资源开发与保护的前置门槛,如同一把精密的钥匙,解锁着可持续发展的大门。本文将带您走进自然资源领域的组件报批世界,探析其背后的逻辑、重要性以及如何在实践中更好地守护我们的…