20194664+自动生成四则运算题第一版报告 一.需求分析 二. 功能设计 三. 设计实现 四. 测试运行 五. 代码片段 六. 总结 PSP

为了节省出题人的时间,能够给学生们带来更多随机性的练习,提高学习效率,所以设计了自动生成四则运算题程序。

二. 功能设计

(1)基本功能

自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内 

(2)拓展功能

1.剔除重复算式

2.题目数量可定制

3.相关参数可控制

是否包含乘法和除法

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

操作数是否含负数  

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

三. 设计实现

使用了Scanner和Random类用于输入、输出和生成随机数,使用FileWriter类存储文件
方法FuHao, XuanZe100or1000, FuShu, CunChu分别控制各个功能

四. 测试运行

20194664+自动生成四则运算题第一版报告
一.需求分析
二. 功能设计
三. 设计实现
四. 测试运行
五. 代码片段
六. 总结
PSP

五. 代码片段

public int XuanZe100or1000() {      // 运算结果是100还是1000以内
		int XuanZe;
		XuanZe = S.nextInt();
		if (1 == XuanZe)
			return 101;
		else
			return 1001;
	}
public int FuHao() {                // 判断是否有乘除符号
		int fuhao;
		fuhao = S.nextInt();
		if (1 == fuhao)
			return 4;
		else
			return 2;
	}
public boolean FuShu() {         // 判断是否有负数 
		int temp;
		temp = S.nextInt();
		if (1 == temp)
			return true;
		else
			return false;
	}
public boolean CunChu() {         // 是否存到文件result.txt中
		int temp;
		temp = S.nextInt();
		if (1 == temp)
			return true;
		else
			return false;
	}
	public void CaiDan() {
		int DaYinShu, FuHao, XuanZe100or1000;
		boolean FuShu,CunChu;
		System.out.println("输入打印题目数量:");
		DaYinShu = this.DaYinShu();
		System.out.println("需要乘除吗?输入1出现,输入其他不出现");
		FuHao = this.FuHao();
		System.out.println("输入1打印100以内题目,输入其他打印1000以内");
		XuanZe100or1000 = this.XuanZe100or1000();
		System.out.println("是否有负号,输入1有,输入其他不出现");
		FuShu = this.FuShu();
		System.out.println("是否存到d:/result.txt中,1是,输入其他否");
		CunChu = this.CunChu();
		this.Kz(DaYinShu, FuHao, XuanZe100or1000, FuShu, CunChu);
	}

六. 总结

可以将每个功能分别用其他函数构造方法表示,方便修改。

PSP

PSP 预估时间 实际时间
计划 1 1.5
需求分析 0.5 0.5
生成设计文档 0.5 1
代码规范 0.5 0.5
具体设计 1 1
具体编码 2 4
代码复审 1 2
测试 2 3
总结 1 1
总共花费时间 9.5 14.5