本次作业要求来自: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;}

四、博文

由于基础不过关,只能实现基础要求,让用户输入题目的数量,程序便执行并给出相应数量的题目和答案。

需求分析:

(1)随机产生 100 之内的正整数的题目。
(2)答案不能是负数。
(3)题目数根据用户而定。
(4)运算式子必须至少有两个运算符。

构思设计:主要是设一个类用于产生随机数,再设一个类用于产生随机符号,还有一个类把运算过程算出并输出题目与答案

遇到的问题很多,无法调用分数的函数,我是按照基本要求让用户输入题目数量然后自动生成四则运算的题目和答案,并没有让用户输入答案再判断对错的。不知道怎么修改才能实现拓展要求。

总结:要做出一个好的代码真的不容易,需要扎实的基础和实力,但是我的能力不够,还是需要多看看书本的知识,多观摩和学习练习,吸收经验,才能将这门专业学得比较好。

测试的时候可以判断输入的四则运算个数是否为正整数,并自动算出相对应的题目和答案。以下是运算结果的截图:

 

 

 

转载于:https://www.cnblogs.com/lxyu/p/9763942.html

个人项目-小学四则运算 “软件”之初版相关推荐

  1. 作业四 | 个人项目-小学四则运算 “软件”之初版

    作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186 GitHub远程仓库的地址https://github.com/ ...

  2. 第四次作业:个人项目-小学四则运算 “软件”之初版

    本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186 远程github库:https://github.com/h ...

  3. 第三次作业:个人项目-小学四则运算 “软件”之初版

    本次作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166 我的项目GitHub远程仓库地址:https://gith ...

  4. 作业五—个人项目-小学四则运算 “软件”之升级版1

    作业五-个人项目-小学四则运算 "软件"之升级版 作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/21 ...

  5. 【软件工程】小学四则运算 “软件”之初版

    作业要求来源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186 我的github远程仓库的地址: https://github ...

  6. 作业四:个人项目-小学四则运算之JAVA版

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186 代码所在的github远程仓库的地址:https://git ...

  7. 2016012101小学四则运算练习软件项目报告

    2016012101小学四则运算练习软件项目报告 Coding.net源码仓库地址:https://git.coding.net/naiteu/sgwq.git 一.需求分析 1,程序可以接收一个参数 ...

  8. 小学四则运算练习软件项目报告

    小学四则运算练习软件项目报告 作业源代码地址:https://git.coding.net/weijn/SiZe.git 一.需求分析 程序可接收一个输入参数n,然后随机产生n道加减乘除练习题. 每个 ...

  9. 2016012090+小学四则运算练习软件项目报告

    2016012090+小学四则运算练习软件项目报告 Coding.net原码仓库地址:https://git.coding.net/Ai_Code/Work.git 目录: 一.需求分析 二.功能设计 ...

最新文章

  1. C语言结构体占用内存总结
  2. ASP.NET开源MVC框架Vici MVC(三)HELLO WORD
  3. tengine安装问题
  4. Angular 自动编译部署 Tomcat Jboss
  5. 含本土测量软件的Q-Vision+Kvaser CAN/CAN FD/LIN总线解决方案
  6. 经典SQL练习题(MySQL版)
  7. SAP PP制造生产教程
  8. NAND FLASH大页和小页
  9. java时间为什么只显示到日_java-为什么此日期未在格林尼治标准时间显示?
  10. 有感:一名大学毕业生的反思:轰动中国万言帖 最露骨大学生活
  11. 编程狂人|后台服务架构高性能设计之道
  12. 安装Visio + Windows Installer 与即点即用版本冲突 + 卸载Office + 重装Office
  13. php输出甲子年,六十随笔 (献给自己的甲子年)
  14. powerquery分组_power query 如何累计求和?如何分组分条件?
  15. Oracle 报错 28000原因和解决方法
  16. esp8266介绍和使用
  17. 【Web 基础】Cookie
  18. warning: Clock skew detected. Your build may be incomplete解决方法
  19. 用SCI论文求婚!网友这波高级狗粮我吃……
  20. emjoy表情插入数据库问题

热门文章

  1. Java中单元测试中:@BeforeClass,@Before,@Test,@After,@AfterClass中的问题详解
  2. 如何在Mac上加入adb服务
  3. PHP新手上路(六)
  4. OpenCV 【十五】绘直线/椭圆/矩形/圆及其填充
  5. gridview列 数字、货币和日期 显示格式
  6. 如何在DataGrid里面产生滚动条而不滚动题头
  7. GDB attach到进程
  8. 码农技术炒股之路——配置管理器、日志管理器
  9. 汇编程序设计与计算机体系结构软件工程师教程笔记:函数、字符串、浮点运算
  10. 设计模式之状态模式(State)摘录