Android的乒乓球比赛评分器设计

原文链接:http://www.51jrft.com/dzxx/dzkxyjs/555.html

本文的开发软件是Eclipse,开发语言是java。系统主要分为三大模块:评分显示界面设计模块、Socket通信模块和评分界面更新模块。软件分为评分端和显示端,评分端在在裁判手中,评出比赛分数并且保存为XML文件,通Socket通信模块将XML传给显示端显示分数。符合正规乒乓球比赛需要。
关键词:
Android;乒乓球评分器;网络通信
评分界面是最为重要的一个界面,它包含了组成一场比赛的基本信息和对比赛评分的逻辑控件。
评分界面在frmplay.xml中设置实现。

图 4.3     评分端评分界面
     在评分端中,进入比赛评分界面后,界面上显示比赛场次、比赛双方代表团、双方运动员、比赛分数,还有分别的暂停、红牌、黄牌、得分和一个共用的回退共计九个按钮。当局比赛结束时,即有任意一方比分率先两分达到11分或者10平后率先连得两分时,但是比赛局比分没有分出胜负,即没有哪方队员胜利三场时,界面自动跳转到比赛单局结束界面;如果比赛局比分已经分出胜负,即有一方队员率先胜利三场,则直接跳转到比赛单场结束界面。
比赛评分界面中各种逻辑控件的作用函数
void DoOnClickButtons(View v)
    {
        if ( v.getId()== R.id.btnBack){
            DoGoBack();
        }
        else if ( v.getId()== R.id.btnPauseA){
           
        }
        else if ( v.getId()== R.id.btnRedA){
            Info.ScoreB ++;
            Info.ScoreB ++;
            DoOnChanged();
        }
        else if ( v.getId()== R.id.btnYellowA){
            Info.ScoreB ++;
            DoOnChanged();
        }
        else if ( v.getId()== R.id.btnScoreA){
            Info.ScoreA ++;
            DoOnChanged();
        }
        else if ( v.getId()== R.id.btnPauseB){
           
        }
        else if ( v.getId()== R.id.btnRedB){
            Info.ScoreA ++;
            Info.ScoreA ++;
            DoOnChanged();
        }
        else if ( v.getId()== R.id.btnYellowB){
            Info.ScoreA ++;
            DoOnChanged();
        }
        else if ( v.getId()== R.id.btnScoreB){
            Info.ScoreB ++;
            DoOnChanged();
        }
        else if ( v.getId()== R.id.btnInningOverStartNext){
            DoNextInning();
        }
        else if ( v.getId()== R.id.btnGameOver){
            DoGoWelCome();
        }
    }
下载比赛场次 同步句柄
    class TDownInfoHandler extends Handler{
        public HhucTTActivity Owner;
        @Override
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            super.handleMessage(msg);
            //接收通知
            if ( msg.what>0){
                Owner.setContentView(R.layout.frmplay);
                Owner.DoInit_Play();
            }
            else{
                String AMsg = "下载场次信息失败!";
                Toast.makeText(Owner, AMsg, 0).show();
            }

// 更新UI
        }
    }
下载比赛场次 线程类
    class TDownInfoThread extends Thread{
        public TDownInfoHandler MsgHandler;
        public String MacAddress="";
        @Override
        public void run() {
            // TODO Auto-generated method stub
            super.run();
            boolean AFlag = false;
            try
            {
            //下载XML
                String AUrl = "http://210.29.98.197/hhucTT/Download/Info_"+Config.TableCode+".Xml";
                String AFile = "hhucTT/RecInfo.Xml";
                AFlag = TIo.DoGetFileByHttp(AUrl, AFile);
                if ( AFlag ){
                    //反序列化,更新Info
                    String AXml = TIo.getStringFromFile(AFile);
                    AXml = AXml.replace("\0", "");
                    TInfo AInfo =(TInfo) TIo.ConvertXmlToObj(AXml);
                    if ( AInfo!=null){
                        this.MsgHandler.Owner.Info = AInfo;
                        AInfo.DoSave();
                        AFlag = true;
                    }
                    else{
                        AFlag = false;
                    }
                }
            }
            catch(Exception er){
                ;
            }
            finally{
                //发送通知
                Message msg = new Message();
                msg.what = AFlag?1:-1;
                this.MsgHandler.sendMessage(msg);
            }
        }
    }

图4.4    显示端比赛评分界面
        在显示终端上,比赛评分界面和评分端中基本相似,只是不需要按钮进行操作。所有可变的控件都是比赛的关键信息,字体颜色是黄色。
目录
摘 要    I
ABSTRACT    II
第一章 需求分析    1
1.1 开发背景    1
1.2 项目需求分析    2
1.2.1 功能需求    2
1.2.2  业务流程    5
1.2.3 外围接口    7
第二章 总体设计    8
2.1 系统模块    8
2.1.1 评分显示界面设计模块    8
2.1.2 Socket通信模块    8
2.1.3 评分界面更新模块    8
2.1.4 系统总体设计模块图:    9
2.1.5 比赛现场的模拟图形分布:    11
2.2  系统设计类的使用    12
第三章 背景资料和技术介绍    15
3.1 Android的概要    15
3.1.1 Android系统简介    15
3.1.2 系统构架    15
3.1.3 硬件抽像层    16
3.1.4 安全权限机制    16
3.1.5 应用组件    17
3.1.6 平台优势    17
3.1.7 Android平台的特性    18
3.2 Eclipse的概要    19
3.3 JDK的概要    20
3.3.1 JDK的简介    20
3.3.2 JDK环境配置    20
第四章  详细设计与开发    21
4.1 项目开发流程    21
4.1.1 开发及运行环境    21
4.1.2搭载Android开发环境,建设项目工程    21
4.2 评分显示界面设计模块    22
4.2.1 欢迎界面    23
4.2.2 比赛评分界面    24
4.2.3 比赛单局结束界面    28
4.2.4 比赛单场结束界面    29
4.2.5 多线程操作模式在本课题中的应用模式:    32
4.3 Socket通信模块    33
4.3.1 配置 UDP 状态    34
4.3.2 启动 UDP    34
4.3.3 UDP 传输前设置全局唯一标识码和配置端口信息    35
4.3.4 反序列化函数    36
4.4 评分界面更新模块    37
4.4.1 创建新的目录    38
4.4.2 保存文件    38
4.4.3 判断比赛结束    41
4.4.4 刷新界面    42
第五章 软件测试    44
5.1 软件测试简介    44
5.2 软件测试中出现的问题    44
5.2.1 程序在手机上没法运行    44
5.2.2 在评分端向显示端发送消息接受后显示端跳转到比分界面但是比分界面上是空白    45
5.2.3 显示端比赛结束后界面不跳转    46
结论    48
致谢    49
参考文献    50
附录    52
附录1:英文文献    53
附录2:中文
翻译    60
附录3:本科毕业设计(
论文)任务书    66
原文链接:http://www.51jrft.com/dzxx/dzkxyjs/555.html

猜你喜欢

转载自blog.csdn.net/qq_31796711/article/details/92845526