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