• 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
  • 相关阅读:
    路飞学城-Python开发集训-第1章
    Python制作的射击游戏
    使用百度地图API自动获取地址和经纬度
    使用高德地图JS获取当前位置和经纬度
    thinkphp5 使用PHPExcel 导入导出
    MySQL优化
    ABAP 新语法-实例讲解
    ASP.NET Core
    ASP.NET Core
    ASP.NET Core
  • 原文地址:https://www.cnblogs.com/mai98/p/11498199.html
Copyright © 2020-2023  润新知