个人项目-小学四则运算 “软件”之初版
本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166
我的github远程仓库的地址:https://github.com/yanyuluu/yanyuluu/tree/master/ruanjiangc
第一部分:要求
具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:23 - 3 * 4 = 11
二、个人软件过程耗时估计与统计表
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
Development | 开发 | 40 | 46 |
· Analysis | 需求分析 (包括学习新技术) | 12 | 13 |
· Design Spec | 生成设计文档 | ||
· Design Review | 设计复审 | ||
· Coding Standard | 代码规范 | 3 | 5 |
· Design | 具体设计 | 6 | 7 |
· Coding | 具体编码 | 35 | 41 |
· Code Review | 代码复审 | 3 | 3 |
· Test | 测试(自我测试,修改代码,提交修改) | 7 | 8 |
Reporting | 报告 | 2 | 3 |
三、代码提交
产生随机数的运算,先让用户输入产生的四则运算个数,判断是否输入有误,用循环设置随机产生至少3个运算整数,然后逐一存进数组,最后生成运算数再输出。
//产生随机运算式 static ScriptEngine js = new ScriptEngineManager().getEngineByName("JavaScript"); public static void creatNumber(){ boolean flag=true; int num=0; do { System.out.print("输入需要产生的四则运算的个数:"); Scanner arith_num = new Scanner(System.in); num=arith_num.nextInt(); if(num>=1) { flag = true; } else { flag=false; System.out.println("输入有误"); } }while(flag==false); ArrayList<String> arithList = new ArrayList<String>();//运算式 for(int i=0;i<num;i++) { //产生3~5个运算数 int num_number = 0; Random n = new Random(); num_number = n.nextInt(3)+3; String arr = ""; for(int j=0;j<num_number;j++){ int number = getNumber(); String operator = String.valueOf(getOperator()); arr += number + operator; } arr =arr.substring(0,arr.length()-1); //将arr转化为数组 char[] arr_str = arr.toCharArray(); String arrString = ""; ArrayList<String> arrslist1 = new ArrayList<String>(); ArrayList<String> arrslist2 = new ArrayList<String>(); ArrayList<String> arrslist = new ArrayList<String>(); //生成运算式 String[] arrs1 = arrslist1.toArray(new String[arrslist1.size()]);//运算符 String[] arrs2 = arrslist2.toArray(new String[arrslist2.size()]);//运算数
这是产生随机数和随机产生运算符号的函数代码
//产生随机数 public static int getNumber(){ int number = 0; Random num = new Random(); number = num.nextInt(100+1); return number; } //随机产生运算符号 public static char getOperator(){ char operator = 0; Random ran = new Random(); int i = ran.nextInt(4); switch(i){ case 0: operator = '+'; break; case 1: operator = '-'; break; case 2: operator = '*'; break; case 3: operator = '/'; break; } return operator; }
四、博文
由于基础不过关,只能实现基础要求,让用户输入题目的数量,程序便执行并给出相应数量的题目和答案。
需求分析:
构思设计:主要是设一个类用于产生随机数,再设一个类用于产生随机符号,还有一个类把运算过程算出并输出题目与答案
遇到的问题很多,无法调用分数的函数,我是按照基本要求让用户输入题目数量然后自动生成四则运算的题目和答案,并没有让用户输入答案再判断对错的。不知道怎么修改才能实现拓展要求。
总结:要做出一个好的代码真的不容易,需要扎实的基础和实力,但是我的能力不够,还是需要多看看书本的知识,多观摩和学习练习,吸收经验,才能将这门专业学得比较好。
测试的时候可以判断输入的四则运算个数是否为正整数,并自动算出相对应的题目和答案。以下是运算结果的截图: