10.28总结
import java.util.Scanner;
/**
-
班级:[请填写班级]
-
学号:[请填写学号]
-
姓名:[请填写姓名]
-
功能:在线投稿系统的管理类,实现核心业务逻辑
*/
public class Main {
// 用数组存储稿件,最多存储100条记录(可扩展)
private ManuscriptInformation[] manuscripts;
private int count; // 当前稿件数量
private Scanner scanner; // 用于接收用户输入// 构造方法:初始化数组和扫描器
public Main() {
manuscripts = new ManuscriptInformation[100]; // 初始化数组容量
count = 0; // 初始稿件数量为0
scanner = new Scanner(System.in); // 初始化扫描器
}// 主方法:程序入口
public static void main(String[] args) {
Main system = new Main();
system.showMainMenu(); // 展示主界面
}/**
-
展示系统主界面
*/
public void showMainMenu() {
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("***********************************************************");
System.out.print("请输入功能编号(1-4):");// 接收用户输入 int choice; try { choice = Integer.parseInt(scanner.nextLine()); } catch (NumberFormatException e) { System.out.println("输入错误!请输入数字1-4"); continue; } // 根据选择执行对应功能 switch (choice) { case 1: submitManuscript(); // 在线投稿 break; case 2: reviewManuscript(); // 审核稿件 break; case 3: queryManuscript(); // 查询进度 break; case 4: statisticsManuscript(); // 统计汇总 break; default: System.out.println("该选项不存在!请重新输入"); }}
}
/**
-
1、在线投稿功能
*/
public void submitManuscript() {
while (true) {
// 1. 生成稿件编号(数组中最大编号+1,初始为20090001)
int newId = generateManuscriptId();
if (newId == -1) {
System.out.println("录入错误:稿件编号生成失败");
continue;
}// 2. 录入作者信息 System.out.println("***********************************************************"); System.out.println("石家庄铁道大学突破24软件开发有限公司"); System.out.println("在线投稿系统V1.0"); System.out.println("***********************************************************"); System.out.print("请输入作者姓名:"); String authorName = scanner.nextLine().trim(); System.out.print("请输入作者单位:"); String authorUnit = scanner.nextLine().trim(); System.out.print("请输入稿件内容(不超过300字):"); String content = scanner.nextLine().trim(); // 3. 验证输入格式 if (content.length() > 300) { System.out.println("录入错误:稿件内容超过300字,请重新录入"); continue; } // 4. 显示录入信息并确认 System.out.println("***********************************************************"); System.out.println("石家庄铁道大学突破24软件开发有限公司"); System.out.println("在线投稿系统V1.0"); System.out.println("***********************************************************"); System.out.println("稿件编号:" + newId); System.out.println("作者姓名:" + authorName); System.out.println("作者单位:" + authorUnit); System.out.println("稿件内容:" + content); System.out.print("该稿件已录入完成,是否提交(Y/N):"); String confirm = scanner.nextLine().trim().toUpperCase(); // 5. 处理提交确认 if ("Y".equals(confirm)) { // 获取当前日期(格式:yyyyMMdd,简化处理) String currentDate = java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.BASIC_ISO_DATE); // 创建稿件对象并添加到数组 ManuscriptInformation manuscript = new ManuscriptInformation( newId, authorName, authorUnit, content, 0, "", currentDate // 初始状态为0(未审核),审核意见为空 ); manuscripts[count] = manuscript; count++; System.out.println("投稿成功!返回主界面"); break; } else if ("N".equals(confirm)) { System.out.println("已取消提交,返回稿件录入界面"); // 继续循环,重新录入 } else { System.out.println("输入无效,请输入Y或N"); }}
}
/**
-
生成稿件编号(8位:前4位年月+后4位序号)
-
@return 新的稿件编号,生成失败返回-1
*/
private int generateManuscriptId() {
try {
// 1. 获取当前年月(格式:yyyyMM中的后4位,如2024年9月为2409)
String yearMonth = java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyyMM")).substring(2);
int prefix = Integer.parseInt(yearMonth); // 前缀:2409// 2. 查找当前最大的序号 int maxSeq = 0; for (int i = 0; i < count; i++) { ManuscriptInformation ms = manuscripts[i]; if (ms != null) { int id = ms.getId(); int msPrefix = id / 10000; // 提取前缀(前4位) int msSeq = id % 10000; // 提取序号(后4位) // 如果是同年同月的稿件,更新最大序号 if (msPrefix == prefix && msSeq > maxSeq) { maxSeq = msSeq; } } } // 3. 生成新编号(前缀*10000 + 新序号) int newSeq = maxSeq + 1; if (newSeq > 9999) { System.out.println("当月稿件数量已达上限(9999篇)"); return -1; } return prefix * 10000 + newSeq;} catch (Exception e) {
return -1;
}
}
/**
-
2、审核稿件功能
*/
public void reviewManuscript() {
while (true) {
// 1. 输入稿件编号
System.out.println("");
System.out.println("石家庄铁道大学突破24软件开发有限公司");
System.out.println("在线投稿系统V1.0");
System.out.println("");
System.out.print("请输入稿件编号(8位):");
String idStr = scanner.nextLine().trim();// 验证编号格式 if (idStr.length() != 8 || !idStr.matches("\\d+")) { System.out.println("稿件编号格式错误!请输入8位数字"); continue; } int targetId = Integer.parseInt(idStr); ManuscriptInformation targetMs = findManuscriptById(targetId); // 2. 检查稿件是否存在 if (targetMs == null) { System.out.println("库中没有该稿件,返回审核界面"); continue; } // 3. 检查稿件状态(仅未审核可审核) if (targetMs.getStatement() != 0) { System.out.println("该稿件已审核,无需重复操作"); continue; } // 4. 显示稿件信息并录入审核意见 System.out.println("***********************************************************"); System.out.println("石家庄铁道大学突破24软件开发有限公司"); System.out.println("在线投稿系统V1.0"); System.out.println("***********************************************************"); System.out.println("稿件编号:" + targetMs.getId()); System.out.println("作者姓名:" + targetMs.getName()); System.out.println("作者单位:" + targetMs.getUnit()); System.out.println("稿件内容:" + targetMs.getContent()); System.out.print("请输入审核意见:"); String opinion = scanner.nextLine().trim(); System.out.print("是否通过(Y/N):"); String passConfirm = scanner.nextLine().trim().toUpperCase(); System.out.print("是否提交审核结果(Y/N):"); String submitConfirm = scanner.nextLine().trim().toUpperCase(); // 5. 处理审核结果 if ("Y".equals(submitConfirm)) { // 更新审核状态 if ("Y".equals(passConfirm)) { targetMs.setStatement(1); // 已通过 } else if ("N".equals(passConfirm)) { targetMs.setStatement(2); // 已退回 } else { System.out.println("是否通过输入无效,默认设置为已退回"); targetMs.setStatement(2); } // 更新审核意见和日期 targetMs.setOpinion(opinion); String reviewDate = java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.BASIC_ISO_DATE); targetMs.setDate(reviewDate); System.out.println("审核结果已提交!"); // 返回审核界面 } else if ("N".equals(submitConfirm)) { System.out.println("已取消审核,返回系统主界面"); break; // 返回主界面 } else { System.out.println("输入无效,请输入Y或N"); }}
}
/**
-
3、查询进度功能
*/
public void queryManuscript() {
while (true) {
// 1. 输入稿件编号
System.out.println("");
System.out.println("石家庄铁道大学突破24软件开发有限公司");
System.out.println("在线投稿系统V1.0");
System.out.println("");
System.out.print("请输入稿件编号(8位):");
String idStr = scanner.nextLine().trim();// 验证编号格式 if (idStr.length() != 8 || !idStr.matches("\\d+")) { System.out.println("稿件编号格式错误!请输入8位数字"); continue; } int targetId = Integer.parseInt(idStr); ManuscriptInformation targetMs = findManuscriptById(targetId); // 2. 检查稿件是否存在 if (targetMs == null) { System.out.println("库中没有该稿件,返回查询界面"); continue; } // 3. 显示稿件详情 System.out.println("***********************************************************"); System.out.println("石家庄铁道大学突破24软件开发有限公司"); System.out.println("在线投稿系统V1.0"); System.out.println("***********************************************************"); System.out.println("稿件编号:" + targetMs.getId()); System.out.println("作者姓名:" + targetMs.getName()); System.out.println("作者单位:" + targetMs.getUnit()); System.out.println("稿件内容:" + targetMs.getContent()); System.out.println("审核意见:" + (targetMs.getOpinion() == null || targetMs.getOpinion().isEmpty() ? "无" : targetMs.getOpinion())); // 转换状态为文字描述 String statusDesc; switch (targetMs.getStatement()) { case 1: statusDesc = "已通过"; break; case 2: statusDesc = "已退回"; break; default: statusDesc = "未审核"; } System.out.println("是否通过:" + statusDesc); // 4. 确认是否继续查询 System.out.print("是否进行新查询(Y/N):"); String newQuery = scanner.nextLine().trim().toUpperCase(); if ("N".equals(newQuery)) { System.out.println("返回主界面"); break; } else if (!"Y".equals(newQuery)) { System.out.println("输入无效,默认继续查询"); }}
}
/**
-
4、统计汇总功能
*/
public void statisticsManuscript() {
// 统计各类稿件数量
int total = count;
int unReviewed = 0;
int passed = 0;
int rejected = 0;for (int i = 0; i < count; i++) {
ManuscriptInformation ms = manuscripts[i];
if (ms != null) {
switch (ms.getStatement()) {
case 0:
unReviewed++;
break;
case 1:
passed++;
break;
case 2:
rejected++;
break;
}
}
}// 显示统计结果
System.out.println("");
System.out.println("2023版石家庄铁道大学突破24软件开发有限公司");
System.out.println("在线投稿系统V1.0");
System.out.println("");
System.out.println("总投稿数:" + total + "篇");
System.out.println("未审核:" + unReviewed + "篇");
System.out.println("已通过:" + passed + "篇");
System.out.println("已退回:" + rejected + "篇");
System.out.println("***********************************************************");
System.out.print("按回车键返回主界面...");
scanner.nextLine(); // 等待用户按键
}
/**
- 根据稿件编号查找稿件
- @param id 稿件编号
- @return 找到的稿件对象,未找到返回null
*/
private ManuscriptInformation findManuscriptById(int id) {
for (int i = 0; i < count; i++) {
ManuscriptInformation ms = manuscripts[i];
if (ms != null && ms.getId() == id) {
return ms;
}
}
return null;
}
// 稿件信息类(内部类)
static class ManuscriptInformation {
private int id; // 稿件编号
private String name; // 作者姓名
private String unit; // 作者单位
private String content; // 稿件内容
private int statement; // 审核状态(0-未审核,1-已通过,2-已退回)
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 String getName() { return name; } public String getUnit() { return unit; } public String getContent() { return 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; }}
} -

浙公网安备 33010602011771号