简单的考试系统的代码,需要进一步改进,和大家分享一下:
package day04;
import java.util.Scanner;
public class ArithmeticSoftSysFor {
/**
* 算术运算生成器,考试系统 1.产生随机数:两个数和一个符号 2.出题 3.输入答案 4.判断 5.求出几道题是对的,并算出分数
*/
/**
* 随机数方法 return int type 1或2
*/
public static int getRander(int type) {
int rand = 0;
if (type == 1) {
rand = (int) (Math.random() * 100);
} else if (type == 2) {
rand = (int) (Math.random() * 4);
}
return rand;
}
/**
* 把op操作符:变为+/*-符号
*/
public static char operator(int op) {
char charop = '0';
switch (op) {
case 1:
charop = '+';
break;
case 2:
charop = '-';
break;
case 3:
charop = '*';
break;
case 4:
charop = '/';
break;
default:
charop = '0';
}
return charop;
}
/**
* 计算结果方法:参数char charop,int rand1,int rand2 retun int ans:答案
*
*/
public static int getResultAnswer(char charop, int rand1, int rand2) {
int ans = -1;
switch (charop) {
case '+':
ans = rand1 + rand2;
break;
case '-':
ans = rand1 - rand2;
break;
case '*':
ans = rand1 * rand2;
break;
case '/':
ans = rand1 / rand2;
break;
default:
}
return ans;
}
/**
* 从键盘输入一个数:有chance次机会
*/
public static int getInput(int num, int chance) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数据:谢谢!你有" + chance + "机会!");
num = sc.nextInt();
return num;
}
/**
* 从键盘输入一个数:
*/
public static String getInputExam(String isExam) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数据yes or no:谢谢!");
isExam = sc.nextLine();
return isExam;
}
/**
* 判断:输入的数据和答案是否相等 return boolean 参数:ans,num,sum,score
*/
public static boolean getEqual(int ans, int num, int sum, int score,
int count) {
boolean flag = false;
if (num == ans) {
++count;// 计算题对的数目加1
sum = sum + score;// 计算分数的和
flag = true;
System.out.println("恭喜你,回答正确!你答对了" + count + "道题,得到分数为:" + sum);
} else if (num > ans) {
flag = false;
System.out.println("你输入太大力了!");
} else {
flag = false;
System.out.println("你输入太大小了!");
}
return flag;
}
public static void main(String[] args) {
// 随机数
int rand1 = 0;
int rand2 = 0;
int op;
int ans = 0;// 计算结果
int num = 0;// 输入答案
int score = 10;
int sum = 0;
int count = 0;
int chance = 2;
boolean isRight = false;
char charop = '0';
String isExam = "";
start: while (true) {
rand1 = getRander(1);
rand2 = getRander(1);
op = getRander(2);
charop = operator(op);
ans = getResultAnswer(charop, rand1, rand2);
while (chance != 0) {
num = getInput(num, chance);
chance--;//减少一次机会
isRight = getEqual(ans, num, sum, score, count);
if (isRight) {
System.out.println("恭喜你,回答正确!你答对了" + count + "道题,得到分数为:"
+ sum);
// 是否还答题
isExam = getInputExam(isExam);
if (isExam.equals("yes")) {
continue start;
} else {
break start;
}
} else {
System.out.println("对不起,回答错误!你答对了" + count + "道题,得到分数为:"
+ sum);
// 是否还答题
isExam = getInputExam(isExam);
if (isExam.equals("yes")) {
continue start;
} else {
break start;
}
}
}
}
}
}
分享到:
相关推荐
### C++课程设计:学生算术运算系统 #### 一、项目概述 本课程设计的主要目的是为小学生开发一个算术运算练习系统。该系统能够帮助孩子们通过实际操作提高其四则运算(加减乘除)的能力,特别是对于含有括号的复杂...
它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。 2. 梯形图(Ladder Diagram)和语句表...
2. **控制信号**:ALU的操作取决于一组控制信号,比如选择算术运算(加法、减法)还是逻辑运算(AND、OR、NOT、XOR等)。此外,还需要控制位如进位控制(Carry In/Carry Out)、借位控制(Borrow In/Borrow Out)等...
在C语言中,我们通常使用字符数组来存储这些大数,并通过循环和其他控制结构来模拟算术运算,如加法、减法、乘法和除法。 ### 全加器模拟程序 全加器是数字电路中的一个基本单元,用于执行二进制数的加法。在软件...
用3位操作码进行运算,控制方式如下表所示。 运算操作码 运 算 对标识位Z和C的影响 000 result ←A+B 影响标志位Z和C 001 result ←A+1 影响标志位Z和C 010 result ←A-B 影响标志位Z和C 011 result ←A-1 影响...
整数运算表达式是包含一个或多个整数以及运算符的组合,这些运算符用于对整数进行算术运算。常见的整数运算符包括加(+)、减(-)、乘(*)、除(/)和取模(%)。例如,`5 + 3` 是一个简单的整数运算表达式,其...
1. **基本语法**:包括变量声明、数据类型(如int, char, float等)、运算符(算术、比较、逻辑、位操作等)、流程控制(if语句、switch语句、for循环、while循环等)。 2. **函数**:C语言中的函数是代码组织的...
逻辑运算主要用于处理布尔逻辑,这是计算机程序的基础,例如在条件判断、循环控制语句中。 四、ALU在计算机系统中的作用 在计算机系统中,ALU是CPU的重要组成部分,负责执行所有的算术和逻辑运算。当CPU接收到一条...
它采用了一类可编程的存储器,用 于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种机械或生产过程。 PLC采用的循环扫描的工作方式,即顺序...
【信用社计算机考试模拟题】相关的知识点主要包括计算机基础、操作系统、软件分类、程序设计、文字处理、数据库系统、字符编码、资源管理和DOS系统命令等多个方面。 1. 计算机基础: - 微型计算机的三条总线是数据...
它采用可编程的存储器,用于内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,以此来控制各种类型的机械或生产过程。本篇将围绕PLC的应用、分类、硬件结构、工作原理、编程语言以及常见问题展开...
1. PLC在自动化控制系统中的应用:PLC是一种用于工业自动化的电子系统,能够执行逻辑运算、顺序控制、定时、计数和算术运算等功能。它通过数字的或模拟的输入输出接口控制机械或生产过程,易于与多种控制系统集成,...
基本指令包括逻辑运算指令、算术运算指令和比较指令等。高级指令包括定时器指令、计数器指令和数据处理指令等。这些指令可以根据需要进行组合,实现复杂的控制逻辑。 知识点四:西门子S7-300/400系列PLC的编程方式 ...
PLC(可编程逻辑控制器)最初主要用于逻辑控制,但随着时间的发展,其功能逐渐增强,涵盖了模拟量控制和算术运算,因此在1980年被美国电器制造协会(NEMA)重新定义为可编程控制器,简称PC,尽管这个名称可能与个人...
本设计的目标是创建一个具有寄存器的八位运算器模块,该模块能够执行算术运算(如加法、减法和移位运算)以及逻辑运算(如与运算、或运算),并且能够对结果进行判零和进位检测。 #### 模块设计规格及输入输出端...
该系统通过软件编程,能够执行逻辑运算、顺序控制、定时、计数和算术运算等操作,并通过数字或模拟输入/输出控制各种类型的机械或生产过程。 在油田生产中,PLC控制系统发挥了至关重要的作用。油田生产是一个集成了...
5. **用户态指令**:算术运算指令可以在用户态下执行,而设置控制寄存器、关中断和切换栈指针指令属于特权指令,只能在核心态(内核态)下执行。因此,选项B正确。 6. **进程优先级**:进程的优先级信息存储在进程...
它具有存储器、可以编制程序的控制器,可以存储和执行命令,进行逻辑运算、顺序控制、定时、计数和算术运算等操作,并通过数字式和模拟式的输入输出,控制各种类型的机械或生产过程。 知识点一:可编程控制器的定义...
在全自动洗衣机控制系统中,PLC能够处理逻辑控制、定时、计数和算术运算等功能,通过数字和模拟输入/输出接口,控制洗衣机的各个工作环节。 2. 全自动洗衣机控制系统总体控制方案 在设计全自动洗衣机控制系统时,...