软件工程个人作业04

1、代码:
import
java.util.Random; import java.util.Scanner; class Fenshu{ static int fenzi1; static int fenmu1; static int fenzi2; static int fenmu2; public static void fenshu()//分数随机产生 { Random random=new Random(); fenmu1=(random.nextInt(10)+1); fenzi1=(random.nextInt(10)+1); fenmu2=(random.nextInt(10)+1); fenzi2=(random.nextInt(10)+1); if(fenmu1<=fenzi1||fenmu2<=fenzi2) { fenshu(); } //System.out.println(fenmu1); //System.out.println(fenzi1); //System.out.println(fenmu2); //System.out.println(fenzi2); } public static char fuhao()//符号随机产生 { char a =0; Random random=new Random(); int f=random.nextInt(4); if(f==0) a='+'; if(f==1) a='-';; if(f==2) a='*'; if(f==3) a='/'; return a; } public static int GYS(int m, int n) // 循环实现 { int k,y; if(m<n) { k=m; m=n; n=k; } while(m%n!=0) { y=m%n; m=n; n=y; } return n; } public static void zhenoutput()//真分数输出 { fenshu(); char a1=fuhao(); if(a1=='+') { int jieguo1=fenmu1*fenmu2; int jieguo2=fenzi1*fenmu2+fenzi2*fenmu1; int a=GYS(jieguo1,jieguo2); System.out.println(fenzi1+"/"+fenmu1+"+"+fenzi2+"/"+fenmu2+"="+jieguo2/a+"/"+jieguo1/a); } if(a1=='-') { int jieguo1=fenmu1*fenmu2; int jieguo2=fenzi1*fenmu2-fenzi2*fenmu1; int a=GYS(jieguo1,jieguo2); System.out.println(fenzi1+"/"+fenmu1+"-"+fenzi2+"/"+fenmu2+"="+jieguo2/a+"/"+jieguo1/a); } if(a1=='*') { int jieguo1=fenmu1*fenmu2; int jieguo2=fenzi1*fenzi2; int a=GYS(jieguo1,jieguo2); System.out.println(fenzi1+"/"+fenmu1+"*"+fenzi2+"/"+fenmu2+"="+jieguo2/a+"/"+jieguo1/a); } if(a1=='/') { int jieguo1=fenmu1*fenzi2; int jieguo2=fenzi1*fenmu2; int a=GYS(jieguo1,jieguo2); System.out.println(fenzi1+"/"+fenmu1+"/"+fenzi2+"/"+fenmu2+"="+jieguo2/a+"/"+jieguo1/a); } } } public class Size { static int n; static int m; public static void main(String args[]) { Fenshu a=new Fenshu(); boolean p=true; while(p) { Scanner in=new Scanner(System.in); System.out.println("1.整式计算 2.真分数计算"); int ch=in.nextInt(); if(ch==1) { System.out.println("请输入你要取得数值的范围:"); Scanner in1=new Scanner(System.in); n=in1.nextInt(); m=in1.nextInt(); System.out.print("请确认你要计算的题目中是否包括乘除法:1、包括2、不包括"); int c=in.nextInt(); if(c==1) { System.out.println("请输入要计算的题的数量:"); int number=in.nextInt(); int i=0; while(i<number) { output(); i++; } } if(c==2) { System.out.println("请输入要计算的题的数量:"); int number=in.nextInt(); int i=0; while(i<number) { output1(); i++; } } } if(ch==2) { System.out.println("请输入要计算的题的数量:"); int number=in.nextInt(); int i=0; while(i<number) { Fenshu.zhenoutput(); i++; } } } } public static int shuzi()//随机产生数字并且判断数值范围 { Random random=new Random(); int a=(int)(Math.random()*(m-n+1)+n); //System.out.print(a); return a; } public static void fuhao()//符号随机产生 { Random random=new Random(); int f=random.nextInt(4); if(f==0) System.out.print('+'); if(f==1) System.out.print('-'); if(f==2) System.out.print('*'); if(f==3) System.out.print('/'); } public static void output()//整数计算包括乘除法 { //Scanner in1=new Scanner(System.in); int a=shuzi(); int b=shuzi(); Random random=new Random(); int f=random.nextInt(4); if(f==0) { System.out.print(a); System.out.print('+'); System.out.print(b); System.out.println("="+(a+b)); } if(f==1) { System.out.print(a); System.out.print('-'); System.out.print(b); System.out.println("="+(a-b)); if(a-b<0) { System.out.println("此次计算式式子结果为负数。"); } } if(f==2) { System.out.print(a); System.out.print('*'); System.out.print(b); System.out.println("="+(a*b)); } if(f==3) { System.out.print(a); System.out.print('/'); System.out.print(b); int c=a/b; System.out.println("="+c); int yushu=a-c*b; if(yushu!=0) { System.out.println("该式子不能整除,余数为"+yushu); } if(yushu==0) { System.out.println("该式子能整除"); } } } public static void output1()//整数计算不包括乘除 { double a=shuzi(); double b=shuzi(); Random random=new Random(); int f=random.nextInt(2); if(f==0) { System.out.print(a); System.out.print('+'); System.out.print(b); System.out.println("="+(a+b)); } if(f==1) { System.out.print(a); System.out.print('-'); System.out.print(b); System.out.println("="+(a-b)); if(a-b<0) { System.out.println("此次计算式式子结果为负数。"); } } } }

2、设计思想:完善二柱子2,加老师要求功能。实现大量数据的计算

3、编程总结分析:

程序功能不够完善,没有实现查重和加括号。不知从何处做起,对知识掌握不熟,应该多敲代码,积累经验及。

4、PSPO级日志

PSP2.1

Personal Software Process Stages

Time

Planning

计划  

· Estimate

· 估计这个任务需要多少时间

18h

Development

开发

 

· Analysis

· 需求分析 (包括学习新技术)

6h

· Design Spec

· 生成设计文档

1h

· Design Review

· 设计复审 (和同事审核设计文档)

1h

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

0.5h

· Design

· 具体设计

3h

· Coding

· 具体编码

2h

· Code Review

· 代码复审

0.5

· Test

· 测试(自我测试,修改代码,提交修改)

2h

Reporting

报告

 

· Test Report

· 测试报告

0.5h

· Size Measurement

  · 计算工作量

0.5h

  · Postmortem & Process Improvement Plan

 · 事后总结, 并提出过程改进计划 1h
  合计 18h

实际:

PSP2.1

Personal Software Process Stages

Time

Planning

计划  

· Estimate

· 估计这个任务需要多少时间

18h

Development

开发

 

· Analysis

· 需求分析 (包括学习新技术)

6h

· Design Spec

· 生成设计文档

1h

· Design Review

· 设计复审 (和同事审核设计文档)

1h

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

1h

· Design

· 具体设计

4.5h

· Coding

· 具体编码

3h

· Code Review

· 代码复审

0.5

· Test

· 测试(自我测试,修改代码,提交修改)

2h

Reporting

报告

 

· Test Report

· 测试报告

0.5h

· Size Measurement

  · 计算工作量

0.5h

  · Postmortem & Process Improvement Plan

 · 事后总结, 并提出过程改进计划 1h
  合计 21h

 5、截图:

 程序功能不够完善,但是可以计算出大量题目,并且取值可以任意范围。

6、个人项目:

应当多敲代码积累经验,只有敲的代码够了才会有新的解决问题的办法。

在代码中应注重单元测试,方便查询BUG的出处

注意代码规范,做左缩进以及必要的注释。

原文地址:https://www.cnblogs.com/hanbook/p/6591138.html