软件工程个人作业03

一.设计思路

1.输入一个整数m,用于控制题目数量

2.随机生成一个整数m1,用于控制是加减法还是加减乘除法

3.输入一个整数m2,用于控制生成随机数值的范围

4.随机生成一个2-9之间的数m4,用来控制参数个数

5.随机生成一个01的数,1代表是正数,0代表是负数

6.随机生成一个a,ba,b,c,d之间的一个字母cha代表+b代表-,c代表*d代表÷

7.随机产生两个0-m2之间的整数x,y

8.计算这两个随机数的余数n是否是整数

9.如果输出的是0并且n==0,则输出-x/y+ch

10.如果输出的是0n=0输出-x+”/”+y+ch

11.如果输出的是1并且n==0,则输出x/y+ch

12.如果输出的是1n=0输出x+”/”+y+ch

13.重复步骤4-11,直到循环次m4

14.再随机生成一个01的数,1代表是正数,0代表是负数

15.再随机产生两个0-m2之间的整数篇,p,q

16.计算这两个随机数的余数w是否是整数

17.如果输出的是0并且w==0,则输出-p/q=

18.如果输出的是0w=0输出-p+”/”+q=

19.如果输出的是1并且w==0,则输出p/q=

20.如果输出的是1w=0输出p+”/”+q=

21.在参数之前随机产生前括号,在3*n+2后加后括号,1<n<7

22.for循环,用于排查题目重复

 

二.源程序代码

    

package sizeyunsuan;
import java.util.*;
public class sizeyunsuan {
    @SuppressWarnings("resource")
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in=new Scanner(System.in);
        System.out.print("输入一个整数m,用于控制题目个数:");
        int m=in.nextInt();
        Scanner input=new Scanner(System.in);
        System.out.print("输入一个整数m1(2或4),用于控制是否只有加减乘除:");
        int m1=input.nextInt();
        System.out.print("输入一个整数m2,用于控制随机数值的范围:");
        int m2=in.nextInt();
        for(int i=0;i<m;i++)
        {
            Random    rand1=new Random();
            int randNum1=rand1.nextInt(7)+2;
            for(int l=1;l<randNum1;randNum1++)
            {
                Random    rand2=new Random();
                int randNum2=rand2.nextInt(2);
                if(randNum2==0)
                    System.out.print("("+"-");
                if(randNum2!=0)
                    System.out.print("(");
                Random    rand3=new Random();
                int randNum3=rand3.nextInt(m2);            
                Random rand4=new Random();
                int randNum4=rand4.nextInt(m2-1)+1;
                int t=randNum3%randNum4;
                if(t==0)
                {
                    System.out.print(randNum2/randNum3);
                }
                if(t!=0)
                {
                    System.out.print(randNum2+"/"+randNum3);
                }
                   char ch=(char)((int)(Math.random()*m1)+97);
                if(ch=='a')
                {
                    System.out.print("+");
                }
                if(ch=='b')
                {
                    System.out.print("-");
                }
                if(ch=='c')
                {
                    System.out.print("*");
                }
                if(ch=='d')
                {
                    System.out.print("÷");
                }
            
            Random    rand7=new Random();
            int randNum7=rand7.nextInt(2);
            if(randNum7==0)
                System.out.print("-");
            if(randNum7!=0)
                System.out.print("");
            Random    rand5=new Random();
            int randNum5=rand5.nextInt(m2);
            Random rand6=new Random();
            int randNum6=rand6.nextInt(m2-1)+1;
            int p=randNum5%randNum6;
            if(p==0)
                System.out.print(randNum5/randNum6);
            else
                System.out.print(randNum5+"/"+randNum6);
            for(int h=0;h<randNum1;h++)
            {
                System.out.print(")");
            }
            System.out.println("=");
        }
        }
        
    }
}                
    

三.运行结果截图

           

四.按照PSP0级的要求记录开发过程中的项目计划日志、时间记录日志、缺陷记录日志

 

  项目计划总结

估计程序开发所需时间,包括开始和结束时间,要求“尽可能精确”。

     整体计划时间

 

     阶段计划时间

 

记录程序开发各个阶段的实际完成时间,并汇总整体时间,确保时间记录日志的准确性,及时发现和维修不准确的时间记录。

     

     整体计划时间

 

     阶段计划时间

 

按阶段记录所有缺陷,及时发现并补充遗漏缺陷记录

注入缺陷数量

排除缺陷数量

                              

 

                                                                                 周活动总结表

                           姓名:牛俊燕                                                                               日期:2016.3.17

 日期\任务

      听课

    编写程序

    阅读课本

    日总计

周日

 

 

 

 

周一

100分钟

120分钟

90分钟

310分钟

周二

 

240分钟

 

240分钟

周三

 

180分钟

 

180分钟

周四

 

150分钟

120分钟

270分钟

周五

 

 

 

 

周六

 

180分钟

 

180分钟

周总计

100分钟

870分钟

210分钟

1180分钟

 

时间记录日志

记录开发任务的开始和结束开始时间,中断时间及净时间。并说明中断的原因

项目任务

所处阶段

开始时间

结束时间

中断时间

净时间

备注(说明中断原因)

 

                        学生:牛俊燕                                                                               日期:3/17/2016

                        教师:王建民                                                                               课程:软件工程概论             

日期

开始时间

结束时间

中断时间

净时间

活动

备注

3/14

800

950

10分钟

100分钟

听课

上课

 

1400

1600

 

120分钟

编程序

作业2

 

1730

1900

 

90分钟

看书

有关PHP

3/15

1600

1700

 

60分钟

讨论

作业2

 

1800

2100

 

180分钟

编程序

作业2

3/16

1520

1830

10分钟

180分钟

编程序

作业2

3/17

1630

1900

 

150分钟

编程序

作业2

 

1920

2130

10分钟

120分钟

看书

构建之法

3/19

800

1130

30分钟

180分钟

写总结

精读,进度条等

 

                                                                             缺陷记录日志示例

                        学生:牛俊燕                                                                                      日期:3/18/2016

                        教员:王建民老师                                                                                 程序号:2         

 

日期

编号

类型

引入阶段

排除阶段

修复时间

修复缺陷

3/14

 

1

19

编码

编译

20min

 

描述:随机生成数的范围有错误

 

2

29

编码

编译

5min

 

描述:随机生成数的类型强制转换有错误

3/15

3

31

编码

编译

10min

 

描述:if语句中不能用随机生成数

3/16

4

84

编码

编译

30min

 

描述:控制一个计算式的参数个数的for循环语句的第二个花括号的位置错误

3/17

5

32

编码

编译

10min

 

描述:随机生成括号,括号匹配有错误

 

6

110

设计

编译

90min

 

描述:题目的查重的思路有问题

3/19

7

110

编码

编译

120min

 

描述:题目的查重的代码有问题,实现不了查重

 

 

    

    

           

  

 

posted on 2016-03-19 10:54  大灰狼爱吃兔子  阅读(219)  评论(0编辑  收藏  举报