分解原则编写

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

// ManuscriptInformation类
class ManuscriptInformation {
private int id;
private String name;
private String unit;
private String content;
private int statement;
private String opinion;
private String date;

// 构造函数
public ManuscriptInformation(int id, String name, String unit, String content, 
                            int statement, String opinion, String date) {
    this.id = id;
    this.name = name;
    this.unit = unit;
    this.content = content;
    this.statement = statement;
    this.opinion = opinion;
    this.date = date;
}

// Getter和Setter方法
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getUnit() {
    return unit;
}

public void setUnit(String unit) {
    this.unit = unit;
}

public String getContent() {
    return content;
}

public void setContent(String content) {
    this.content = content;
}

public int getStatement() {
    return statement;
}

public void setStatement(int statement) {
    this.statement = statement;
}

public String getOpinion() {
    return opinion;
}

public void setOpinion(String opinion) {
    this.opinion = opinion;
}

public String getDate() {
    return date;
}

public void setDate(String date) {
    this.date = date;
}

}

// ManuscriptManagement类
class ManuscriptManagement {
private List manuscripts;
private Scanner scanner;

public ManuscriptManagement() {
    manuscripts = new ArrayList<>();
    scanner = new Scanner(System.in);
    initializeManuscripts();
}

// 初始化5个稿件记录
private void initializeManuscripts() {
    manuscripts.add(new ManuscriptInformation(25090110, "张三", "北京大学", 
        "软件工程中的敏捷开发方法研究与实践应用分析", 1, "研究内容详实,方法得当", "2025-09-01"));
    manuscripts.add(new ManuscriptInformation(25090111, "李四", "清华大学", 
        "人工智能在医疗诊断中的应用与挑战分析报告", 0, "", "2025-09-02"));
    manuscripts.add(new ManuscriptInformation(25090112, "王五", "上海交通大学", 
        "区块链技术在供应链管理中的创新应用研究", 2, "研究内容不够深入,建议修改", "2025-09-03"));
    manuscripts.add(new ManuscriptInformation(25090113, "赵六", "浙江大学", 
        "大数据分析在商业智能中的应用研究与实践", 1, "数据分析方法新颖,有实用价值", "2025-09-04"));
    manuscripts.add(new ManuscriptInformation(25090114, "钱七", "南京大学", 
        "云计算环境下的数据安全与隐私保护技术研究", 0, "", "2025-09-05"));
}

// 生成稿件编号
private int generateManuscriptId() {
    LocalDate today = LocalDate.now();
    String yearMonth = today.format(DateTimeFormatter.ofPattern("yyMM"));
    
    int maxId = 0;
    for (ManuscriptInformation manuscript : manuscripts) {
        String manuscriptIdStr = String.valueOf(manuscript.getId());
        if (manuscriptIdStr.substring(0, 4).equals(yearMonth)) {
            int currentNum = Integer.parseInt(manuscriptIdStr.substring(4));
            if (currentNum > maxId) {
                maxId = currentNum;
            }
        }
    }
    
    return Integer.parseInt(yearMonth + String.format("%04d", maxId + 1));
}

// 显示主菜单
public void displayMainMenu() {
    while (true) {
        System.out.println("***********************************************************");
        System.out.println("石家庄铁道大学突破24软件开发有限公司");
        System.out.println("在线投稿系统V1.0");
        System.out.println("***********************************************************");
        System.out.println("1、在线投稿");
        System.out.println("2、审核稿件");
        System.out.println("3、查询进度");
        System.out.println("4、统计汇总");
        System.out.println("5、退出系统");
        System.out.println("***********************************************************");
        
        System.out.print("请选择功能(1-5): ");
        String choice = scanner.nextLine();
        
        switch (choice) {
            case "1":
                submitManuscript();
                break;
            case "2":
                reviewManuscript();
                break;
            case "3":
                queryProgress();
                break;
            case "4":
                showStatistics();
                break;
            case "5":
                System.out.println("感谢使用在线投稿系统,再见!");
                return;
            default:
                System.out.println("错误:该选项不存在,请重新选择!");
        }
    }
}

// 在线投稿功能
private void submitManuscript() {
    System.out.println("***********************************************************");
    System.out.println("石家庄铁道大学突破24软件开发有限公司");
    System.out.println("在线投稿系统V1.0");
    System.out.println("***********************************************************");
    
    // 生成稿件编号
    int manuscriptId = generateManuscriptId();
    System.out.println("稿件编号:" + manuscriptId + "(系统自动生成)");
    
    // 获取作者信息
    System.out.print("作者姓名:");
    String name = scanner.nextLine();
    
    System.out.print("作者单位:");
    String unit = scanner.nextLine();
    
    // 获取稿件内容,验证长度
    String content;
    while (true) {
        System.out.print("稿件内容:");
        content = scanner.nextLine();
        if (content.length() > 300) {
            System.out.println("录入错误:稿件内容不能超过300字,请重新录入!");
        } else {
            break;
        }
    }
    
    // 显示确认信息
    System.out.println("***********************************************************");
    System.out.println("石家庄铁道大学突破24软件开发有限公司");
    System.out.println("在线投稿系统V1.0");
    System.out.println("***********************************************************");
    System.out.println("稿件编号:" + manuscriptId);
    System.out.println("作者姓名:" + name);
    System.out.println("作者单位:" + unit);
    System.out.println("稿件内容:" + content);
    
    // 确认提交
    System.out.print("该稿件已录入完成,是否提交(Y/N): ");
    String confirm = scanner.nextLine();
    if (confirm.toUpperCase().equals("Y")) {
        // 获取当前日期
        String currentDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        
        // 创建新稿件对象
        ManuscriptInformation newManuscript = new ManuscriptInformation(
            manuscriptId, name, unit, content, 0, "", currentDate
        );
        
        // 添加到稿件列表
        manuscripts.add(newManuscript);
        System.out.println("稿件提交成功!");
    } else {
        System.out.println("稿件提交已取消。");
    }
}

// 审核稿件功能
private void reviewManuscript() {
    System.out.println("***********************************************************");
    System.out.println("石家庄铁道大学突破24软件开发有限公司");
    System.out.println("在线投稿系统V1.0");
    System.out.println("***********************************************************");
    
    System.out.print("请输入稿件编号:");
    String manuscriptIdStr = scanner.nextLine();
    
    // 查找稿件
    ManuscriptInformation manuscript = null;
    for (ManuscriptInformation m : manuscripts) {
        if (String.valueOf(m.getId()).equals(manuscriptIdStr)) {
            manuscript = m;
            break;
        }
    }
    
    if (manuscript == null) {
        System.out.println("错误:库中没有该稿件!");
        return;
    }
    
    // 检查稿件状态
    if (manuscript.getStatement() != 0) {
        System.out.println("该稿件已审核,不能重复审核!");
        return;
    }
    
    // 显示稿件信息
    System.out.println("***********************************************************");
    System.out.println("石家庄铁道大学突破24软件开发有限公司");
    System.out.println("在线投稿系统V1.0");
    System.out.println("***********************************************************");
    System.out.println("稿件编号:" + manuscript.getId());
    System.out.println("作者姓名:" + manuscript.getName());
    System.out.println("作者单位:" + manuscript.getUnit());
    System.out.println("稿件内容:" + manuscript.getContent());
    
    // 获取审核信息
    System.out.print("审核意见:");
    String opinion = scanner.nextLine();
    
    System.out.print("是否通过(Y/N): ");
    String isApproved = scanner.nextLine();
    
    System.out.print("是否提交(Y/N): ");
    String confirm = scanner.nextLine();
    
    if (confirm.toUpperCase().equals("Y")) {
        // 更新稿件信息
        manuscript.setOpinion(opinion);
        if (isApproved.toUpperCase().equals("Y")) {
            manuscript.setStatement(1);
        } else {
            manuscript.setStatement(2);
        }
        
        // 更新日期
        String currentDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        manuscript.setDate(currentDate);
        
        System.out.println("审核结果已提交!");
        
        // 返回审核界面
        reviewManuscript();
    } else {
        System.out.println("审核已取消。");
    }
}

// 查询进度功能
private void queryProgress() {
    System.out.println("***********************************************************");
    System.out.println("石家庄铁道大学突破24软件开发有限公司");
    System.out.println("在线投稿系统V1.0");
    System.out.println("***********************************************************");
    
    System.out.print("请输入稿件编号:");
    String manuscriptIdStr = scanner.nextLine();
    
    // 查找稿件
    ManuscriptInformation manuscript = null;
    for (ManuscriptInformation m : manuscripts) {
        if (String.valueOf(m.getId()).equals(manuscriptIdStr)) {
            manuscript = m;
            break;
        }
    }
    
    if (manuscript == null) {
        System.out.println("错误:库中没有该稿件!");
        return;
    }
    
    // 显示稿件信息
    System.out.println("***********************************************************");
    System.out.println("石家庄铁道大学突破24软件开发有限公司");
    System.out.println("在线投稿系统V1.0");
    System.out.println("***********************************************************");
    System.out.println("稿件编号:" + manuscript.getId());
    System.out.println("作者姓名:" + manuscript.getName());
    System.out.println("作者单位:" + manuscript.getUnit());
    System.out.println("稿件内容:" + manuscript.getContent());
    System.out.println("审核意见:" + manuscript.getOpinion());
    
    // 显示审核状态
    int status = manuscript.getStatement();
    String statusText = "";
    switch (status) {
        case 0:
            statusText = "未审核";
            break;
        case 1:
            statusText = "已通过";
            break;
        case 2:
            statusText = "已退回";
            break;
    }
    
    System.out.println("审核状态:" + statusText);
    
    // 询问是否进行新查询
    System.out.print("是否进行新查询(Y/N): ");
    String newQuery = scanner.nextLine();
    if (newQuery.toUpperCase().equals("Y")) {
        queryProgress();
    }
}

// 统计汇总功能
private void showStatistics() {
    int total = manuscripts.size();
    int pending = 0;
    int approved = 0;
    int rejected = 0;
    
    for (ManuscriptInformation manuscript : manuscripts) {
        int status = manuscript.getStatement();
        if (status == 0) {
            pending++;
        } else if (status == 1) {
            approved++;
        } else {
            rejected++;
        }
    }
    
    System.out.println("***********************************************************");
    System.out.println("石家庄铁道大学突破24软件开发有限公司");
    System.out.println("在线投稿系统V1.0");
    System.out.println("***********************************************************");
    System.out.println("总投稿数:" + total + "篇");
    System.out.println("未审核:" + pending + "篇");
    System.out.println("已通过:" + approved + "篇");
    System.out.println("已退回:" + rejected + "篇");
    System.out.println("***********************************************************");
}

}

// 主程序
public class OnlineSubmissionSystem {
public static void main(String[] args) {
ManuscriptManagement system = new ManuscriptManagement();
system.displayMainMenu();
}
}

posted @ 2025-09-27 19:52  李亚宁1  阅读(7)  评论(0)    收藏  举报