随机四则运算的出题程序java
一、设计思想
1.功能较多必须有菜单选择项,将一个大程序分为若干个功能模块的小程序,逐个实现
2.针对题目避免重复时先将已生成的算式保存,然后将下一条生成的式子进行判断是否已生成,
如果生成则返回循环语句的上一条,重新生成四则运算式子。
3.针对可定制,可以申请动态存储内存,通过用户输入来完成定制。
4.针对可以控制参数,相对菜单,每个菜单功能对应一个控制参数,每个参数功能对应一个函数通过switch语句判断。
4.1针对是否有乘除法、通过用户选择,来确定,实现是通过定义运算符号定义顺序
如Fuhao={+,-,*,/}产生循环式可产生前两条和前四条运算
其它以此有针对性地进行算法分析实现
二、代码
package com.minirisoft;
import java.util.*;
public class Sizeyunsuan {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("请输入要输出多少道运算题");
int h=input.nextInt();
String [] arr1=new String[h];
System.out.println("请输入你要计算数的最大值");
int g=input.nextInt();
System.out.println("**************菜单选择程序****************");
System.out.println("请选择要使用的功能:");
System.out.println("1. 整数加减法运算!");
System.out.println("2. 整数四则运算!");
System.out.println("3. 分数的加减运算");
System.out.println("4. 分数的四则运算");
System.out.println(" *********************************************");
Random random = new Random();
char arr[] = {'+','-','*','/'};
int a=input.nextInt();
switch(a){
case 1:
{
System.out.println("请选择减法是否有负数;0:无负数,1:有负数");
int f=input.nextInt();
int i;
switch(f)
{
case 0:
{
for(i=0;i<h;i++)
{
String str=random.nextInt(g)+" "+arr[random.nextInt(2)]+" "+random.nextInt(g)+"="; System.out.println(str);
}
break;
}
case 1:
{
for(i=0;i<h;i++)
{
System.out.println(-random.nextInt()%g+" "+arr[random.nextInt(2)]+" "+(-random.nextInt())%g+"=");
}
break;
}
default:
System.out.println("输入的数有误,请输入0或1");
}
break;
}
case 2:
{
System.out.println("**************四则运算菜单选择程序****************");
System.out.println("请选择要使用的功能:");
System.out.println("1. 正整数无余数四则运算!");
System.out.println("2. 可负整数无余数四则运算!");
System.out.println("3. 正整数可有余数四则运算");
System.out.println("4. 可负整数可有余数四则运算");
System.out.println(" *********************************************");
int f=input.nextInt();
switch(f)
{
case 1:
{
for(int i=0;i<h;i++)
{
int u=random.nextInt(g);
int v=random.nextInt(g)+1;
char w=arr[random.nextInt(4)];
if(u%v==0 && w=='/'){
System.out.println(u+" "+w+" "+v+"=");
}
else
System.out.println(u+" "+arr[random.nextInt(3)]+" "+v+"=");
}
break;
}
case 2:
{
for(int i=0;i<h;i++)
{
int u=-random.nextInt()%g;
int v=-random.nextInt()%g;
char w=arr[random.nextInt(4)];
if(v!=0 && u%v==0 && w=='/' )
System.out.println(u+" "+w+" "+v+"=");
else
System.out.println(u+" "+arr[random.nextInt(3)]+" "+v+"=");
}
break;
}
case 3:
{
for(int i=0;i<h;i++)
{
int u=random.nextInt(g);
int v=random.nextInt(g)+1;
char w=arr[random.nextInt(4)];
System.out.println(u+" "+w+" "+v+"=");
}
break;
}
case 4:
{
for(int i=0;i<h;i++)
{
int u=-random.nextInt()%g;
int v=-random.nextInt()%g;
char w=arr[random.nextInt(4)];
System.out.println(u+" "+w+" "+v+"=");
}
break;
}
default:
System.out.print("输入的数有误,请输入1--4的整数");
} }
case 3:
{
System.out.println("请选择减法是否有负数;0:无负数,1:有负数");
int f=input.nextInt();
switch(f)
{
case 0:
{
for(int i=0;i<h;i++)
{
System.out.println(random.nextInt(g)+"/"+random.nextInt(g)+1+" "+arr[random.nextInt(2)]+" "+random.nextInt(g)+"/"+random.nextInt(g)+1+"=");
}
break;
}
case 1:
{
for(int i=0;i<h;i++)
{
System.out.println(-random.nextInt()%g+"/"+random.nextInt(g)+1+" "+arr[random.nextInt(2)]+" "+-random.nextInt()%g+"/"+random.nextInt(g)+1+"=");
}
break;
}
default:
System.out.println("输入的数有误,请输入0或1");
}
break;
}
case 4:
{
System.out.println("**************四则运算菜单选择程序****************");
System.out.println("请选择要使用的功能:");
System.out.println("1. 正分数四则运算!");
System.out.println("2. 可负分数四则运算!");
System.out.println(" *********************************************");
int f=input.nextInt();
switch(f)
{
case 1:
{
for(int i=0;i<h;i++)
{
int u=random.nextInt(g);
int v=random.nextInt(g)+1;
int x=random.nextInt(g);
int y=random.nextInt(g)+1;
char w=arr[random.nextInt(4)];
System.out.println(u+"/"+v+" "+w+" "+x+"/"+y+"=");
}
break;
}
case 2:
{
for(int i=0;i<h;i++)
{
int u=-random.nextInt()%g;
int v=-random.nextInt()%g;
int x=-random.nextInt()%g;
int y=-random.nextInt()%g;
char w=arr[random.nextInt(4)];
if(v!=0 && w=='/' )
System.out.println(u+"/"+v+" "+w+" "+x+"/"+y+"=");
else
System.out.println(u+"/"+v+" "+arr[random.nextInt(3)]+" "+x+"/"+y+"=");
}
break;
}
default:
System.out.print("输入的数有误,请输入1或2");
}
break;
}
default:
System.out.println("输入的数有误,请输入1--4的整数");
}
}
}
三、实现截图










