diff --git a/.idea/modules.xml b/.idea/modules.xml index 230551d..0a02a5b 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -8,6 +8,8 @@ + + \ No newline at end of file diff --git a/work8/src/Student.java b/work8/src/Student.java new file mode 100644 index 0000000..d7b4ff7 --- /dev/null +++ b/work8/src/Student.java @@ -0,0 +1,37 @@ +/** + * @author : 张宇轩 + * @createTime : 2022/10/1 - 21:21 + */ +public class Student { + private String id; + private String name; + + public Student() { + } + + public Student(String id, String name) { + this.id = id; + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return id + "\t" + name + "\n"; + } +} diff --git a/work8/src/SubjectEnrolment.java b/work8/src/SubjectEnrolment.java new file mode 100644 index 0000000..07141af --- /dev/null +++ b/work8/src/SubjectEnrolment.java @@ -0,0 +1,87 @@ +import java.util.Arrays; + +/** + * @author : 张宇轩 + * @createTime : 2022/10/1 - 21:21 + */ +public class SubjectEnrolment { + private String id; + private String name; + private Integer semester; + private Integer year; + + private Student[] students; + private Integer count; + + public SubjectEnrolment() { + } + + public SubjectEnrolment(String id, String name, Integer semester, Integer year, Integer max) { + this.id = id; + this.name = name; + this.semester = semester; + this.year = year; + this.students = new Student[max]; + this.count = 0; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getSemester() { + return semester; + } + + public void setSemester(Integer semester) { + this.semester = semester; + } + + public Integer getYear() { + return year; + } + + public void setYear(Integer year) { + this.year = year; + } + + public boolean addStudent(Student student) { + if (students == null || isFull()) { + return false; + } + students[this.count++] = student; + return true; + } + + public boolean isFull() { + return students.length <= this.count; + } + + @Override + public String toString() { + String info = "学科报名详情:" + "\n----------------\n" + + "课程号:" + id + "\n" + + "课程名:" + name + "\n" + + "授课学期:" + semester + "\n" + + "授课学年:" + year + "\n"; + if (count != 0) { + info += "================\n学生详情:\n----------------\n学号:\t姓名:\n"; + for (int i = 0; i < count; i++) { + info += students[i]; + } + } + return info; + } +} diff --git a/work8/src/SubjectEnrolmentDriver.java b/work8/src/SubjectEnrolmentDriver.java new file mode 100644 index 0000000..2f93bf2 --- /dev/null +++ b/work8/src/SubjectEnrolmentDriver.java @@ -0,0 +1,111 @@ +import java.io.IOException; +import java.util.Scanner; + +/** + * @author : 张宇轩 + * @createTime : 2022/10/1 - 21:20 + */ +public class SubjectEnrolmentDriver { + private static SubjectEnrolment subjectEnrolment = null; + + public static void main(String[] args) throws IOException { + while (true) { + int opt = menu(); + switch (opt) { + case 1: + createNewSubject(); + break; + case 2: + addStudent(); + break; + case 3: + printSubjectDetails(); + break; + case 4: + return; + } + System.out.println("按任意键继续..."); + System.in.read(); + } + } + + /** + * 检查菜单选项输入合法性 + * @param low 选项下界 + * @param high 选项上界 + * @return 合法选项值 + */ + public static int checkInput(int low, int high) { + Scanner scanner = new Scanner(System.in); + if (scanner.hasNextInt()) { + int opt = scanner.nextInt(); + if (opt >= low && opt <= high) { + return opt; + } + System.out.println("输入超限,请输入" + low + "-" + high + "的数字"); + } else { + System.out.println("输入数据类型错误,请输入" + low + "-" + high + "的数字"); + scanner.next(); + } + return -1; + } + + public static int menu() { + System.out.println("欢迎使用学科报名系统"); + System.out.println("1.创建新学科"); + System.out.println("2.添加学生"); + System.out.println("3.查看学科详情"); + System.out.println("4.退出"); + System.out.print(">>>请选择(1-4):"); + int opt = -1; + while (opt == -1) { + opt = checkInput(1,4); + } + return opt; + } + + public static void createNewSubject() { + if (subjectEnrolment == null) { + Scanner scanner = new Scanner(System.in); + System.out.println("请输入课程号:"); + String id = scanner.nextLine(); + System.out.println("请输入课程名:"); + String name = scanner.nextLine(); + System.out.println("请输入授课学期:"); + int semester = scanner.nextInt(); + System.out.println("请输入授课学年:"); + int year = scanner.nextInt(); + subjectEnrolment = new SubjectEnrolment(id, name, semester, year, 5); + } else { + System.out.println("课程已创建!无需重复创建"); + } + } + + public static void addStudent() { + if (subjectEnrolment == null){ + System.out.println("学科不存在!请先执行功能1"); + return; + } + if (!subjectEnrolment.isFull()) { + Scanner scanner = new Scanner(System.in); + System.out.println("请输入学生学号:"); + String id = scanner.nextLine(); + System.out.println("请输入学生姓名:"); + String name = scanner.nextLine(); + subjectEnrolment.addStudent(new Student(id, name)); + System.out.println("学生添加成功!"); + } else { + System.out.println("学生已满!无法添加更多学生"); + } + } + + public static void printSubjectDetails() { + if (subjectEnrolment != null) { + System.out.println(subjectEnrolment); + } else { + System.out.println("学科不存在!请先执行功能1"); + } + } + + +} diff --git a/work8/work8.iml b/work8/work8.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/work8/work8.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/work9/src/Exercise1.java b/work9/src/Exercise1.java new file mode 100644 index 0000000..a03e7bc --- /dev/null +++ b/work9/src/Exercise1.java @@ -0,0 +1,79 @@ +import java.util.Scanner; + +/** + * @author : 张宇轩 + * @createTime : 2022/10/1 - 22:21 + */ +public class Exercise1 { + public static void main(String[] args) { + String expression = new Scanner(System.in).nextLine(); + + int cnt = 0; + for (int i = 0; i < expression.length(); i++) { + if ('(' == expression.charAt(i)){ + cnt++; + } else if (')' == expression.charAt(i)){ + cnt--; + } + } + if (cnt != 0){ + System.out.println("输入格式错误!"); + return; + } + + String[] opts = expression.split(","); + double res = 0; + if(opts.length == 2){ + String exp = expression.substring(0, expression.indexOf("(")); + if ("doubleMe".equals(exp)){ + double num = Double.parseDouble(expression.substring(expression.indexOf("(")+1,expression.indexOf(")"))); + res = num*2; + } else { + double num1 = Double.parseDouble(expression.substring(expression.indexOf("(")+1, expression.indexOf(","))); + double num2 = Double.parseDouble(expression.substring(expression.indexOf(",")+1, expression.indexOf(")"))); + switch (exp){ + case "add": + res = num1+num2; + break; + case "sub": + res = num1-num2; + break; + case "max": + res = Math.max(num1, num2); + break; + case "min": + res = Math.min(num1, num2); + break; + } + } + } else { + for (int i = opts.length-1; i >= 0; i--) { + String exp = opts[i].substring(0, opts[i].indexOf("(")); + double num; + if(i != opts.length-1){ + num = Double.parseDouble(opts[i].substring(opts[i].indexOf("(")+1)); + } else { + num = Double.parseDouble(opts[i].substring(opts[i].indexOf("(") + 1, opts[i].indexOf(")"))); + } + switch (exp){ + case "add": + res += num; + break; + case "sub": + res -= num; + break; + case "max": + res = Math.max(res, num); + break; + case "min": + res = Math.min(res, num); + break; + case "doubleMe": + res = num*2; + break; + } + } + } + System.out.println(expression + "=" + res); + } +} diff --git a/work9/src/Exercise2.java b/work9/src/Exercise2.java new file mode 100644 index 0000000..d30a829 --- /dev/null +++ b/work9/src/Exercise2.java @@ -0,0 +1,44 @@ +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Scanner; + +/** + * @author : 张宇轩 + * @createTime : 2022/10/1 - 23:00 + */ +public class Exercise2 { + public static void main(String[] args) { + Date date = new Date(); + SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); + String serialNumber = df.format(date); + + int cnt = 0; + Scanner scanner = new Scanner(System.in); + List details = new ArrayList<>(); + while (true){ + String input = scanner.nextLine(); + if ("0000".equals(input)){ + break; + } + String tmpSerialNumber = serialNumber + String.format("%04d",cnt++); + String detail = tmpSerialNumber + "," +input; + details.add(detail); + } + System.out.println("流水号\t\t\t商品名称\t商品数量\t单价\t总价"); + int allSaleNum = 0; + double allSaleMoney = 0; + for (String each : details) { + String[] detail = each.split(","); + System.out.print(detail[0] + "\t" + detail[1] + "\t" + detail[2] + "\t\t" + detail[3] + "\t\t" ); + int saleNum = Integer.parseInt(detail[2]); + double saleMoney = Double.parseDouble(detail[3]); + System.out.println(saleNum*saleMoney); + + allSaleNum += saleNum; + allSaleMoney += saleNum*saleMoney; + } + System.out.println("总计:销售笔数 " + details.size() + ",销售数量 " + allSaleNum + ",销售金额 " + allSaleMoney); + } +} diff --git a/work9/work9.iml b/work9/work9.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/work9/work9.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file