100行以内的Java实现小学生两位数加减法
这是我大一学习Java时的一个周末作业,全篇代码靠自己完成,希望对大家有所帮助。
题目要求:
1:能够输入答题次数。
2:能够根据正确与错误次数进行评分。
3:出现错误能再计算一次,但是仍然按错误统计分数
4:对结果进行评价。
package 作业;
import java.util.Scanner;
public class 作业第六周
{
public static void main (String[] args)
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入需要答题的次数:"); /*输出提示信息,提示用户输入自己想要做答的次数*/
int c=sc.nextInt(); /*用户输入做题次数(该处默认为10)*/
double d; /*定义变量d用来统计正确次数*/
d=c;
Integer min=0; /*确定最小次数*/
double sum1=0,sum2=0; /*sum1用来统计正确题数,sum2用来统计错误题数*/
boolean p; /*布尔变量作为判断语句的判断值*/
if(c>0) /*若输入的次数为合法正数,开始本次答题*/
{
while(min<c) /*在次数用尽前不断自减并循环*/
{
int a=(int)(Math.random()*100);
int b=(int)(Math.random()*100); /*产生值为1~100的随机数并赋值*/
System.out.println(a);
System.out.println(b);
System.out.println("请计算"+a+"与"+b+"的和:"); /*输出提示信息*/
int s1=sc.nextInt(); /*用户输入第一次的计算值*/
if(s1==a+b) /*对用户的输入值进行判断*/
{
System.out.println("恭喜,回答正确!");
p=true; /*返回真值即正确*/
sum1++; /*做对后增加答对的数量*/
}
else
{
System.out.println("很遗憾,回答错误。");
p=false; /*当返回值为错误时,返回值为假值,准备开启第二层循环*/
sum2++; /*做错后增加答错的数量*/
}
if(p==false) /*令p1值为false,即第一次计算错误,再进入该次判断结构(为真值则直接跳过)*/
{
System.out.println("请进行第二次做答:");
int s2=sc.nextInt(); /*用户第二次输入答案*/
if(s2==a+b)
{
System.out.println("恭喜,修改正确");
}
else
{
System.out.println("第二次又算错了!"); /*输出提示信息*/
}
}
c--; /*每做完一道即减*/
if(c==min)
System.out.println("恭喜,完成本次作业!");
}
System.out.println("答对的题目共有"+(int)sum1+"道");
System.out.println("答错的题目共有"+(int)sum2+"道"+"\n"); /*输出答题情况*/
}
else
System.out.println("输入的次数错误。"); /*该处若输入的值非法,直接提示错误信息!*/
System.out.println("对本次加法练习的评价:");
double score=0; /*定义变量作为答题分数*/
score=sum1/d*100;
System.out.println("本次做答的准确率为"+score+"%");
if(score>=90)
System.out.println("本次成绩优秀!");
else if(score>=80&&score<90)
System.out.println("本次成绩良好。");
else if(score>=70&&score<80)
System.out.println("本次成绩一般。");
else if(score>=60&&score<70)
System.out.println("本次成绩刚刚及格。");
else if(score<60)
System.out.println("本次成绩不及格"); /*if语句实现动态评价*/
}
}
// An highlighted block
package 作业;
import java.util.Scanner;
public class 作业第六周
{
public static void main (String[] args)
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入需要答题的次数:"); /*输出提示信息,提示用户输入自己想要做答的次数*/
int c=sc.nextInt(); /*用户输入做题次数(该处默认为10)*/
double d; /*定义变量d用来统计正确次数*/
d=c;
Integer min=0; /*确定最小次数*/
double sum1=0,sum2=0; /*sum1用来统计正确题数,sum2用来统计错误题数*/
boolean p; /*布尔变量作为判断语句的判断值*/
if(c>0) /*若输入的次数为合法正数,开始本次答题*/
{
while(min<c) /*在次数用尽前不断自减并循环*/
{
int a=(int)(Math.random()*100);
int b=(int)(Math.random()*100); /*产生值为1~100的随机数并赋值*/
System.out.println(a);
System.out.println(b);
System.out.println("请计算"+a+"与"+b+"的和:"); /*输出提示信息*/
int s1=sc.nextInt(); /*用户输入第一次的计算值*/
if(s1==a+b) /*对用户的输入值进行判断*/
{
System.out.println("恭喜,回答正确!");
p=true; /*返回真值即正确*/
sum1++; /*做对后增加答对的数量*/
}
else
{
System.out.println("很遗憾,回答错误。");
p=false; /*当返回值为错误时,返回值为假值,准备开启第二层循环*/
sum2++; /*做错后增加答错的数量*/
}
if(p==false) /*令p1值为false,即第一次计算错误,再进入该次判断结构(为真值则直接跳过)*/
{
System.out.println("请进行第二次做答:");
int s2=sc.nextInt(); /*用户第二次输入答案*/
if(s2==a+b)
{
System.out.println("恭喜,修改正确");
}
else
{
System.out.println("第二次又算错了!"); /*输出提示信息*/
}
}
c--; /*每做完一道即减*/
if(c==min)
System.out.println("恭喜,完成本次作业!");
}
System.out.println("答对的题目共有"+(int)sum1+"道");
System.out.println("答错的题目共有"+(int)sum2+"道"+"\n"); /*输出答题情况*/
}
else
System.out.println("输入的次数错误。"); /*该处若输入的值非法,直接提示错误信息!*/
System.out.println("对本次加法练习的评价:");
double score=0; /*定义变量作为答题分数*/
score=sum1/d*100;
System.out.println("本次做答的准确率为"+score+"%");
if(score>=90)
System.out.println("本次成绩优秀!");
else if(score>=80&&score<90)
System.out.println("本次成绩良好。");
else if(score>=70&&score<80)
System.out.println("本次成绩一般。");
else if(score>=60&&score<70)
System.out.println("本次成绩刚刚及格。");
else if(score<60)
System.out.println("本次成绩不及格"); /*if语句实现动态评价*/
}
}
运行结果如下: