第十六周计应151班第四组排球计分程序
2016-12-26 11:13
162 查看
计划:
估计这个任务需要多少时间完成:5-6天
开发:
需求分析:作为一个排球记分员,我希望能够方便的记录分数(精确到每球的的分),以便及时的把分数反映给观众。
设计文档:①排球计分程序的加减分②比赛结果的查询③比赛详细记录的查询
具体设计:
活动图:
类图
程序运行截图在上次的博客中已贴出,本次只是完善了功能,UI并无变动
估计这个任务需要多少时间完成:5-6天
开发:
需求分析:作为一个排球记分员,我希望能够方便的记录分数(精确到每球的的分),以便及时的把分数反映给观众。
设计文档:①排球计分程序的加减分②比赛结果的查询③比赛详细记录的查询
具体设计:
计分窗口 public partial class Scoreing : Form { public string TeamA; public string TeamB; public int ScoreA = 0;//比分 public int ScoreB=0; public int count = 1;//局数 public int TeamScoreA = 0;//局比分 public int TeamScoreB = 0; public StringBuilder sb=new StringBuilder(); VolleybalScore score=new VolleybalScore(); volleyBll bll = new volleyBll(); public Scoreing() { InitializeComponent(); } private void Scoreing_Load(object sender, EventArgs e) { lblTeamA.Text = TeamA; lblTeamB.Text = TeamB; jushucount(count); score.Teams = TeamA + ":" + TeamB; } private void btnAddTeamA_Click(object sender, EventArgs e) { ScoreA++; showScore(); victory(); jushucount(count); } private void btnAddteamB_Click(object sender, EventArgs e) { ScoreB++; showScore(); victory(); jushucount(count); } private void showScore() { lblScoreB.Text = ScoreB.ToString(); lblScoreA.Text = ScoreA.ToString(); } private void victory() { if (count < 5) { if ((ScoreA >= 24 && Math.Abs(ScoreA - ScoreB) >= 2) || (ScoreB >= 24 && Math.Abs(ScoreA - ScoreB) >= 2)) { if (ScoreA - ScoreB >= 2) { MessageBox.Show(lblCount.Text + TeamA + "胜利"); TeamScoreA++; if (Math.Abs(TeamScoreA - TeamScoreB) == 3) { MessageBox.Show("比赛结束"+ TeamA + "胜利"); score.Victory = TeamA+ TeamScoreA.ToString() + ":" + TeamScoreB.ToString(); score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString(); bll.InsertScore(score); count=1; ScoreA = 0; ScoreB = 0; showScore(); } sb.AppendFormat("第{0}局,{1}:{2}\r", count, ScoreA, ScoreB); lblBigScore.Text = sb.ToString(); if (count == 1) { score.firstScore = ScoreA.ToString() + ":" + ScoreB.ToString(); } else if (count == 2) { score.secondScore = ScoreA.ToString() + ":" + ScoreB.ToString(); } else if (count == 3) { score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString(); } else if (count == 4) { score.fourthScore = ScoreA.ToString() + ":" + ScoreB.ToString(); } count++; ScoreA = 0; ScoreB = 0; showScore(); } if (ScoreB - ScoreA >= 2) { MessageBox.Show(lblCount.Text + TeamB + "胜利"); TeamScoreB++; if (Math.Abs(TeamScoreA - TeamScoreB) == 3) { MessageBox.Show("比赛结束" + TeamB + "胜利"); score.Victory = TeamB + TeamScoreB.ToString() + ":" + TeamScoreA.ToString(); score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString(); bll.InsertScore(score); count=1; ScoreA = 0; ScoreB = 0; showScore(); } sb.AppendFormat("第{0}局,{1}:{2}\r", count, ScoreA, ScoreB); lblBigScore.Text = sb.ToString(); if (count == 1) { score.firstScore = ScoreA.ToString() + ":" + ScoreB.ToString(); } else if (count == 2) { score.secondScore = ScoreA.ToString() + ":" + ScoreB.ToString(); } else if (count == 3) { score.thirdScore = ScoreA.ToString() + ":" + ScoreB.ToString(); } else if (count == 4) { score.fourthScore = ScoreA.ToString() + ":" + ScoreB.ToString(); } count++; ScoreA = 0; ScoreB = 0; showScore(); } } } else if (count == 5) { if ((ScoreA >= 15 && Math.Abs(ScoreA - ScoreB) >= 2) || (ScoreB >= 15 && Math.Abs(ScoreA - ScoreB) >= 2)) { if (ScoreA - ScoreB >= 2) { MessageBox.Show(lblCount.Text + TeamA + "胜利"); TeamScoreA++; score.Victory = TeamA + TeamScoreA.ToString() + ":" + TeamScoreB.ToString(); sb.AppendFormat("第{0}局,{1}:{2}\r", count, ScoreA, ScoreB); lblBigScore.Text = sb.ToString(); score.fifthScore = ScoreA.ToString() + ":" + ScoreB.ToString(); } if (ScoreB - ScoreA >= 2) { MessageBox.Show(lblCount.Text + TeamB + "胜利"); TeamScoreB++; score.Victory = TeamB + TeamScoreB.ToString() + ":" + TeamScoreA.ToString(); sb.AppendFormat("第{0}局,{1}:{2}/0", count, ScoreA, ScoreB); lblBigScore.Text = sb.ToString(); score.fifthScore = ScoreA.ToString() + ":" + ScoreB.ToString(); } count++; ScoreA = 0; ScoreB = 0; showScore(); bll.InsertScore(score); } } } private void jushucount(int count) { if(count==1) { lblCount.Text= "第一局"; } else if (count == 2) { lblCount.Text = "第二局"; } else if (count == 3) { lblCount.Text = "第三局"; } else if (count == 4) { lblCount.Text = "第四局"; } else if (count == 5) { lblCount.Text = "第五局"; } else { lblCount.Text = "第一局"; } }
活动图:
类图
具体编码:
Bll public bool InsertTeam(string team) { return dal.InsertTeam(team) > 0; } public SqlDataReader ShowTeamA() { return dal.ShowTeamA(); } public SqlDataReader ShowTeamB(string teamA) { return dal.ShowTeamB(teamA); } public void InsertScore(VolleybalScore score) { dal.InsertScore(score); }
Model namespace Model { public class VolleybalScore { public string Teams; public string Victory; public string firstScore; public string secondScore; public string thirdScore; public string fourthScore; public string fifthScore; } }
selectTeam选择队伍窗口 public partial class SelectTeams : Form { public SelectTeams() { InitializeComponent(); } private volleyBll bll = new volleyBll(); private void button1_Click(object sender, EventArgs e) { AddTeams addform = new AddTeams(); addform.ShowDialog(); } private void cmbShowTeamA() { SqlDataReader reader = bll.ShowTeamA(); while (reader.Read()) { cmbTeamA.Items.Add(reader[0]); } } private void cmbShowTeamB(string teamA) { SqlDataReader reader = bll.ShowTeamB(teamA); while (reader.Read()) { cmbTeamB.Items.Add(reader[0]); } } private void SelectTeams_Load(object sender, EventArgs e) { cmbShowTeamA(); } private void cmbTeamA_SelectedIndexChanged(object sender, EventArgs e) { cmbTeamB.Items.Clear(); string teamA = cmbTeamA.SelectedItem.ToString(); cmbShowTeamB(teamA); } private void btnSubmit_Click(object sender, EventArgs e) { Scoreing fm = new Scoreing(); fm.TeamA = cmbTeamA.SelectedItem.ToString(); fm.TeamB = cmbTeamB.SelectedItem.ToString(); SelectUser user=new SelectUser(); fm.Show(); this.Close(); } private void btnBack_Click(object sender, EventArgs e) { this.Close(); SelectUser fm = new SelectUser(); fm.Show(); } }
DAL public int InsertTeam(string team)//添加队伍信息 { string sql = "insert into VolleyballTeams values(@team)"; SqlParameter pms = new SqlParameter("@team",team); int count = SqlHelper.ExecuteNonQuery(sql,pms); return count; } public SqlDataReader ShowTeamA()//显示A队 { string sql = "select * from VolleyballTeams"; SqlDataReader reader = SqlHelper.ExecuteReader(sql); return reader; } public SqlDataReader ShowTeamB(string teamA)//显示B对 { string sql = "select * from VolleyballTeams where name !=@teamA"; SqlParameter pms = new SqlParameter("@teamA",teamA); SqlDataReader reader = SqlHelper.ExecuteReader(sql, pms); return reader; } public void InsertScore(VolleybalScore score)//添加大比分 { string sql = "insert into VolleybalScore values(@team,@victory,@firstScore,@secondScore,@thirdScore,@fourthScore,@fifthScore)"; SqlParameter[] pms = new SqlParameter[]{ new SqlParameter("@team",score.Teams), new SqlParameter("@victory",score.Victory), new SqlParameter("@firstScore",score.firstScore), new SqlParameter("@secondScore",score.secondScore), new SqlParameter("@thirdScore",score.thirdScore), new SqlParameter("@fourthScore",score.fourthScore==null?"null":score.fourthScore), new SqlParameter("@fifthScore",score.fifthScore==null?"null":score.fifthScore) }; SqlHelper.ExecuteNonQuery(sql,pms); }
程序运行截图在上次的博客中已贴出,本次只是完善了功能,UI并无变动
相关文章推荐
- 第十五周计应151班第四组排球计分程序
- “排球比赛计分程序”的典型用户、场景用户故事
- 排球比赛计分程序的典型用户和场景
- 排球记分员计分程序(三)————设计文档的编写及构架概要设计
- MVC之排球比赛计分程序 ——(三)model类的设计与实现
- MVC之排球比赛计分程序 ——(二)架构概要设计
- 排球计分程序功能说明书
- MVC之排球比赛计分程序 ——(六)使用框架,创建控制器,生成数据库
- 排球记分员计分程序(一)————综述
- 排球计分程序(八)——验证编辑方法(Edit method)和编辑视图(Edit view)
- MVC之排球比赛计分程序 ——(四)视图的设计与实现
- 计应1班第4小组“排球比赛计分程序”的典型用户、创立场景、用户故事
- 排球计分程序重构
- 排球计分程序
- 排球记分员计分程序(二)————需求分析与数据库设计
- 排球计分程序(四)—— View设计与实现
- 第一小组作业-排球比赛计分程序
- 排球比赛计分程序
- 排球计分程序(二)—— 构架概要设计
- 排球记分员计分程序(五)————Controller控制器与Action方法的设计