版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DimiPlayerNumAsInteger'选手数量'DimiGameNumAsInteger'已进行比赛次数'DimiGameChangAsInteger'已经进行的比赛的场数'DimiFenShuCha'比赛双方加减分'Dimdjf(5000,2)AsInteger'等级分,最多处理五千名选手,'第一列为前一次比赛的等级分,供计算分差用,第二列为统计本次比赛等级分用Dimi,j,k,m,n,foundAsIntegerDimresultAsStringPublicSubtongjixuanshougeshu(
2、)'统计选手个数'Fori=2To32767Step1If(Sheets(1).Cells.Item(i,2)="")ThenGoToover11ElseSheets(1).Cells.Item(i,1)=i-1'序号'EndIfNextiover11:iPlayerNum=i-2'选手个数'Sheets(1).Cells.Item(i,1)="合计"+CStr(iPlayerNum)'显示选手个数'EndSubPublicSubxuanshoumingchongfuxingjiancha(
3、)'选手重复性检查'result=""Fori=2ToiPlayerNumStep1'从第二行开始Forj=i+1ToiPlayerNum+1Step1If(Sheets(1).Cells.Item(j,2)=Sheets(1).Cells.Item(i,2)Thenresult=result+"第"+CStr(i-1)+"和第"+CStr(j-1)+"重复,"EndIfNextjNextiIf(result<>"")ThenMsgBox(result)选手名
4、重复.txt"ForOutputAs#1Write#1,resultClose#1CommandButton3.Enabled=FalseEndIf'检查选手名有没有重复的,并提示,有重复,则不能进行下一步EndSubPublicSubtishitianxiechushifen()'提示用户填写选手初始等级分'Fori=1ToiPlayerNumStep1If(Sheets(1).Cells.Item(i+1,8)="")ThenMsgBox("请填写选手的初始等级分!")CommandButton3.Enabled=F
5、alseGoToover11EndIfNextiover11:i=iEndSubPublicSubtongjibisaichangshu()'统计比赛场数,是全部比赛场数'统计比赛场数Fori=2To32767Step1If(Sheets(2).Cells.Item(i,2)="")ThenGoToover12ElseSheets(2).Cells.Item(i,1)=i-1'序号'EndIfNextiover12:iGameChang=i-2'比赛场数'Sheets(2).Cells.Item(i,1)="合计&q
6、uot;+CStr(iGameChang)+"场比赛"'提示比赛场数'EndSubPublicSubjianchayouwuxinxuanshou()'检查有无新选手,有,则result不为空result=""Fori=1ToiGameChangStep1'比赛场数found=0Forj=1ToiPlayerNumStep1'选手数量'If(Sheets(2).Cells.Item(i+1,2)=Sheets(1).Cells.Item(j+1,2)Thenfound=1EndIfNextjIf(found
7、=0)Thenresult=result+"第"+CStr(i)+"场胜方选手"+_CStr(Sheets(2).Cells.Item(i+1,2)+"不在名单中。"EndIffound=0Forj=1ToiPlayerNumStep1'选手数量'If(Sheets(2).Cells.Item(i+1,3)=Sheets(1).Cells.Item(j+1,2)Thenfound=1EndIfNextjIf(found=0)Thenresult=result+"第"+CStr(i)_+"场
8、负方选手"+CStr(Sheets(2).Cells.Item(i+1,3)+"不在名单中。EndIfNextiIf(result<>"")Then有新选手.txt"ForOutputAs#1Write#1,resultClose#1EndIfEndSubPublicSubjianchabisaichongfushuru()'检查比赛重复输入'找到第一场未统计的比赛的序号Fori=1ToiGameChangStep1If(Sheets(2).Cells.Item(i+1,4)<>"是"
9、)ThenGoToover13EndIfNextiover13:result=""检查未统计比赛是否有重复输入的情况Forj=iToiGameChang-1Step1Fork=j+1ToiGameChangStep1If(Sheets(2).Cells.Item(j+1,2)=Sheets(2).Cells.Item(k+1,2)_AndSheets(2).Cells.Item(j+1,3)=Sheets(2).Cells.Item(k+1,3)Thenresult=result+"第"+CStr(j)+"场比赛与第"+CStr(k)
10、+"场比赛重复!EndIfNextkNextjIf(result<>"")ThenMsgBox(result)CommandButton2.Enabled=False'有错,比赛重复输入,不能进行补齐赛前等级分比赛重复输入.txt"ForOutputAs#1Write#1,resultClose#1EndIfEndSubPublicSubbuqisaiqiandengjifen()'补齐赛前等级分取得已经进行的比赛次数'Fori=1To32760Step19'If(Sheets(1).Cells.Item(1,
11、i)="")TheniGameNum=i-9'已进行了的比赛次数,次数等于第一行第一个空单元格的列号减GoToout2'得到已经进行了的比赛次数,最新一次比赛还未统计'EndIfNextiout2:MsgBox("已经比赛次数为:"+CStr(iGameNum)Fori=1ToiPlayerNumStep1Forj=9ToiGameNum+7If(Sheets(1).Cells.Item(i+1,j)="")ThenSheets(1).Cells.Item(i+1,j)=Sheets(1).Cells.Item
12、(i+1,j-1)EndIfNextjNextiMsgBox("已经补齐"+CStr(i-1)+"个选手的赛前积分")EndSubPublicSubjisuandengjifen()'计算等级分'Calltongjixuanshougeshu'统计选手个数'Calltongjibisaichangshu'统计比赛场数'找到第一场未统计的比赛的序号Fori=1ToiGameChangStep1If(Sheets(2).Cells.Item(i+1,4)<>"是")ThenGoT
13、oover43EndIfNextiover43:result=""'i为第一场未统计的比赛的序号If(i>iGameChang)ThenMsgBox("没有未统计比赛场次,本次统计退出!")GoToover46EndIf取得赛前等级分,存放到数组djf中,两列都一样,列号为0,1'Forj=1ToiPlayerNumStep1djf(j,0)=CInt(Sheets(1).Cells.Item(j+1,iGameNum+7)'行号比序号多1,j为序号'djf(j,1)=djf(j,0)NextjForj=iToiGa
14、meChangStep1'一共有iGameChang-i+1场比赛需要统计,j为当前处理的场的序号Fork=1ToiPlayerNumStep1'找胜方选手的序号,存放在变量k中'If(Sheets(2).Cells.Item(j+1,2)=Sheets(1).Cells.Item(k+1,2)ThenGoToover44Nextkover44:result=""Form=1ToiPlayerNumStep1'找负方选手的序号,存放在变量m中If(Sheets(2).Cells.Item(j+1,3)=Sheets(1).Cells.Item
15、(m+1,2)ThenGoToover45Nextmover45:result=下面开始计算等级分'n=djf(k,0)-djf(m,0)'胜方等级分减去负方等级分,存放在变量n中'负数表示低分方取胜'负数表示低分方取胜 负数表示低分方取胜 负数表示低分方取胜 负数表示低分方取胜'负数表示低分方取胜 '负数表示低分方取胜 负数表示低分方取胜 负数表示低分方取胜If(n<=-238)TheniFenShuCha=50'负数表示低分方取胜If(n<=-213Andn>=-237)TheniFenShuCha=45If(n&l
16、t;=-188Andn>=-212)TheniFenShuCha=40If(n<=-163Andn>=-187)TheniFenShuCha=35'If(n<=-138Andn>=-162)TheniFenShuCha=30'If(n<=-113Andn>=-137)TheniFenShuCha=25'If(n<=-88Andn>=-112)TheniFenShuCha=20If(n<=-63Andn>=-87)TheniFenShuCha=16If(n<=-38Andn>=-62)Theni
17、FenShuCha=13'If(n<=-13Andn>=-37)TheniFenShuCha=10''负数表示低分方取胜If(n<=0Andn>=-12)TheniFenShuCha=8正数表本Wj分方取胜正数表示高分方取胜正数表本Wj分方取胜正数表本Wj分方取胜If(n>=0Andn<=12)TheniFenShuCha=8'正数表示高分方取胜If(n>=13Andn<=37)TheniFenShuCha=7If(n>=38Andn<=62)TheniFenShuCha=6If(n>=63And
18、n<=87)TheniFenShuCha=5If(n>=88Andn<=112)TheniFenShuCha=4If(n>=113Andn<=137)TheniFenShuCha=3If(n>=138Andn<=162)TheniFenShuCha=2If(n>=163Andn<=187)TheniFenShuCha=2If(n>=188Andn<=212)TheniFenShuCha=1If(n>=213Andn<=237)TheniFenShuCha=1正数表示高分方取胜正数表示高分方取胜正数表示高分方取胜正数表
19、示高分方取胜正数表示高分方取胜'正数表示高分方取胜If(n>=238)TheniFenShuCha=0djf(k,1)=djf(k,1)+iFenShuCha'胜方加分djf(m,1)=djf(m,1)-iFenShuCha'负方减分Sheets(2).Cells.Item(j+1,4)="是"做出本场(j)比赛已统计标志'Nextj将计算后的结果存回表格Forj=1ToiPlayerNumStep1'j为选手序号'Sheets(1).Cells.Item(j+1,iGameNum+8)=djf(j,1)'行号比
20、序号多1,j为序号'Nextjover46:result=""EndSubPublicSubtongji()Dimstart1,end1AsIntegerDimcs(5000)AsInteger'次数,用于参赛次数和比赛场数的计算统计'Dimqs(5000)AsInteger'取胜比赛的场数'DimaGameDate,tempstringAsString'比赛日期'Fori=0To4999Step1cs(i)=0qs(i)=0Nexti'先清零'start1=2'第一次比赛的日期起始行号为2
21、39;Fori=1ToiGameNumStep1'总共有iGameNum次比赛,看你参加了几次,根据第二个表格的比赛日期判断aGameDate=CStr(Sheets(2).Cells.Item(start1,5)Forend1=start1To30000Step1'找到本次比赛成绩统计结束行号'tempstring=CStr(Sheets(2).Cells.Item(end1,5)If(tempstring<>aGameDate)ThenGoToout51EndIfNextend1out51:end1=end1-1Forj=1ToiPlayerNumSte
22、p1'一次比赛一共要统计这么多选手'Fork=start1Toend1Step1If(Sheets(2).Cells.Item(k,2)=Sheets(1).Cells.Item(j+1,2)_OrSheets(2).Cells.Item(k,3)=Sheets(1).Cells.Item(j+1,2)Thencs(j)=cs(j)+1GoToout52'下一个选手'EndIfNextkout52:cs(j) = cs(j)Nextjstartl=endl+1'统计下一次比赛,这些选手是不是参赛了'Nexti'全部比赛都统计完了,现在开始
23、把数据送回第一个表格的第3歹Fori=1ToiPlayerNumStep1Sheets(1).Cells.Item(i+1,3)=CStr(cs(i)Nexti下面统计每个选手参加比赛的场数,以及取胜的场数Fori=1ToiPlayerNumStep1cs(i)=0'先清零'qs(i)=0NextiForj=1ToiPlayerNumStep1'一次比赛一共要统计这么多选手,选手序号为j'Fork=1ToiGameChangStep1If(Sheets(2).Cells.Item(k+1,2)=Sheets(1).Cells.Item(j+1,2)_OrShee
24、ts(2).Cells.Item(k+1,3)=Sheets(1).Cells.Item(j+1,2)Thencs(j)=cs(j)+1EndIfIf(Sheets(2).Cells.Item(k+1,2)=Sheets(1).Cells.Item(j+1,2)Thenqs(j)=qs(j)+1'取胜场数加1'EndIfNextkout53:cs(j)=cs(j)NextjFori=1ToiPlayerNumStep1Sheets(1).Cells.Item(i+1,4)=cs(i)'将比赛场数送回第一个表格'Sheets(1).Cells.Item(i+1,5
25、)=qs(i)将取胜场数送回第一个表格'Nexti下面开始计算等级分排名Fori=1ToiPlayerNumStep1cs(i)=1'假定是第一名,有人比自己高,自己就降低一名,并列算最好的名次Forj=1ToiPlayerNumStep1If(Sheets(1).Cells.Item(i+1,iGameNum+8)<Sheets(1).Cells.Item(j+1,iGameNum+8)Thencs(i)=cs(i)+1EndIfNextjSheets(1).Cells.Item(i+1,6)=cs(i)'第六列为等级分排名'NextiEndSubPri
26、vateSubCommandButton1_Click()'选手名检查'Calltongjixuanshougeshu'统计选手个数'CommandButton3.Enabled=True'假定可以进行下一步,如果有错,则在子过程中禁止进行'Callxuanshoumingchongfuxingjiancha'检查选手名重复性,并在子过程提示,有重复,则不能进行下一步Calltishitianxiechushifen'提示用户填写选手初始等级分,如果有没填写的,则不能进行下一步CommandButtonl.Enabled=False'不允许重复检查选手名'EndSubPrivateSubCommandButton3_Click()'第二步:检查有无新选手,以及比赛是否重复输入Calltongjixuanshougeshu'统计选手个数'Calltongjibisaichangshu'统计比赛场数'CommandButton2.Enabled=True'假定能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电商长助理招聘面试流程与重点问题
- 社区推拿服务项目推广计划
- 混凝土搅拌车租赁合同
- 应急物资维护保养合同
- 邛崃个人保洁合同
- 金银湖买卖合同
- 盛世家博集团股权激励方案
- 2025年大学《工会学-工会法》考试备考试题及答案解析
- 2025年郓城县会计师职称笔试题及答案
- 2025年大学《弹药工程与爆炸技术-战斗部技术》考试参考题库及答案解析
- 高速排水沟清淤施工方案
- 学校法制教育专题课件
- 《军用关键软硬件自主可控产品名录》(2025年v1版)
- 2025重庆双福农产品批发市场有限公司招聘综合办公室文员、冻库管理员、招商员等岗位22人备考考试题库及答案解析
- 2025年低空经济对城市绿地系统影响研究报告
- 党建知识考试题库及答案
- 2025记者招聘考试试题及答案
- 高压蒸汽管道焊接及热处理施工方案
- 中层管理职位竞聘面试题及答案
- GB/T 28727-2025气体分析气体中微量硫化合物含量的测定火焰光度气相色谱法
- 2025年国家开放大学《文化艺术概论》期末考试备考试题及答案解析
评论
0/150
提交评论