码迷,mamicode.com
首页 > 其他好文 > 详细

两人结对完成升级版小学生四则运算

时间:2015-04-09 19:13:20      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

小学生四则运算程序之前是使用c语言编写的,如今根据界面要求,故切换到Java编程环境,借助Eclipse开发工具

 

主要的4个拓展方向:

1.程序可以设置皮肤功能,可以改变界面的颜色即可。

2.程序可以出单个整数阶乘的题目:如:4!=24

3.程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。

4.可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。

 

以下是代码展示:

  1 import java.awt.BorderLayout;
  2 import java.awt.Color;
  3 import java.awt.Component;
  4 import java.awt.Container;
  5 import java.awt.Dimension;
  6 import java.awt.Font;
  7 import java.awt.Panel;
  8 import java.awt.Toolkit;
  9 import java.awt.event.ActionEvent;
 10 import java.awt.event.ActionListener;
 11 import java.awt.event.MouseEvent;
 12 import java.awt.event.MouseListener;
 13 
 14 import javax.swing.ButtonGroup;
 15 import javax.swing.ImageIcon;
 16 import javax.swing.JButton;
 17 import javax.swing.JColorChooser;
 18 import javax.swing.JFrame;
 19 import javax.swing.JLabel;
 20 import javax.swing.JPanel;
 21 import javax.swing.JPasswordField;
 22 import javax.swing.JPopupMenu;
 23 import javax.swing.JRadioButtonMenuItem;
 24 import javax.swing.JTextField;
 25  
 26 /**
 27  * 倒计时
 28  *
 29  */
 30 public class Counter  {
 31 
 32     public static void main(String[] args) {
 33  
 34          Xiao xiao=new Xiao(); 
 35          xiao.visiable();
 36         
 37     }
 38 
 39     public void repaint() {
 40         // TODO 自动生成的方法存根
 41         
 42     }
 43 
 44     public Component getContentPane() {
 45         // TODO 自动生成的方法存根
 46         return null;
 47     }
 48 
 49     public void visiable() {
 50         
 51         
 52     }
 53 }
 54 
 55     /* 构造 实现界面的开发 GUI */
 56    class Xiao extends JFrame implements ActionListener{
 57       
 58         public static double daan=0;
 59         public static double sum=0;
 60         public static int a=0;
 61         public static int b=0;
 62         public static int ch=0;
 63         public static int n=0;
 64         public static double i=0 ;
 65         public static double j=0 ;
 66         public static double m=0 ;
 67         public JFrame jf = new JFrame("小学生四则运算管理系统");  
 68         public Container con = jf.getContentPane(); 
 69         Panel P1=new Panel();
 70         Panel P2=new Panel();
 71         Panel P3=new Panel();
 72         public Toolkit toolkit = Toolkit.getDefaultToolkit();   
 73         public Dimension sc = toolkit.getScreenSize();  
 74         public JLabel name1 = new JLabel("请输入答案");    
 75         public JLabel pass1 = new JLabel("信息提醒");
 76         public JLabel pass2 = new JLabel("所剩时间");
 77         public JLabel pass3 = new JLabel("更换皮肤");
 78         public JLabel pass4 = new JLabel("时间提醒");
 79         public JTextField textName = new JTextField();   
 80         public JTextField textPs = new JTextField();
 81         public JTextField text1 = new JTextField(); 
 82         public JTextField text2 = new JTextField(); 
 83         public JTextField text3 = new JTextField(); 
 84         public JButton button1 = new JButton("随机获取题目");    
 85         public JButton button2 = new JButton("确定"); 
 86         public JButton button3 = new JButton("重置");
 87         public JButton button4 = new JButton("黄色"); 
 88         public JButton button5 = new JButton("绿色"); 
 89         public JButton button6 = new JButton("粉色"); 
 90         public Font font1 = new Font("宋体",1,14); 
 91         public Font font2 = new Font("宋体",0,12);
 92     public Xiao() {
 93       
 94         JPanel jp = new JPanel();
 95         con.setLayout(null); 
 96         name1.setFont(font1);  
 97         name1.setLocation(52,25);    
 98         name1.setSize(80,180);
 99         name1.setForeground(Color.black);    
100         pass1.setLocation(55,90);    
101         pass1.setSize(80,250);     
102         pass1.setForeground(Color.black);    
103         pass1.setFont(font1);   
104         pass2.setLocation(55,110);    
105         pass2.setSize(100,300);     
106         pass2.setForeground(Color.black);    
107         pass2.setFont(font1);
108         pass3.setLocation(55,160);    
109         pass3.setSize(100,305);     
110         pass3.setForeground(Color.black);    
111         pass3.setFont(font1);
112         pass4.setLocation(280,110);    
113         pass4.setSize(100,300);     
114         pass4.setForeground(Color.black);    
115         pass4.setFont(font1);
116         textName.setSize(140, 20);    
117         textName.setLocation(170, 70);    
118         textPs.setSize(140, 20);      
119         textPs.setLocation(170, 105); 
120         text1.setSize(140, 20);      
121         text1.setLocation(170, 205);
122         text2.setSize(100, 20);      
123         text2.setLocation(170, 250);
124         text3.setSize(100, 20);      
125         text3.setLocation(350, 250);
126         button1.setSize(110,30);    
127         button1.setLocation(40,63 );    
128         button1.setFont(font2);    
129         button2.setSize(60,25);     
130         button2.setLocation(320, 100);    
131         button2.setFont(font2);
132         button3.setSize(60,25);     
133         button3.setLocation(400, 100);    
134         button3.setFont(font2);
135         button4.setSize(60,25);     
136         button4.setLocation(170, 300);    
137         button4.setFont(font2);
138         button5.setSize(60,25);     
139         button5.setLocation(240, 300);    
140         button5.setFont(font2);
141         button6.setSize(60,25);     
142         button6.setLocation(310, 300);    
143         button6.setFont(font2);
144         
145         con.add( button4, BorderLayout.NORTH);
146         con.add(name1);    
147         con.add(pass1);
148         con.add(pass2);
149         con.add(pass3);
150         con.add(pass4);
151         con.add(textName);    
152         con.add(textPs); 
153         con.add(text1);  
154         con.add(text2); 
155         con.add(text3);  
156         con.add(button1);    
157         con.add(button2);
158         con.add(button3); 
159         con.add(button4);
160         con.add(button5);
161         con.add(button6);
162         con.setBackground(Color.orange);  
163         
164         jf.setResizable(false);    
165         jf.add(jp);
166         jf.setVisible(true);
167         jf.setLocation(300, 300);
168         jf.setSize(500, 400);
169         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
170         textName.addActionListener(this);
171         textPs.addActionListener(this);
172         text1.addActionListener(this);
173         text2.addActionListener(this);
174         button1.addActionListener( this);
175         button2.addActionListener( this);
176         button3.addActionListener( this);
177         button3.addActionListener( this);
178         button4.addActionListener( this);
179         button5.addActionListener( this);
180         button6.addActionListener( this);
181            long time = 1 * 120; // 自定义倒计时时间
182         long hour = 0;
183         long minute = 0;
184         long seconds = 0;
185  
186         while (time >= 0) {
187             
188             minute = (time - hour * 3600) / 60;
189             seconds = time - hour * 3600 - minute * 60;
190            
191             text2.setText(hour + "时"+minute + "分"+seconds + "秒");
192             try {
193                 Thread.sleep(1000);
194             } catch (InterruptedException e) {
195                 e.printStackTrace();
196             }
197             time--;
198         
199         if(time==0){
200             
201         text3.setText("答题时间结束!!");
202         }
203         }
204        
205     }
206     void visiable()
207     {
208         this.setVisible(true);
209     }
210  
211     public void actionPerformed(ActionEvent e) {
212         if (e.getSource() == button1) {
213             a=(int)(Math.random()*(-200))+100;
214             b=(int)(Math.random()*(-200))+100;
215             ch=(int)(Math.random()*5)+1;
216             n=(int)(Math.random()*5)+1;
217             
218             if(a<0 && b>0){
219                 switch(ch){
220                     case 1:
221                     {
222                         sum=a+b;
223                         textName.setText("("+a+")"+"+"+b+"=?");
224                         break;
225                     }
226                     case 2:
227                     {
228                         sum=a-b;
229                         textName.setText("("+a+")"+"-"+b+"=?");
230                         break;
231                     }
232                     case 3:
233                     {
234                         sum=a*b;
235                         textName.setText("("+a+")"+"*"+b+"=?");
236                         break;
237                     }
238                     case 4:
239                     {
240                         sum=a/b;
241                         textName.setText("("+a+")"+"/"+b+"=?");
242                         break;
243                     }
244                     case 5:           //6.阶乘算法,n为随机生成数
245                     {
246                         sum=1;
247                         for(j=1;j<=n;i++)
248                         sum=sum*i;
249                         textName.setText(n+"!"+"=?");
250                         break;
251                     }
252                 }
253             }
254             
255 
256             else if(a>0 && b<0){
257                 switch(ch){
258                     case 1:
259                     {
260                         sum=a+b;
261                         textName.setText(a+"+"+"("+b+")"+"=?");
262                         break;
263                     }
264                     case 2:
265                     {
266                         sum=a-b;
267                         textName.setText(a+"-"+"("+b+")"+"=?");
268                         break;
269                     }
270                     case 3:
271                     {
272                         sum=a*b;
273                         textName.setText(a+"*"+"("+b+")"+"=?");
274                         break;
275                     }
276                     case 4:
277                     {
278                         sum=a/b;
279                         textName.setText(a+"/"+"("+b+")"+"=?");
280                         break;
281                     }
282                     case 5:           //6.阶乘算法,n为随机生成数
283                     {
284                         sum=1;
285                         for(j=1;j<=n;i++)
286                         sum=sum*i;
287                         textName.setText(n+"!"+"=?");
288                         break;
289                     }
290                 }
291             }
292             
293 
294             else if(a<0 && b<0){
295                 switch(ch){
296                     case 1:
297                     {
298                         sum=a+b;
299                         textName.setText("("+a+")"+"+"+"("+b+")"+"=?");
300                         break;
301                     }
302                     case 2:
303                     {
304                         sum=a-b;
305                         textName.setText("("+a+")"+"-"+"("+b+")"+"=?");
306                         break;
307                     }
308                     case 3:
309                     {
310                         sum=a*b;
311                         textName.setText("("+a+")"+"*"+"("+b+")"+"=?");
312                         break;
313                     }
314                     case 4:
315                     {
316                         sum=a/b;
317                         textName.setText("("+a+")"+"/"+"("+b+")"+"=?");
318                         break;
319                     }
320                     case 5:           //6.阶乘算法,n为随机生成数
321                     {
322                         sum=1;
323                         for(j=1;j<=n;i++)
324                         sum=sum*i;
325                         textName.setText(n+"!"+"=?");
326                         break;
327                     }
328                 }
329             }
330             else{
331                 switch(ch){
332                     case 1:
333                     {
334                         sum=a+b;
335                         textName.setText(a+"+"+b+"=?");
336                         break;
337                     }
338                     case 2:
339                     {
340                         sum=a-b;
341                         textName.setText(a+"-"+b+"=?");
342                         break;
343                     }
344                     case 3:
345                     {
346                         sum=a*b;
347                         textName.setText(a+"*"+b+"=?");
348                         break;
349                     }
350                     case 4:
351                     {
352                         sum=a-b;
353                         textName.setText(a+"/"+b+"=?");
354                         break;
355                     }
356                     case 5:           //6.阶乘算法,n为随机生成数
357                     {
358                         sum=1;
359                         for(j=1;j<=n;i++)
360                         sum=sum*i;
361                         textName.setText(n+"!"+"=?");
362                         break;
363                     }
364                 }
365             }
366             
367             
368         }
369         
370         else if(e.getSource()==button2)
371         {
372              
373                 daan=Integer.parseInt(textPs.getText());
374                 
375              if(daan==sum)
376              {
377                 
378                  text1.setText("回答正确!你得到10分!");
379                  textPs.setText(null);
380                  i=i+10;
381              }
382              else{
383                  text1.setText("回答错误,扣掉10分!" );
384                  i=i-10;
385                  textPs.setText(null);
386              }
387         }
388 
389         else if(e.getSource()== button3){
390             textPs.setText(null); 
391         }
392         else if(e.getSource()== button4){
393             con.setBackground(Color.yellow); //设置窗口背景  
394             repaint(); //重绘窗口  
395             return;  
396         }
397         else if(e.getSource()== button5){
398             con.setBackground(Color.green); //设置窗口背景  
399             repaint(); //重绘窗口  
400             return;
401         }
402         else if(e.getSource()== button6){
403             con.setBackground(Color.pink); //设置窗口背景  
404             repaint(); //重绘窗口  
405             return;
406         }
407       }
408     
409  
410 }
411    
412    
413    

 

程序运行截图如下:

技术分享技术分享

 

该程序由两人结对完成,分别是:12黄雄俊,13卢盛添(无博客地址)

结伴编程过程中,分工明确,12黄雄俊主要负责界面设计和布局,以及部分模块的功能实现,比如:阶乘运算。13卢盛添主要负责其他重要模块的调试和编写。

总结:

此次小项目的合作,在实践中收获了许多深刻的体会,对于同一个程序,两人的架构想法不一样,需要交流磨合,并且,在编写时,个人负责不同的功能模块,需要合理的调度、变成一个整体这样的话,就需要妥协自己的编程习惯,毕竟项目的完成是最重要的,所以说,对于分工合作的编程模式,对于目前来说,或许耗费的时间比起单人完成更多,但是,老师的出发点是为了让我们体验团队协作的过程,培养自己的融入团队的能力。受益匪浅。

两人结对完成升级版小学生四则运算

标签:

原文地址:http://www.cnblogs.com/huangxiongjun/p/4410332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!