首页 > 其他分享 >2024/9/9日 日志

2024/9/9日 日志

时间:2024-09-09 20:37:07浏览次数:12  
标签:String int System 2024 plan println 日志 out

在今天,正式开课。 在上午,初次进入了数据结构的课堂,初步了解了数据结构与算法。
下午,我们进行了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);
    }
}
几个小时的代码练习已经让我初步熟悉了切实的JAVA编译环境,虽然我的代码并不完善,无法满足全部的文件内容需求,但也完成了初步的菜单和功能选择,我会在这几天将代码优化完善到满足全部功能,并继续学习思考。

标签:String,int,System,2024,plan,println,日志,out
From: https://www.cnblogs.com/MoonbeamsC/p/18405287

相关文章

  • GZOI2024 Day2 T2 乒乓球
    GZOI2024Day2T2【乒乓球】学习了蔡队的题解。\(P,Q\le10^{14}\)。Alice一定是赢了\(Y\)场比赛,每场比赛\(X\)局表示胜利,设Bob赢了\(Z\)场比赛。那么每场比赛赢了的人一定赢了\(X\)局,输了的人一定赢了\(<X\)局。有:\(Z<Y\)\(XY\leP\leXY+Z(X-1)\)\(ZX\le......
  • 2024.9.9报告
    正式开学第一天今天上午上了《算法与数据结构》的第一节课,刘丹老师先是给我们讲了这个课程重要性,然后讲了一些数据结构的概念。紧接着上了陈晶晶的《马克思主义原理》,讲了一些事实作为引子,下节课准备讲课本上的内容。下午,验收暑期的Java学习成果,进行Java的测验。这是我在课上......
  • C#/.NET/.NET Core技术前沿周刊 | 第 4 期(2024年9.1-9.8)
    前言C#/.NET/.NETCore技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NETCore领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。欢迎投稿,推荐或自荐优质文章/项目/学习资源等。每周一......
  • The 2024 CCPC Online Contest
    目录写在前面LKBDEJIGC写在最后写在前面补题地址:https://codeforces.com/gym/105336以下按个人向难度排序。唉唉唐吧真是我去居然还能打出名额哈哈真牛逼L签到。K签到。dztlb大神直接秒了。显然奇数先手取1必胜,则偶数时为了让自己不输,先手和后手均会保证在取到2之......
  • 【win/mac】Adobe的视频特效编辑软件软件After Effects (AE)2024版本下载与安装
    目录1.1软件概述1.2主要功能1.3版本信息二、安装步骤2.1准备工作下载软件:2.2安装过程三、常用快捷键3.1基础操作快捷键3.2视图与导航快捷键3.3编辑与动画快捷键扩展快捷键1.1软件概述AdobeAfterEffects(简称AE)是Adobe公司推出的一款功能强大的图形视......
  • 【win/mac】Adobe的矢量图形编辑与设计软件Adobe Illustrator (Ai)2024版本下载与安装
    目录一、软件概述1.1定义与用途1.2主要特点1.3用户群体二、安装步骤2.1下载软件2.2安装准备2.3安装过程2.4验证安装三、常用快捷键3.1文件操作3.2编辑与选择3.3视图与导航3.4绘图与变换一、软件概述1.1定义与用途AdobeIllustrator是一款由Ado......
  • 【win/mac】Adobe的专业音频编辑软件Adobe Audition (AU)2024版本下载与安装
    目录一、软件简介二、安装步骤1.下载2.安装软件三、常用快捷键1.文件操作2.播放与录制3.视图与缩放一、软件简介AdobeAudition是一款由Adobe公司开发的专业音频编辑软件,广泛用于音频后期制作,包括混音、剪切、修复、录制和处理等。该软件以其强大的功能和用户......
  • 2024ccpc网络赛补题
    L.网络预选赛题意:查询多少个2*2的子矩阵满足[c,c][p,c]输出个数Code:#include<bits/stdc++.h>usingnamespacestd;strings="ccpc";intdirs[4][2]={{0,0},{0,1},{1,0},{1,1}};chara[505][505];voidsolve(){intn,m;......
  • 安徽大学主办、院士杰青,连续3年EI检索,稳且快易中稿-第四届机械自动化与电子信息工程国
    第四届机械自动化与电子信息工程国际学术会议(MAEIE2024)20244th InternationalConferenceonMechanicalAutomationandElectronicInformationEngineering2024年10月18-20日  中国·安徽·合肥  www.maeie.org※ 收录检索:IEEEXplore、EI(核心)、Scopus​......
  • C#-使用Serilog框架快速实现日志及其相关扩展
    目录一、Serilog日志实现1、实现 ILogEventSink接口2、日志类Log3、日志级别LogLevel 4、ILogger接口5、日志服务实现6、日志视图View7、ViewModel二、功能扩展1、日志扩展方法2、Trace追踪扩展日志3、自动滚动至底部一、Serilog日志实现安装NuGet包:Serilog......