动手动脑01
重新编写java测试00
Planinformation
public class PlanInformation {
// 变量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表示日报确认。
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.badnumber = badnumber;
this.id = id;
this.innumber = innumber;
this.inspectednumber = inspectednumber;
this.missnumber = missnumber;
this.nextprocess = nextprocess;
this.operator = operator;
this.outnumber = outnumber;
this.planid = planid;
this.planname = planname;
this.plannumber = plannumber;
this.process = process;
this.recipient = recipient;
this.statement = statement;
}
public int getBadnumber() {
return badnumber;
}
public void setBadnumber(int badnumber) {
this.badnumber = badnumber;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getInnumber() {
return innumber;
}
public void setInnumber(int innumber) {
this.innumber = innumber;
}
public int getInspectednumber() {
return inspectednumber;
}
public void setInspectednumber(int inspectednumber) {
this.inspectednumber = inspectednumber;
}
public int getMissnumber() {
return missnumber;
}
public void setMissnumber(int missnumber) {
this.missnumber = missnumber;
}
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 int getOutnumber() {
return outnumber;
}
public void setOutnumber(int outnumber) {
this.outnumber = outnumber;
}
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 int getPlannumber() {
return plannumber;
}
public void setPlannumber(int plannumber) {
this.plannumber = plannumber;
}
public String getProcess() {
return process;
}
public void setProcess(String process) {
this.process = process;
}
public String getRecipient() {
return recipient;
}
public void setRecipient(String recipient) {
this.recipient = recipient;
}
public int getStatement() {
return statement;
}
public void setStatement(int statement) {
this.statement = statement;
}
public void out(){
System.out.println("***********************************************************\n"+
"石家庄铁道大学无限23软件开发有限公司\n" +
"Mes系统2023版***********************************************************\n" +
"产品批次:"+planid+"\n" +
"产品名称:"+planname+"\n" +
"计划数量:"+plannumber+"\n" +
"该产品入库操作已完成,是否提交(Y/N)\n" +
"**********************************************************");
}
}
PlanManagement
import java.util.Scanner;
public class PlanManagement {
Scanner sc=new Scanner(System.in);
int index;
PlanInformation []planInformations=new PlanInformation[100];
private String []de={"",
"10.射蜡","柳xx",
"20.修蜡","藤xx",
"30.面层", "郝xx",
"40.封浆", "杨xx",
"50.熔化", "刘xx",
"60.切割", "陶xx",
"70.精磨", "阎xx",
"80.调型", "郝xx",
"90.检验", "刘xx",
"没有","无"
};
public void ui(){
System.out.println("***********************************************************\n"+
" 石家庄铁道大学无限23软件开发有限公司\n" +
" Mes系统2023版\n" +
"***********************************************************\n" +
" 1、生成计划\n" +
" 2、提交日报\n" +
" 3、确认日报\n" +
" 4、统计进度\n" +
"**********************************************************");
}
public PlanManagement() {
index=0;
int t;
do{
ui();
t= sc.nextInt();
switch (t){
case 1:
//创建计划
creatPlan();
break;
case 2:
//提交日表
submit();
break;
case 3:
//确认日报
confirm();
break;
case 4:
//统计
stastic();
break;
default:
System.out.println("输入错误");
}
}while(true);
}
// 变量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表示日报确认。
private void creatPlan(){
String planid,planname;
int plannumber;
System.out.println("***********************************************************\n"+
" 石家庄铁道大学无限23软件开发有限公司\n" +
" Mes系统2023版\n" +
"***********************************************************" );
System.out.print( " 产品批次:" );
planid=sc.next();
while(!checkPlanid(planid)){
System.out.println("不符合要求重新输入");
planid=sc.next();
}
System.out.print( " 产品名称:");
planname= sc.next();
// while(!checkPlanname(planname)){
// System.out.println("不符合要求重新输入");
// planid=sc.next();
// }
System.out.print(" 计划数量:");
plannumber=sc.nextInt();
System.out.println("**********************************************************");
PlanInformation planInformation=new PlanInformation(1,planid,planname,de[1],de[3],de[2],de[4],plannumber,plannumber,0,0,0,0,0);
planInformation.out();
String str=sc.next();
if(str.equals("Y")){
planInformations[index]=planInformation;
index++;
System.out.println("录入成功");
}
}
private boolean checkPlanid(String planid){
if(planid.length()!=8)return false;
for(int i=0;i<planid.length();i++){
if(i==4){
return planid.charAt(i)=='-';
}
else {
if(planid.charAt(i)<'0'||planid.charAt(i)>'9')return false;
}
}
return true;
}
// private boolean checkPlanname(String planname){
//
// }
private int find(String str){
for (int i = 0; i < index; i++) {
if(str.equals(planInformations[i].getPlanid()))return i;
}
return -1;
}
private void submit(){
String str;
int outNumber;
int missNumber,waitNumber,badNumber;
int innumber;
System.out.println("***********************************************************\n"+
"石家庄铁道大学无限23软件开发有限公司\n" +
"Mes系统2023版\n"+
"***********************************************************\n" +
"请输入产品批次号:");
str=sc.next();
System.out.println("**********************************************************");
int te=find(str);
if(te==-1) System.out.println("不存在该产品批次信息");
else {
if(planInformations[te].getStatement()==0){
System.out.println("***********************************************************\n"+
" 石家庄铁道大学无限23软件开发有限公司\n" +
" Mes系统2023版\n"+
"***********************************************************");
System.out.print( " 1、产品批次:"+planInformations[te].getPlanid()+"\n" );
System.out.print( " 2、产品名称:"+planInformations[te].getPlanname()+"\n" );
System.out.print( " 3、计划数量:"+planInformations[te].getPlannumber()+"\n" );
System.out.println( " 4、当前工序:"+de[planInformations[te].getId()*2-1] );
System.out.println( " 5、下一工序:"+de[planInformations[te].getId()*2-1+2] );
System.out.println( " 6、操作员:"+ de[planInformations[te].getId()*2]);
System.out.println(" 7、接收员:("+de[planInformations[te].getId()*2+2]);
System.out.print( " 8、上一道工序转入数量:" );
if(planInformations[te].getId()==1) {
System.out.println(planInformations[te].getPlannumber());
innumber=planInformations[te].getPlannumber();
}else {
do{
innumber=sc.nextInt();
if(innumber>planInformations[te].getPlannumber())
System.out.println("输入错误.重新输入");
}
while(innumber<planInformations[te].getPlannumber());
}
System.out.print( " 9、转出总数:" );
do{
outNumber=sc.nextInt();
if(outNumber>innumber)
System.out.println("输入错误.重新输入");
}
while(outNumber>innumber);
System.out.print( " 10、丢失数量:" );
missNumber=sc.nextInt();
System.out.print(" 11、废品数量:" );
badNumber=sc.nextInt();
System.out.print(" 12、待检验数量:");
waitNumber=sc.nextInt();
System.out.println("***********************************************************");
while(innumber!=missNumber+badNumber+waitNumber+outNumber){
System.out.println("请重新输入 10、丢失数量,11、废品数量,12、待检验数量");
missNumber=sc.nextInt();
badNumber=sc.nextInt();
waitNumber=sc.nextInt();
}
System.out.println("是否提交(Y/N)");
String st=sc.next();
if(st.equals("Y")){
planInformations[te].setId(planInformations[te].getId());
planInformations[te].setInnumber(outNumber);
planInformations[te].setOutnumber(outNumber);
planInformations[te].setMissnumber(missNumber);
planInformations[te].setBadnumber(badNumber);
planInformations[te].setInspectednumber (waitNumber);
planInformations[te].setStatement(1);
}
}
else{
System.out.println("***********************************************************\n"+
" 石家庄铁道大学无限23软件开发有限公司\n" +
" Mes系统2023版\n"+
"***********************************************************");
System.out.print( " 1、产品批次:"+planInformations[te].getPlanid()+"\n" );
System.out.print( " 2、产品名称:"+planInformations[te].getPlanname()+"\n" );
System.out.print( " 3、计划数量:"+planInformations[te].getPlannumber()+"\n" );
System.out.println( " 4、当前工序:"+de[planInformations[te].getId()*2-1] );
System.out.println( " 5、下一工序:"+de[planInformations[te].getId()*2-1+2] );
System.out.println( " 6、操作员:"+ de[planInformations[te].getId()*2]);
System.out.println(" 7、接收员:("+de[planInformations[te].getId()*2+2]);
System.out.print( " 8、上一道工序转入数量:" );
if(planInformations[te].getId()==1) {
System.out.println(planInformations[te].getPlannumber());
innumber=planInformations[te].getPlannumber();
}
innumber=planInformations[te].getInnumber();
System.out.println(innumber);
System.out.print( " 9、转出总数:" );
do{
outNumber=sc.nextInt();
if(outNumber>innumber)
System.out.println("输入错误.重新输入");
}
while(outNumber>innumber);
System.out.print( " 10、丢失数量:" );
missNumber=sc.nextInt();
System.out.print(" 11、废品数量:" );
badNumber=sc.nextInt();
System.out.print(" 12、待检验数量:");
waitNumber=sc.nextInt();
System.out.println("***********************************************************");
while(innumber!=missNumber+badNumber+waitNumber+outNumber){
System.out.println("请重新输入 10、丢失数量,11、废品数量,12、待检验数量");
missNumber=sc.nextInt();
badNumber=sc.nextInt();
waitNumber=sc.nextInt();
}
System.out.println("是否提交(Y/N)");
String st=sc.next();
if(st.equals("Y")){
planInformations[te].setId(planInformations[te].getId());
planInformations[te].setInnumber(innumber);
planInformations[te].setOutnumber(outNumber);
planInformations[te].setMissnumber(missNumber);
planInformations[te].setBadnumber(badNumber);
planInformations[te].setInspectednumber (waitNumber);
planInformations[te].setStatement(1);
}
}
}
}
public void confirm(){
String str;
int te;
while(true) {
System.out.println("***********************************************************\n" + "石家庄铁道大学无限23软件开发有限公司\n" +
"Mes系统2023版\n" + "***********************************************************\n" +
"请输入产品批次:");
str = sc.next();
System.out.println("**********************************************************");
te=find(str);
if(te==-1){
System.out.println("找不到");
}
else break;
}
if(planInformations[te].getStatement()==1){
System.out.println("***********************************************************\n"+"石家庄铁道大学无限23软件开发有限公司\n" +
"Mes系统2023版\n"+"***********************************************************\n" +
"1、产品批次:" +planInformations[te].getPlanid()+"\n"+
"2、产品名称:"+planInformations[te].getPlanname()+"\n" +
"3、计划数量:"+planInformations[te].getPlannumber()+"\n" +
"4、当前工序:"+de[planInformations[te].getId()*2-1]+"\n" +
"5、下一工序:"+de[planInformations[te].getId()*2+1]+"\n" +
"6、操作员:"+de[planInformations[te].getId()*2]+"\n" +
"7、接收员:"+de[planInformations[te].getId()*2+2]+"\n" +
"8、上一道工序转入数量:"+planInformations[te].getInnumber()+"\n" +
"9、转出总数:"+planInformations[te].getOutnumber()+"\n" +
"10、丢失数量:"+planInformations[te].getMissnumber()+"\n" +
"11、废品数量:"+planInformations[te].getBadnumber()+"\n" +
"12、待检验数量:"+planInformations[te].getInspectednumber()+"\n"+
" **********************************************************");
System.out.println("是否确认(Y/N)");
String st=sc.next();
if(st.equals("Y")){
planInformations[te].setStatement(planInformations[te].getStatement()+1);
planInformations[te].setId(planInformations[te].getId()+1);
planInformations[te].setInnumber( planInformations[te].getOutnumber());
planInformations[te].setBadnumber(0);
planInformations[te].setInspectednumber(0);
planInformations[te].setMissnumber(0);
System.out.println("***********************************************************\n"
+"石家庄铁道大学无限23软件开发有限公司\n" +
"Mes系统2023版\n"+"***********************************************************\n" +
"1、产品批次:"+planInformations[te].getPlanid()+"\n" +
"2、产品名称:"+planInformations[te].getPlanname()+"\n" +
"3、计划数量:"+planInformations[te].getPlannumber()+"\n" +
"4、当前工序:"+de[planInformations[te].getId()*2-1]+"\n" +
"5、下一工序:"+de[planInformations[te].getId()*2+1]+"\n" +
"6、操作员:"+de[planInformations[te].getId()*2]+"\n" +
"7、接收员:"+de[planInformations[te].getId()*2+2]+"\n" +
"8、上一道工序转入数量:"+planInformations[te].getInnumber()+"\n" +
"**********************************************************");
}
}
}
private void stastic(){
int t=0;
System.out.println("***********************************************************\n"+"石家庄铁道大学无限23软件开发有限公司\n" +
"Mes系统2023版\n"
+"***********************************************************\n" +
"1、产品批次:"+planInformations[0].getPlanid()+"\n" +
"2、产品名称:"+planInformations[0].getPlanname()+"\n" +
"3、计划数量:"+planInformations[0].getPlannumber()+"\n" +
"4、完成数量:"+planInformations[0].getInnumber()+"\n" +
"5、剩余数量:"+(planInformations[0].getPlannumber()-planInformations[0].getInnumber())+"\n" +
"**********************************************************");
}
}
测试类
public class test {
public static void main(String[] args) {
PlanManagement p=new PlanManagement();
}
}
枚举类
程序源码
public class EnumTest {
public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.LARGE;
//s��t����ͬһ������
System.out.println(s==t); //
//��ԭʼ����������
System.out.println(s.getClass().isPrimitive());
//���ַ�����ת��
Size u=Size.valueOf("SMALL");
System.out.println(s==u); //true
//�г���������ֵ
for(Size value:Size.values()){
System.out.println(value);
}
}
}
enum Size{SMALL,MEDIUM,LARGE};
运行结果
样例分析
(1)枚举类可以直接使用等于号来进行相同的判断的比较
(2)getClass()可以直接返回类,然后调用静态函数,valueof传入一个字符串,返回一个枚举值
(3)通过Size value:Size.values()来实现枚举值的遍历
浮点数的精度问题
问题引入
由于浮点数在内存中的存储问题,所以会使得在计算的时候存在误差.
解决方法
使用BigDecimal类,进行计算
标签:01,String,动脑,System,动手,planInformations,println,te,out From: https://www.cnblogs.com/yuanshitianzun123/p/18435936