软件工程第一次作业 四则运算

项目克隆地址:https://git.dev.tencent.com/Baiyl134/2017012177.git

目录:

一、需求分析

二、功能设计

三、测试运行

四、代码展示

五、PSP

六、自我总结


一、需求分析

(一)功能需求

基本功能:

  • 程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题。
  • 每个数字在 0 和 100 之间,运算符在3个到5个之间;
  • 每个练习题至少要包含2种运算符;
  • 所出的练习题在运算过程中不得出现负数与非整数,比如3÷5+2=2.6,2-5+10=7等是不合法的;
  • 练习题生成好后,将你的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致;
  • 当程序接收的参数为4时,以下为一个输出文件示例。

2019010203

13+17-1=29

11*15-5=160

3+10+4-16=1

15÷5+3-2=4

扩展功能: 

  • 支持有括号的运算式,包括出题与求解正确答案。

(二)程序需求

1、使用Java语言或者其他编程语言。

2、生成文件时请使用相对路径,生成的txt 文件需在项目的根目录下,可直接查看演示示例。

3、使用的JDK版本为 jdk8u161,使用的JRE版本为jre8u161。

4、不得使用除限定版本jdk与jre外的额外依赖包。

 

二、功能设计

(一)基本功能

1、保证输入的是数字或者特定字符,如果不符合要求,会有提示,并且可以重新输入。

2、当输入一个参数n,随机产生n道加减乘除算术题。保证生成的每个练习题至少要包含2种运算符。且保证在算数过程中,不出现负数,和小数。

3、将生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致;

4、为保证随机产生的四则运算更满足用户的需求,当输入参数n决定产生四则运算的个数时,另外输入一个参数m,决定产生的n道四则运算包含运算符的个数(3、4、5)  

三、测试运行

为了便于客户操作,在运行代码时需要输入你要打印的题目的具体数量,程序会随机产生包含3-5个运算符的符合要求的四则运算式。

运行结果如下图:

遇到了乱码问题,可以在用命令提示符的时候加一步 javac -encoding UTF-8 Main.java,我加了之后也不好使,就直接将代码用文本文件打开另存为的时候将编码类型改为ANSI,之后运行就可以了。

运行结果如上,由于能力有限就没有实现附加功能,希望在之后的学习后可以完善。

四、代码展示

 Main类:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception {
        args = new String[1000];
        try {
            String number2 = args[0];
            int number = 0;
            while (number < 1 || number > 1000) {

                while (!(number2 != null && number2.matches ("^[0.0-9.0]+$"))) {
                    Scanner input = new Scanner (System.in);
                    System.out.print ("请输入正确的题目数量,类型为整数 (1-1000):");
                    number2 = input.next ();
                }
                number = Integer.parseInt ((number2));
                if (number < 1 || number > 1000) {
                    Scanner input = new Scanner (System.in);
                    System.out.print ("请输入正确的题目数量,类型为整数 (1-1000):");
                    number2 = input.next ();
                }
            }
            CreatFile File = new CreatFile ();
            File.creatFile (number);
        } catch (Exception E) {
            throw new Exception ("输入有误!");

        }
    }
}

其他代码也就不一一展示了,可以通过仓库查看。

五、PSP

任务内容

计划共完成需要的时间(min)

实际完成需要的时间(min)

了解

10

20

了解作业要求,并安装相应的插件

10

20

计划

10

20

估计这个任务需要多少时间,并规划大致工作步骤

10

20

开发

400

600

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

200

300

·         具体设计

50

100

·         具体编码

100

100

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

50

100

报告

30

50

·         测试报告

10

20

·         事后总结, 并提出过程改进计划

20

30


六、自我总结

  这一次的项目最初让我头疼,感觉自己什么都不会就要做一个个人项目,通过学习学长学姐的博客,我开始有了一点思路,但是理论并不是实践,随着自己上手的时间越久就越找不到方法,又开始了学习之路,由于基础不扎实,只实现了基本功能,对于分数这个附加功能只能放弃,在之后的学习过程中,我会不断完善自己的代码。

猜你喜欢

转载自www.cnblogs.com/baiyl134/p/10611923.html
今日推荐