目录
一、前言
软件构造的实验作业04,使用的编程语言为Java,JDK为Java 1.8。本文的源码均放在了博主的主页,自行下载。
二、实验目的
1、熟悉用户交互方式中菜单的实现原理与方法。
2.掌握菜单构造的基本技术与方法。
3.根据构造任务,能够选择适当的。
三、实验内容
1、构造任务7.1:构造用户交互的菜单框架原型。完成菜单的设计与构造,实现子菜单、菜单之间的转换。
2、构造任务7.2:完成在线练习功能。要写出设计的思想,构造的设计方案并编码实现,并将之集成到菜单框架中。
解决方案:运用UI设计,构造用户交互的菜单框架原型,并实现基本的功能。
CommandUI类
package exp5;
import java.util.Scanner;
import exp3.Exercise;
import exp3.Student;
import exp4.Parents;
public class CommandUI {
static String ui1[] = {"退出","在线练习","批量习题","批改习题","","","","",""};
static String ui2[][]= {
{},
{"返回上一级菜单","加法","减法","加减混合"},
{"返回上一级菜单","加法","减法","加减混合"},
{},{},{},{},{},{}
};
static Scanner sc = new Scanner(System.in);
public CommandUI() {
}
public static void main(String[] args) {
int command1,command2;
boolean exit = false;
while(!exit) {
print1();
command1=sc.nextInt();
switch(command1) {
case 1:
print2(command1);
command2 = sc.nextInt();
command1_1(command2);
break;
case 2:
print2(command1);
command2 = sc.nextInt();
command1_2(command2);
break;
case 3:
command1_3();
break;
case 0:
exit = true;
System.out.println("感谢使用,再见");
break;
default:
System.out.println("输入有误,请重新输入");
}
}
sc.close();
}
public static void print1() {
System.out.println("口算练习-----功能列表");
for(int i = 1; i < ui1.length; i++) {
if(ui1[i] != null && ui1[i].length() > 0) {
System.out.println("" + i + " " + ui1[i]);
}
}
System.out.println("0 " + ui1[0]);
System.out.println("请选择功能序号");
}
public static void print2(int index) {
System.out.println("您选择了功能:" + index + ui1[index]);
if(ui2[index] != null && ui2[index].length > 0) {
System.out.println("请选择习题类型");
for(int i = 1; i < ui2[index].length; i++) {
System.out.println("" + i + " " + ui2[index][i]);
}
System.out.println("0 " + ui2[index][0]);
}
}
public static void command1_1(int index) {
int count;
System.out.println("您选择了" + index + ui2[1][index]);
if(index == 0)
return;
System.out.println("请输入算式数量");
count = sc.nextInt();
Exercise ex = new Exercise(count);
if(index == 1) {
ex.generateAddExercise();
}
else if(index == 2) {
ex.generateSubExercise();
}
else {
ex.generateExercise();
}
Student s = new Student();
s.setSc(sc);
s.setExercise(ex);
s.practiceOneByOne();
}
public static void command1_2(int index) {
int count, exCount;
Scanner sc = new Scanner(System.in);
System.out.println("您选择了" + index + ui2[2][index]);
if(index == 0) return;
System.out.println("请输入算式数量:");
count = sc.nextInt();
System.out.println("请输入习题套数:");
exCount = sc.nextInt();
Parents p = new Parents(count, exCount);
if(index == 1){
p.writeAddExercisesToFiles();
}
else if(index == 2){
p.writeSubExercisesToFiles();
}
else{
p.writeExercisesToFiles();
}
System.out.println("****成功批量生成 " + exCount + " 套,每套包含 " + count + " 道" + ui2[1][index] + "算式的习题。****");
sc.close();
}
public static void command1_3() {
Parents p = new Parents();
p.setSc(sc);
p.check();
}
}
运行效果如下:
都看到最后了,不点个赞吗?