java总结

2020年10月4日:

今天下午上了四节java课,最后被要求要完成一个简单的四则运算项目,其特点与上次的四则运算类似,但不同的是这次的四则运算与上次相比多了几个条件,那就是用不同的方法对其进行补充,把整个程序进行合理的分类,然后在运行,下面是我的粗略代码:

package shuxue;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
public class shuxue
{
 public static int i;
 public static int n;
 public static int j;
 public static int k;
 public static int t;
 public static int g;
 public static char o;
 public static char y;
 public static int str;
 public static int daan1[];
 public static String shu[];
 public static int d;
 public static int dui;
 static Random a=new Random();
 public static List list;
 public static String shuzu[];
 public static int daanshuzu[];
 public static void main(String[] args)
 {
  Scanner scan=new Scanner(System.in);
  System.out.println("请输入题的数量:");
  System.out.println("请输入数值范围:");
  System.out.println("请输入操作数个数:");
     t=scan.nextInt();
  n=scan.nextInt();
  j=scan.nextInt();
  daanshuzu=new int [t];
  shu=new String[t];
     daan1=new int[t];
  if(j>2)
  {
  System.out.println("请选择是否需要乘除法(Y or N):");
  System.out.println("请选择是否需要括号(Y or N):"); 
     o=scan.next().charAt(0);
     y=scan.next().charAt(0);
  }
     chutigeshu(t);
  for(int p=1;p<=t;p++)
  {
      list=new ArrayList();
   System.out.print("第"+p+"题:  ");
      caozuoshugeshu(j);
      if(j>2)
      {
    shuzu[p-1]="";
    for(int u=0;u<list.size();u++)
    {
      shuzu[p-1]=shuzu[p-1]+list.get(u);
    }
    shuzu[p-1]+="=";
   chachong(shuzu[p-1],p);
   System.out.println(shuzu[p-1]);
      }
      else
      {
        System.out.print(shu[p-1]+"=");
      }
   int daan=scan.nextInt();
   daan(daan);
        }
  panduan(daanshuzu,daan1,shu);
 }
 public static void panduan(int a[],int b[],String c[])
 {
  for(int i=0;i<t;i++)
  {
   if(a[i]==b[i])
   {
    dui++;
   }
   else
   {
    System.out.println(c[i]);
   }
  }
  System.out.println("正确率为:"+(double)dui/(double)t);
 }
 public static void daan(int daan)
 {  
  daanshuzu[g++]=daan;   
 }
 public static void chachong(String str,int p)
 {
  boolean is=false;
  while(is)
  {
  for(int s=0;s<p-1;s++)
  {
   if(str.equals(shuzu[s]))
   {
    caozuoshugeshu(j);
   }
   else
    k++;
  }
  if(k==p-1)
  {
   is=true;
  }
  }
 }
 public static void caozuoshugeshu(int j)
 {
  if(j>2)
  {
  for(int i=0;i<2*j-1;i++)
  {
   if((i+1)%2!=0)
   {
    list.add(caozuoshufanwei(n));
   }
   else
   {
    int c=a.nextInt(4)+1;
    if(o=='N')
    {
     if(c==3||c==4)
     {
      c=a.nextInt(2)+1;
     }
    }
    switch(c)
    {
    case 1:list.add('+');break;
    case 2:list.add('-');break;
    case 3:list.add('*');break;
    case 4:list.add('/');break;
    }
   }
  }
  if(y=='Y')
  {
   int v=a.nextInt(2*j-3);
   int g=a.nextInt(2*j+1);
   if((v%2==0&&g%2==0)&&(g-v>=4))
   {
    list.add(v,'(');
    list.add(g,')');
   }
  }
  }
  else
  {
   caozuoliang();
  }
 }
 public static void caozuoliang()
 {
  int b=a.nextInt(n)+1;
  int c=a.nextInt(n)+1;
     switch(a.nextInt(4)+1)
     {
     case 1:
      daan1[d++]=b+c;
      shu[str++]=b+"+"+c;
      break;
     case 2:
      daan1[d++]=b-c;
      shu[str++]=b+"-"+c;
      break;
     case 3:
      daan1[d++]=b*c;
      shu[str++]=b+"*"+c;
      break;
     case 4:
      daan1[d++]=b/c;
      shu[str++]=b+"/"+c;
      break;
     }
 }
 public static void chutigeshu(int t)
 {
   shuzu=new String[t];
 }
 public static int caozuoshufanwei(int n)
 {
  return a.nextInt(n)+1;
 }
}
 这次的代码是我在上次的代码基础上进行改进的,以不同的方法对程序的命令进行分类,使其整个程序看起来更加的井然有序,当然,我的代码还有很多的不足,在下周周二前争取把代码完善,把剩下的功能给尽量的昨晚,当然,前提是我能的话。
posted @ 2020-10-04 21:35  一条快乐的小鲸鱼  阅读(221)  评论(0编辑  收藏  举报