结对编程技术是指两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。 我和一位小组成员利用结对编程一起完成了如下题目
题目描述
结对编程对象
黎瑶
双方贡献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
List
List
List
List
List
List
List
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());*/
运算结果: