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

小学生四则运算程序之前是使用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卢盛添主要负责其他重要模块的调试和编写。

总结:

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

时间: 2024-10-10 12:20:58

两人结对完成升级版小学生四则运算的相关文章

课堂练习--第7周(两人结对)

合作过程: 上次设计的思路和编程语言的不同,通过沟通讨论统一思想决定使用java进行编程,陈鹏负责编程,李国帅负责进行代码的审查和代码的测试.  设计思路: 设定三个变量,max是(子数组中的和的最大值,初始值为array[j]).result1(当前子数组的和,初始值为array[j]); 先让用户自己设定数组的长度,之后输入数组(输入的数组进行是否全为负数的判断): 在遍历之前增添一个for循环进行首尾相接: 之后在从数组第一位开始遍历数组, max=max+array[i],若result

201571030314《小学生四则运算练习软件》结对项目

结对编程实现小学生四则运算练习软件 前言:按照结对编程的原则,我和邻宿舍的小伙伴进行了两人结对编程,我们开发的结对项目的是小学生四则运算练习软件,具体就是随机生成n道题,供学生答题并返回正误记录答题结果,进行多轮.具体需求分析以及功能设计与实现如下. github代码地址:https://github.com/mqqgd/Experiment2 一.需求分析 本次实验采用结对编程方式,设计开发一个小学生四则运算练习软件,使之具有以下功能: 由计算机从题库文件中随机选择20道加减乘除混合算式,用户

【构建之法】第4章 两人合作

1 代码风格规范 4个空格的缩进 每个{}独占一行 不要把多个变量定义在一行上 一个类型的成员变量用m_name来命名 Pascal:所有的类型/类/函数名 lowerCamel:变量 注释是为了解释程序做什么(What),为什么这么做(Why),以及要特别注意的地方,只用ASCII字符,不要用中文 函数:只做一件事,并且要做好 单一出口 不要在构造函数中做复杂的操作,简单初始化所有的数据成员即可 看代码是否在代码规范的框架内正确地解决了问题 早期斤斤计较于一些细枝末节也是于大局无补的,但是,这

两人组队,小学生的四则运算

两人组队:王汉斌,尹良亮 需求概要: 编写出一个能自动生成小学四则运算题目的软件,并能够判断其正确性 分析: 由于给小学生出四则运算,其主要是产生随机数,调用加减乘除的方法.其中,最主要的是考虑到除法的问题,因为除法需要使用double型或者float型. 部分代码如下: package fourarithmetic; import java.util.Random;import java.util.Scanner; public class FourArithmetic { /** * 循环输

201571030316/201571030314《小学生四则运算练习软件》结对项目报告

github代码地址:https://github.com/mqqgd/Experiment2 小伙伴儿的博客地址链接:http://www.cnblogs.com/mjuan/p/8715700.html 我的学号:201571030316                  小伴儿的学号:201571030314 一.需求分析    本次实验采用结对编程方式,设计开发一个小学生四则运算练习软件,使之具有以下功能: 由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答

201571030134/201571030139《小学生四则运算练习软件需求说明》结对项目报告

任务一 首先,我们进行了用户体验,把我们已经完成的小学生四则运算软件发给我们要调研的人,他们体验了我们的程序后再填写需求分析调查问卷,这样可以更好的得到一个反馈,让我们的需求分析更加清楚. 其次,我们主要采取了精准的调查问卷来进行需求分析,调查对象主要为西北师大附属小学的二至六年级的小学生.师大附小的一些有经验的老师以及我们学院的一些孩子正在上小学的老师.这一点我们是主要考虑到: 大范围的发放调查问卷,填写人员职业和经验都有不确定性,所以不能作为有效的需求分析,所以我们采用了精准问卷调查,让我们

两人结队项目

两人组队,小学生的四则运算 两人组队:王汉斌,尹良亮 需求概要: 编写出一个能自动生成小学四则运算题目的软件,并能够判断其正确性. 分析: 由于给小学生出四则运算,其主要是产生随机数,调用加减乘除的方法.其中,最主要的是考虑到除法的问题,因为除法需要使用double型或者float型. 部分代码如下: package fourarithmetic; import java.util.Random;import java.util.Scanner; public class FourArithme

结伴项目 小学生四则运算

结伴:宫成荣 韩媛媛 需求分析: 为小学生能够出四则运算的题,并且能对其所答的答案进行判断,如答错能显示正确答案. 部分代码: int calculate(int a,int b,int c) { int num; switch(b) { case 0:num=a+c;break; case 1:num=a-c;break; case 2:num=a*c;break; } return num; } 使用函数对加减乘进行计算. char str[]="+-*/",ch; srand((

结对子实验——小学生四则运算

实验开始时间:4月7日~4月9日 本次实验的组员分别是:郑泽成http://www.cnblogs.com/Oliver-zzc/,李天麟http://www.cnblogs.com/talent-demonic/: 1.代码是在Eclipse环境下开发的 2.在这次实验中我负责了写四则运算的算术代码和检查算法 同伴负责面板的设计和监听事件的实现 3.实现扩展方向有:用户在第一次答题时,需要用户输入用户名:程序可以设置答题时间,时间设置为整数,单位为秒:答题结束可以显示用户答错的题目个数和答对的