201571030305、201571030306 《小学生四则运算结对项目》

小学四则运算结对项目

github地址:https://github.com/Suadea/https-github.com-Suadea

一、需求分析

1、需求分析

  (1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计

分,20道题测试结束后给出测试总分;

  (2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下:

 

(3)程序为用户提供三种进阶四则运算练习功能选择:百以内整数算式(必做)、带括号算式、真分数算式练习;

(4)程序允许用户进行多轮测试,提供用户多轮测试分数柱状图,示例如下:

 

                                                            

(5)程序记录用户答题结果,当程序退出再启动的时候,可为用户显示最后一次测试的结果,并询问用户可否进行新一轮的测试;

(6)测试有计时功能,测试时动态显示用户开始答题后的消耗时间。

(7)程序人机交互界面是GUI界面(WEB页面、APP页面都可),界面支持中文简体(必做)/中文繁体/英语,用户可以进行语种选择。

 

二 核心代码:

复制代码
class Num{                              //定义数字类
     private int a;
         public Num()
     {
         this.a = (int)(Math.random()*10000);
     }
     
     public Num(int i)
     {
         this.a = (int)(Math.random()*4)+1;
    }
     
     public int get_num()
     {
         return this.a;
     }
     
     public int num_sum(Num B)
     {
         return this.a + B.a;
     }
     
     public int num_dec(Num B)
     {
         return this.a - B.a;
     }
     
    public int num_c(Num B)
     { 
        return this.a * B.a;
    }
    
     public int num_chu(Num B)
     {
         return this.a / B.a;
     }
     
    public void flash()
     {
         this.a = (int)(Math.random()*100);
        }
     
     public void flash_t()
    {
         this.a = (int)(Math.random()*4)+1;
     }
     
     public boolean pd(int i)
     {
         if(this.a == i)
             return true;
         else
             return false;
     }
}
复制代码
复制代码
public class jiedui {
        private static Num a = new Num();  //a,b
        private static Num b = new Num();
        private static Num c = new Num(1);
        private static int q = 0;
        private static String p;
        private static JFrame frame = new JFrame("简单四则运算");
        private static JLabel label1 = new JLabel("A");
        private static JLabel label2 = new JLabel("*");
        private static JLabel label3 = new JLabel("B");
        private static JLabel label4 = new JLabel(" "+"="+" ");
        private static JLabel label5 = new JLabel("结果");
        private static JButton button = new JButton("查看");
        private static JButton bt1 = new JButton("下一题");
        private static JButton bt2 = new JButton("退出");
        private static JTextField text = new JTextField(5);
        private static JPanel pane = new JPanel();  
        
        public static void main(String[] args) {
            pane.setBorder(BorderFactory.createEmptyBorder(20,60,20,60));
            pane.setLayout(new GridLayout(0,5));  //设置布局
            pane.add(label1);
            pane.add(label2);
            pane.add(label3);
            pane.add(label4);
            pane.add(text);
            pane.add(label5);
            pane.add(button);
            pane.add(bt1);
            pane.add(bt2);

            if(c.pd(1)) 
            {
                p = "+";
                q = a.num_sum(b);
            }
            if(c.pd(2))
            {
                p = "-";
                q = a.num_dec(b);
            }
            if(c.pd(3))
            {
                p = "*";
                q = a.num_c(b);
            }
            if(c.pd(4))
            {
                p = "/";
                q = a.num_chu(b);
            }
             
            frame.getContentPane().add(pane,BorderLayout.CENTER);
            button.setMnemonic(KeyEvent.VK_I);
             
            button.addActionListener(new ActionListener(){  //鼠标单击事件
                public void actionPerformed(ActionEvent e){
                    if(q == Integer.parseInt(text.getText().trim()))
                        label5.setText("正确!");
                    else
                        label5.setText("错误!");
                    
                }
            });
            
            bt1.setMnemonic(KeyEvent.VK_H);
            bt1.addActionListener(new ActionListener(){  //鼠标单击事件
                public void actionPerformed(ActionEvent e){
                    a.flash();
                    b.flash();
                    c.flash_t();
                    if(c.pd(1)) 
                    {
                        p = "+";
                        q = a.num_sum(b);
                    }
                    if(c.pd(2))
                    {
                        p = "-";
                        q = a.num_dec(b);
                    }
                    if(c.pd(3))
                    {
                        p = "*";
                        q = a.num_c(b);
                    }
                    if(c.pd(4))
                    {
                        p = "/";
                        q = a.num_chu(b);
                    }
                    label1.setText(" "+a.get_num()+" ");
                    label2.setText(p);
                    label3.setText(" "+b.get_num()+" ");
                    text.setText(" ");
                    label5.setText("结果");
                }
            });
            
            bt2.setMnemonic(KeyEvent.VK_T);
            bt2.addActionListener(new ActionListener(){  //鼠标单击事件
                public void actionPerformed(ActionEvent e){
                    System.exit(0);
                    
                }
            });
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();
            label1.setText(" "+a.get_num()+" ");
            label2.setText(p);
            label3.setText(" "+b.get_num()+" ");
            
            frame.setVisible(true);
        }
复制代码
 
 

三、运行过程

 

                                    

                                     

 

 

四、结对过程

 

                                          

 

五、psp

PSP2.1任务内容计划完成的时间(min)实际完成需要的时间(min)
PLanning计划60100
Estimate估计这个任务需要多少时间,并规划大致工作步骤6060
Developmet开发480700
Analysis需求分析(包括学习新技术)3050
Design Spec生成设计文档1025
Design Revie设计复审(和同事审核设计文档)3035
Coding Standard代码规范2030
Design具体设计6080
Coding具体编码300350
Code Review代码复审30360
Test测试(自我测试,修改代码,提交修改)2030
Reporting报告3035
Test Report测试报告2020
Size Measurement计算工作量55
Postmortem & Process Improvement Plan事后总结,并提出过程改机计划3035

 

六、请使用汉堡评价法给你的小伙伴一些点评

     我的结对小伙伴是个认真踏实人,尽管这次我们遇到太多的问题,但肯定会比一个人抓耳挠腮的好多了,两个人一起合作讨论交流,思路开阔,容易发现一个人发现不了的错误,也可以及时改正错误,还可以增加团队合作意识,相信这对以后的训练很有帮助。遇到不会的问题就要去学习,一口吃不了个胖子,所幸我们能够一起努力,一起进步。

 

七、 结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会。
       我想答案是肯定的,三个臭皮匠顶一个诸葛亮,这就是团结的力量,一个人的编程设计往往会出现很多的问题,比如一些代码上的漏洞和设计功能等考虑的不全面,一个人编程的时候遇到问题有时候会想很多查资料也会迷茫,有人给意见就要相对快了不少,有时候很简单的错误也需要好久才能找见,遇到问题时解决问题的思路和时间会很大幅度的减少,经过两个人的讨论会对问题理解的更透彻,效率更高,所以说结对编程和团队合作还是很有必要的。一个成功的项目后面往往有一个优秀的团队。

转载于:https://www.cnblogs.com/ihouyan/p/8719377.html

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值