在今天,正式开课。 在上午,初次进入了数据结构的课堂,初步了解了数据结构与算法。
下午,我们进行了JAVA的课堂测试,算是对暑假学习的检验,这是第一次正式的上手用java进行编程,确实非常生疏,但也深切体会到了,语言知识工具这一说法,提前构思好代码的功能框架,分级分类进行,逻辑思路还是清晰的。
点击查看代码
//信2305-2 -- 20234023 -- 张一衡
import java.awt.*;
import java.sql.SQLOutput;
import java.util.Scanner;
import java.util.Random;
public class Moontest {
public static void main(String[] args) {
PlanManagement planManagement = new PlanManagement();
planManagement.runMenu();
}
}
class PlanInformation{
private int id;//日报流水号,依次加一
private String planid;//表示产品生产批次号(例如:2312-110,有8 位字符组成,前四位表示年月,后三位表示序号)。
private String planname;//产品名称
private String process;//当前工序名称
private String nextprocess;//表示下一接收工序名称。(例如:“11.00 .修蜡”含义同上)。
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(){}
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;
}
//GetAndSet
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 setId(int id) {
this.id = id;
}
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 setPlannmber(int plumber) {
this.plannumber = plumber;
}
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;
}
}
class PlanManagement {
private PlanInformation[] plans = new PlanInformation[10]; // 存储最多10个日报记录
private Scanner sc = new Scanner(System.in);
private int count = 0; // 当前记录数量
private int nextId = 1; // 下一个ID
// 验证产品批次号格式
boolean formatOrNot(String pid) {
return pid.matches("(.*)-(.*)"); // 格式为 YYYY-XXX
}
// 查找产品计划
private PlanInformation findPlanById(String planId) {
for (PlanInformation plan : plans) {
if (plan != null && plan.getPlanid().equals(planId)) {
return plan;
}
}
return null;
}
// 生成计划信息
void generatePlanInformation() {
if (count >= plans.length) {
System.out.println("计划数量已满,无法生成新的计划。");
return;
}
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学无限23软件开发有限公司 ");
System.out.println(" Mes系统2023版 ");
System.out.println("***********************************************************");
String pid;
do {
System.out.print("请输入产品批次号(格式:YYYY-XXX):");
pid = sc.nextLine();
if (!formatOrNot(pid)) {
System.out.println("录入错误,请重新输入!");
}
} while (!formatOrNot(pid)); // 验证格式
System.out.print("请输入产品名称:");
String pname = sc.nextLine();
System.out.print("请输入计划数量:");
int pnumber = sc.nextInt();
sc.nextLine(); // Consume newline
// 创建新的计划信息
PlanInformation plan = new PlanInformation(nextId++, pid, pname, "", "", "", "", pnumber, 0, 0, 0, 0, 0, 0);
plans[count++] = plan; // 存储到数组
System.out.println("生成计划成功,是否提交(Y/N):");
String choice = sc.nextLine();
if (choice.equalsIgnoreCase("Y")) {
plan.setStatement(0); // 设置为初始状态
System.out.println("计划已提交。");
} else {
System.out.println("计划未提交,已取消。");
}
}
// 提交日报
void submitDailyReport() {
System.out.print("请输入产品批次号:");
String pid = sc.nextLine();
PlanInformation plan = findPlanById(pid);
if (plan == null) {
System.out.println("库中没有该产品计划!");
return;
}
if (plan.getStatement() != 0) {
System.out.println("该计划已提交或确认,无法再次提交日报。");
return;
}
// 显示当前计划信息
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学无限23软件开发有限公司 ");
System.out.println(" Mes系统2023版 ");
System.out.println("***********************************************************");
System.out.println("产品批" + plan.getPlanid());
System.out.println("产品名称:" + plan.getPlanname());
System.out.println("计划数量:" + plan.getPlannumber());
// 输入日报信息
System.out.print("请输入当前工序:");
plan.setProcess(sc.nextLine());
System.out.print("请输入下一工序:");
plan.setNextprocess(sc.nextLine());
System.out.print("请输入操作员:");
plan.setOperator(sc.nextLine());
System.out.print("请输入接收员:");
plan.setRecipient(sc.nextLine());
System.out.print("请输入上一道工序转入数量(第一道工序为0):");
plan.setInnumber(sc.nextInt());
sc.nextLine(); // Consume newline
System.out.print("请输入转出总数:");
plan.setOutnumber(sc.nextInt());
sc.nextLine(); // Consume newline
System.out.print("请输入丢失数量:");
plan.setMissnumber(sc.nextInt());
sc.nextLine(); // Consume newline
System.out.print("请输入废品数量:");
plan.setBadnumber(sc.nextInt());
sc.nextLine(); // Consume newline
System.out.print("请输入待检验数量:");
plan.setInspectednumber(sc.nextInt());
sc.nextLine(); // Consume newline
// 验证数据压平规则
if (plan.getInnumber() != plan.getOutnumber() + plan.getMissnumber() + plan.getBadnumber() + plan.getInspectednumber()) {
System.out.println("录入错误:上一道工序转入数量不符合规则,请检查输入!");
return;
}
plan.setStatement(1); // 设置为已提交
System.out.println("日报提交成功!");
}
// 确认日报
void confirmDailyReport() {
System.out.print("请输入产品批次号:");
String pid = sc.nextLine();
PlanInformation plan = findPlanById(pid);
if (plan == null) {
System.out.println("库中没有该产品计划!");
return;
}
if (plan.getStatement() != 1) {
System.out.println("该计划未提交,无法确认日报。");
return;
}
// 显示当前计划信息
System.out.println("***********************************************************");
System.out.println("产品批次:" + plan.getPlanid());
System.out.println("产品名称:" + plan.getPlanname());
System.out.println("计划数量:" + plan.getPlannumber());
// 确认
System.out.println("是否确认日报(Y/N):");
String choice = sc.nextLine();
if (choice.equalsIgnoreCase("Y")) {
plan.setStatement(2); // 设置为已确认
System.out.println("日报确认成功!");
} else {
System.out.println("确认已取消。");
}
}
// 显示进度
void displayProgress() {
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学无限23软件开发有限公司 ");
System.out.println(" Mes系统2023版 ");
System.out.println("***********************************************************");
for (PlanInformation plan : plans) {
if (plan != null) {
System.out.println("产品批次:" + plan.getPlanid());
System.out.println("产品名称:" + plan.getPlanname());
System.out.println("计划数量:" + plan.getPlannumber());
System.out.println("当前工序:" + plan.getProcess());
System.out.println("转出总数:" + plan.getOutnumber());
System.out.println("丢失数量:" + plan.getMissnumber());
System.out.println("废品数量:" + plan.getBadnumber());
System.out.println("剩余数量:" + (plan.getPlannumber() - plan.getOutnumber()));
System.out.println("***********************************************************");
}
}
}
// 显示主菜单
void showMenu() {
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("请输入操作选项:");
}
// 运行菜单
void runMenu() {
do {
showMenu();
int choice = sc.nextInt();
sc.nextLine(); // Consume newline
switch (choice) {
case 1:
generatePlanInformation();
break;
case 2:
submitDailyReport();
break;
case 3:
confirmDailyReport();
break;
case 4:
displayProgress();
break;
default:
System.out.println("该选项不存在,请你重新输入!");
}
}while(true);
}
}