软件工程网络15结对编程作业1(201521123018谢元将)

结对编程作业

一、队员信息

姓名学号博客地址码云地址
谢元将201521123018谢元将
罗登宇201521123019罗登宇

1109479-20180325145243850-536943305.jpg

二、需求分析

随着课余娱乐项目的增加,现在的小孩子在学习上变得越来越不自觉,需要老师、家长在背后催着才会做作业,因此需要实现一个计时功能,以时间的流逝来给孩子一些紧迫感。另外,在经过长期的运算训练之后,如何才知道学生的运算水平是否有显著提高呢?将做题过程进行计时可以解决这个问题,从花费时间的长短就可以看出是否取得进步。同时,老师、家长也可以利用计时功能设立奖励机制。例如,规定在二十秒内完成十道题目的学生可以得到一个大大的奖励,激励学生一次又一次地挑战这个时间。
为了让这个四则运算自动生成器的使用人群跨越国界,就需要我们实现语言切换功能。不仅让中国大陆的小孩可以简单上手这个小程序,同时还能让中国台湾以及外国的小孩同样可以使用。实现这样一个小小的功能,就可以让我们这个自动生成器的受众面遍布世界各地,不受语言的障碍,何乐而不为呢?
大多数的时候我们都不能要求这些小孩子在一个时间段内持续不断地做计算题,而是让他们分次来完成。举个例子,当老师布置小孩子一周之内要完成200道的四则运算,并记录做对多少题,做错多少题时,绝大部分学生肯定会选择一天做几次,一次做几题,极少同学会选择一次性把这200道题做完。这样子就存在一个问题,如果分次做的话那每一次做对多少题做错多少题都要登记下来吗?这也太麻烦了。因此就需要我们能够记录用户做题的总数,即使在用户退出又再次启动时,可以做到把以前的对错数量保存并在此基础上进行增量计算。

三、代码展示

1.代码分析

学长的项目是一个支持简、繁体和英语的三种语言四则运算器,支持加减乘除和分数运算。我们基于学长的代码进行了一定的改进和新添功能:乘方。

2.脑图
1109479-20180325153542070-1191319325.png
3.(1)、计时功能

     package szys;
     import java.util.TimerTask;
     import javax.swing.JTextField;
     public class Work_Time extends TimerTask{
     static int y=0;
     static int z=0;
      @Override
       public void run() {
           // TODO Auto-generated method stub
           String str_second = Frame.Time.getText().substring(6);
           int x = Integer.parseInt(str_second);
           if(Frame.Time.getText().equals("00:00.00")){
              x=0;y=0;z=0;
           }
           x++;
           if(z<10){
               if(y<10)
               {
                   if(x<100)
                       Frame.Time.setText("0"+z+":0"+y+"."+x);
                   if(x==100)
                   {
                       y++;
                      Frame.Time.setText("0"+z+":0"+y+".0");
                      x=0;
                       
                   }
               }
               if(y<60&&y>=10)
               {
                   if(x<100)
                      Frame.Time.setText("0"+z+":"+y+"."+x);
                   if(x==100)
                  {
                       y++;
                       Frame.Time.setText("0"+z+":"+y+".0");
                       x=0;
                       
                   }
               }
               if(y==60){
                   y=0;
                   x=0;
                   z++;
              }
           }
           if(z<60&&z>=10){
               if(y<10)
               {
                   if(x<100)
                       Frame.Time.setText(z+":0"+y+"."+x);
                   if(x==100)
                   {
                       y++;
                       Frame.Time.setText(z+":0"+y+".0");
                       x=0;
                       
                   }
               }
              if(y<60&&y>=10)
              {
                   if(x<100)
                       Frame.Time.setText(z+":"+y+"."+x);
                   if(x==100)
                  {
                       y++;
                        Frame.Time.setText(z+":"+y+".0");
                       x=0;
                      
                   }
               }
               if(y==60){
                  y=0;
                   x=0;
                   z++;
               }
               else
               {
                   Frame.Time.setText("都一小时了放弃吧");
               }
            }
        }

(2.1)、整数的四则运算和乘方

    public String int_szys()
    {
        int result = 0;
    switch(ysfh){
    case 0:result=input1+input2;break;
    case 1:result=input1-input2;break;
    case 2:result=input1*input2;break;
    case 3:if(input1==0)
                    {
                str=int_szys();
                return str;
                    }
            else
            {
                if(input1!=0&&input1!=1){
                int d=common_divisor(input2,input1);
                input2=input2/d;
                input1=input1/d;
                str = (input2+"/"+input1);
                 }
                        if(input1==1)
                        str=(""+input2);
            };
            break;
    case 4:result=(int) Math.pow(input2, input1);break;
    default:println("请输入正确的运算符号!");break;
        }
     return str;
    }

(2.2)、分数的四则运算和乘方

    public String fs_szys(){
        this.a = new Random().nextInt(10)%(10-1+1) + 1;
        this.b = new Random().nextInt(10)%(10-2+1) + 2;
        this.c = new Random().nextInt(10)%(10-1+1) + 1;
        this.d = new Random().nextInt(10)%(10-2+1) + 2;
        if(b<a||d<c||b%a==0||d%c==0)
        {
            str=fs_szys();
            return str;
        }
            
        int fz=1,fm=c*e;
    switch(ysfh){
    case 0:fz=a*d+b*c;break;
    case 1:fz=a*d-b*c;
                    if(fz==0)
                  {
                  return str=("0");
                  };
                  break;
    case 2:fz=a*c;break;
    case 3:fz=a*d;
                    fm=b*c;
                    break;
    case 4:fz=(int) Math.pow(a*d, f);
                    fm=(int) Math.pow(b*c, f);
                   break;
    default:println("请输入正确的运算符号!");break;
    }
    str = (fz+"/"+fm);
        return str;      
    }

四、psp表格

PSP2.1个人开发流程预估耗费时间(分钟)实际耗费时间(分钟)
Planning计划3050
Estimate明确需求和其他相关因素,估计每个阶段的时间成本1510
Development开发180240
Analysis需求分析 (包括学习新技术)2030
Design Spec生成设计文档2020
Design Review设计复审1012
Coding Standard代码规范1015
Design具体设计3030
Coding具体编码90120
Code Review代码复审1520
Test测试(自我测试,修改代码,提交修改)2030
Reporting报告6050
测试报告1010
计算工作量105
并提出过程改进计划1015

五、代码上传码云

1109479-20180325212759283-245490643.png

转载于:https://www.cnblogs.com/yuanj/p/8644525.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值