小学四则运算练习软件项目报告
github地址:https://github.com/nanxiangnuanzhi/sizeyunsuan
一、需求分析:
- 每个练习题至少要包含2种运算符,所出的练习题在运算过程中不得出现负数与非整数;
- 练习题生成好后,将学号
- 当程序接收的参数为4时,以下为输出文件示例:
二、功能设计:
- 并能输出正确结果;
- 所出的练习题在运算过程中不出现负数与非整数。
- 练习题生成好后,将学号
三、设计实现:
- 主函数读入练习题数目;
- 运用sym函数创建数字、运算符号,random()函数生成伪随机数和四则运算符号集,产生随机数和运算符并将其组合放入数组中;
- 将数组中的随机数和运算符组合后放入动态数组中;
- 调用栈,用两个栈来实现算符优先,一个栈用来保存需要计算的数据numStack,一个用来保存计算优先符priStack,来进行计算练习题答案;
- 将结果输入到文件“result.txt”中。
四、测试运行:
- Eclipse窗口运行结果:
- cmd窗口运行结果:
五、核心代码:
生成运算式:
1 //产生运算式 2 private static String generateCal() { 3 int symNum = (int)(Math.random()*3)+3; //随机生成3-5之间的符号数 4 5 //随机生成运算符号 6 char[] c ={'+','-','*','/'}; //四则运算符号集 7 Random random=new Random(); 8 for(int i = 0;i < symNum;i++){ 9 int index=random.nextInt(c.length); //得到一个随机下表 10 symbol[i]=c[index]; 11 } 12 13 //随机生成运算数字 14 for(int i = 0;i < symNum + 1;i++){ 15 number[i]=(int)(Math.random()*100)+1;; //得到一个随机下表 16 } 17 // System.out.println(Arrays.toString(number)); 18 19 //组合运算式 20 String cal = "";int i; 21 for( i = 0;i < symNum;i++) 22 { 23 cal = cal + String.valueOf(number[i]) + String.valueOf(symbol[i]); 24 } 25 cal = cal + String.valueOf(number[i]); 26 // System.out.println (cal); 27 return cal; 28 } 29 30 private static char[] symbol = new char[5]; 31 private static int[] number = new int[6]; 32 33 public static void main(String args[]) throws IOException { 34 // System.out.println("***请输入要输入出题的道数***"); 35 Scanner s =new Scanner (System.in); 36 int n=s.nextInt(); //生成题数 37 38 File fp=new File(".//result.txt"); 39 PrintWriter pfp= new PrintWriter(fp);
六、总结:
由于我们的JAVA课程是在大二学习的 ,时间比较久,本人基础也较差,故没有能力独立完成实验,只能在网上进行了部分程序参考,随机生成运算式部分是在请教同学后完成的。此次实验由于不熟练,耗费时间特别多,最后最终基本完成了实验要求内。在以后的实验中,会认真学习,好好提高自己的编程能力,争取能早日独立完成实验。
七、展示PSP:
PSP2.1 |
任务内容 |
计划完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
10 |
11 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
10 |
7 |
Development |
开发 |
200 |
300 |
· Analysis |
需求分析 (包括学习新技术) |
30 |
40 |
· Design Spec |
· 生成设计文档 |
10 |
15 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
10 |
15 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
10 |
10 |
· Design |
具体设计 |
10 |
12 |
· Coding |
具体编码 |
100 |
150 |
· Code Review |
· 代码复审 |
10 |
8 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
20 |
44 |
Reporting |
报告 |
60 |
98 |
·· Test Report |
· 测试报告 |
40 |
70 |
· Size Measurement |
计算工作量 |
10 |
13 |
· Postmortem & Process Improvement Plan |
· 事后总结 ,并提出过程改进计划 |
10 |
15 |
---恢复内容结束---