質問編集履歴
1
間違えていた場所の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,40 +1,4 @@
|
|
1
1
|
以下の問題のプログラムを書きたいのですが、どうも頭がこんがらがってわかりません。
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
LineSegmentクラスを継承して、つぎの機能をもつクラス ThickLineSegmentを定義する。
|
6
|
-
|
7
|
-
・ 線分の幅を表す属性 width を追加する。
|
8
|
-
|
9
|
-
・ 線分の幅を設定するメソッドsetWidth を定義する。
|
10
|
-
|
11
|
-
・ 3種類のコンストラクタを定義する。
|
12
|
-
|
13
|
-
1 2つの端点の x 座標と y 座標を指定したもの(幅の初期値は1とする)
|
14
|
-
|
15
|
-
2 1つの端点の x 座標と y 座標および幅を指定したもの(もう1つの端点は原点とする)
|
16
|
-
|
17
|
-
3 2つの端点および幅を指定したもの
|
18
|
-
|
19
|
-
・線分が幅を持つことを示すために、形状を生成するメソッド makeForm を定義する。指定され
|
20
|
-
|
21
|
-
た幅に応じて以下のような文字列を生成する。ただし、線分の長さを求めるメソッド length
|
22
|
-
|
23
|
-
を適切なクラスに定義して、利用すること。
|
24
|
-
|
25
|
-
幅が 1 の場合:文字“-“ を線分の長さの小数点以下を切り上げた整数値の個数分連接し
|
26
|
-
|
27
|
-
た文字列
|
28
|
-
|
29
|
-
幅が 2 の場合:文字“=“ を線分の長さの小数点以下を切り上げた整数値の個数分連接し
|
30
|
-
|
31
|
-
た文字列
|
32
|
-
|
33
|
-
幅が 3 以上の場合:文字“#“ を線分の長さの小数点以下を切り上げた整数値の個数分連
|
34
|
-
|
35
|
-
接した文字列
|
36
|
-
|
37
|
-
・toString は端点を前にで生成した形状の情報で連結して文字列化する。
|
38
2
|
|
39
3
|
|
40
4
|
|
@@ -114,91 +78,11 @@
|
|
114
78
|
|
115
79
|
}
|
116
80
|
|
117
|
-
int length(double x1, double y1,double x2,double y2){
|
118
81
|
|
119
|
-
this.x = Math.pow(x2-x1,2);
|
120
|
-
|
121
|
-
this.y = Math.pow(y2-y1,2);
|
122
|
-
|
123
|
-
return (int)Math.sqrt(x+y);
|
124
|
-
|
125
|
-
}
|
126
|
-
|
127
|
-
String makeFrom(){
|
128
|
-
|
129
|
-
int bwidth = awidth;
|
130
|
-
|
131
|
-
char k;
|
132
|
-
|
133
|
-
if (bwidth == 1){
|
134
|
-
|
135
|
-
k = "-";
|
136
|
-
|
137
|
-
}
|
138
|
-
|
139
|
-
else if (bwidth == 2){
|
140
|
-
|
141
|
-
k = "=";
|
142
|
-
|
143
|
-
}
|
144
|
-
|
145
|
-
else if (bwidth <= 3){
|
146
|
-
|
147
|
-
k = "#";
|
148
|
-
|
149
|
-
}
|
150
|
-
|
151
|
-
for(int i=0;i<this.length;i++){
|
152
|
-
|
153
|
-
System.out.println(k);
|
154
|
-
|
155
|
-
}
|
156
|
-
|
157
|
-
}
|
158
|
-
|
159
|
-
String toString(){
|
160
|
-
|
161
|
-
return (makeFrom());
|
162
|
-
|
163
|
-
}
|
164
|
-
|
165
|
-
String toString(double x,double y){
|
166
|
-
|
167
|
-
return ("("+x+","+y+")");
|
168
|
-
|
169
|
-
}
|
170
82
|
|
171
83
|
}
|
172
84
|
|
173
85
|
|
174
|
-
|
175
|
-
public class MainLine{
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
public static void main(String[] args){
|
180
|
-
|
181
|
-
double a = Double.parseDouble(args[0]);
|
182
|
-
|
183
|
-
double b = Double.parseDouble(args[1]);
|
184
|
-
|
185
|
-
double c = Double.parseDouble(args[2]);
|
186
|
-
|
187
|
-
double d = Double.parseDouble(args[3]);
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
ThickLineSegment s = new ThickLineSegment(a,b,c,d,2);
|
192
|
-
|
193
|
-
s.linearTransfer();
|
194
|
-
|
195
|
-
s.length(a,b,c,d);
|
196
|
-
|
197
|
-
s.makeFrom();
|
198
|
-
|
199
|
-
}
|
200
|
-
|
201
|
-
}
|
202
86
|
|
203
87
|
|
204
88
|
|