结对编程之二

结对对象:王足英

对方博客:http://www.cnblogs.com/wangzuying/p/5406306.html

贡献比例:1:1

结对方式:电脑编程,王足英负责写代码我主要提供思路并检查错误

结对图片:

同伴优点:细心认真,容易沟通和交流

题目要求:

构造程序,分别是:

•不能触发Fault。

•触发Fault,但是不能触发Error。

•触发Error,但是不能产生Failure。

问题描述:

假设默认长度单位为米,编写一个计算为各种形状着色花费的程序。

部分代码如下:

  1 package wxq.theForth.Second.Cost;
  2 import java.util.Scanner;
  3 public class Test {
  4
  5     public static void main(String[] agrs){
  6         Scanner input=new Scanner(System.in);
  7
  8         CostCalculator cost=new CostCalculator(1.0,2.0);//边的花费,内部的花费
  9         System.out.println("着色一米的边长需要:"+cost.getBorderCost()+"RMB       "+"着色l平方米需要:"+cost.getSoliderCost()+"RMB");
 10         double radius=0;
 11         double height=0,width=0;
 12         double left=0,right=0,boom=0;
 13         //*******圆*******
 14         System.out.print("请输入圆的半径:");
 15         radius=input();
 16         Circle circle=new Circle(radius);
 17         circle.area();
 18         circle.perimeter();
 19         circle.paintBorder();//为边着色
 20         System.out.println("花费为:"+cost.calculate(circle));
 21
 22         //*******长方形*******
 23         System.out.print("请输入长方形的长:");
 24         height=input();
 25         System.out.print("请输入长方形的宽:");
 26         width=input();
 27         Rectangle rectangle=new Rectangle(height,width);
 28         rectangle.area();
 29         rectangle.perimeter();
 30
 31         rectangle.paintBorder();//为边着色
 32         rectangle.paintShape(); //为内部着色
 33         System.out.println("花费为:"+cost.calculate(rectangle));
 34
 35         //******正方形******
 36         System.out.print("请输入正方形的边长:");
 37         width=input();
 38         Square square=new Square(width);
 39         square.area();
 40         square.perimeter();
 41
 42         square.paintBorder(); //为内部着色
 43         square.paintShape();
 44         System.out.println("花费为:"+cost.calculate(square));
 45
 46         //******三角形******
 47         do{
 48             System.out.print("请输入三角形的第一边长:");
 49             left=input();
 50             System.out.print("请输入三角形的第二边长:");
 51             right=input();
 52             System.out.print("请输入三角形的第三边长:");
 53             boom=input();
 54         }while(!judge(left,right,boom));
 55         Triangle triangle=new Triangle(left,right,boom);;
 56         triangle.area();
 57         triangle.perimeter();
 58         triangle.paintShape(); //为内部着色
 59         System.out.println("花费为:"+cost.calculate(triangle));
 60
 61         input.close();
 62     }
 63     public static boolean judgement(double r){
 64
 65         if(r<0){
 66             System.out.println("输入错误,请重新输入");
 67             return false;
 68         }
 69         return true;
 70     }
 71     public static double input(){
 72         double temp=0;
 73         boolean flag=true;
 74         @SuppressWarnings("resource")
 75         Scanner input=new Scanner(System.in);
 76         do{
 77             flag=true;
 78              input=new Scanner(System.in);
 79             if(input.hasNextDouble()){
 80                 temp=input.nextDouble();
 81                 if(temp>0){
 82                     flag=false;
 83                     break;
 84                 }
 85             }
 86             System.out.println("输入必须是double型,并且大于0,请重新输入");
 87         }while(flag);
 88         return temp;
 89     }
 90     public static boolean judge(double right,double left,double boom){
 91             if(right<=0 || left<=0 || boom<=0){
 92                 System.out.println("输入不满足三角形构造规则,请重新输入");
 93                 return false;
 94             }
 95             if(right+left<=boom || right+boom<=left || boom+left<=right){
 96                 System.out.println("输入不满足三角形构造规则,请重新输入");
 97                 return false;
 98             }
 99             if(right-left>=boom || right-boom>=left || boom-left>=right){
100                 System.out.println("输入不满足三角形构造规则,请重新输入");
101                 return false;
102             }
103             return true;
104         }
105 }
 1 package wxq.theForth.Second.Cost;
 2
 3 public class Triangle extends Shape2D implements SoliderColorable {
 4     private double length1;
 5     private double length2;
 6     private double length3;
 7     private boolean flag = false;
 8
 9     public Triangle(double length1, double length2, double length3) {
10         // TODO Auto-generated constructor stub
11         super();
12         this.length1 = length1;
13         this.length2 = length2;
14         this.length3 = length3;
15         if ((Math.abs(this.length1 - this.length2) < this.length3)
16                 && (Math.abs(this.length1 - this.length3) < this.length2)
17                 && (Math.abs(this.length3 - this.length2) < this.length1)
18                 && (Math.abs(this.length1 + this.length2) > this.length3)
19                 && (Math.abs(this.length1 + this.length3) > this.length2)
20                 && (Math.abs(this.length3 + this.length2) > this.length1)) {
21             setSuccess(true);
22             System.out.println("构成了一个三条边长分别为:" + this.length1 + ","
23                     + this.length2 + "," + this.length3 + "的三角形");
24         } else {
25             setSuccess(false);
26         }
27     }
28
29     public double getLength1() {
30         return length1;
31     }
32
33     public void setLength1(double length1) {
34         this.length1 = length1;
35     }
36
37     public double getLength2() {
38         return length2;
39     }
40
41     public void setLength2(double length2) {
42         this.length2 = length2;
43     }
44
45     public double getLength3() {
46         return length3;
47     }
48
49     public void setLength3(double length3) {
50         this.length3 = length3;
51     }
52
53     public void area() {
54         double p = (getLength1() + getLength2() + getLength3()) / 2;
55         System.out.println("面积为:"
56                 + Math.sqrt(p * (p - getLength1()) * (p - getLength2())
57                         * (p - getLength3())));
58         this.setArea(Math.sqrt(p * (p - getLength1()) * (p - getLength2())
59                         * (p - getLength3())));
60     }
61
62     public void perimeter() {
63         System.out.println("周长为:"
64                 + (getLength1() + getLength2() + getLength3()));
65         this.setPerimeter((getLength1() + getLength2() + getLength3()));
66     }
67
68     public void paintShape() {
69         flag = true;
70         System.out.println("三角形正在着色。。。。。");
71     }
72
73     public boolean isShapePainted() {
74         if (flag)
75             return true;
76         else
77             return false;
78     }
79
80 }
 1 package wxq.theForth.Second.Cost;
 2
 3 public class Square extends Rectangle {
 4     private double a = 0;
 5
 6     public Square(double width) {
 7         super(width,width);
 8         // TODO Auto-generated constructor stub
 9         if (width>0) {
10             this.a = width;
11             System.out.println("构成了一个边长为:"+this.a+"的正方形");
12             setSuccess(true);
13         } else {
14             setSuccess(false);
15         }
16     }
17
18     public double getA() {
19         return a;
20     }
21
22     public void setA(double a) {
23         this.a = a;
24     }
25
26     public void area() {
27         this.setArea(getA() * getA());
28         System.out.println("面积为:" + getA() * getA());
29     }
30
31     public void perimeter() {
32         this.setPerimeter(getA() * 4);
33         System.out.println("周长为:" + getA() * 4);
34     }
35
36
37 }

