课后作业:代码改良

那个动手动脑的作业我发在了课后作业2了。
以下是改良的代码:
import java.util.Scanner;
import java.util.Objects;
public class PlanInformation {
private static int counter = 0; // 用于 ID 递增
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(String planid, String planname, String process, String nextprocess,
String operator, String recipient, int plannumber) {
this.id = ++counter;
this.planid = planid;
this.planname = planname;
this.process = process;
this.nextprocess = nextprocess;
this.operator = operator;
this.recipient = recipient;
this.plannumber = plannumber;
this.innumber = 0;
this.outnumber = 0;
this.missnumber = 0;
this.badnumber = 0;
this.inspectednumber = 0;
this.statement = 0; // 默认状态为 0 (初始计划)
}
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 setPlanid(String planid) { this.planid = planid; }
public void setPlanname(String planname) { this.planname = planname; }
public void setProcess(String process) { this.process = process; }
public void setNextprocess(String nextprocess) { this.nextprocess = nextprocess; }
public void setOperator(String operator) { this.operator = operator; }
public void setRecipient(String recipient) { this.recipient = recipient; }
public void setPlannumber(int plannumber) { this.plannumber = plannumber; }
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; }
public void setStatement(int statement) { this.statement = statement; }
@Override
public String toString() {
return String.format("ID: %d, Plan ID: %s, Plan Name: %s, Process: %s, Next Process: %s",
id, planid, planname, process, nextprocess);
}
}
class PlanManagement {
private PlanInformation[] plans = new PlanInformation[5];
private int count = 0;
public static void main(String[] args) {
PlanManagement management = new PlanManagement();
management.showMainMenu();
}
public void showMainMenu() {
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("请输入选项: ");
int option = scanner.nextInt();
switch (option) {
case 1:
generatePlan();
break;
case 2:
submitReport();
break;
case 3:
confirmReport();
break;
case 4:
statistics();
break;
default:
System.out.println("该选项不存在,请重新输入!");
}
}
}
private void generatePlan() {
if (count < plans.length) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入产品批次(格式:YYYY-MMO):");
String planid = scanner.nextLine();
System.out.print("请输入产品名称:");
String planname = scanner.nextLine();
System.out.print("请输入计划数量:");
int plannumber = scanner.nextInt();
if (planid.length() != 8 || !planid.matches("\d{4}-\d{3}")) {
System.out.println("录入错误,产品批次格式错误!");
return;
}
String process = "10.00.射蜡";
String nextprocess = "20.00.修蜡";
String operator = "柳泽羽";
String recipient = "藤艺哲";
plans[count++] = new PlanInformation(planid, planname, process, nextprocess, operator, recipient, plannumber);
System.out.println("该产品入库操作已完成,是否提交(Y/N)😊;
char confirm = scanner.next().charAt(0);
if (confirm == 'Y' || confirm == 'y') {
System.out.println("产品信息已提交!");
} else {
System.out.println("放弃提交,返回主界面。");
count--;
}
} else {
System.out.println("存储已满,无法生成新的计划!");
}
}
private void submitReport() {
if (count == 0) {
System.out.println("没有可选的日报,请先生成计划!");
return;
}
Scanner scanner = new Scanner(System.in);
System.out.print("请输入产品批次号:");
String planid = scanner.nextLine();

    PlanInformation plan = findPlanById(planid);
    if (plan == null) {
        System.out.println("库中没有该产品批次!");
        return;
    }
    System.out.println("1、产品批次:" + plan.getPlanid());
    System.out.println("2、产品名称:" + plan.getPlanname());
    System.out.println("3、计划数量:" + plan.getPlannumber());
    System.out.print("录入当前记录状态(0-初始,1-提交,2-确认):");
    int statement = scanner.nextInt();
    plan.setStatement(statement);
    System.out.println("日报提交完成!");
}
private void confirmReport() {
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入产品批次:");
    String planid = scanner.nextLine();
    PlanInformation plan = findPlanById(planid);
    if (plan == null) {
        System.out.println("库中没有该产品批次!");
        return;
    }
    if (plan.getStatement() == 1) {
        System.out.println("确认日报信息:");
        // TODO: 显示更多信息,并提供确认操作
        System.out.print("确认结果(Y/N):");
        char confirm = scanner.next().charAt(0);
        if (confirm == 'Y' || confirm == 'y') {
            plan.setStatement(2);
            System.out.println("确认完成,新的生产任务生成!");
        }
    } else {
            System.out.println("该批次状态未提交或已确认!");
        }
    }
    private void statistics() {
        System.out.println("***********************************************************");
        System.out.println("进度统计功能未实现。");
    }
    private PlanInformation findPlanById(String planid) {
        for (PlanInformation plan : plans) {
            if (plan != null && Objects.equals(plan.getPlanid(), planid)) {
                return plan;
            }
        }
        return null;
    }
}

我觉得没啥问题。

posted @   Thanatos。syts  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示