衔接上一学期:排球积分规则
一、计划
这个程序开发时间:两周。
二、开发
1、需求分析:
用户故事:作为一个教练,我希望了解每一场队友和对方的比赛加分和扣分细节,以及所有队员每一场的得分与排行情况,以便于更好的对队员做出战术安排。(精确到每一局的结果比分)。<队伍,比赛情况,比赛记录,数据库>
2.设计文档:
赛制分析:
以奥运会赛制为例:预选赛、小组赛、淘汰赛(四分之一)、半决赛、决赛。预选赛:选出十二支队伍小组赛:单循环赛制,选出以积分排名每组前4,进行八强淘汰,A、B两队A1vsB4,A4vsB1,剩余抽签配对。半决赛:A1/B4胜方VS A2/B2(B3)胜方;A4vsB1胜方VS A2/B3(B2)胜方。小组赛排名第6的并列第11名,第5的并列第9名,淘汰赛负方并列第5,。小组赛排名由总分决定。若平局。按获胜次数决定,按输赢比率决定,按得分比率决定,按最后一场获胜代表队排名靠前。
积分规则
若为3:0或3:1,胜者得3分,负者不得分。若为3:2,胜者2分,负者1分。
中国队名单
主攻:2号朱婷、9号张常宁、12号惠若琪(队长)、10号刘晓彤
副攻:1号袁心玥、17号颜妮、11号徐云丽
接应:6号龚翔宇、3号杨方旭
二传:7号魏秋月、16号丁霞
自由人:15号林莉
塞尔维亚队名单
二传:10号奥杰年诺维奇(Ognjenović),兹维科维奇(Živković);
接应:布拉克塞维奇(Brakočević),19号博斯科维奇(Bošković);
主攻:9号米哈伊洛维奇(Mihajlović),尼克里奇(Nikolić),6号马列舍维奇(Malešević),布萨(Buša);
副攻:16号拉西奇(Rašić),维利科维奇(Veljković),15号斯塔瓦诺维奇(Stevanović);
自由人:17号波波维奇(Popović)。
3.设计复审:
由小组共同进行检查修改,提出建议,并进行相应的改进。
4.代码规范:
5.具体设计:
6.代码具体如下:
7.代码复审:
8.测试:
三、报告
1.测试报告:无
2.计算工作量:实际工作时间为6.5天。
3.事后总结与过程改进计划:
时隔一个学期有点生疏,看了以前的相关书籍,并审查了上个学期的具体代码,然后有进行编码设计。整体感觉有点吃力,还是要多练习,多看代码,理解代码,才能更好驾驭代码,生成新代码。
private void lblIndex_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
this.Close();
historySelect a = new historySelect();
a.Show();
}
private void begin_Click(object sender, EventArgs e)
{
if (textName.Text.Trim() == "" || Ateam.Text.Trim() == "" || Bteam.Text.Trim() == "")
{
MessageBox.Show("比赛名、队伍名均不能为空");
}
else
{
writeHistory1 w = new writeHistory1();
w.bisai(textName.Text);
w.TeamA(Ateam.Text);
w.TeamB(Bteam.Text);
w.Show();
this.Close();
}
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Application.Exit();
}
计分界面:
int sA, sB;
StringBuilder sb = new StringBuilder();
public string bisai(string str)
{
return name.Text = str;
}
public void TeamA(string str)
{
teamA.Text = str;
}
public void TeamB(string str)
{
teamB.Text = str;
}
public void insert(string win)
{
string sql = "insert into paiqiu(game,teamA,teamB,one,two,three,four,five,win,qiangqing) values(@game,@teamA,@teameB,@one,@two,@three,@four,@five,@win,@qiangqing)";
SqlParameter[] sp = {
new SqlParameter("@game",name.Text),
new SqlParameter("@teamA",teamA.Text),
new SqlParameter("@teameB",teamB.Text),
new SqlParameter("@one",one),
new SqlParameter("@two",two),
new SqlParameter("@three",three),
new SqlParameter("@four",four==null?DBNull.Value:(object)four),
new SqlParameter("@five",five==null?DBNull.Value:(object)five),
new SqlParameter("@win",win),
new SqlParameter("@qiangqing",sb.ToString())
};
SqlHelper.ExecuteNonQuery(sql, sp);
}
public void insertPM( string team,int score,int chang,int ju)
{
string sql = "insert into paiming values(@game,@team,@score,@chang,@ju)";
SqlParameter[] sp = {
new SqlParameter("@game",name.Text),
new SqlParameter("@team",team),
new SqlParameter("@score",score),
new SqlParameter("@chang",chang),
new SqlParameter("@ju",ju)
};
SqlHelper.ExecuteNonQuery(sql, sp);
}
public void update(string team, int score, int chang, int ju)
{
string sql = "update paiming set score=@score,chang=@chang,ju=@ju where dname=@team";
SqlParameter[] sp = {
new SqlParameter("@score",score),
new SqlParameter("@chang",chang),
new SqlParameter("@ju",ju),
new SqlParameter("@team",team)
};
SqlHelper.ExecuteNonQuery(sql, sp);
}
public void select(string team,int score,int chang,int ju)
{
string sql = "select * from paiming where sname='"+name.Text.ToString()+"' and dname='"+team+"'";
SqlDataReader reader=SqlHelper.ExecuteReader(sql);
if (reader.HasRows)
{
while (reader.Read())
{
int score0 = Convert.ToInt32(reader[2]) + score;
int chang0 = Convert.ToInt32(reader[3]) + chang;
int ju0 = Convert.ToInt32(reader[4]) + ju;
update(team, score0, chang0, ju0);
}
}
else
{
insertPM(team, score, chang, ju);
}
}
string one=null, two=null, three=null, four=null, five=null;
private void A_Click(object sender, EventArgs e)
{
int a=int.Parse(scoreA.Text) + 1;
int b = int.Parse(scoreB.Text);
sb.AppendFormat("{0}:{1}={2}:{3}\r\n", teamA.Text, teamB.Text, a, b);
int i=Convert.ToInt32( lblNum.Text.Substring(1, 1));
int sa = Convert.ToInt32(lblA.Text);
scoreA.Text = a.ToString();
if (i < 5)
{
if (a >= 25 && a - b >= 2)
{
string str = string.Format("本局甲方:{0}胜", teamA.Text);
MessageBox.Show(str);
scoreA.Text = "0";
scoreB.Text = "0";
sa++; i++;
lblA.Text = (sa).ToString();
lblNum.Text = "第" + i + "局";
sb.AppendFormat("第{0}局 {1}:{2}={3}:{4} 本局{5}胜\r\n", i - 1, teamA.Text, teamB.Text, a, b, teamA.Text);
switch(i-1)
{
case 1:one=string.Format("{0}:{1}",a,b); break;
case 2:two=string.Format("{0}:{1}",a,b); break;
case 3:three=string.Format("{0}:{1}",a,b); break;
case 4:four=string.Format("{0}:{1}",a,b); break;
}
}
}
else
{
if(a>=15&&a-b>=2)
{
sb.AppendFormat("第{0}局 {1}:{2}={3}:{4} 本局{5}胜\r\n", i - 1, teamA.Text, teamB.Text, a, b, teamA.Text);
string str = string.Format("本局甲方:{0}胜", teamA.Text);
MessageBox.Show(str);
sa++;
lblA.Text = (sa).ToString();
five=string.Format("{0}:{1}",a,b);
}
}
if (sa == 3) {
sb.AppendFormat("本场比赛甲方:{0}胜\r\n比赛结束",teamA.Text);
string str=string.Format("本场比赛{0}胜",teamA.Text);
win.Text = str;
win.Visible = true;
A.Visible = false;
B.Visible = false;
insert(teamA.Text);
if (lblB.Text == "2") { sA = 2; sB = 1; }
else { sA = 3; sB = 0; }
select(teamA.Text.ToString(),sA,1,sa);
select(teamB.Text.ToString(), sB, 0, Convert.ToInt32(lblB.Text));
}
textBox1.Text = sb.ToString();
}
private void B_Click(object sender, EventArgs e)
int a = int.Parse(scoreB.Text) + 1;
int b = int.Parse(scoreA.Text);
sb.AppendFormat("{0}:{1}={2}:{3}\r\n", teamA.Text, teamB.Text, b, a);
int i = Convert.ToInt32(lblNum.Text.Substring(1, 1));
int sa = Convert.ToInt32(lblB.Text);
scoreB.Text =a.ToString();
if (i < 5)
{
if (a >= 25 && a - b >= 2)
{
string str = string.Format("本局乙方:{0}胜",teamB.Text);
MessageBox.Show(str);
scoreA.Text = "0";
scoreB.Text = "0";
sa++; i++;
lblB.Text = (sa).ToString();
lblNum.Text = "第" + i + "局";
sb.AppendFormat("第{0}局 {1}:{2}={3}:{4} 本局{5}胜\r\n", i - 1, teamA.Text, teamB.Text, b, a, teamB.Text);
switch (i - 1)
{
case 1: one = string.Format("{0}:{1}", b, a); break;
case 2: two = string.Format("{0}:{1}", b, a); break;
case 3: three = string.Format("{0}:{1}", b, a); break;
case 4: four = string.Format("{0}:{1}", b, a); break;
}
}
}
else
{
if (a >= 15 && a - b >= 2)
{
sb.AppendFormat("第{0}局 {1}:{2}={3}:{4} 本局{5}胜\r\n", i-1,teamA.Text,teamB.Text ,b, a,teamB.Text);
string str = string.Format("本局乙方:{0}胜", teamB.Text);
MessageBox.Show(str);
sa++;
lblB.Text = (sa).ToString();
five = string.Format("{0}:{1}", b, a);
}
}
if (sa == 3) {
sb.AppendFormat("本场比赛乙方:{0}胜\r\n比赛结束", teamB.Text);
string str = string.Format("本场比赛{0}胜", teamB.Text);
win.Text = str;
win.Visible = true;
A.Visible = false;
B.Visible = false;
insert(teamB.Text);
if (lblA.Text == "2") { sB = 2; sA = 1; }
else { sB = 3; sA = 0; }
select(teamB.Text.ToString(), sB, 1, sa);
select(teamA.Text.ToString(), sA, 0, Convert.ToInt32(lblA.Text));
}
textBox1.Text = sb.ToString();
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
if (textBox1.Visible == false)
{
textBox1.Visible = true;
}
else
{
textBox1.Visible = false;
}
}
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
this.Close();
writeHistory0 a = new writeHistory0();
a.Show();
}
private void Form1_Load(object sender, EventArgs e)
{
sb.AppendFormat("比赛名称:{0}\r\n甲方:{1} 乙方:{2}\r\n",name.Text, teamA.Text, teamB.Text);
textBox1.Text = sb.ToString();
}
private void lblIndex_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
this.Close();
historySelect a = new historySelect();
a.Show();
}
private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Application.Exit();
}
private void btn1_Click(object sender, EventArgs e)
{
int a = int.Parse(scoreA.Text);
int b = int.Parse(scoreB.Text);
if (a > 0)
{
a--;
scoreA.Text = a.ToString();
sb.AppendFormat("比赛受到争议:甲方减分\r\n{0}:{1}={2}:{3}\r\n", teamA.Text, teamB.Text, a, b);
textBox1.Text = sb.ToString();
}
else
{
MessageBox.Show("操作失败");
}
}
private void btn2_Click(object sender, EventArgs e)
{
int a = int.Parse(scoreA.Text);
int b = int.Parse(scoreB.Text);
if (b > 0)
{
b--;
scoreB.Text = b.ToString();
sb.AppendFormat("比赛受到争议:乙方减分\r\n{0}:{1}={2}:{3}\r\n", teamA.Text, teamB.Text, a, b);
textBox1.Text = sb.ToString();
}
else
{
MessageBox.Show("操作失败");
}
}
比赛记录查询:
private void cmbLoad()
{
cmbName.Items.Clear();
string sql = "select game from paiqiu";
SqlDataReader reader = SqlHelper.ExecuteReader(sql);
if (reader.HasRows)
{
while (reader.Read())
{
cmbName.Items.Add(reader[0]);
}
}
reader.Close();
}
private void dgvLoad()
{
string sql = "select * from paiqiu";
dgvGame.DataSource = SqlHelper.ExecuteDataTable(sql);
}
private void Form2_Load(object sender, EventArgs e)
{
cmbLoad();
dgvLoad();
}
private void select_Click(object sender, EventArgs e)
{
StringBuilder sql = new StringBuilder("select * from paiqiu where 1=1");
if (!string.IsNullOrEmpty(cmbName.Text))
{
sql.Append(" and game like '%" + cmbName.Text + "%'");
}
SqlDataReader reader= SqlHelper.ExecuteReader(sql.ToString());
if (reader.HasRows)
{
dgvGame.DataSource = SqlHelper.ExecuteDataTable(sql.ToString());
}
else
{
MessageBox.Show("没有查询到比赛记录!");
}
}
private void lblWrite_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
this.Close();
writeHistory0 a = new writeHistory0();
a.Show();
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Application.Exit();
}
private void dgvGame_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
int x = e.ColumnIndex;
int y = e.RowIndex;
if(x==0&&y!=-1)
{
child ch = new child();
ch.xq(dgvGame.CurrentRow.Cells[11].Value.ToString());
ch.Show();
}
}
private void button1_Click(object sender, EventArgs e)
{
selectPM sp = new selectPM();
sp.Show();
}
比赛排名查询:
private void selectPM_Load(object sender, EventArgs e)
{
string sql = "select * from paiming";
dgvPM.DataSource = SqlHelper.ExecuteDataTable(sql);
for (int i =1 ; i < dgvPM.Rows.Count+1 ; i++)
{
dgvPM.Rows[i-1].Cells["ranking"].Value = i;
}
}
private void dgvPM_Sorted(object sender, EventArgs e)
{
for (int i = 1; i < dgvPM.Rows.Count + 1; i++)
{
dgvPM.Rows[i - 1].Cells["ranking"].Value = i;
}
}
转载于:https://www.cnblogs.com/your-world/p/6569023.html
衔接上一学期:排球积分规则相关推荐
- 排球积分程序(二)——需求分析
不啰嗦,直接进入需求分析环节. 需求分析: 这个项目是一个排球积分程序,可以把功能分为两部分,一是积分,另一部分是查积分. 一:积分: 1.首先介绍排球比赛积分规则 排球比赛采用五局三胜制,胜三局的队 ...
- 围棋的分数计算机,围棋比赛积分规则
围棋比赛积分规则 在围棋比赛中,选手积分规则有哪些?下面是围棋比赛积分规则,一起看看下面两个算法有什么不同吧! 围棋比赛中积分循环的计算方法 每个选手会用两个分数,一个是大分,一个小分. 大分是指个人 ...
- csdn博客积分规则与等级说明
csdn博客积分规则与等级说明 积分获取 博客积分是CSDN对用户努力的认可和奖励,也是衡量博客水平的重要标准.博客等级也将由博客积分唯一决定.积分规则具体如下: 1.每发布一篇原创或者翻译文章:可获 ...
- csdn下载积分规则V1.0
csdn下载积分规则V1.1 获得积分途径 增加积分值 1. csdn用户基础分 20分 2. 下载其他人资源后并且进行评论 资源分+1 重复操作只记一次 3. 举报违规资源被确认 10+奖励 ...
- oracle 定义atp规则,ATP新积分规则详解
过去52周内,共计18站比赛成绩之和,如果上一个赛季参加了年终总决赛--大师杯,则大师杯的积分作为额外一站计入世界积分(大师杯小组赛胜一场200分,半决赛胜得400分,决赛胜得500分,所有输球比赛均 ...
- 说说tushare pro积分规则或积分获取的那些坑!
不好意思,这篇文章不是为了获取积分而帮忙推广tushare的. 最开始发现tushare的时候,觉得很厉害,用简单的一行代码,就可以获取当天所有股票的股价信息.但用过之后发现,那是仅限于旧接口,现在已 ...
- 基于Event Sourcing和DSL的积分规则引擎设计实现案例
架构设计模式(Architecture Patterns),是"从特殊到普遍"的.基于各种实际问题的解决方案而总结归纳出来的架构设计最佳实践,是一种对典型的.局部的架构逻辑的高度抽 ...
- CSDN获取积分规则
如何获得CSDN下载积分和C币规则 原文取自:http://download.csdn.net/help 如何获得CSDN下载积分 项目名称 获得细则 积分数量 普通资源被下载 100分封顶,下载自己 ...
- csdn各种积分规则
csdn下载积分规则V1.1 获得积分途径 增加积分值 1. csdn用户基础分 20分 2. 下载其他人资源后并且进行评论 资源分+1 重复操作只记一次 3. 举报违规资源被确认 10+奖励 ...
最新文章
- Java --- 常用API
- maven的三种packaging方式
- C语言输入一个大写字母,试输出其小写字母
- head标签中到底可以放什么?
- 电信iptv机顶盒破解方法大全(图文教程)
- 5G无线技术基础自学系列 | 5G NR和LTE信道结构比较
- HSC-1th 2022 48h大赛 write-up
- datagrid的deleteRow使用
- C/C++的灵魂—指针实现冒泡排序、选择排序和插入排序
- RSA非对称加密解密概念
- ildasm Reflector
- traceroute出现*的分析
- 模拟电子技术(八)功率放大电路
- VSCode嵌入式硬件开发环境设置
- centos7开启网卡命令_CentOS7 开启网卡,设置开机启用网卡
- 《有限与无限的游戏》第五章 自然是不能言说者的王国:经典摘抄(1)
- 12个常用的免费SCADA软件
- VLC插件在浏览器下(IE11)实现播放rtsp视频直播流
- HTML中的script标签的含义和用法
- 【小白学前端】化腐朽为神奇-HTML+CSS3实现旋转地球(day02-4)
热门文章
- Java Web应用程序:Oozie及其使用方式
- java: cannot execute binary file错误
- frameset用法
- spring batch
- 深度学习:卷积神经网络(convolution neural network)
- leetcode 152. Maximum Product Subarry
- SpringCloud(六) Hystrix入门
- 使用Nexus私服代理其他maven仓库(jitpack、jcenter)
- 出现could not find developer disk image解决办法和不受信任的开发者
- Linux 命令 - jobs: 显示后台作业的状态信息