程序的设计思想
创建两个二维数组,其中一个命名为number,用来储存随机数,第一行是随机数,第二行作为分母,初始值为1.
第二个数组命名为symbol,第一行用来储存符号,第二行用来确定运算顺序,加减法标志为1,乘除法标志为2,产生随机数,产生随机数的位置为3,作为加上括号的位置最先运算。
相应的,第symbol数组中第i个运算符要运算的数字为number数组中第i和第i+1个数,因为分母不能为0,所以当运算第i个运算符时,要分别从i向前和i+1向后找第一个分母不为0的数将位置分别记为a和b,根据分数的运算法则运算出分子和分母,储存在number[0][a]和number[1][a]中,更新b位置的数据全部为0。最后的结果就是number[0][a]和number[1][a]中的数,进行约分就可以了。
网页的设计思想
网页包含时间及日期,留言板,五个年级的题目模块,设置用户选择参数的下拉菜单和按钮,目前只做好了五年级的题目模块。Java程序和网页的结合没有做好,不能实现参数的传递。
功能模块
功能一:带括号的运算式的正确运算 实际用时:90分钟
功能二:产生有效算式 实际用时:3小时
功能三:运算式结果出现小数时,输出其分数形式 实际用时:2小时
功能四:运算式及其结果不出现负数(难点:如何判断连续的减法) 实际用时:10分钟
功能五:判断正确题目的数量给出分数,输出错误的题目个数 实际用时:20分钟
功能六:网页的实现 实际用时:8小时左右
源程序代码
ceshi.java
package ceshi;import java.util.Scanner;public class ceshi { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入题目的数量:"); Scanner sc1 = new Scanner(System.in); int quantity = sc1.nextInt(); System.out.println("请输入产生数字的最大值:"); int max = sc1.nextInt(); System.out.println("请输入是否有负数:"); int iffu = sc1.nextInt(); System.out.println("请输入是否有乘除法:"); int ifcheng= sc1.nextInt(); equation(quantity,max,iffu,ifcheng); } static void equation(int quantity,int max,int iffu,int ifcheng) { int t=0; for(int i=0;i2) { kuo=(int)(Math.random()*(numberlength-2)); symbol[1][kuo]=3; } for(int j=0;j number2[1][0]) a=number2[1][0]; for(int j=a;j>1;j--) { if(number2[0][0]%j==0&&number2[1][0]%j==0) { number2[0][0]=number2[0][0]/j; number2[1][0]=number2[1][0]/j; break; } } result=String.valueOf(number2[0][0])+'/'+String.valueOf(number2[1][0]); } else result=String.valueOf(number2[0][0]); output(number1,symbol,kuo); Scanner sc1 = new Scanner(System.in);// String re = sc1.next();// if(re.equals(result)) t=t+1; System.out.println("正确结果为:"+result); } System.out.println("正确题的数目:"+t+"错误题的数目:"+(quantity-t)); } static void output(int number[],int symbol[][],int j) { String a=String.valueOf(number[0]); if(j==0) a='('+a; for(int i=0;i =0;i--) { if(number[1][i]!=0) { a=i; break; } } for(int q=p+1;q =0) { number[0][a]=number[0][a]*number[1][b]-number[1][a]*number[0][b]; number[1][a]=number[1][a]*number[1][b]; number[0][b]=0; number[1][b]=0; } else { symbol[0][p]=1; } } if(symbol[0][p]==1) { number[0][a]=number[0][a]*number[1][b]+number[1][a]*number[0][b]; number[1][a]=number[1][a]*number[1][b]; number[0][b]=0; number[1][b]=0; } if(symbol[0][p]==3) { number[0][a]=number[0][a]*number[0][b]; number[1][a]=number[1][a]*number[1][b]; number[0][b]=0; number[1][b]=0; } if(symbol[0][p]==4) { number[0][a]=number[0][a]*number[1][b]; number[1][a]=number[1][a]*number[0][b]; number[0][b]=0; number[1][b]=0; } } static int randomNumber(int max,int iffu)//产生随机数 { int number=1+(int)(Math.random()*max); if(iffu==1) { number=0-number; } return number; } static int randomSymbol(int ifcheng)//产生随机符号 { int symbol; if(ifcheng==1) { symbol=1+(int)(Math.random()*4); } else { symbol=1+(int)(Math.random()*2); } return symbol; }}
Index.html
首页
运行结果截图
编程总结或体会
我们两个人的分工不够正确,因为是由我写Java程序,由凯丽写网页,但是在实施过程中发现这样的合作并理想,凯丽对于程序不熟悉,而我对于网页也不了解,导致这次的网页并没有很好的实现出来。
在之后的合作中小组成员之间应该更多的交流,尽量避免你做你的,我做我的这样的事情发生。
周活动总结表
姓名:张雪晴 日期 2016 / 4 / 9
| 听 课 | 编写代码 | 阅读课本 | 撰写博客 | 日总计 |
周日 |
|
|
|
|
|
周一 |
|
|
|
|
|
周二 | 100分钟 |
|
|
| 100分钟 |
周三 |
| 110分钟 |
|
| 110分钟 |
周四 |
| 80分钟 |
|
| 80分钟 |
周五 |
| 30分钟 |
| 30分钟 | 60分钟 |
周六 |
|
| 100分钟 | 80分钟 | 180分钟 |
周总计 | 100分钟 | 220分钟 | 100分钟 | 110分钟 | 530分钟 |
时间记录日志
学生:张雪晴 日期:2016 / 4 / 9
教师:王建民 课程:软件工程
日期 | 开始时间 | 结束时间 | 中断时间 | 净时间 | 活动 | 备注 | C | U |
4.5 | 8:00 | 9:50 |
| 100 | 听课 |
| ✔ |
|
4.6 | 19:00 | 21:00 |
| 110 | 写程序 |
| ✔ |
|
4.7 | 19:10 | 20:30 |
| 80 | 写程序 |
| ✔ |
|
4.8 | 12:30 | 1:30 |
| 60 | 写程序+发表博客 |
| ✔ |
|
4.9 | 7:20 | 9:00 |
| 100 | 阅读网页制作的书 |
| ✔ |
|
17:20 | 18:40 |
| 80 | 撰写博客 |
同组成员:尤凯丽
地址:http://www.cnblogs.com/love528