您的位置:首页 > 产品设计 > UI/UE

结对编程-四则运算-GUI

2017-03-14 11:09 246 查看
201421123022 王若凡 201421123026 欧阳勇

https://git.coding.net/ttoyy/sizeyunsuan-GUI.git

a.需求分析:

这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:

记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。

有计时功能,能显示用户开始答题后的消耗时间。

界面支持中文简体/中文繁体/英语,用户可以选择一种;

b.功能设计

1.生成自定义数目算术题。

2.支持整数和分数的加减乘除。

3.输入答案判断对错,错误后写出正确答案。

4.集中收集错题。

5.简繁中英文切换。

6.计时功能。

思维导图





c.设计实现与代码展示(Viewcode

计时功能:

B0.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

tishu=Integer.parseInt(T1.getText());//获取总题数

timer = new Timer();

finishtime=System.currentTimeMillis();

starttime=finishtime;

timer.schedule(new TimerTask()

{

public void run() {

finishtime=System.currentTimeMillis();

duration=finishtime-starttime;

String str=df.format(new Date(duration));

L12.setText(str);

if(summary==tishu){

try {

Thread.sleep(2000000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}, 1000, 1000);

}

});


出题功能:

B1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

noanswer=tishu-dadui-dacuo;//算出未答题数

L9.setText("");

L8.setText(null);

T3.setText(null);

if(summary==tishu)

{

JOptionPane.showMessageDialog(null, "答题已完成,答题总题数:"+tishu+",答对题数:"+dadui+",答错题数:"+dacuo+",未答数:"+noanswer);

frame.setVisible(false);

}

//生成一个随机算术.该处代码由上次作业改成。

if(t==1){summary++;} } });


结果判断与输出

T3.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent d) {

if(sum1.equals(T3.getText()))

{

L9.setText("Right!");

dadui++;

L10.setText(String.valueOf(dadui));

}

else

{

L9.setText("Error!answer is:"+sum1);

dacuo++;

FileWriter fw = null;

try {

//如果文件存在,则追加内容;如果文件不存在,则创建文件

File f=new File("D:/cuoti.txt");

fw = new FileWriter(f, true);

}

catch (IOException e) {

e.printStackTrace();

}

PrintWriter pw = new PrintWriter(fw);

pw.println(L8.getText()+"="+T3.getText()+"    "+"正确答案:"+sum1 +'\n');

pw.flush();

try {

fw.flush();

pw.close();

fw.close();

} catch (IOException e) {

e.printStackTrace();

}

L11.setText(String.valueOf(dacuo));

}

}

});


错题统计收集

FileWriter fw = null;

try {

//如果文件存在,则追加内容;如果文件不存在,则创建文件

File f=new File("D:/cuoti.txt");

fw = new FileWriter(f, true);

}

catch (IOException e) {

e.printStackTrace();

}

PrintWriter pw = new PrintWriter(fw);

pw.println(L8.getText()+"="+T3.getText()+"    "+"正确答案:"+sum1 +'\n');

pw.flush();

try {

fw.flush();

pw.close();

fw.close();

} catch (IOException e) {

e.printStackTrace();

}
B6.addActionListener(new ActionListener(){//错题本打开

public void actionPerformed(ActionEvent d) {

try

{

Runtime.getRuntime().exec("notepad.exe D:/cuoti.txt");

}

catch(Exception e)

{

System.out.println(e.getMessage());

}

}

});


语言切换

B3.addActionListener(new ActionListener(){//简体中文

public void actionPerformed(ActionEvent e) {

L1.setText("题数:");

L2.setText("题目:");

L3.setText("输入答案:");

L4.setText("结果:");

L5.setText("答对题数:");

L6.setText("答错题数:");

L7.setText("答题时间:");

B0.setText("开始");

B1.setText("下一题");

B6.setText("错题集");

//B2.setText("计时");

}

});

B4.addActionListener(new ActionListener(){//繁体中文

public void actionPerformed(ActionEvent e) {

L1.setText("題數");

L2.setText("題目:");

L3.setText("輸入答案:");

L4.setText("結果:");

L5.setText("答對題數:");

L6.setText("答錯題數:");

L7.setText("答題時間:");

B0.setText("開始");

B1.setText("下一題");

B6.setText("錯題集");

}

});

B5.addActionListener(new ActionListener(){//英文

public void actionPerformed(ActionEvent e) {

L1.setText("Question number");

L2.setText("Test:");

L3.setText("Enter the answer:");

L4.setText("Result:");

L5.setText("Right number:");

L6.setText("Wrong number:");

L7.setText("Answer times:");

B0.setText("Run");

B1.setText("Next");

B6.setText("WrongTest");

}

});


d.测试运行













点击错题集:



PSP表格

PSP2.1

Personal Software Process Stages

Estimated time(h)

actual time(h)

Planning

计划

16

17

· Estimate

估计这个任务需要多少时间

16

17

Development

开发

8

9

· Analysis

需求分析 (包括学习新技术)

1

0.5

· Design Spec

生成设计文档

0.5

0.5

· Design Review

设计复审

1

1

· Coding Standard

代码规范

0.5

0.2

· Design

具体设计

2

1.5

· Coding

具体编码

8

8

· Code Review

代码复审

0.5

0.5

· Test

测试(自我测试,修改代码,提交修改)

1

1.5

Reporting

报告

1.5

1.5

·

测试报告

·

计算工作量

0.5

1

·

并提出过程改进计划

1

1





总结:

此次结对编程任务与王若凡合作,开始我们先对需求进行了分析,对于功能实现先定了大致方向。基础四则运算算法取用王若凡的程序,在此基础上实现各种功能。在错题集功能上耗费时间较多,想对错题集里的错题进行编号的功能还是无法完成实现。

结对编程无疑提高了我们编程的高效性,互相监督,取长补短,如我的思路较快,而他实际操作网上查找资料能力较强。两个人的思路想法在同一时间产生碰撞,让程序更好更快地完成。一个人编写另一个人旁边护航有效地发现一些错误特别是低级错误,

如此才不会产生当局者迷而陷入死循环。

汉堡包点评:

先来一片面包: 我们有着一个共同任务,对任务有着相同思路,并且我们可以互相信赖,主要是他看上了我的壁纸~;

铺上肉与佐料:队友在编程中充分地展示了他强大的动手能力与资料知识搜索能力,而且他是一个很耐心的人,是能带着我认真打代码的引航者。

不足之处在于对问题解决思路不够清晰,思路的表达条理性不够。若有一个清晰的思路加上他强大的编程动手能力,那肯定会成为无敌的编程大神。

然后再来一片面包:方向盘与gps导航,才能走的更远才能探索未知道路;互相配合,终能完成任务,更上一层楼。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: