一、考试要求:
1、按照测试内容要求完成程序的设计与编程;
2、建立学号姓名文件夹,如:“20234215柳泽羽”,将源程序文件、保存在文件夹中,压缩成rar文件提交。
3、以班级为单位上交最终考试结果。
4、需要在程序开始的注释中注明班级、学号、姓名。
二、系统背景:
某机械有限公司为了实现企业全流程数字化管理,计划引入一套MES系统,主要目的:可以高效率低成本能够准确全面及时的采集生产数据。
生产过程中以产品为主线、与产品相关的人的数据、物料消耗数据,设备的使用和成本数据、工装模具数据、工位器具的关联,每一种产品的工作开始时间和结束时间等数据以最小的颗粒度准确、及时完整准确的采集上来,避免和减少人为填写的错误、缺项、不及时造成的数据不准,提高交接速度,降低交接成本。特委托石家庄铁道大学信息科学与技术学院无限23软件有限公司开发Mes系统。
二、数据结构要求:(5分)
1、定义PlanInformation类,其中包括十四个私有变量(id,planid,planname,process,nextprocess,operator,recipient,plannumber, innumber,outnumber,missnumber,badnumber, inspectednumber,statement)。
各成员的含义如下:
变量id为整型,表示日报流水号,依次加一。
变量planid 为字符串类型 String,表示产品生产批次号(例如:2312-110,有8 位字符组成,前四位表示年月,后三位表示序号)。
变量planname为字符串类型 String,表示产品名称(例如:“表体”)。
变量process为String 类型,表示当前工序名称。(例如:“10.00 .射蜡”数字表示工序号,字符表示工序名称)。
变量nextprocess为String 类型,表示下一接收工序名称。(例如:“11.00 .修蜡”含义同上)。
变量operator为String类型,表示当前工序的操作者。
变量recipient为String类型,表示下一道工序的接受者。
变量plannumber为整型,表示该产品定要要求的产品数量。
变量innumber为整型,表示从上一道工序的接收的合格产品总数。
变量outnumber为整型,表示当前工序的产品转出总数。
变量missnumber为整型,表示当前工序的产品丢失数量。
变量badnumber为整型,表示当前工序的产品废品数量。
变量inspectednumber为整型,表示当前工序的产品待检验数量。
变量statement为整型,表示该日报记录的状态,0表示初始计划,1表示日报提交,2表示日报确认。
产品工艺表如下表所示:
序号 工序批次 工序名称 操作员
1 10 射蜡 柳泽羽
2 20 修蜡 藤艺哲
3 30 面层 郝一诺
4 40 封浆 杨松铎
5 50 熔化 刘宇恒
6 60 切割 陶攀印
7 70 精磨 阎琪文
8 80 调型 郝正一
9 90 检验 刘静一
2、赋初值方法包括十四个参数,用于为变量(id,planid,planname,process,nextprocess,operator,recipient,plannumber,innumber,outnumber,missnumber,badnumber, inspectednumber,statement)赋值。
对每个变量定义 get()(读取变量信息)和 set()(设置变量信息)的方法。
三、功能要求:(10分)
该功能完成Mes的基本功能功能,定义PlanManagement类完成下列功能。
1、利用数组实现至少存储五个日报记录入库的基本信息;(1分)
2、Mes系统的主界面如下图所示:(1分)
①界面要求;(0.5分)
石家庄铁道大学无限23软件开发有限公司
Mes系统2023版
1、生成计划
2、提交日报
3、确认日报
4、统计进度
②功能说明
输入数字1-4执行相应的功能,输入其他数字提示错误信息(该选项不存在),并返回主界面。(0.5分)
2、生产计划管理功能操作流程:(2分)
①在主界面选择“生成计划”功能后,进入“生成计划管理”界面,如下图所示:(0.5分)
依次录入产品批次、产品名称、计划数量,录入完成后的界面如下所示:
石家庄铁道大学无限23软件开发有限公司
Mes系统2023版
产品批次:2409-018
产品名称:阀体
计划数量:10000
如果产品编码、信息录入格式错误,则提示“录入错误”,要求用户重新录入正确信息。(1分)
全部正确信息录入完毕后,显示如下界面。
石家庄铁道大学无限23软件开发有限公司
Mes系统2023版
产品批次:2409-018
产品名称:阀体
计划数量:10000
该产品入库操作已完成,是否提交(Y/N)
选择“Y”将产品信息存储到到相应的数组中,并返回主界面。选择“N”,则忽略上述录入内容,并返回产品入库界面。(0.5分)
提示:将批次状态statement设置成为0。
3、提交日报(3分)
①在主界面选择“提交日报”功能后,进入“提交日报”界面,如下图所示:
石家庄铁道大学无限23软件开发有限公司
Mes系统2023版
请输入产品批次号:XXXXXXXX
提示用户输入八位的产品批次。
②如果库中不存在该产品批次信息,则提示库中没有该产品计划,返回到提交界面。如果库中存在该产品批次,如果statement为0则显示:产品批次、产品名称、计划数量,并且依次填写下述信息。如下图所示。(1分)
石家庄铁道大学无限23软件开发有限公司
Mes系统2023版
1、产品批次:2409-018
2、产品名称:阀体
3、计划数量:10000
4、当前工序:XXX
5、下一工序:XXX
6、操作员:(自动生成,根据工序号)
7、接收员:(自动生成根据工序号)
8、上一道工序转入数量:XXX(小于等于计划数量,第一道工序不用录入该数字)
9、转出总数:XXX(小于等于上一道工序转入数量)
10、丢失数量:XXX
11、废品数量:XXX
12、待检验数量:XXX
如果statement为2则显示:产品批次、产品名称、计划数量,当前工序、下一工序、操作员、接收员、上一道工序转入数量,并且依次填写剩余信息。(1分)
③数据押平规则:转出总数=丢失数量+废品数量+待检验数量,如果上述关系不成立,提示录入错误信息,要求用户更改上述三个数量。(0.5分)
④选择“Y”将修改信息保存提交。选择“N”,不保存修改信息返回系统主界面。(0.5分)
提示:将批次状态statement设置成为1。
4、确认日报管理(2分)
①在主界面选择“确认日报”功能后,进入“确认日报管理”界面,如下图所示:(0.5分)
石家庄铁道大学无限23软件开发有限公司
Mes系统2023版
请输入产品批次:XXXXXXXX
提示用户输入八位的产品批次。
②如果库中不存在该产品批次信息,则提示库中没有该产品批次,返回到确认日报界面。如果库中存在该产品批次且该批次状态为1是,则显示:产品批次、产品名称、计划数量、转入数量、转出数量等基本信息。如下图所示。(0.5分)
石家庄铁道大学无限23软件开发有限公司
Mes系统2023版
1、产品批次:2409-018
2、产品名称:阀体
3、计划数量:10000
4、当前工序:10. 射蜡
5、下一工序:20.修腊
6、操作员:(自动生成,根据工序号)
7、接收员:(自动生成根据工序号)
8、上一道工序转入数量:XXX(小于等于计划数量,第一道工序不用录入该数字)
9、转出总数:XXX(小于等于上一道工序转入数量)
10、丢失数量:XXX
11、废品数量:XXX
12、待检验数量:XXX **********************************************************
③选择“Y”确认结果,并生成一条新的生产任务记录,将下一工序填充到当前工序为,并根据工艺流程表自动填充下一工序,将转出合格数量=转出总数-丢失数量-废品数量-待检验数量填充到转入数量字段,并将提示:将批次状态statement设置成为2。
并且重新显示确认后的日报信息。
石家庄铁道大学无限23软件开发有限公司
Mes系统2023版
1、产品批次:2409-018
2、产品名称:阀体
3、计划数量:10000
4、当前工序:XXX
5、下一工序:XXX
6、操作员:(自动生成,根据工序号)
7、接收员:(自动生成根据工序号)
8、上一道工序转入数量:XXX
选择“N”, 返回当前界面。(1分)
5、用户选择数字“4”,进入进度统计功能,显示如下界面。(1分)
石家庄铁道大学无限23软件开发有限公司
Mes系统2023版
1、产品批次:XXXXXXX
2、产品名称:XXXX
3、计划数量:XXXXX
4、完成数量:XXX(以最后一道工序转出数量为准)
5、剩余数量:XXX
剩余数量=计划数量 – 完成数量
代码示例:
package mes;
import java.util.ArrayList;
import java.util.Scanner;
public class TheSystem {
private ArrayList
public void choic() {
Scanner sc=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("");
int choose=sc.nextInt();
switch (choose) {
case 1: {
makePlan();
break;
}
case 2:{
Handin();
break;
}
case 3:{
makesure();
break;
}
case 4:{
Statistics();
break;
}
default:
System.out.println("该选项不存在");
}
}
}
public void makePlan() {
PlanInformation p=new PlanInformation();
Scanner sc=new Scanner(System.in);
System.out.println("请输入产品批次");
String planId=sc.next();
p.setPlanid(planId);
System.out.println("请输入产品名称");
String planName=sc.next();
p.setPlanname(planName);
System.out.println("请输入计划数量");
int planNumber=sc.nextInt();
p.setPlannumber(planNumber);
System.out.println("");
System.out.println(" 石家庄铁道大学无限23软件开发有限公司");
System.out.println(" Mes系统2023版");
System.out.println("");
System.out.println(" 产品批次:"+planId);
System.out.println(" 产品名称:"+planName);
System.out.println(" 计划数量:"+planNumber);
System.out.println(" 该产品入库操作已完成,是否提交(Y/N)");
System.out.println("");
char choice = sc.next().charAt(0);
if (choice == 'Y' || choice == 'y') {
list.add(p);
System.out.println("提交成功");
}
p.setStatement(0);
}
public void Handin() {
while(true) {
System.out.println("");
System.out.println(" 石家庄铁道大学无限23软件开发有限公司");
System.out.println(" Mes系统2023版");
System.out.println("");
System.out.println(" 请输入产品批次号:");
System.out.println("");
Scanner sc=new Scanner(System.in);
String planId=sc.next();
int index=getIndex(planId);
if(index>=0) {
PlanInformation p=list.get(index);
int sta=p.getStatement();
if(sta==0) {
System.out.println("请输入工序名称");
String processString=sc.next();
p.setProcess(processString);
String string=table(processString);
p.setOperator(string);
String string2=form(processString);
p.setRecipient(string2);
System.out.println("请输入下一工序");
String nextprocessString=sc.next();
p.setNextprocess(nextprocessString);
System.out.println("请输入上一道工序转入数量");
int inNumber=sc.nextInt();
p.setInnumber(inNumber);
System.out.println("请输入转出总数");
int outNumber=sc.nextInt();
p.setOutnumber(outNumber);
System.out.println("请输入丢失数量");
int missNumber=sc.nextInt();
p.setMissnumber(missNumber);
System.out.println("请输入废品数量");
int badNumber=sc.nextInt();
p.setBadnumber(badNumber);
System.out.println("请输入待检验数量");
int inspectedNumber=sc.nextInt();
p.setInspectednumber(inspectedNumber);
if(outNumber!=missNumber+badNumber+inspectedNumber) {
System.out.println("录入错误信息");
System.out.println("请输入转出总数");
outNumber=sc.nextInt();
p.setOutnumber(outNumber);
System.out.println("请输入丢失数量");
missNumber=sc.nextInt();
System.out.println("请输入废品数量");
badNumber=sc.nextInt();
System.out.println("请输入待检验数量");
inspectedNumber=sc.nextInt();
}
System.out.println("");
System.out.println(" 石家庄铁道大学无限23软件开发有限公司");
System.out.println(" Mes系统2023版");
System.out.println("");
System.out.println(" 1、产品批次:"+p.getPlanid());
System.out.println(" 2、产品名称:"+p.getPlanname());
System.out.println(" 3、计划数量:"+p.getPlannumber());
System.out.println(" 4、当前工序:"+processString);
System.out.println(" 5、下一工序:"+nextprocessString);
System.out.println(" 6、操作员:"+string);
System.out.println(" 7、接受员:"+string2);
System.out.println(" 8、上一道工序转入数量:"+inNumber);
System.out.println(" 9、转出总数:"+outNumber);
System.out.println(" 10、丢失数量:"+missNumber);
System.out.println(" 11、废品数量:"+badNumber);
System.out.println(" 12、待检验数量:"+inspectedNumber);
System.out.println("");
p.setStatement(1);
list.add(p);
break;
}
else if(sta2) {
String processString=p.getNextprocess();
String string=table(processString);
p.setOperator(string);
String string2=form(processString);
p.setRecipient(string2);
System.out.println("请输入转出总数");
int outNumber=sc.nextInt();
p.setOutnumber(outNumber);
System.out.println("请输入丢失数量");
int missNumber=sc.nextInt();
p.setMissnumber(missNumber);
System.out.println("请输入废品数量");
int badNumber=sc.nextInt();
p.setBadnumber(badNumber);
System.out.println("请输入待检验数量");
int inspectedNumber=sc.nextInt();
p.setInspectednumber(inspectedNumber);
if(outNumber!=missNumber+badNumber+inspectedNumber) {
System.out.println("录入错误信息");
System.out.println("请输入转出总数");
outNumber=sc.nextInt();
p.setOutnumber(outNumber);
System.out.println("请输入丢失数量");
missNumber=sc.nextInt();
System.out.println("请输入废品数量");
badNumber=sc.nextInt();
System.out.println("请输入待检验数量");
inspectedNumber=sc.nextInt();
}
String string3=p.getProcess();
String string4=next(string3);
System.out.println("");
System.out.println(" 石家庄铁道大学无限23软件开发有限公司");
System.out.println(" Mes系统2023版");
System.out.println("");
System.out.println(" 1、产品批次:"+p.getPlanid());
System.out.println(" 2、产品名称:"+p.getPlanname());
System.out.println(" 3、计划数量:"+p.getPlannumber());
System.out.println(" 4、当前工序:"+p.getNextprocess());
System.out.println(" 5、下一工序:"+string4);
System.out.println(" 6、操作员:"+string);
System.out.println(" 7、接受员:"+string2);
System.out.println(" 8、上一道工序转入数量:"+p.getOutnumber());
System.out.println(" 9、转出总数:"+outNumber);
System.out.println(" 10、丢失数量:"+missNumber);
System.out.println(" 11、废品数量:"+badNumber);
System.out.println(" 12、待检验数量:"+inspectedNumber);
System.out.println("");
p.setStatement(1);
}
}else {
System.out.println("没有该产品计划");
}
}
}
public void makesure() {
System.out.println("");
System.out.println(" 石家庄铁道大学无限23软件开发有限公司");
System.out.println(" Mes系统2023版");
System.out.println("");
System.out.println(" 请输入产品批次号:");
System.out.println("");
Scanner sc=new Scanner(System.in);
String planId=sc.next();
int index=getIndex(planId);
PlanInformation p=list.get(index);
int sta=p.getStatement();
if(index>=0&&sta1) {
System.out.println("");
System.out.println(" 石家庄铁道大学无限23软件开发有限公司");
System.out.println(" Mes系统2023版");
System.out.println("");
System.out.println(" 1、产品批次:"+p.getPlanid());
System.out.println(" 2、产品名称:"+p.getPlanname());
System.out.println(" 3、计划数量:"+p.getPlannumber());
System.out.println(" 4、当前工序:"+p.getProcess());
System.out.println(" 5、下一工序:"+p.getNextprocess());
System.out.println(" 6、操作员:"+p.getOperator());
System.out.println(" 7、接受员:"+p.getRecipient());
System.out.println(" 8、上一道工序转入数量:"+p.getOutnumber());
System.out.println(" 9、转出总数:"+p.getOutnumber());
System.out.println(" 10、丢失数量:"+p.getMissnumber());
System.out.println(" 11、废品数量:"+p.getBadnumber());
System.out.println(" 12、待检验数量:"+p.getInspectednumber());
System.out.println("");
System.out.println("确认(Y/N)");
char choice = sc.next().charAt(0);
if (choice == 'Y' || choice == 'y') {
String string=next(p.getProcess());
p.setProcess(string);
String string2=next(p.getNextprocess());
p.setNextprocess(string2);
String string3=table(string);
p.setOperator(string3);
String string4=form(string);
p.setRecipient(string4);
System.out.println("");
System.out.println(" 石家庄铁道大学无限23软件开发有限公司");
System.out.println(" Mes系统2023版");
System.out.println("");
System.out.println(" 1、产品批次:"+p.getPlanid());
System.out.println(" 2、产品名称:"+p.getPlanname());
System.out.println(" 3、计划数量:"+p.getPlannumber());
System.out.println(" 4、当前工序:"+string);
System.out.println(" 5、下一工序:"+string2);
System.out.println(" 6、操作员:"+string3);
System.out.println(" 7、接受员:"+string4);
System.out.println(" 8、上一道工序转入数量:"+p.getOutnumber());
System.out.println("");
}
p.setStatement(2);
}else if(index<0){
System.out.println("没有该批次");
}
}
public void Statistics() {
}
public int getIndex(String planid) {
for (int i = 0;i<list.size() ; i++) {
PlanInformation s=list.get(i);
String sid=s.getPlanid();
if(sid.equals(planid)) {
return i;
}
}
return -1;
}
public String table(String string) {
String[] a1= {"射蜡","修蜡","面层","封浆","熔化","切割","精磨","调型","检验"};
String[] a2= {"柳泽羽","藤艺哲","郝一诺","杨松铎","刘宇恒","陶攀印","阎琪文","郝正一","刘静一"};
for(int i=0;i<a1.length;i++) {
if(string.equals(a1[i])) {
return a2[i];
}
}
return null;
}
public String form(String string) {
String[] a1= {"射蜡","修蜡","面层","封浆","熔化","切割","精磨","调型","检验"};
String[] a2= {"藤艺哲","郝一诺","杨松铎","刘宇恒","陶攀印","阎琪文","郝正一","刘静一",""};
for(int i=0;i<a1.length;i++) {
if(string.equals(a1[i])) {
return a2[i];
}
}
return null;
}
public String next(String string) {
String[] a1= {"射蜡","修蜡","面层","封浆","熔化","切割","精磨","调型","检验",""};
for(int i=0;i<a1.length;i++) {
if(string.equals(a1[i])) {
return a1[i+1];
}
}
return null;
}
}
/*
*PlanInformation
*/
package mes;
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() {
}
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;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPlanid() {
return planid;
}
public void setPlanid(String planid) {
this.planid = planid;
}
public String getPlanname() {
return planname;
}
public void setPlanname(String planname) {
this.planname = planname;
}
public String getProcess() {
return process;
}
public void setProcess(String process) {
this.process = process;
}
public String getNextprocess() {
return nextprocess;
}
public void setNextprocess(String nextprocess) {
this.nextprocess = nextprocess;
}
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
public String getRecipient() {
return recipient;
}
public void setRecipient(String recipient) {
this.recipient = recipient;
}
public int getPlannumber() {
return plannumber;
}
public void setPlannumber(int plannumber) {
this.plannumber = plannumber;
}
public int getInnumber() {
return innumber;
}
public void setInnumber(int innumber) {
this.innumber = innumber;
}
public int getOutnumber() {
return outnumber;
}
public void setOutnumber(int outnumber) {
this.outnumber = outnumber;
}
public int getMissnumber() {
return missnumber;
}
public void setMissnumber(int missnumber) {
this.missnumber = missnumber;
}
public int getBadnumber() {
return badnumber;
}
public void setBadnumber(int badnumber) {
this.badnumber = badnumber;
}
public int getInspectednumber() {
return inspectednumber;
}
public void setInspectednumber(int inspectednumber) {
this.inspectednumber = inspectednumber;
}
public int getStatement() {
return statement;
}
public void setStatement(int statement) {
this.statement = statement;
}
}
/*
*Mes
*/
package mes;
public class Mes {
public static void main(String[] args) {
TheSystem s=new TheSystem();
s.choic();
}
}
标签:工序,java,String,管理系统,int,System,println,out From: https://www.cnblogs.com/WMKQF/p/18440658