结对编程:四则运算的实现

结对编程技术是指两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。  我和一位小组成员利用结对编程一起完成了如下题目

题目描述


结对编程对象

黎瑶

双方贡献2:1

源代码

//生成随机数

package com.thd.ruanjian;


import java.util.Random;


public class Rodomnumber {
private int rodomnumber;
int max=100;
    int min=0;
    Random random = new Random();


    
public int getRodomnumber() {
this.rodomnumber = random.nextInt(max)%(max-min+1) + min;
return rodomnumber;
}


public void setRodomnumber(int rodomnumber) {
 
    
this.rodomnumber = rodomnumber;
}

}

//生成随机符号

package com.thd.ruanjian;


import java.util.Random;


public class Rodommark {

char[] marks ={'+','-','*','/'};
int []kuohao = {0,1,3};
char mark;
int kuohaoindex;

Random random=new Random();
public int getindex(){
int index=random.nextInt(kuohao.length);
return kuohao[index];
}
public char getmark(int grade){
int index;
if(grade==2){
index=random.nextInt(2);
}
else if(grade==3){
index=random.nextInt(4);
}
else{
index=random.nextInt(marks.length);
}
    this.mark=marks[index];
    return this.mark;
}

}

//分数类

package com.thd.ruanjian;


public class Fraction {
int nume;
    int deno;


    public Fraction(int nume, int deno) {
        this.nume = nume;
        this.deno = deno;
    }


    public Fraction add(Fraction b){
        int lcm = lcm(this.deno,b.deno);
        int tempNume = (this.nume * lcm / this.deno + b.nume * lcm / b.deno);
        int gcd = gcd(tempNume > 0 ? tempNume : -tempNume,lcm);
        return new Fraction(tempNume / gcd,lcm / gcd);
    }
    public Fraction reduce(Fraction b){
    int lcm = lcm(this.deno,b.deno);
        int tempNume = (this.nume * lcm / this.deno - b.nume * lcm / b.deno);
        int gcd = gcd(tempNume > 0 ? tempNume : -tempNume,lcm);
        return new Fraction(tempNume / gcd,lcm / gcd);
    }
    public Fraction ride(Fraction b){
    return new Fraction(this.deno*b.deno,this.nume*b.nume);
    }
    public Fraction divid(Fraction b){
    return new Fraction(this.deno/b.deno,this.nume/b.nume);
    }
    private int gcd(int a,int b){
        if (a < b) {
            int temp = a;
            a = b;
            b = temp;
        }


        if (b == 0) return 1;


        int r = a % b;
        if (r == 0) return b;
        else return gcd(b,r);
    }


    private int lcm(int a,int b){
        return a * b / gcd(a,b);
    }


    @Override
    public String toString() {
        if (nume == 0) return "0";
        else if (deno == 1) return "" + nume;
        else if (nume > deno) return (nume / deno) + " " + (nume % deno) + "/" + deno;
        else if (nume == deno) return "1";
        else return nume + "/" + deno;
    }

}

//测试类

package com.thd.ruanjian;


import java.lang.reflect.Array;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;


import org.omg.PortableInterceptor.Interceptor;


