![]()
1 1 import java.awt.Dimension;
2 2 import java.awt.FlowLayout;
3 3 import java.awt.GridLayout;
4 4 import java.awt.Toolkit;
5 5 import java.awt.event.ActionEvent;
6 6 import java.awt.event.ActionListener;
7 7
8 8 import javax.swing.JButton;
9 9 import javax.swing.JFrame;
10 10 import javax.swing.JLabel;
11 11 import javax.swing.JOptionPane;
12 12 import javax.swing.JPanel;
13 13 import javax.swing.JTextField;
14 14 import javax.swing.Timer;
15 15
16 16 public class Jiemian extends JFrame implements ActionListener{
17 17
18 18 /**
19 19 * @param args
20 20 */
21 21 Jisuanlei JISUAN=new Jisuanlei();
22 22 private Timer tmr;
23 23 String result;
24 24 int dadui=0;
25 25 JLabel L1=new JLabel("设置时间:");
26 26 JLabel L2=new JLabel("实际用时:");
27 27 JLabel L3=new JLabel("输入你想要的题数(最多1--5):");
28 28 JLabel L4=new JLabel("你答对的题目数有:");
29 29 JLabel L5=new JLabel("温馨提示:");
30 30 JLabel L6=new JLabel("=");
31 31 JLabel Q1=new JLabel(" ");
32 32 JLabel Q2=new JLabel(" ");
33 33 JLabel Q3=new JLabel(" ");
34 34 JLabel Q4=new JLabel(" ");
35 35 JTextField T1=new JTextField(10);
36 36 JTextField T2=new JTextField(10);
37 37 JTextField T3=new JTextField(3);
38 38 JTextField T4=new JTextField(3);
39 39 JTextField T5=new JTextField(3);
40 40 JTextField T6=new JTextField(3);
41 41 JTextField T7=new JTextField(3);
42 42 JTextField T8=new JTextField(20);
43 43 JTextField T9=new JTextField(3);
44 44
45 45 JButton B1=new JButton("确定");
46 46 JButton B5=new JButton("确定");
47 47 JButton B2=new JButton("出题");
48 48 JButton B3=new JButton("确定答案!");
49 49 JButton B4=new JButton("下一题!");
50 50
51 51
52 52
53 53
54 54
55 55 public Jiemian(){
56 56 super("CHENGXU");
57 57 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
58 58 this.setPreferredSize(new Dimension(300,600));
59 59 this.getContentPane();
60 60 this.pack();
61 61 FlowLayout layout = new FlowLayout(FlowLayout.CENTER,5,20);
62 62 this.setLayout(layout);
63 63 this.add(L1);this.add(T1);this.add(B1);this.add(L2);this.add(T2);this.add(Q1);
64 64 this.add(L3);this.add(T3);this.add(B5);
65 65 this.add(B2);this.add(B2);
66 66 this.add(T4);this.add(T5);this.add(T6);this.add(L6);this.add(T7);
67 67 this.add(B3);this.add(B4);this.add(Q2);
68 68 this.add(L5);this.add(T8);
69 69 this.add(L4);this.add(T9);this.add(Q3);
70 70
71 71 B1.addActionListener(this);
72 72
73 73 B2.addActionListener(this);
74 74
75 75 B3.addActionListener(this);
76 76 Timer tmr = new Timer(1000, this);//间隔1秒
77 77 this.tmr = tmr;//添加时间
78 78 B4.addActionListener(this);
79 79
80 80 B5.addActionListener(this);
81 81
82 82
83 83 int width = Toolkit.getDefaultToolkit().getScreenSize().width; //把框在屏幕中间显示
84 84 int height = Toolkit.getDefaultToolkit().getScreenSize().height;
85 85 this.setLocation(width / 2 - 300, height / 2 - 200);
86 86
87 87 this.setVisible(true);
88 88 this.setResizable(false);
89 89
90 90
91 91
92 92 }
93 93
94 94
95 95
96 96
97 97 public void actionPerformed(ActionEvent e)
98 98 {
99 99 if(e.getSource()==B1)//当获取的资源是按钮1时
100 100 {
101 101 try
102 102 {
103 103 T2.setText(String.valueOf(T1.getText()));//在显示时间框里显示以获取的时间
104 104
105 105 int n1=120,n2=5;
106 106 if(n1<(Integer.parseInt(T2.getText())))
107 107 {//当设置时间超过120秒,弹出对话框
108 108 JOptionPane.showMessageDialog(null, "时间不能超过120秒!");
109 109 this.setVisible(false);
110 110 }
111 111 if(n2<(Integer.parseInt(T3.getText())))
112 112 {//当选择题目个数超过5个,弹出对话框
113 113 JOptionPane.showMessageDialog(null, "选择题数不能超过五个!");
114 114 this.setVisible(false);
115 115 }
116 116 tmr.start();//开始计时
117 117 }
118 118 catch(NullPointerException o)
119 119 {
120 120
121 121 }
122 122 //suijishu();//调用产生随机数题目
123 123 // startTime= System.currentTimeMillis(); //获取开始时间
124 124 T2.setText(String.valueOf(T1.getText()));
125 125 }
126 126 else{
127 127 int m = Integer.parseInt(T2.getText());
128 128 m--;
129 129 T2.setText("" + m);
130 130 if (m <= 0)
131 131 {
132 132 tmr.stop();
133 133 JOptionPane.showMessageDialog(null, "超出答题时间!");
134 134 this.setVisible(false);
135 135 }
136 136 }
137 137
138 138
139 139 if(e.getSource()==B5)//当获取的资源是按钮1时
140 140 {
141 141 int num=(int) Double.parseDouble(T3.getText());
142 142 System.out.println(num);
143 143
144 144 if(5<(Integer.parseInt(T3.getText())))
145 145 {//当选择题目个数超过5个,弹出对话框
146 146 JOptionPane.showMessageDialog(null, "选择题数不能超过五个!");
147 147 this.setVisible(false);
148 148 }
149 149
150 150 }
151 151
152 152
153 153
154 154
155 155 if(e.getSource()==B2)//当获取的资源是按钮1时
156 156 {
157 157 int fuhao1=(int) (Math.random()*11/3+1);
158 158 switch (fuhao1)
159 159 {
160 160 case 1:
161 161 {
162 162 int leixing=(int) (Math.random()*8/3+1);//1表示整数,2表示分数,3表示阶乘;
163 163 switch(leixing)
164 164 {
165 165 case 1:
166 166 {
167 167 /*int shu1=(int) (Math.random()*10+1);
168 168 int shu2=(int) (Math.random()*10+1);
169 169 T4.setText(String.valueOf(shu1));
170 170 T6.setText(String.valueOf(shu2));
171 171 T5.setText(String.valueOf("+"));
172 172 result=String.valueOf(shu1+shu2);*/
173 173 Jisuanlei.Jiahaozhengshuyunsuan( T4,T6, T5, result);
174 174 if(e.getSource()==B3)
175 175 {
176 176 if(result.equals(T7.getText()))
177 177 {
178 178 T8.setText("答案正确!");
179 179 }
180 180 else
181 181 T8.setText("答案错误!正确答案是"+result);
182 182 dadui++;
183 183 }
184 184
185 185 }break;
186 186 case 2:
187 187 {
188 188 /*int shu1=(int) (Math.random()*10+1);
189 189 int shu2=(int) (Math.random()*10+1);
190 190 int shu3=(int) (Math.random()*10+1);
191 191 int shu4=(int) (Math.random()*10+1);
192 192 if(shu1>shu2)
193 193 {
194 194 int temp=shu1;
195 195 shu1=shu2;
196 196 shu2=temp;
197 197 }
198 198 if(shu3>shu4)
199 199 {
200 200 int temp=shu3;
201 201 shu3=shu4;
202 202 shu4=temp;
203 203 }
204 204
205 205 T4.setText(String.valueOf(shu1+"/"+shu2));
206 206 T6.setText(String.valueOf(shu3+"/"+shu4));
207 207 T5.setText(String.valueOf("+"));
208 208 int res1=(shu1*shu4)+(shu2*shu3);
209 209 int res2=shu2*shu4;
210 210 int pan=0;
211 211 if(res1>res2)
212 212 {
213 213 pan=res2;
214 214 }
215 215 else
216 216 {
217 217 pan=res1;
218 218 }
219 219 for(int i=pan;i>0;i--)
220 220 {
221 221 if(res1%pan==0&&res2%pan==0)
222 222 {
223 223 res1=res1/pan;
224 224 res2=res2/pan;
225 225 if(res1>res2)
226 226 {
227 227 pan=res2;
228 228 }
229 229 else
230 230 {
231 231 pan=res1;
232 232 }
233 233 i=pan;
234 234 }
235 235 }
236 236
237 237 result=String.valueOf(shu1+"/"+shu2);*/
238 238 Jisuanlei.Jiahaofenshuyunsuan( T4,T6, T5, result);
239 239 if(e.getSource()==B3)
240 240 {
241 241 if(result.equals(T7.getText()))
242 242 {
243 243 T8.setText("答案正确!");
244 244 }
245 245 else
246 246 T8.setText("答案错误!正确答案是"+result);
247 247 dadui++;
248 248 }
249 249 }break;
250 250 case 3:
251 251 {
252 252
253 253 /*int shu1=(int) (Math.random()*9+1);
254 254 int res1=shu1;
255 255 T6.setText(String.valueOf("!"+shu1));
256 256 for(int i=shu1-1;i>0;i--)
257 257 {
258 258 res1=res1*i;
259 259 }
260 260 result=String.valueOf(res1);*/
261 261 Jisuanlei.Jiahaojieshengyunsuan( T4,T6, T5, result);
262 262 if(e.getSource()==B3)
263 263 {
264 264 if(result.equals(T7.getText()))
265 265 {
266 266 T8.setText("答案正确!");
267 267 }
268 268 else
269 269 T8.setText("答案错误!正确答案是"+result);
270 270 dadui++;
271 271 }
272 272 }break;
273 273
274 274 }
275 275
276 276 }break;
277 277 case 2:
278 278 {
279 279 int leixing=(int) (Math.random()*8/3+1);//1表示整数,2表示分数,3表示阶乘;
280 280 switch(leixing)
281 281 {
282 282 case 1:
283 283 {
284 284 /*int shu1=(int) (Math.random()*10+1);
285 285 int shu2=(int) (Math.random()*10+1);
286 286 T4.setText(String.valueOf(shu1));
287 287 T6.setText(String.valueOf(shu2));
288 288 T5.setText(String.valueOf("-"));
289 289 result=String.valueOf(shu1-shu2);*/
290 290 Jisuanlei.Jianhaozhengshuyunsuan(T4,T6,T5,result);
291 291 if(e.getSource()==B3)
292 292 {
293 293 if(result.equals(T7.getText()))
294 294 {
295 295 T8.setText("答案正确!");
296 296 }
297 297 else
298 298 T8.setText("答案错误!正确答案是"+result);
299 299 dadui++;
300 300 }
301 301 }break;
302 302 case 2:
303 303 {
304 304 /*int shu1=(int) (Math.random()*10+1);
305 305 int shu2=(int) (Math.random()*10+1);
306 306 int shu3=(int) (Math.random()*10+1);
307 307 int shu4=(int) (Math.random()*10+1);
308 308 if(shu1>shu2)
309 309 {
310 310 int temp=shu1;
311 311 shu1=shu2;
312 312 shu2=temp;
313 313 }
314 314 if(shu3>shu4)
315 315 {
316 316 int temp=shu3;
317 317 shu3=shu4;
318 318 shu4=temp;
319 319 }
320 320
321 321 T4.setText(String.valueOf(shu1+"/"+shu2));
322 322 T6.setText(String.valueOf(shu3+"/"+shu4));
323 323 T5.setText(String.valueOf("-"));
324 324 int res1=(shu1*shu4)-(shu2*shu3);
325 325 int res2=shu2*shu4;
326 326 int pan=0;
327 327 if(res1>res2)
328 328 {
329 329 pan=res2;
330 330 }
331 331 else
332 332 {
333 333 pan=res1;
334 334 }
335 335 for(int i=pan;i>0;i--)
336 336 {
337 337 if(res1%pan==0&&res2%pan==0)
338 338 {
339 339 res1=res1/pan;
340 340 res2=res2/pan;
341 341 if(res1>res2)
342 342 {
343 343 pan=res2;
344 344 }
345 345 else
346 346 {
347 347 pan=res1;
348 348 }
349 349 i=pan;
350 350 }
351 351 }
352 352
353 353 result=String.valueOf(shu1+"/"+shu2);*/
354 354 Jisuanlei.Jianhaofenshuyunsuan(T4,T6,T5,result);
355 355 if(e.getSource()==B3)
356 356 {
357 357 if(result.equals(T7.getText()))
358 358 {
359 359 T8.setText("答案正确!");
360 360 }
361 361 else
362 362 T8.setText("答案错误!正确答案是"+result);
363 363 dadui++;
364 364 }
365 365 }break;
366 366 case 3:
367 367 {
368 368
369 369 /*int shu1=(int) (Math.random()*9+1);
370 370 int res1=shu1;
371 371 T6.setText(String.valueOf("!"+shu1));
372 372 for(int i=shu1-1;i>0;i--)
373 373 {
374 374 res1=res1*i;
375 375 }
376 376 result=String.valueOf(res1);*/
377 377 Jisuanlei.Jianhaofenshuyunsuan(T4,T6,T5,result);
378 378 if(e.getSource()==B3)
379 379 {
380 380 if(result.equals(T7.getText()))
381 381 {
382 382 T8.setText("答案正确!");
383 383 }
384 384 else
385 385 T8.setText("答案错误!正确答案是"+result);
386 386 dadui++;
387 387 }
388 388 }break;
389 389
390 390 }
391 391
392 392 }break;
393 393 case 3:
394 394 {
395 395 int leixing=(int) (Math.random()*8/3+1);//1表示整数,2表示分数,3表示阶乘;
396 396 switch(leixing)
397 397 {
398 398 case 1:
399 399 {
400 400 /*int shu1=(int) (Math.random()*10+1);
401 401 int shu2=(int) (Math.random()*10+1);
402 402 T4.setText(String.valueOf(shu1));
403 403 T6.setText(String.valueOf(shu2));
404 404 T5.setText(String.valueOf("*"));
405 405 result=String.valueOf(shu1*shu2);*/
406 406 Jisuanlei.shenghaozhengshuyunsuan(T4,T6,T5,result);
407 407 if(e.getSource()==B3)
408 408 {
409 409 if(result.equals(T7.getText()))
410 410 {
411 411 T8.setText("答案正确!");
412 412 }
413 413 else
414 414 T8.setText("答案错误!正确答案是"+result);
415 415 dadui++;
416 416 }
417 417 }break;
418 418 case 2:
419 419 {
420 420 /*int shu1=(int) (Math.random()*10+1);
421 421 int shu2=(int) (Math.random()*10+1);
422 422 int shu3=(int) (Math.random()*10+1);
423 423 int shu4=(int) (Math.random()*10+1);
424 424 if(shu1>shu2)
425 425 {
426 426 int temp=shu1;
427 427 shu1=shu2;
428 428 shu2=temp;
429 429 }
430 430 if(shu3>shu4)
431 431 {
432 432 int temp=shu3;
433 433 shu3=shu4;
434 434 shu4=temp;
435 435 }
436 436
437 437 T4.setText(String.valueOf(shu1+"/"+shu2));
438 438 T6.setText(String.valueOf(shu4+"/"+shu3));
439 439 T5.setText(String.valueOf("*"));
440 440 int res1=(shu1)*(shu3);
441 441 int res2=shu2*shu4;
442 442 int pan=0;
443 443 if(res1>res2)
444 444 {
445 445 pan=res2;
446 446 }
447 447 else
448 448 {
449 449 pan=res1;
450 450 }
451 451 for(int i=pan;i>0;i--)
452 452 {
453 453 if(res1%pan==0&&res2%pan==0)
454 454 {
455 455 res1=res1/pan;
456 456 res2=res2/pan;
457 457 if(res1>res2)
458 458 {
459 459 pan=res2;
460 460 }
461 461 else
462 462 {
463 463 pan=res1;
464 464 }
465 465 i=pan;
466 466 }
467 467 }
468 468
469 469 result=String.valueOf(shu1+"/"+shu2);*/
470 470 Jisuanlei.shenghaofenshuyunsuan(T4,T6,T5,result);
471 471 if(e.getSource()==B3)
472 472 {
473 473 if(result.equals(T7.getText()))
474 474 {
475 475 T8.setText("答案正确!");
476 476 }
477 477 else
478 478 T8.setText("答案错误!正确答案是"+result);
479 479 dadui++;
480 480 }
481 481 }break;
482 482 case 3:
483 483 {
484 484
485 485 /*int shu1=(int) (Math.random()*9+1);
486 486 int res1=shu1;
487 487 T6.setText(String.valueOf("!"+shu1));
488 488 for(int i=shu1-1;i>0;i--)
489 489 {
490 490 res1=res1*i;
491 491 }
492 492 result=String.valueOf(res1);*/
493 493 Jisuanlei.shenghaojieshengyunsuan(T4,T6,T5,result);
494 494 if(e.getSource()==B3)
495 495 {
496 496 if(result.equals(T7.getText()))
497 497 {
498 498 T8.setText("答案正确!");
499 499 }
500 500 else
501 501 T8.setText("答案错误!正确答案是"+result);
502 502 dadui++;
503 503 }
504 504 }break;
505 505
506 506 }
507 507
508 508 }break;
509 509 case 4:
510 510 {
511 511 int leixing=(int) (Math.random()*8/3+1);//1表示整数,2表示分数,3表示阶乘;
512 512 switch(leixing)
513 513 {
514 514 case 1:
515 515 {
516 516 /*int shu1=(int) (Math.random()*10+1);
517 517 int shu2=(int) (Math.random()*10+1);
518 518 T4.setText(String.valueOf(shu1));
519 519 T6.setText(String.valueOf(shu2));
520 520 T5.setText(String.valueOf("/"));
521 521 result=String.valueOf(shu1/shu2);*/
522 522 Jisuanlei.chuhaozhengshuyunsuan(T4,T6,T5,result);
523 523 if(e.getSource()==B3)
524 524 {
525 525 if(result.equals(T7.getText()))
526 526 {
527 527 T8.setText("答案正确!");
528 528 }
529 529 else
530 530 T8.setText("答案错误!正确答案是"+result);
531 531 dadui++;
532 532 }
533 533 }break;
534 534 case 2:
535 535 {
536 536 /*int shu1=(int) (Math.random()*10+1);
537 537 int shu2=(int) (Math.random()*10+1);
538 538 int shu3=(int) (Math.random()*10+1);
539 539 int shu4=(int) (Math.random()*10+1);
540 540 if(shu1>shu2)
541 541 {
542 542 int temp=shu1;
543 543 shu1=shu2;
544 544 shu2=temp;
545 545 }
546 546 if(shu3>shu4)
547 547 {
548 548 int temp=shu3;
549 549 shu3=shu4;
550 550 shu4=temp;
551 551 }
552 552
553 553 T4.setText(String.valueOf(shu1+"/"+shu2));
554 554 T6.setText(String.valueOf(shu3+"/"+shu4));
555 555 T5.setText(String.valueOf("/"));
556 556 int res1=shu1*shu4;
557 557 int res2=shu2*shu3;
558 558 int pan=0;
559 559 if(res1>res2)
560 560 {
561 561 pan=res2;
562 562 }
563 563 else
564 564 {
565 565 pan=res1;
566 566 }
567 567 for(int i=pan;i>0;i--)
568 568 {
569 569 if(res1%pan==0&&res2%pan==0)
570 570 {
571 571 res1=res1/pan;
572 572 res2=res2/pan;
573 573 if(res1>res2)
574 574 {
575 575 pan=res2;
576 576 }
577 577 else
578 578 {
579 579 pan=res1;
580 580 }
581 581 i=pan;
582 582 }
583 583 }
584 584
585 585 result=String.valueOf(shu1+"/"+shu2);*/
586 586 Jisuanlei.chuhaofenshuyunsuan(T4,T6,T5,result);
587 587 if(e.getSource()==B3)
588 588 {
589 589 if(result.equals(T7.getText()))
590 590 {
591 591 T8.setText("答案正确!");
592 592 }
593 593 else
594 594 T8.setText("答案错误!正确答案是"+result);
595 595 dadui++;
596 596 }
597 597 }break;
598 598 case 3:
599 599 {
600 600
601 601 /*int shu1=(int) (Math.random()*9+1);
602 602 int res1=shu1;
603 603 T6.setText(String.valueOf("!"+shu1));
604 604 for(int i=shu1-1;i>0;i--)
605 605 {
606 606 res1=res1*i;
607 607 }
608 608 result=String.valueOf(res1);*/
609 609 Jisuanlei.chuhaojieshengyunsuan(T4,T6,T5,result);
610 610 if(e.getSource()==B3)
611 611 {
612 612 if(result.equals(T7.getText()))
613 613 {
614 614 T8.setText("答案正确!");
615 615 }
616 616 else
617 617 T8.setText("答案错误!正确答案是"+result);
618 618 dadui++;
619 619 }
620 620 }break;
621 621
622 622 }
623 623
624 624 }break;
625 625 }
626 626
627 627 }
628 628
629 629
630 630
631 631 }
632 632
633 633
634 634
635 635
636 636
637 637
638 638 public static void main(String[] args) {
639 639 // TODO Auto-generated method stub
640 640 new Jiemian();
641 641
642 642
643 643 }
644 644
645 645 }