• 排球比赛计分系统


    一、设计思路

    计分系统根据不同角色拥有不同的界面和展示效果:

    1.管理员-----用户管理,赛事管理,赛事记录,队伍管理

    2.比赛主办方-------赛事管理,队伍管理

    3.裁判--------赛事记录

    其他人员在管理员未分配权限时不具有任何权限,只能观看比赛信息

    运用Struts2和hibernate框架,进行数据视图交互

    二、代码部分(比赛计分,信息展示部分)

    1.GamesDaoImpl.java

    package com.dao.impl;
    
    import java.util.List;
    
    import org.hibernate.HibernateException;
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    
    import com.bean.GamesInfo;
    import com.bean.GamesNotice;
    import com.bean.Users;
    import com.dao.BaseDao;
    import com.dao.GamesDao;
    
    public class GamesDaoImpl extends BaseDao implements GamesDao {
    /*
     * 插入比赛计分信息*/
        public boolean saveGames(GamesInfo games) {
            Session session=null;
            Transaction tr=null;
            try {
                session=getSession();
                tr=session.beginTransaction();
                session.save(games);
                tr.commit();
            } catch (HibernateException e) {
                e.printStackTrace();
                tr.rollback();
                return false;
            }finally{
                closeSession();
            }
            return true;
        }
        /*
         * 插入比赛计分信息成功更新赛事信息*/
        public boolean updateGames(GamesNotice gamesNotice) {
            Session session=null;
            Transaction tr=null;
            try {
                session=getSession();
                tr=session.beginTransaction();
                session.update(gamesNotice);
                tr.commit();
            } catch (HibernateException e) {
                e.printStackTrace();
                tr.rollback();
                return false;
            }finally{
                closeSession();
            }
            return true;
        }
        /*
         * 观看比赛计分信息,模糊查询*/
        public List<GamesInfo> SalChanceList(String Title) {
            List<GamesInfo> SalChanceList=null;
            Session session=null;
            Transaction tr=null;
            try {
                session = getSession();
                tr = session.beginTransaction();
                StringBuffer hql=new StringBuffer();
                hql.append("from GamesInfo where 1=1");
                if (!"".equals(Title)) {
                    hql.append(" and GTitle like '%"+Title+"%' ");
                }
                Query query=session.createQuery(hql.toString());
                query.setFirstResult(1);
                query.setMaxResults(8);
                SalChanceList=query.list();
                tr.commit();
            } catch (Exception e) {
                tr.rollback();
            }
            return SalChanceList;
        }
    /*
         * 根据id查询赛事信息*/
        public GamesNotice selectGamesNotice(int id) {
            GamesNotice gamesNotice=null;
            Session session=null;
            try {
                session=getSession();
                String hql="from GamesNotice where NId=?";
                Query query=session.createQuery(hql);
                query.setInteger(0, id);
                List<GamesNotice> list=query.list();
                if(list.size()>0){
                    gamesNotice=list.get(0);
                }
            } catch (HibernateException e) {
                e.printStackTrace();
            }finally{
                closeSession();
            }
            return gamesNotice;
        }
        /*
         * 新建赛事信息*/
        public boolean saveGamesNotice(GamesNotice gamesNotice) {
            Session session=null;
            Transaction tr=null;
            try {
                session=getSession();
                tr=session.beginTransaction();
                session.save(gamesNotice);
                tr.commit();
            } catch (HibernateException e) {
                e.printStackTrace();
                tr.rollback();
                return false;
            }finally{
                closeSession();
            }
            return true;
        }
    }

    2.gamesAction.java

    package com.action;
    
    import javax.servlet.http.HttpSession;
    
    import org.apache.struts2.ServletActionContext;
    
    import com.bean.GamesInfo;
    import com.bean.GamesNotice;
    import com.dao.GamesDao;
    import com.dao.impl.GamesDaoImpl;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class gamesAction extends ActionSupport {
        private GamesInfo games;//计分信息类
        private GamesNotice gamesNotice;//赛事信息类
     public String addGames() {
         GamesDao gamesDao=new GamesDaoImpl();
         //拿到赛事表id查询title
         int id=Integer.parseInt(games.getGTitle());
         GamesNotice gamesNotice=gamesDao.selectGamesNotice(id);
         games.setGTitle(gamesNotice.getNName());
         //比赛信息数据写入数据库
        boolean flag=gamesDao.saveGames(games);
        if(flag=true){
            //执行成功,相应的赛事状态为2已比赛完成
            gamesNotice.setTState(2);
            gamesDao.updateGames(gamesNotice);
            return SUCCESS;
        }else {
            return "error";
        }
    }
     public String NoticeAdd(){
         GamesDao gamesDao=new GamesDaoImpl();
         //添加赛事
         boolean flag=gamesDao.saveGamesNotice(gamesNotice);
            if(flag=true){
                return SUCCESS;
            }else {
                return ERROR;
            }
     }
    public GamesInfo getGames() {
        return games;
    }
    public void setGames(GamesInfo games) {
        this.games = games;
    }
    public GamesNotice getGamesNotice() {
        return gamesNotice;
    }
    public void setGamesNotice(GamesNotice gamesNotice) {
        this.gamesNotice = gamesNotice;
    }
    
    }

    3.js方法

         <script type="text/javascript">
         var Team1=0;<%--记录队伍1的胜利次数--%>
         var Team2=0;<%--记录队伍2的胜利次数--%>
    function add1(){
        var num1 = parseInt(document.getElementById("txt1").value);<%--获取分数--%>
        var num=num1+1;<%--分数加1--%>
        document.getElementById("txt1").value=num;<%--把分数放到文本框--%>
        Team1=parseInt(document.getElementById("Team1").value);<%--获取胜利次数--%>
        if(num>=25){<%--判断当前分数是否大于25.大于25胜利次数加1--%>
            Team1=Team1+1;
            document.getElementById("Team1").value=Team1;
            }
        var num3 = parseInt(document.getElementById("txt2").value);<%--获取队伍2的分数--%>
        if(num>25||num3==25){<%--队伍1分数是否大于等于25。队伍二分数是否已经是25--%>
            alert("请开始下一局");
            document.getElementById("txt1").value=num1;<%--是则不不能加分--%>
            document.getElementById("Team1").value=Team1-1;<%--刚加的胜利场数减掉--%>
            }
        if(num3==25){<%--对方先到25自己的胜利场次不加不减--%>
            document.getElementById("Team1").value=Team1
            }
    }
    function add2(){
        var num1 = parseInt(document.getElementById("txt2").value);
        var num=num1+1;
        document.getElementById("txt2").value=num;
        Team2=parseInt(document.getElementById("Team2").value);
        if(num>=25){
            Team2=Team2+1;
            document.getElementById("Team2").value=Team2;
            }
        var num3 = parseInt(document.getElementById("txt1").value);
        if(num>25||num3==25){
            alert("请开始下一局");
            document.getElementById("txt2").value=num-1;
            document.getElementById("Team2").value=Team2-1;
            }
        if(num3==25){
            document.getElementById("Team2").value=Team2;
            }
    }
    
    function add3(){
        var num1 = parseInt(document.getElementById("txt3").value);
        var num=num1+1;
        document.getElementById("txt3").value=num;
        Team1=parseInt(document.getElementById("Team1").value);
        if(num>=25){
            Team1=Team1+1;
            document.getElementById("Team1").value=Team1;
            }
        var num3 = parseInt(document.getElementById("txt4").value);
        if(num>25||num3==25){
            alert("请开始下一局");
            document.getElementById("txt3").value=num-1;
            document.getElementById("Team1").value=Team1-1;
            }
        if(num3==25){
            document.getElementById("Team1").value=Team1;
            }
    }
    function add4(){
        var num1 = parseInt(document.getElementById("txt4").value);
        var num=num1+1;
        document.getElementById("txt4").value=num;
        Team2=parseInt(document.getElementById("Team2").value);
        if(num>=25){
            Team2=Team2+1;
            document.getElementById("Team2").value=Team2;
            }
        var num3 = parseInt(document.getElementById("txt3").value);
        if(num>25||num3==25){
            alert("请开始下一局");
            document.getElementById("txt4").value=num-1;
            document.getElementById("Team2").value=Team2-1;
            }
        if(num3==25){
            document.getElementById("Team2").value=Team2;
            }
    }
    function add5(){
        var num1 = parseInt(document.getElementById("txt5").value);
        var num=num1+1;
        document.getElementById("txt5").value=num;
        Team1=parseInt(document.getElementById("Team1").value);
        if(num>=25){
            Team1=Team1+1;
            document.getElementById("Team1").value=Team1;
            }
        var num3 = parseInt(document.getElementById("txt6").value);
        if(num>25||num3==25){
            alert("请开始下一局");
            document.getElementById("txt5").value=num-1;
            document.getElementById("Team1").value=Team1-1;
            }
        if(num3==25){
            document.getElementById("Team1").value=Team1;
            }
    }
    function add6(){
        var num1 = parseInt(document.getElementById("txt6").value);
        var num=num1+1;
        document.getElementById("txt6").value=num;
        Team2=parseInt(document.getElementById("Team2").value);
        if(num>=25){
            Team2=Team2+1;
            document.getElementById("Team2").value=Team2;
            }
        var num3 = parseInt(document.getElementById("txt5").value);
        if(num>25||num3==25){
            alert("请开始下一局");
            document.getElementById("txt6").value=num-1;
            document.getElementById("Team2").value=Team2-1;
            }
        if(num3==25){
            document.getElementById("Team2").value=Team2};
    }
    function add7(){
        var num1 = parseInt(document.getElementById("txt7").value);<%--获取分数--%>
        var num=num1+1;<%--分数加1--%>
        document.getElementById("txt7").value=num;<%--把分数放到文本框--%>
        Team1=parseInt(document.getElementById("Team1").value);<%--获取队伍1胜利次数--%>
        Team2=parseInt(document.getElementById("Team2").value);<%--获取队伍2胜利次数--%>
        if(Team1==3||Team2==3){<%--判断当前场次是否有队伍胜3场--%>
            alert("比赛结束,请提交");
            document.getElementById("txt7").value=num1;
            }else{
                if(num>=25){<%--判断当前分数是否大于25.大于25胜利次数加1--%>
                Team1=Team1+1;
                document.getElementById("Team1").value=Team1;
                }
            var num3 = parseInt(document.getElementById("txt8").value);<%--获取队伍2的分数--%>
            if(num>25||num3==25){<%--队伍1分数是否大于等于25。队伍二分数是否已经是25--%>
                alert("请开始下一局");
                document.getElementById("txt1").value=num1;<%--是则不不能加分--%>
                document.getElementById("Team1").value=Team1-1;<%--刚加的胜利场数减掉--%>
                }
            if(num3==25){<%--对方先到25自己的场次不加不减--%>
                document.getElementById("Team1").value=Team1
                }
            }
    }
    function add8(){
        var num1 = parseInt(document.getElementById("txt8").value);
        var num=num1+1;
        document.getElementById("txt8").value=num;
        Team1=parseInt(document.getElementById("Team1").value);
        Team2=parseInt(document.getElementById("Team2").value);
        if(Team1==3||Team2==3){
            alert("比赛结束,请提交");
            document.getElementById("txt8").value=num1;
            }else{
                if(num>=25){
                Team2=Team2+1;
                document.getElementById("Team2").value=Team2;
                }
            var num3 = parseInt(document.getElementById("txt7").value);
            if(num>25||num3==25){
                alert("请开始下一局");
                document.getElementById("txt8").value=num1;
                document.getElementById("Team2").value=Team2-1;
                }
            if(num3==25){
                document.getElementById("Team2").value=Team2
                }
            }
    }
    function add9(){
        var num1 = parseInt(document.getElementById("txt9").value);
        var num=num1+1;
        document.getElementById("txt9").value=num;
        Team1=parseInt(document.getElementById("Team1").value);
        Team2=parseInt(document.getElementById("Team2").value);
        if(Team1==3||Team2==3){
            alert("比赛结束,请提交");
            document.getElementById("txt9").value=num1;
            }else{
                if(num>=15){
                Team1=Team1+1;
                document.getElementById("Team1").value=Team1;
                }
            var num3 = parseInt(document.getElementById("txt10").value);
            if(num>15||num3==15){
                alert("请开始下一局");
                document.getElementById("txt1").value=num1;
                document.getElementById("Team1").value=Team1-1;
                }
            if(num3==15){
                document.getElementById("Team1").value=Team1
                }
            }
    }
    function add10(){
        var num1 = parseInt(document.getElementById("txt10").value);
        var num=num1+1;
        document.getElementById("txt10").value=num;
        Team1=parseInt(document.getElementById("Team1").value);
        Team2=parseInt(document.getElementById("Team2").value);
        if(Team1==3||Team2==3){
            alert("比赛结束,请提交");
            document.getElementById("txt10").value=num1;
            }else{
                if(num>=25){
                Team2=Team2+1;
                document.getElementById("Team2").value=Team2;
                }
            var num3 = parseInt(document.getElementById("txt9").value);
            if(num>15||num3==15){
                alert("请开始下一局");
                document.getElementById("txt10").value=num1;
                document.getElementById("Team2").value=Team2-1;
                }
            if(num3==15){
                document.getElementById("Team2").value=Team2
                }
            }
    }
    </script>

    三、运行效果

  • 相关阅读:
    最长上升子序列(矩形嵌套)
    中国剩余定理模板poj1006
    POJ 2891 扩展欧几里德
    2015多校联赛第三场(部分题解)
    树链剖分
    深度理解链式前向星
    POJ 1228 Grandpa's Estate(凸包)
    旋转卡壳(一)
    最小圆覆盖 hdu 3007
    半平面求交 模板
  • 原文地址:https://www.cnblogs.com/yangandjun/p/6623706.html
Copyright © 2020-2023  润新知