package menu;
import giao.ExerciseTest.Exercise;
import giao.ExerciseTest.Judgement;
import giao.ExerciseTest.OperationBase;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;
public class MenuRun {
static String [] MENU1={"练习习题","查看错题","回顾历史","清空屏幕","退出程序"};//菜单一数组
static String [] MENU2={"加法算式","减法算式","加减法混合算式","从文件中读取","清空屏幕","返回","退出"};//菜单二数组
static String [] MENU3={"定义数量","算式基读取","清空屏幕","返回","返回主菜单","退出"};//菜单三数组
static String [] MENU4={"50道","随机道数","自定义数量","清空屏幕","返回","返回主菜单","退出"};//菜单四数组
static String [] MENU6={"更新练习","开始练习","保存算式","清空屏幕","返回","返回主菜单","退出"};//菜单五数组
static String [] MENU7={"重做习题","保存批改文件","继续练习","清空屏幕","返回","返回主菜单","退出"};//菜单六数组
static String [] MENU8={"练习习题","清空屏幕","返回","返回主菜单","退出"};//回看错题、文件读取菜单项 数组
//修改答案和批改菜单数组
static String [] modify1={"修改","批改","主菜单","退出"};
static String [] modify2={"全部算式","指定算式","返回"};
static int b;//记录选择的菜单项
static boolean YorN=false;//记录是否退出程序
static int d=2;//记录算式类型
static int e=50;//记录输入的数量
static Exercise exercise=new Exercise();//算式练习
static Exercise exercise1;//总错题
static Judgement judgement=new Judgement();
static OperationBase Base=null;//算式基
static ArrayList<Exercise> exerciseArrayList=new ArrayList<>();//做过的习题
//批改之前可以修改答案
public static void PiGai(Exercise exercise){
while (true){
MenuString(modify1);
scannerNumber(modify1.length);
switch (b){
case 0://修改
Caidan(modify1,b);
MenuString(modify2);
scannerNumber(modify2.length);
switch (b){
case 0://修改全部算式
Caidan(modify2,b);
judgement.formattedDisplay(exercise);
judgement.ZuoTi(exercise);//做题
break;
case 1://指定算式
Caidan(modify2,b);
judgement.formattedDisplay(exercise);//打印练习及用户的答案
System.out.println("你要修改的题目****");
scannerNumber(e);
judgement.Sua(exercise,b);
break;
case 2://返回
Caidan(modify2,b);
break;
}
break;
case 1://批改
Caidan(modify1,b);
judgement.piGai(exercise);//更新批改数据
exercise1=judgement.asString(exercise);//打印批改结果
exerciseArrayList.add(exercise);
Menu6();
return;
case 2:
Caidan(modify1,b);
Menu1();
break;
case 3://退出程序
Caidan(modify1,b); //打印选择的菜单项
System.out.println("请输入Y/N\t(Y退出,N继续使用)");
exit();//判断输入
if (YorN){//退出程序
return;
}else {//继续使用
break;
}
}
}
}
//用于遍历历史做过的习题
public static void forExerciseArrayList(){
for (int i=0; i<exerciseArrayList.size();i++){
System.out.println(i+1+"、"+exerciseArrayList.get(i).getFileName());
}
}
//清屏,cmd有效
public static void console(String state,String con){
try {
new ProcessBuilder("cmd",state,con).inheritIO().start().waitFor();
}catch (Exception e){
System.out.println("错误");
}
}
//用于输入限制
public static int Nub(int s,int a){
int b=0;
for (int i=0;i<s;i++){
if (a!=i+1){
b++;
}
}
return b;
}
//用来递归的方法。如果输入的是数字则返回该数字,否则重新输入
public static int scannerNumber(int c) {
try {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
if (Nub(c,a)==c){//用于限制输入的数字。如果不是菜单项的数字,则递归重新输入,否则将a赋值给b
System.out.println("输入错误,请重新输入");
scannerNumber(c);//递归。不是菜单项,重新输入
}else {
b=a-1;
}
}
catch (InputMismatchException nf) {
System.out.println("输入错误,请输入整数");
scannerNumber(c);//递归。重新输入
}
return b;
}
//用来递归的方法。判断用户是否退出(Y退出/N继续使用),否则重新输入
public static boolean exit(){
String a="";
Scanner sc = new Scanner(System.in);
a = sc.nextLine();
if (a.equals("Y")||a.equals("y")){//输入Y/y退出程序
System.out.println("已退出,欢迎下次使用!...........");
YorN=true;
}else if (a.equals("N")||a.equals("n")){ //输入N,n反回当前菜单
System.out.println("继续使用!**********");
}else {//输入其他字符、数字则重新输入
System.out.println("输入有误,请选择输入Y/N\t(Y退出,N继续使用)");
exit();
}
return YorN;
}
//显示菜单项
public static void MenuString(String[] s){
System.out.println("************************************");
System.out.println("输入数字选择功能");
System.out.println("************************************");
for (int i=0;i<s.length;i++){
System.out.println(i+1+"、\t"+s[i]);
}
System.out.println("************************************");
System.out.println("请选择**********");
}
//打印选择的菜单功能
public static void Caidan(String [] s,int a){
System.out.println("你选择了功能"+(a+1)+",执行:"+s[a]);
}
//一级菜单
public static void Menu1(){
while (!YorN){
MenuString(MENU1);//显示菜单一
scannerNumber(MENU1.length);//输入限制
switch (b){
case 0://在线操练习题
Caidan(MENU1,b); //打印选择的菜单项
Menu2();//进入二级菜单
break;
case 1://回看错题
Caidan(MENU1,b); //打印选择的菜单项
if (exercise1!=null){//错题对象中是否有错题,有则打印并可以练习
int countNumber = exercise1.length();
System.out.println("错题数"+countNumber);
try {
exercise1.readCSVEx(new File("D:/算式练习/错题文件.csv"));//读取错题对象
没有合适的资源?快使用搜索试试~ 我知道了~
软件构造迭代开发三个版本
共43个文件
class:17个
java:14个
xml:5个
需积分: 5 7 下载量 151 浏览量
2022-03-07
21:09:02
上传
评论 3
收藏 90KB ZIP 举报
温馨提示
软件构造迭代开发三个版本
资源详情
资源评论
资源推荐
收起资源包目录
demo01plus.zip (43个子文件)
demo01plus
demo01plus.iml 433B
META-INF
MANIFEST.MF 51B
src
menu
MenuRun.java 23KB
META-INF
MANIFEST.MF 51B
giao
test
menu_mian.java 11KB
ExerciseTest
ExerciseSheet.java 6KB
Constraints.java 241B
GenerateBinaryOperation.java 633B
BinaryOperationTester.java 667B
BinaryOperation.java 3KB
OperationBase.java 8KB
Judgement.java 9KB
SubstractConstraint.java 485B
AdditionOperation.java 362B
Exercise.java 12KB
SubstractOperation.java 361B
AdditionConstraint.java 492B
.idea
uiDesigner.xml 9KB
misc.xml 278B
modules.xml 267B
workspace.xml 11KB
.gitignore 240B
artifacts
demo01plus_jar.xml 301B
out
production
demo01plus
menu
MenuRun.class 11KB
META-INF
MANIFEST.MF 51B
giao
test
menu_mian.class 6KB
ExerciseTest
OperationBase.class 7KB
SubstractConstraint.class 751B
AdditionOperation.class 590B
Exercise$An.class 776B
Constraints.class 438B
Exercise$1.class 801B
AdditionConstraint.class 738B
SubstractOperation.class 594B
Judgement.class 8KB
ExerciseSheet.class 5KB
BinaryOperation.class 3KB
Exercise$ExerciseType.class 1KB
BinaryOperationTester.class 1KB
GenerateBinaryOperation.class 911B
Exercise.class 10KB
artifacts
META-INF
MANIFEST.MF 52B
demo01plus_jar
demo01plus.jar 32KB
共 43 条
- 1
giao卤蛋
- 粉丝: 12
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 教学内容及补充-cha7.rar
- 设计1.ms14
- vscode-1.64.1.tar源码文件
- vscode-1.64.0.tar源码文件
- vscode-1.52.0.tar源码文件
- Music-Player +PlayerActivity+ rockplayer+ SeeJoPlayer 播放器JAVA源码
- vscode-1.46.0.tar源码文件
- 最近很火植物大战僵尸杂交版2.08苹果+安卓+PC+防闪退工具V2+修改工具+高清工具+通关存档整合包更新
- 超级好用的截图工具PixPin,可录制Gif图
- Screenshot_2024-05-21-17-06-42-64_2332cb9b27b851b548ba47a91682926c.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0