运行截图:

时间: 2024-10-28 12:16:11

结对编程之二的相关文章

socket编程之二:两种链接类型upd和upd

前面一篇文章说到了一些计算机网络的基础知识,引入了socket,从这节开始,就进入正题了. 一 概率 TCP:Transimission Control Protocol传输控制协议. UPD:User Datagram Protocol用户数据包协议. 两者都属于上一篇文章说的OSI模型中的第四层--传输层的协议. 两者相比: TCP协议面向连接,UDP协议面向非连接:(链接) TCP协议传输速度慢,UDP协议传输速度快:(速度) TCP有丢包重传机制,UDP没有:(重传) TCP协议保证数据

.Net并行编程之二:并行循环

本篇内容主要包括: 1.能够转化为并行循环的条件 2.并行For循环的用法:Parallel.For 3.并行ForEach的用法Parallel.ForEach 4.并行LINQ(PLINQ)的用法AsParallel() 5.并行中断与并行停止的用法与区别 6.外部控制循环取消的方法(Break,Stop) 7.处理循环体中抛出的异常 8.小循环体的分区并行方法:Parallel.ForEach 9.最大并行度的控制,Parallel.For,Parallel.ForEach 10.在循环体

深入理解多线程编程之二

一.NSOperation 1.简介 NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作. NSOperation本身是抽象基类,因此必须使用它的子类,使用NSOperation子类的方式有2种: 1> Foundation框架提供了两个具体子类直接供我们使用:NSInvocationOperation和NSBlockOperation 2> 自定义子类继承NSOperation,实现内部相应的方法 2.执行操作 NSOperation

