四则运算

要求:

使用CJava语言完成一个自动生成四则运算试题的程序。软件基本功能如下。

(1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内

(2)剔除重复算式。  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式

(3)题目数量可定制

(4)相关参数可控制

          是否包含乘法和除法

          操作数数值范围可控(如操作数 在100以内   还是1000以内)

          操作数是否含负数    

  (5)生成的运算题存储到外部文件result.txt中

需求分析


减轻家长和老师的负担,提升学生的做题能力。

功能设计

)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内

(2)剔除重复算式。  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式

(3)题目数量可定制

(4)相关参数可控制

          是否包含乘法和除法

          操作数数值范围可控(如操作数 在100以内   还是1000以内)

          操作数是否含负数    

  (5)生成的运算题存储到外部文件result.txt中

设计实现

用Java语言实现

测试演示

 

 

 

 

 代码演示

package 四则;

import java.util.Scanner;
import java.util.Random;
import java.io.FileWriter;
import java.io.IOException;

class yunsun {
 int num1;
 int num2 = 1;
 int yunsuan;
 char cun[] = { '+', '-', '*', '/' };
 String str1 = new String();
 String str2 = new String();
 Scanner S = new Scanner(System.in);
 Random r = new Random();
 StringBuffer w = new StringBuffer();
 public void optt(int n, int opn, int sel, boolean flag, boolean ifSave) {
  // TODO Auto-generated method stub
  for (int i = 0; i < n; i++) {
   num1 = r.nextInt(sel) + 1;
   yunsuan = r.nextInt(opn);
   switch (yunsuan) {
   case 0:
    num2 = r.nextInt(sel - num1);
    break;
   case 1:
    num2 = r.nextInt(num1);
    break;
   case 2:
    num2 = r.nextInt(sel / num1);
    break;
   case 3:
    num2 = r.nextInt(num1);
    break;
   }

   if (flag) {
    int f = r.nextInt(2);
    int p = r.nextInt(2);
    if (0 == f)
     num1 = -num1;
    if (0 == p)
     num2 = -num2;
   }
   if (num1 < 0)
    str1 = "(" + num1 + ")";
   else
    str1 = "" + num1;
   if (num2 < 0)
    str2 = "(" + num2 + ")";
   else
    str2 = "" + num2;
   if (ifSave) {
    w.append(str1 + "" + cun[yunsuan] + str2 + "=" + "   ");

    try {
     FileWriter fw = new FileWriter("d:/result.txt");
     fw.write(w.toString());
     fw.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   System.out.println(str1 + "" + cun[yunsuan] + str2 + "=");
  }
  
 }
 public int inputCount() {
  int n;//
  n = S.nextInt();
  return n;
 }

 public int opCount() {
  int opn;
  opn = S.nextInt();
  if (1 == opn)
   return 4;
  else
   return 2;
 }
 public int select() {
  int sel;
  sel = S.nextInt();
  if (1 == sel)
   return 101;
  else
   return 1001;
 }
 public boolean ifFuShu() {
  int flag;
  flag = S.nextInt();
  if (1 == flag)
   return true;
  else
   return false;
 }
 public boolean ifSave() {
  int flag;
  flag = S.nextInt();
  if (1 == flag)
   return true;
  else
   return false;
 }
 public void menu() {
  int inputCount, opCount, select;
  boolean ifFuShu, ifSave;
  
  System.out.println("打印的题目数量:");
  inputCount = this.inputCount();
  System.out.println("需要题目出现乘除吗?(需要扣1,不需要扣任意数)");
  opCount = this.opCount();
  System.out.println("请选择打印100或1000以内的题目,输入1打印100以内,输入其他数字打印1000以内");
  select = this.select();
  System.out.println("是否出现负号,是扣1,不是扣任意数");
  ifFuShu = this.ifFuShu();
  System.out.println("请选择是否存到d:/result.txt中,输入1存,输入其他数字不存");
  ifSave = this.ifSave();
  this.optt(inputCount, opCount, select, ifFuShu, ifSave);
 }
}
public class q{

 public static void main(String[] args) {
  // TODO Auto-ge

要求:

使用CJava语言完成一个自动生成四则运算试题的程序。软件基本功能如下。

(1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内

(2)剔除重复算式。  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式

(3)题目数量可定制

(4)相关参数可控制

          是否包含乘法和除法

          操作数数值范围可控(如操作数 在100以内   还是1000以内)

          操作数是否含负数    

  (5)生成的运算题存储到外部文件result.txt中

需求分析


减轻家长和老师的负担,提升学生的做题能力。

功能设计

)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内

(2)剔除重复算式。  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式

(3)题目数量可定制

(4)相关参数可控制

          是否包含乘法和除法

          操作数数值范围可控(如操作数 在100以内   还是1000以内)

          操作数是否含负数    

  (5)生成的运算题存储到外部文件result.txt中

设计实现

用Java语言实现

测试演示

 

 

 代码演示

package 四则;

import java.util.Scanner;
import java.util.Random;
import java.io.FileWriter;
import java.io.IOException;

class yunsun {
 int num1;
 int num2 = 1;
 int yunsuan;
 char cun[] = { '+', '-', '*', '/' };
 String str1 = new String();
 String str2 = new String();
 Scanner S = new Scanner(System.in);
 Random r = new Random();
 StringBuffer w = new StringBuffer();
 public void optt(int n, int opn, int sel, boolean flag, boolean ifSave) {
  // TODO Auto-generated method stub
  for (int i = 0; i < n; i++) {
   num1 = r.nextInt(sel) + 1;
   yunsuan = r.nextInt(opn);
   switch (yunsuan) {
   case 0:
    num2 = r.nextInt(sel - num1);
    break;
   case 1:
    num2 = r.nextInt(num1);
    break;
   case 2:
    num2 = r.nextInt(sel / num1);
    break;
   case 3:
    num2 = r.nextInt(num1);
    break;
   }

   if (flag) {
    int f = r.nextInt(2);
    int p = r.nextInt(2);
    if (0 == f)
     num1 = -num1;
    if (0 == p)
     num2 = -num2;
   }
   if (num1 < 0)
    str1 = "(" + num1 + ")";
   else
    str1 = "" + num1;
   if (num2 < 0)
    str2 = "(" + num2 + ")";
   else
    str2 = "" + num2;
   if (ifSave) {
    w.append(str1 + "" + cun[yunsuan] + str2 + "=" + "   ");

    try {
     FileWriter fw = new FileWriter("d:/result.txt");
     fw.write(w.toString());
     fw.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   System.out.println(str1 + "" + cun[yunsuan] + str2 + "=");
  }
  
 }
 public int inputCount() {
  int n;//
  n = S.nextInt();
  return n;
 }

 public int opCount() {
  int opn;
  opn = S.nextInt();
  if (1 == opn)
   return 4;
  else
   return 2;
 }
 public int select() {
  int sel;
  sel = S.nextInt();
  if (1 == sel)
   return 101;
  else
   return 1001;
 }
 public boolean ifFuShu() {
  int flag;
  flag = S.nextInt();
  if (1 == flag)
   return true;
  else
   return false;
 }
 public boolean ifSave() {
  int flag;
  flag = S.nextInt();
  if (1 == flag)
   return true;
  else
   return false;
 }
 public void menu() {
  int inputCount, opCount, select;
  boolean ifFuShu, ifSave;
  
  System.out.println("打印的题目数量:");
  inputCount = this.inputCount();
  System.out.println("需要题目出现乘除吗?(需要扣1,不需要扣任意数)");
  opCount = this.opCount();
  System.out.println("请选择打印100或1000以内的题目,输入1打印100以内,输入其他数字打印1000以内");
  select = this.select();
  System.out.println("是否出现负号,是扣1,不是扣任意数");
  ifFuShu = this.ifFuShu();
  System.out.println("请选择是否存到d:/result.txt中,输入1存,输入其他数字不存");
  ifSave = this.ifSave();
  this.optt(inputCount, opCount, select, ifFuShu, ifSave);
 }
}
public class q{

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  yunsun op = new yunsun();
  op.menu();
 }

总结

代码写的十分吃力,在室友的帮助下才完成了作业。

 

psp

 

 

 

 

nerated method stub
  yunsun op = new yunsun();
  op.menu();
 }

总结

代码写的十分吃力,在室友的帮助下才完成了作业。

 

psp

 

 

 

 

 

 

posted @ 2019-09-15 13:24  l刘磊  阅读(296)  评论(3编辑  收藏  举报