乒乓球等级分计算程序源代码_第1页
乒乓球等级分计算程序源代码_第2页
乒乓球等级分计算程序源代码_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,选手数量''已进行比赛次数''已经进行的比赛的场数DimiPlayerNumAsIntegerDimiGameNumAsIntegerDimiGameChangAsIntegerDimiFenShuCha'比赛双方加减分'Dimdjf(5000,2)AsInteger'等级分,最多处理五千名选手,''第一列为前一次比赛的等级分,供计算分差用,第二列为统计本次比赛等级分用Dimi,j,k,m,n,foundAsIntegerDimresultAsStringPublicSubtongjixuanshougeshu()

2、9;统计选手个数'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)选手名重复.txt"F

4、orOutputAs#1Write#1,resultClose#1CommandButton3.Enabled=FalseEndIf'检查选手名有没有重复的,并提示,有重复,则不能进行下一步EndSubPublicSubtishitianxiechushifen()'提示用户填写选手初始等级分'Fori=1ToiPlayerNumStep1If(Sheets(1).Cells.Item(i+1,8)="")ThenMsgBox("请填写选手的初始等级分!!")CommandButton3.Enabled=FalseGoToover

5、11EndIfNextiover11: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)="合计"+C

6、Str(iGameChang)+"场比赛"'提示比赛场数'EndSubPublicSubjianchayouwuxinxuanshou()'检查有无新选手,有,贝Uresult不为空,result=""Fori=1ToiGameChangStep1'比赛场数found=0Forj=1ToiPlayerNumStep1'选手数量'If(Sheets(2).Cells.Item(i+1,2)=Sheets(1).Cells.Item(j+1,2)Thenfound=1EndIfNextjIf(found=0)T

7、henresult=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)+"场比赛与第&qu

10、ot;+CStr(k)+"场比赛重复!EndIfNextkNextjIf(result<>"")ThenMsgBox(result)CommandButton2.Enabled=False'有错,比赛重复输入,不能进行补齐赛前等级分'比赛重复输入.txt"ForOutputAs#1Write#1,resultClose#1EndIfEndSubPublicSubbuqisaiqiandengjifen()'补齐赛前等级分''取得已经进行的比赛次数'Fori=1To32760Step19'