结对编程之Fault、Error、Failure

1.结对说明 结对对象:刘世麟  博客地址:http://www.cnblogs.com/liushilin/ 双方贡献:1:1 2.题目要求 构造程序,分别是: •不能触发Fault. •触发Fault,但是不能触发Error. •触发Error,但是不能产生Failure. 3.题目概述 提示用户输入两个值,两个值必须在[0,100],若不满足条件各自有自己的提示,若两个值都小于5,则输出all input less than 5,程序退出.否则根据输入的值判断使用加法还是减法,若输入的第一

UDP编程之二

广播模型 broadcast.c 1 #include <apue.h> 2 3 #define PORT 8088 4 5 int main(int argc,char **argv) 6 { 7 if(argc!=2) 8 { 9 printf("%s <msg>\n",argv[0]); 10 exit(0); 11 } 12 13 int sockfd; 14 if((sockfd = socket(AF_INET,SOCK_DGRAM,0))<0

IOS高级编程之二:IOS的数据存储与IO

一.应用程序沙盒 IOS应用程序职能在系统为该应用所分配的文件区域下读写文件,这个文件区域就是应用程序沙盒.所有的非代码文件如:图片.声音.映象等等都存放在此. 在mac中command+shift+G命令,然后输入users/用户名/library命令进入库,然后依次进入application support/iphone simulator/版本/applications文件夹,这里面的各个文件夹对应着各个应用程序. Documents:除了基于NSUserDefaults的首选项设置外,应

结对编程之带UI的中小学数学学习软件

结对编程总结 本次结对编程是以程延博同学的代码为基础修改而成的. 个人项目的复用: 结对编程中的出题逻辑直接使用了原个人项目中的出题代码,只是在其上添加了计算算式结果的代码. 在结对编程中新增添的部分包括: 登录,注册,设置密码修改密码,题目显示,结果显示等界面 算式的结果计算和分数统计 密码的设置存储和修改 手机验证码注册功能 密码格式,手机号有效性,题目数量范围等的检测 一些经验总结和教训:        界面: 界面使用的javaSwing,认识了一系列API和类,包括像BorderLay

结对编程之JavaWeb实现

Tips: https://shihuan.site/OnlinePaper/jsp/ 这是最后实现所有功能的测试网址,欢迎大家登陆进行测试,但由于注册短信条数有限,所以提供一个测试账号进行测试 账号:Zhiwang 密码:123456Aa 界面展示: 环境选择:由于本学期选修了javaee课程,同时许多课程课程设计都需要进行网站设计,同时我们小组选择的项目也需要用到Web项目,所以选择了java作为开发环境进行本次结对编程项目开发,同时也算是检验javaee学习的效果 前端:HTML+CSS+

结对编程之带UI的小初高数学学习软件

功能要求: 1.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: 2.用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功.密码6-10位,必须含大小写字母和数字.用户在登录状态下可修改密码,输入正确的          原密码,再输入两次相同的新密码后修改密码成功: 3.密码设置成功后,跳转到选择界面,界面显示小学.初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量: 4.用户输入题目数量后,生成一张试卷(同一张卷子不能