结对编程
Posted smalle
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结对编程相关的知识,希望对你有一定的参考价值。
结对编程
一.项目前述
1.项目内容
1.1小学老师每周用该软件随机给同学出300道四则运算题
1.2编程语言 java (因为要设计图形界面生成txt文件方便同学做题和老师批改)
1.3编写出实现300道题的结果
1.4定制出题数量
1.5编程过程中遇到的问题
1.6结对编程的收获
1.7项目成员 (1759217 , 1759218)
二.项目概览
1.1小学老师每周用该软件随机给同学出300道四则运算题的实现代码:(估计时间:15分钟)
import java.util.Random;
public class Math_Problem {
public static void main (String args[])
{
String[] str=new String[]{"+","-","*","/"};
int[] number=new int[100];
for(int i=1;i<=100;i++)
{
number[i-1]=i;
}
Random a=new Random();
for(int i=0;i<300;i++)
{
System.out.println(number[a.nextInt(100)]+str[a.nextInt(4)]+number[a.nextInt(100)]+"=");
}
}
}
实现结果:
1.2用java实现窗口的实现代码(估计时间:30分钟)
package ji;
public class Application {
public static void main(String args[]) {
WindowMenu win=new WindowMenu("四则运算",30,30,360,360);
}
}
package ji;
import javax.swing.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import static javax.swing.JFrame.*;
public class WindowMenu extends JFrame {
JMenuBar menubar;
JMenu menu,subMenu1,subMenu2,subMenu3,subMenu4;
JTextArea textShow1,textShow2,textShow3,textShow4;
public WindowMenu() {
}
public WindowMenu(String s,int x,int y,int w,int h) {
init(s);
setLocation(x,y);
setSize(w,h);
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
void init(String s) {
setTitle(s);
menubar=new JMenuBar();
menu=new JMenu("计算");
subMenu1=new JMenu("加法");
subMenu2=new JMenu("减法");
subMenu3=new JMenu("乘法");
subMenu4=new JMenu("除法");
menu.add(subMenu1);
menu.add(subMenu2);
menu.add(subMenu3);
menu.add(subMenu4);
subMenu1.add(new JTextArea(9,30));
subMenu2.add(new JTextArea(9,30));
subMenu3.add(new JTextArea(9,30));
subMenu4.add(new JTextArea(9,30));
menubar.add(menu);
setJMenuBar(menubar);
}
}
实现结果:
(扩展性:学生可以把随机给出的题在图形窗口写出结果,保存为txt文件,发给老师批改)
1.3编写出实现300道题的结果的实现代码(估计时间:30分钟)
import java.util.Random; //利用Random类可以实现随机出题
public class Math_Problem {
public static void main (String args[])
{
String[] str=new String[]{"+","-","*","/"};
double[] number=new double[100];
for(int i=1;i<=100;i++)
{
number[i-1]=i;
}
Random a=new Random();
for(int i=0;i<300;i++)
{
double answer;
//answer=number[a.nextInt(100)]str[a.nextInt(4)]number[a.nextInt(100)];
double x=number[a.nextInt(100)];
double y=number[a.nextInt(100)];
String m=str[a.nextInt(4)];
if(m=="+")
{
answer=x+y;
if(answer<=100)
{
System.out.println(x+m+y+"="+answer);
}
else
continue;
//System.out.println(answer);
}
else if(m=="-")
{
answer=x-y;
System.out.println(x+m+y+"="+answer);
//System.out.println(answer);
}
else if(m=="*")
{
answer=x*y;
if(answer<=100)
{
System.out.println(x+m+y+"="+answer);
}
else
continue;
//System.out.println(answer);
}
else if(m=="/")
{
answer=x/y;
if(answer<=100)
{
System.out.println(x+m+y+"="+answer);
}
else
continue;
//System.out.println(answer);
}
//System.out.println(number[a.nextInt(100)]+str[a.nextInt(4)]+number[a.nextInt(100)]+"=");
}
}
}
实现结果:
1.4定制出题数量的实现代码(估计时间:15分钟)
package ji;
import java.util.Random;
public class Math_Problem {
public static void main (String args[])
{
String[] str=new String[]{"+","-","*","/"};
double[] number=new double[100];
int num=5; // 出题数量
for(int i=1;i<=100;i++)
{
number[i-1]=i;
}
Random a=new Random();
for(int i=0;i<num;i++)// 定制出题数量
{
double answer;
//answer=number[a.nextInt(100)]str[a.nextInt(4)]number[a.nextInt(100)];
double x=number[a.nextInt(100)];
double y=number[a.nextInt(100)];
String m=str[a.nextInt(4)];
if(m=="+")
{
answer=x+y;
if(answer<=100)
{
System.out.println(x+m+y+"="+answer);
}
else
continue;
//System.out.println(answer);
}
else if(m=="-")
{
answer=x-y;
System.out.println(x+m+y+"="+answer);
//System.out.println(answer);
}
else if(m=="*")
{
answer=x*y;
if(answer<=100)
{
System.out.println(x+m+y+"="+answer);
}
else
continue;
//System.out.println(answer);
}
else if(m=="/")
{
answer=x/y;
if(answer<=100)
{
System.out.println(x+m+y+"="+answer);
}
else
continue;
//System.out.println(answer);
}
//System.out.println(number[a.nextInt(100)]+str[a.nextInt(4)]+number[a.nextInt(100)]+"=");
}
}
}
实现结果:
1.5编程过程中遇到的问题
(1)设计阶段:我们就一个大概的想法,然后就分工去做,最后发现截然不同,两个人的代码合不上
(2)编程阶段:单独编程总是会在最后发现不了哪里出错(虽然用JAVA编程,错误会显示,但也要重新找)
1.6结对编程的收获
通过这次结对编程,我们发现这比单独编程的效率高并提高了我们的结对编程的能力,同时也让我们收获了很多经验和教训(发现对方的编程风格和错误,用来规范自己同时能让对方指出自己的错误并改正,另外也让我们认识到沟通的重要性)。结对编程让我们两个人所写的代码不断地处于“复审”的过程,我们能够不断的审核,提高设计和编码的质量,可以及时发现并解决问题,避免把问题拖到后面的阶段去。
以上是关于结对编程的主要内容,如果未能解决你的问题,请参考以下文章