11、If(Sheets(1).Cells.Item(1,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

12、+1,j)=Sheets(1).Cells.Item(i+1,j-1)EndIfNextjNextiMsgBox("已经补齐"+CStr(i-1)+"个选手的赛前积分")EndSubPublicSubjisuandengjifen()'计算等级分'Calltongjixuanshougeshu'统计选手个数'Calltongjibisaichangshu'统计比赛场数''找到第一场未统计的比赛的序号'Fori=1ToiGameChangStep1If(Sheets(2).Cells.Item

13、(i+1,4)<>"是")ThenGoToover43EndIfNextiover43:result=""'i为第一场未统计的比赛的序号'If(i>iGameChang)ThenMsgBox("没有未统计比赛场次,本次统计退出!")GoToover46EndIf'取得赛前等级分,存放到数组djf中,两列都一样,列号为0,1'Forj=1ToiPlayerNumStep1djf(j,0)=CInt(Sheets(1).Cells.Item(j+1,iGameNum+7)'行号比序

14、号多1,j为序号'djf(j,1)=djf(j,0)NextjForj=iToiGameChangStep1'一共有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(Sh

15、eets(2).Cells.Item(j+1,3)=Sheets(1).Cells.Item(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<=-188Andn>=-212)TheniFenShuCha=40If(n<=-163Andn&

16、gt;=-187)TheniFenShuCha=35'If(n<=-138Andn>=-162)TheniFenShuCha=30'If(n<=-113Andn>=-137)TheniFenShuCha=25''负数表示低分方取胜'负数表示低分方取胜负数表示低分方取胜负数表示低分方取胜负数表示低分方取胜If(n<=-88Andn>=-112)TheniFenShuCha=20'负数表示低分方取胜If(n<=-63Andn>=-87)TheniFenShuCha=16If(n<=-38Andn&

17、gt;=-62)TheniFenShuCha=13If(n<=-13Andn>=-37)TheniFenShuCha=10'负数表示低分方取胜负数表示低分方取胜负数表示低分方取胜If(n<=0Andn>=-12)TheniFenShuCha=8'负数表示低分方取胜If(n>=0Andn<=12)TheniFenShuCha=8正数表示高分方取胜If(n>=13Andn<=37)TheniFenShuCha=7If(n>=38Andn<=62)TheniFenShuCha=6If(n>=63Andn<=87)

18、TheniFenShuCha=5正数表示局分方取胜正数表示高分方取胜正数表示高分方取胜If(n>=88Andn<=112)TheniFenShuCha=4'正数表示高分方取胜If(n>=113Andn<=137)TheniFenShuCha=3'正数表示高分方取胜If(n>=138Andn<=162)TheniFenShuCha=2'正数表示高分方取胜If(n>=163Andn<=187)TheniFenShuCha=2'正数表示高分方取胜文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持If(n>

19、=188Andn<=212)TheniFenShuCha=1'正数表示高分方取胜'If(n>=213Andn<=237)TheniFenShuCha=1'正数表示高分方取胜If(n>=238)TheniFenShuCha=0'正数表示高分方取胜,djf(k,1)=djf(k,1)+iFenShuCha'胜方加分djf(m,1)=djf(m,1)-iFenShuCha'负方减分'Sheets(2).Cells.Item(j+1,4)="是"'做出本场(j)比赛已统计标志'Nextj

20、'将计算后的结果存回表格'Forj=1ToiPlayerNumStep1'j为选手序号'Sheets(1).Cells.Item(j+1,iGameNum+8)=djf(j,1)'行号比序号多1,j为序号'Nextjover46:result=""EndSubPublicSubtongji()Dimstart1,end1AsIntegerDimcs(5000)AsInteger'次数,用于参赛次数和比赛场数的计算统计'Dimqs(5000)AsInteger'取胜比赛的场数'DimaGameDa

21、te,tempstringAsString'比赛日期'Fori=0To4999Step1cs(i)=0qs(i)=0Nexti'先清零'start1=2'第一次比赛的日期起始行号为2'Fori=1ToiGameNumStep1'总共有iGameNum次比赛,看你参加了几次,根据第二个表格的比赛日期判断aGameDate=CStr(Sheets(2).Cells.Item(start1,5)Forend1=start1To30000Step1'找到本次比赛成绩统计结束行号'tempstring=CStr(Sheets(2).

22、Cells.Item(end1,5)If(tempstring<>aGameDate)ThenGoToout51EndIfNextend1out51:end1=end1-1Forj=1ToiPlayerNumStep1'一次比赛一共要统计这么多选手'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&

23、#39;下一个选手'EndIfNextkout52:cs(j)=cs(j)Nextjstart1=end1+1'统计下一次比赛,这些选手是不是参赛了'Nexti'全部比赛都统计完了,现在开始把数据送回第一个表格的第3列'Fori=1ToiPlayerNumStep1Sheets(1).Cells.Item(i+1,3)=CStr(cs(i)Nexti'下面统计每个选手参加比赛的场数,以及取胜的场数'Fori=1ToiPlayerNumStep1cs(i)=0'先清零'qs(i)=0NextiForj=1ToiPlayerN

24、umStep1'一次比赛一共要统计这么多选手,选手序号为j'Fork=1ToiGameChangStep1If(Sheets(2).Cells.Item(k+1,2)=Sheets(1).Cells.Item(j+1,2)_OrSheets(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'EndIfNextk

25、out53:cs(j)=cs(j)NextjFori=1ToiPlayerNumStep1Sheets(1).Cells.Item(i+1,4)=cs(i)'将比赛场数送回第一个表格'Sheets(1).Cells.Item(i+1,5)=qs(i)'将取胜场数送回第一个表格'Nexti'下面开始计算等级分排名'Fori=1ToiPlayerNumStep1cs(i)=1'假定是第一名,有人比自己高,自己就降低一名,并列算最好的名次'Forj=1ToiPlayerNumStep1If(Sheets(1).Cells.Item(i+

26、1,iGameNum+8)<Sheets(1).Cells.Item(j+1,iGameNum+8)Thencs(i)=cs(i)+1EndIfNextjSheets(1).Cells.Item(i+1,6)=cs(i)'第六列为等级分排名'NextiEndSubPrivateSubCommandButton1_Click()'选手名检查'Calltongjixuanshougeshu'统计选手个数'CommandButton3.Enabled=True'假定可以进行下一步,如果有错,则在子过程中禁止进行'Callxuans

27、houmingchongfuxingjiancha'检查选手名重复性,并在子过程提示,有重复,则不能进行下一步Calltishitianxiechushifen'提示用户填写选手初始等级分,如果有没填写的,则不能进行下一步'CommandButton1.Enabled=False'不允许重复检查选手名'EndSubPrivateSubCommandButton3_Click()'第二步:检查有无新选手,以及比赛是否重复输入'Calltongjixuanshougeshu'统计选手个数'Calltongjibisaichangshu'统计比赛场数'文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持CommandButton2.Enabled=True'假定能顺利通过检查,则可以补齐

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论