排球比赛计分系统

一、设计思路

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

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>

三、运行效果

原文地址:https://www.cnblogs.com/yangandjun/p/6623706.html