zoukankan      html  css  js  c++  java
  • 个人作业1——四则运算题目生成程序(基于控制台)

    码市地址:https://coding.net/u/H1159650478/p/huangrui/git/blob/master/软件工程.txt
    1、 a、需求分析: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
    运算符为 +, −, ×, ÷ 并且要求能处理用户的输入,并判断对错,打分统计正确率。
    要求能处理用户输入的真分数, 如 1/2, 5/12 等
    使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目 Myapp.exe -n 10
    b、功能设计: 1.产生随机数。
    2.随机进行整数和真分数的运算并且可以判断正确并给出正确答案。
    3.可以算出正确率。
    c、设计实现: 我是用eclipse软件写的java代码。由于知识掌握的不够好,所以我是用比较繁琐的switch来完成整数和分数的四则运算,一共用到8个case。然后运用了Random完成了随机数的生成,最后当程序跳出while循环后进行了正确率的运算,整个编程也写完了。
    d、代码说明:
    这段代码实现了我要自主做的题目数,并实现了用while循环使题目随机生成。

    		int c = 0;
    		while (c < x) {
    			Random r = new Random();
    			int i;// 分子
    			int j;
    			int d;// 分母
    			int e;
    

    这段代码就是用switch和case开始了四则运算。

     			switch (s) {
    			case 0: {
    				i = r.nextInt(23);// 随机数在0到23之间产生
    				j = r.nextInt(23);
    				System.out.print(+i + "+" + j + "=");
    				Scanner sc = new Scanner(System.in);
    				int str = 0;
    				str = sc.nextInt();
    				int sum = i + j;
    				if (str == sum) {
    					System.out.println("correct");
    					a++;
    					c++;
    				} else {
    					System.out.println("wrong");
    					int p = i + j;
    					System.out.println("the right answer is:" + p);
    					c++;
    				}
    			}
    				break;
    
    

    这段代码就是这次编程我觉得最难的地方了,用到辗转相除法求最大公约数。

    					int n1 = i * e;
    					int m1 = j * d;
    					int k = m1 % n1;
    					int l = n1;
    					int o = 0;
    					if (k == 0) {
    						m1 = m1 / n1;
    						n1 = 1;
    					} else {
    						while (m1 % k != 0 || n1 % k != 0) {
    							o = k;
    							k = l % k;
    							l = o;
    
    						} 
    						m1 = m1 / k;
    						n1 = n1 / k;
    					}// 辗转相除求出最大公约数 
    

    e、测试运行:

    正确错误都有显示出来,最后计算出来对的正确率。
    2、展示PSP

    3、小结:这次作业对我而言很有挑战,真的发现自己差了很多。而且以前的知识由于没有巩固忘记的也很快,所以编程很吃力。虽然思路简单但是知识储存太少,导致编程的工作量增加了很多。说实话一开始随机数怎么做都完全不知道,这次的收获大概在于学懂了一点点随机生成吧,当然也向同学们寻求了很多帮助,希望下次作业可以再有进步。

  • 相关阅读:
    cstc2018 混合果汁
    CF1086E Beautiful Matrix
    AT2000 Leftmost Ball
    CF1208E Let Them Slide
    CF1208D Restore Permutation
    【置顶】博客公告
    [NOI2015]软件包管理器
    【noip2018】积木大赛
    几天连测总结
    【ZJOI2007】棋盘制作
  • 原文地址:https://www.cnblogs.com/23hr/p/6517606.html
Copyright © 2011-2022 走看看