public class Test {

@SuppressWarnings("unchecked")
public static void main(String[] args) {
List <Integer>firstnumber = new ArrayList<Integer>();
List  <Integer>secendnumber = new ArrayList<Integer>();
List  <Integer>thirdnumber = new ArrayList<Integer>();
List  <Integer>fortynumber = new ArrayList<Integer>();
List <Character>firstchar = new ArrayList<Character>();
List <Character> secendchar = new ArrayList<Character>();
List <Integer> kuohao = new ArrayList<>();
List <Fraction>fraction = new ArrayList();
List result = new ArrayList();
List zresult = new ArrayList();//中间变量
System.out.println("请输入你的年级(2,3,4)");
@SuppressWarnings("resource")
Scanner in= new Scanner(System.in);

int grade = in.nextInt();
for(int i=0;i<12;i++){
int a = new Rodomnumber().getRodomnumber();
int b = new Rodomnumber().getRodomnumber();
char c  = new Rodommark().getmark(grade);
int A  =  new Rodomnumber().getRodomnumber();
int B  = new Rodomnumber().getRodomnumber();
char C = new Rodommark().getmark(grade);
int kuohaoindex = new Rodommark().getindex(); 
firstnumber.add(a);
secendnumber.add(b);
firstchar.add(c);
thirdnumber.add(A);
fortynumber.add(B);
secendchar.add(C);
kuohao.add(kuohaoindex);
}




StringBuffer d = new StringBuffer();
System.out.println("试题");
if(grade==2){
for(int i=0;i<12;i++){
d.append(firstnumber.get(i));
d.append(firstchar.get(i));
d.append(secendnumber.get(i));
System.out.print(d.toString()+"="+" ");
if((i+1)%3==0){
System.out.println();
}
d.delete(0, d.length());
switch (firstchar.get(i)) {
case '+':
  result.add(firstnumber.get(i)+secendnumber.get(i));

break;
case '-':
result.add(firstnumber.get(i)-secendnumber.get(i));
break;

default:
break;
}
}


}
if(grade==3){

for(int i=0;i<12;i++){
d.append(firstnumber.get(i));
d.append(firstchar.get(i));
d.append(secendnumber.get(i));
System.out.print(d.toString()+"="+" ");
d.delete(0, d.length());
if((i+1)%3==0){
System.out.println();
}
switch (firstchar.get(i)) {
case '+':
result.add(firstchar.get(i)+secendnumber.get(i));

break;
case '-':
result.add(firstnumber.get(i)-secendnumber.get(i));
break;
case '*':
result.add(firstnumber.get(i)*secendnumber.get(i));
break;
case '/':

try {
int yushu = firstnumber.get(i)%secendnumber.get(i);
int divid = firstnumber.get(i)/secendnumber.get(i);
if(yushu==0){
result.add(divid) ;
}
else{
StringBuffer dresult= new StringBuffer();
dresult.append(divid);
dresult.append("……");
dresult.append(yushu);
result.add(dresult);
}



} catch (Exception e) {
e.printStackTrace();
}
break;


default:
break;
}
}

}


if(grade==4){

System.out.println("分数计算");
for (int k = 0; k < 12; k++) {
if((k)%3==0){
System.out.println();
}
d.append(firstnumber.get(k));
d.append("/");
d.append(secendnumber.get(k));
d.append(firstchar.get(k));
d.append(thirdnumber.get(k));
d.append("/");
d.append(fortynumber.get(k));
System.out.print(d.toString()+"="+" ");
d.delete(0, d.length());
Fraction fraction1 = new Fraction(firstnumber.get(k),secendnumber.get(k));
Fraction fraction2 = new Fraction(thirdnumber.get(k),fortynumber.get(k));
fraction.add(fraction1.add(fraction2));
}

System.out.println();
System.out.println("小数计算");
for(int i=0;i<12;i++){
if((i)%3==0){
System.out.println();
}
if(kuohao.get(i)==0){
d.append(firstnumber.get(i));
d.append(firstchar.get(i));
d.append(secendnumber.get(i));
d.append(secendchar.get(i));
d.append(thirdnumber.get(i));
System.out.print(d.toString()+"="+" ");
d.delete(0, d.length());

if(firstchar.get(i)=='+'&&secendchar.get(i)=='+'){
result.add((double)(firstnumber.get(i)+secendnumber.get(i)+thirdnumber.get(i)));
}
else if(firstchar.get(i)=='+'&&secendchar.get(i)=='-'){
result.add((double)(firstnumber.get(i)+secendnumber.get(i)-thirdnumber.get(i)));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='+'){
result.add((double)(firstnumber.get(i)-secendnumber.get(i)+thirdnumber.get(i)));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='-'){
result.add((double)(firstnumber.get(i)-secendnumber.get(i)-thirdnumber.get(i)));
}
else if(firstchar.get(i)=='+'&&secendchar.get(i)=='*'){
result.add((double)(firstnumber.get(i)+secendnumber.get(i)*thirdnumber.get(i)));
}
else if(firstchar.get(i)=='+'&&secendchar.get(i)=='/'){
result.add((double)firstnumber.get(i)+(double)secendnumber.get(i)/(double)thirdnumber.get(i));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='*'){
result.add((double)(firstnumber.get(i)-secendnumber.get(i)/thirdnumber.get(i)));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='/'){
result.add((double)firstnumber.get(i)-(double)secendnumber.get(i)/(double)thirdnumber.get(i));
}
else if(firstchar.get(i)=='*'&&secendchar.get(i)=='*'){
result.add((double)(firstnumber.get(i)*secendnumber.get(i)*thirdnumber.get(i)));
}
else if(firstchar.get(i)=='/'&&secendchar.get(i)=='/'){
result.add((double)firstnumber.get(i)/(double)secendnumber.get(i)/(double)thirdnumber.get(i));
}
else if(firstchar.get(i)=='*'&&secendchar.get(i)=='/'){
result.add((double)(firstnumber.get(i)*secendnumber.get(i))/(double)thirdnumber.get(i));
}
else{
result.add((double)firstnumber.get(i)/(double)secendnumber.get(i)*(double)thirdnumber.get(i));
}
}
else if(kuohao.get(i) ==1){
d.append("(");
d.append(firstnumber.get(i));
d.append(firstchar.get(i));
d.append(secendnumber.get(i));
d.append(")");
d.append(secendchar.get(i));
d.append(thirdnumber.get(i));
System.out.print(d.toString()+"="+" ");
d.delete(0, d.length());
if(firstchar.get(i)=='+'&&secendchar.get(i)=='+'){
result.add((double)(firstnumber.get(i)+secendnumber.get(i)+thirdnumber.get(i)));
}
else if(firstchar.get(i)=='+'&&secendchar.get(i)=='-'){
result.add((double)(firstnumber.get(i)+secendnumber.get(i)-thirdnumber.get(i)));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='+'){
result.add((double)(firstnumber.get(i)-secendnumber.get(i)+thirdnumber.get(i)));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='-'){
result.add((double)(firstnumber.get(i)-secendnumber.get(i)-thirdnumber.get(i)));
}
else if(firstchar.get(i)=='+'&&secendchar.get(i)=='*'){
result.add((double)((firstnumber.get(i)+secendnumber.get(i))*thirdnumber.get(i)));
}
else if(firstchar.get(i)=='+'&&secendchar.get(i)=='/'){
result.add(((double)firstnumber.get(i)+(double)secendnumber.get(i))/(double)thirdnumber.get(i));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='*'){
result.add((double)((firstnumber.get(i)-secendnumber.get(i))/thirdnumber.get(i)));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='/'){
result.add(((double)firstnumber.get(i)-(double)secendnumber.get(i))/(double)thirdnumber.get(i));
}
else if(firstchar.get(i)=='*'&&secendchar.get(i)=='*'){
result.add((double)(firstnumber.get(i)*secendnumber.get(i)*thirdnumber.get(i)));
}
else if(firstchar.get(i)=='/'&&secendchar.get(i)=='/'){
result.add((double)firstnumber.get(i)/(double)secendnumber.get(i)/(double)thirdnumber.get(i));
}
else if(firstchar.get(i)=='*'&&secendchar.get(i)=='/'){
result.add((double)(firstnumber.get(i)*secendnumber.get(i))/(double)thirdnumber.get(i));
}
else{
result.add((double)firstnumber.get(i)/(double)secendnumber.get(i)*(double)thirdnumber.get(i));
}
}
else {

d.append(firstnumber.get(i));
d.append(firstchar.get(i));
d.append("(");
d.append(secendnumber.get(i));
d.append(secendchar.get(i));
d.append(thirdnumber.get(i));
d.append(")");
System.out.print(d.toString()+"="+" ");
d.delete(0, d.length());
if(firstchar.get(i)=='+'&&secendchar.get(i)=='+'){
result.add((double)(firstnumber.get(i)+secendnumber.get(i)+thirdnumber.get(i)));
}
else if(firstchar.get(i)=='+'&&secendchar.get(i)=='-'){
result.add((double)(firstnumber.get(i)+secendnumber.get(i)-thirdnumber.get(i)));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='+'){
result.add((double)(firstnumber.get(i)-secendnumber.get(i)+thirdnumber.get(i)));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='-'){
result.add((double)(firstnumber.get(i)-secendnumber.get(i)-thirdnumber.get(i)));
}
else if(firstchar.get(i)=='+'&&secendchar.get(i)=='*'){
result.add((double)(firstnumber.get(i)+secendnumber.get(i)*thirdnumber.get(i)));
}
else if(firstchar.get(i)=='+'&&secendchar.get(i)=='/'){
result.add((double)firstnumber.get(i)+(double)secendnumber.get(i)/(double)thirdnumber.get(i));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='*'){
result.add((double)(firstnumber.get(i)-secendnumber.get(i)/thirdnumber.get(i)));
}
else if(firstchar.get(i)=='-'&&secendchar.get(i)=='/'){
result.add((double)firstnumber.get(i)-(double)secendnumber.get(i)/(double)thirdnumber.get(i));
}
else if(firstchar.get(i)=='*'&&secendchar.get(i)=='*'){
result.add((double)(firstnumber.get(i)*secendnumber.get(i)*thirdnumber.get(i)));
}
else if(firstchar.get(i)=='/'&&secendchar.get(i)=='/'){
result.add((double)firstnumber.get(i)/(double)secendnumber.get(i)/(double)thirdnumber.get(i));
}
else if(firstchar.get(i)=='*'&&secendchar.get(i)=='/'){
result.add((double)(firstnumber.get(i)*secendnumber.get(i))/(double)thirdnumber.get(i));
}
else{
result.add((double)firstnumber.get(i)/(double)secendnumber.get(i)*(double)thirdnumber.get(i));
}
}
}










}
System.out.println();
System.out.println("答案");
int mark=0;
for (Fraction fraction1 : fraction) {
mark++;
if(mark%6==0){
System.out.println();
}
System.out.print(fraction1+"  ");
}
for (int j = 0; j < result.size(); j++) {

if(grade == 4){

if((j+1)%6==0){
System.out.println();
}
double f = (double)result.get(j);
BigDecimal  D  =  new  BigDecimal(f); 
double  f1  =  D.setScale(2,  BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.print(f1+" ");
}
else{


System.out.print(result.get(j)+" ");
if((j+1)%6==0){
System.out.println();
}
}

}
}
}
/*double text = 3;
double text1 = 7;
double  f  =  text/text1;
BigDecimal  D  =  new  BigDecimal(f); 
double  f1  =  D.setScale(2,  BigDecimal.ROUND_HALF_UP).doubleValue(); 
System.out.println(f1);
System.out.println(5%3);*/
/*int result;
for (int j = 0; j < 12; j++) {
switch (c) {
case '+':
result = a+b;

break;
case '-':
result = a-b;
break;
case '*':
result = a*b;
break;
case '/':

try {
result = a/b;
} catch (Exception e) {
e.printStackTrace();
}
break;

case '(':
break;
default:
break;
}
}*/

//StringBuffer d = new StringBuffer();
/*d.append(a);
d.append(c);
d.append(b);
System.out.println(d.toString());*/


运算结果:


猜你喜欢

转载自blog.csdn.net/qq_32406257/article/details/80153987