四、PSP0级 记录表
一、项目计划总结:
周活动总结表
姓名:杨广鑫 日期:2015.3.13
|
日期 任务 |
听课 |
编写程序 |
阅读课本 |
准备考试 |
日总计 |
||
|
周日 |
|||||||
|
周一 |
|||||||
|
周二 |
100 |
60 |
20 |
180 |
|||
|
周三 |
120 |
120 |
|||||
|
周四 |
10 |
10 |
|||||
|
周五 |
100 |
50 |
15 |
165 |
|||
|
周六 |
45 |
45 |
|||||
|
周总结 |
200 |
275 |
45 |
520 |
阶段时间和效率 周数(上一次周活动表的周数+1):
不包括上一周在内的累计时间
|
总计 |
|||||||
|
平均 |
|||||||
|
最大 |
|||||||
|
最小 |
以前各周的累计时间
|
总计 |
200 |
275 |
45 |
520 |
|||
|
平均 |
200 |
275 |
45 |
520 |
|||
|
最大 |
200 |
275 |
45 |
520 |
|||
|
最小 |
200 |
275 |
45 |
520 |
二、时间记录表:
学生 杨广鑫 日期 2015年3月13日
教师 王建民 课程 PSP
|
日期 |
开始时间 |
结束时间 |
中断时间 |
净时间 |
活动 |
备注 |
|
3.10 |
19:15 |
20:15 |
无 |
60 |
编程序 |
作业 |
|
3.11 |
14:30 |
21:14 |
有 |
120 |
编程序 |
作业 |
|
3.12 |
无 |
|||||
|
3.13 |
18:50 |
19:40 |
无 |
50 |
完善程序 |
作业 |
|
3.14 |
9:10 |
9:55 |
无 |
45 |
完善程序 |
作业 |
三、缺陷记录日志:
学生 杨广鑫
日期 2015年3月13日
教员 王建民
程序号
|
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复时间 |
修复缺陷 |
|||||
|
3.10 |
1 |
a2 |
运行 |
运行之后马上 |
1min |
||||||
|
在输入时未导入java.util.*。 |
|||||||||||
|
3.10 |
2 |
a3 |
编译 |
编译 |
1min |
||||||
|
在判断if(ph[] == 1)条件时,将==写成= |
|||||||||||
|
3.10 |
3 |
B1 |
运行 |
运行之后 |
3min |
||||||
|
在运行时,输出的结果虽然正确,但格式却不正确,行间距混乱 |
|||||||||||
|
3.12 |
4 |
a1 |
编译 |
编译 |
1min |
||||||
|
漏掉; |
|||||||||||
|
3.13 |
5 |
B2 |
运行 |
运行之后 |
15min |
||||||
|
在运行时,输出的格式不是按要求的输出的,原因是if语句插入的位置不正确 |
|||||||||||
五、体会心得
在编程过程中出现很多问题。比如一个算法感觉逻辑上没问题,代码也没错误,但是程序结果就不按照自己的想法去实现;
另外对java编程还很不熟练,对于一些简单的函数还得查阅资料,才能写出。
由于原来是用c++写程序的,现在用java感觉一些编程有细微差距,还需要适应java。
随机四则运算的出题程序java的更多相关文章
- 3.结对编程成果报告(小学生四则运算的出题程序,Java实现)
程序名称:小学生四则运算的出题程序 先附上代码: package com.makequestion; import java.text.DecimalFormat;import java.util.R ...
- 软件工程-构建之法 小学生四则运算的出题程序,android版本
内容中包含 base64string 图片造成字符过多,拒绝显示
- 300道随机四则运算小程序(java编写)
这是由Java编写的300道随机四则运算小程序, 运算数范围为0~100(不包括100),运算结果保留两位小数. 程序代码: import java.util.*; class Yunsuan{ pu ...
- 基于c编写的关于随机生成四则运算的小程序
基于http://www.cnblogs.com/HAOZHE/p/5276763.html改编写的关于随机生成四则运算的小程序 github源码和工程文件地址:https://github.com/ ...
- 随机点名小程序--- -JAVA版本
话不多少,直接上代码 一个能够直接运行的随机点名的小程序,一个界面化的小程序.望广大网友多多支持! 1.创建一个随机点名的类 public class ProcessRandomName { JFra ...
- 随机四则运算 C语言
设计思想:出三十道一百以内数的随机四则运算题目,先随机两个一百以内的数字,再通过随机数确定四则运算算符,最后通过for循环输出三十道 源代码程序: #include <stdlib.h># ...
- 用Python开发小学二年级口算自动出题程序
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 武汉光谷一小二年级要求家长每天要给小孩出口算题目,让孩子练习. 根据老师出题要求编写了Python程序 ...
- 四则运算自动出题之javaweb版
四则运算出题机之JAVAWEB版 要求还是和之前的出题形式一样 begin.jpg <%@ page language="java" contentType="te ...
- 作业二:个人编程项目——编写一个能自动生成小学四则运算题目的程序
1. 编写一个能自动生成小学四则运算题目的程序.(10分) 基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图. 本题发一篇随笔,内容包括: 题 ...
随机推荐
- css设置居中的方案总结
回想一下,自己平时项目里遇到的比较多的就是css如何让元素居中显示,其实差不多每种情况都遇到过,所采用的方法也都各有利弊,下面对这些方法来做个概括,对其中的坑点,也会一一指出来,希望能给遇到问题的同学 ...
- Redis入门必读,The Little Redis Book中文版
csdn的博客都要搬到这里了 The Little Redis Book中文版 入门 The Little Redis Book中文版 第一章 - 基础知识 The Little Redis Book ...
- JAVA简单的网格布局管理器--JAVA基础
网格布局管理器: GridLayoutDemo.java: import java.awt.GridLayout;import javax.swing.JButton;import javax.swi ...
- 原生JS实现tab切换--web前端开发
tab切换非常常见,应用非常广泛,比较实用,一般来说是一个网站必不可少的一个效果.例如:https://123.sogou.com/中的一个tab部分: 1.案例源代码 <!DOCTYPE ht ...
- tomcat查看端口被占用
1. tomcat有安装版和压缩版 安装版的没有关闭命令 压缩版的命令如下: tomcat关闭:catalina stop/shutdown 开启:catalina start 2. 在tomca ...
- Keras官方中文文档:keras后端Backend
所属分类:Keras Keras后端 什么是"后端" Keras是一个模型级的库,提供了快速构建深度学习网络的模块.Keras并不处理如张量乘法.卷积等底层操作.这些操作依赖于某种 ...
- [BZOJ3460] Jc的宿舍
bzoj 题面放一下 Description WC2014后无数人来膜拜jc,但是来膜拜的人实在太多了, 而且很多人是一连膜拜好几天.所以jc给这些人建了一座树 形的宿舍,而根节点(1号节点)住着jc ...
- 【learning】莫比乌斯反演
吐槽 额其实这个东西的话..好像缠着机房里面的dalao们给我讲过好多遍了然后.. 拖到现在才搞懂也是服了qwq(可能有个猪脑子) 感觉就是主要几条式子然后疯狂换元换着换着就化简运算了? 草稿纸杀手q ...
- 【noip模拟】2048
Time limit: 1000ms Memory limits: 256MB Description 2048曾经是一款风靡全球的小游戏.今天,我们换一种方式来玩这个小游戏.现在, ...
- c#事件的应用
我已经多次使用c#事件了.举个最近的例子:我用vsto做的一个word插件.这个插件分为两层,业务逻辑层和word外接程序.有这么一个场景,我的ribbon中的一个label是动态显示的.它会随着wo ...