20194654 软件工程作业

一.需求分析

(1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /)

(2)剔除重复算式

(3)题目数量可定制

(4) 是否包含乘法和除法

          操作数数值范围可控(如操作数 在100以内   还是1000以内)

          操作数是否含负数    

(5)生成的运算题存储到外部文件result.txt中

二. 功能设计

      基本功能:自动生成四则运算算式

题目数量可控制

数值范围可控

是否含有正负数

三.设计实现

 

 五. 粘贴自己觉得比较独特的或满意的代码片段,用博客园正确的代码控件来显示

 1.加减法

for(;i<=Num;){           //题目数量定制        
            int num1=(int)(Math.random()*all);//自动生成算数
            int num2=(int)(Math.random()*all);switch (fuhao) {                  
case 0: //加法if(num1+num2<all){ out.println(i+". "+num1+"+"+num2+"="); i++; } break; case 1: //减法 if(num1-num2<all){ out.println(i+". "+num1+"-"+num2+"="); i++; } break;


2.乘除法

				if(num1/num2>0&&num1/num2<all){  //控制数值范围
					out.println(i+". "+num1+"/"+num2+"=");
			    	i++;
				}
				break;			
			default:
				if(num1*num2>0&&num1*num2<all){
					out.println(i+". "+num1+"*"+num2+"=");
			    	i++;
				}
				break;

 3.控制负数

int fushu=(int)(-all-Math.random()*2*all);  //随机生成负数
  if(k==1&&num1+num2<all&&num1+num2>-all){
					out.println(i+". "+fushu+"+"+num2+"=");
					i++;}
if(k==1&&fushu-num2<all&&fushu-num2>-all){
					out.println(i+". "+fushu+"-"+num2+"=");
					i++;
				}

 4.生成的运算题存储到外部文件result.txt

import java.io.FileNotFoundException;
import java.io.PrintWriter;
PrintWriter out;
        try{
        out=new PrintWriter("d:/result.txt");//存储的路径和文件名
        }catch(FileNotFoundException e){throw new RuntimeException(e);}

if(k==1&&num1+num2<all&&num1+num2>-all){
                    out.println(i+". "+fushu+"+"+num2+"=");// 在外部文件中写入
                    i++;
out.close();  //关闭文件

5.查重

int[] numa = new int[5];
                    String[]str = new String[5];
                    int[]numb = new int[5];
                    //存入算式值
                    numa[i]=x;
                    str[i]=str0[ran0];
                    numb[i]=y;
                    int chongfu= 0;
                    //判断重复
                    for(int j=i;j>0&&j<5;j--){//从当前位置向前遍历元素        
                        if(numa[i]==numa[j-1]){//比较操是否重复
                            if(str[i]==str[j-1]){                         
if(numb[i]==numb[j-1]){ chongfu=1;

 六. 总结:你设计的程序如何实现软件设计的“模块化”原则。

      按功能分布写语句

七、 尝试撰写PSP

PSP2.1 任务内容 计划共完成需要的时间(h) 实际完成需要的时间(h)
Planning 计划 8 48
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 8 48
 Development  开发  4  24
 Analysis  需求分析 (包括学习新技术)  30min  30min
 Design Spec  生成设计文档  0  0
 Design Review  ·  设计复审 (和同事审核设计文档)  0  0
 Coding Standard  代码规范 (为目前的开发制定合适的规范)  0  0
  Design    具体设计  30min  30min
 Coding   具体编码  8  28
 Code Review  代码复审  3  8
 Test  测试(自我测试,修改代码,提交修改)  1  2
 Reporting  报告  1  30min
  Test Report  测试报告  30min  50min
 Size Measurement    计算工作量  2  2
 Postmortem & Process Improvement Plan   事后总结 ,并提出过程改进计划  20min  20min
原文地址:https://www.cnblogs.com/mai98/p/11498199.html