第一篇:运动会比赛计分系统
#include #include #define m 1//男子项目数目 #define w 1//女子项目数目 #define null 0 struct itemnode{ int itemnum;//项目编号 int top; //取名次的数目 int range[5];//名次 int mark[5];//分数 char name[8];}; //定义项目结点的类型 struct headnode{ int schoolnum; //学校编号 int score; //学校总分 int mscore; //男团体总分 int wscore; //女团体总分 itemnode c[m+w]; //项目数组 };//定义头结点类型 headnode h[n];//定义一个头结点数组 void inputinformation()//输入信息,建立系统 { int i,j,k,s;char ch; for(i=0;i { h[i].score=0; h[i].mscore=0; h[i].wscore=0; //初始化头结点 printf(“====参赛学校编号:”); scanf(“%d”,&h[i].schoolnum); for(j=0;j { printf(“ 参赛项目编号:”); scanf(“%d”,&h[i].c[j].itemnum); printf(“ 取前3名or前5名:”); scanf(“%d”,&h[i].c[j].top); printf(“ 所取名次数量:”); scanf(“%d”,&k); for(s=0;s //输入头结点信息//输入项目信息 { h[i].c[j].range[s]=0; h[i].c[j].mark[s]=0;//初始化排名和分数 printf(“ 所获得的名次:”); scanf(“%d”,&h[i].c[j].range[s]); //输入所获名次信息 printf(“ 该运动员姓名:”); getchar(ch); gets(h[i].c[j].name); if(h[i].c[j].top==3) switch(h[i].c[j].range[s]) { case 0: h[i].c[j].mark[s]=0;break; case 1: h[i].c[j].mark[s]=5;break; case 2: h[i].c[j].mark[s]=3;break; case 3: h[i].c[j].mark[s]=2;break; } else switch(h[i].c[j].range[s]) { case 0: h[i].c[j].mark[s]=0;break; case 1: h[i].c[j].mark[s]=7;break; case 2: h[i].c[j].mark[s]=5;break; case 3: h[i].c[j].mark[s]=3;break; case 4: h[i].c[j].mark[s]=2;break; case 5: h[i].c[j].mark[s]=1;break; } h[i].score=h[i].score+h[i].c[j].mark[s];//按取前三名还是取前五名分别记分 if(j<=m-1) h[i].mscore=h[i].mscore+h[i].c[j].mark[s];//是男子项目(取前三名)则记到男子分数里面去 else h[i].wscore=h[i].wscore+h[i].c[j].mark[s];//是女子项目(取前五名)则记到女子项目里面去 } printf(“n”); } } printf(“n”);} void output() //输出函数 { int choice,i,j,k;int remember[n];int sign; do { printf(“*******************1.按参赛学校编号输出.*******************n”); printf(“*******************2.按参赛学校总分输出.*******************n”); printf(“n*********************** 请选择编号*************************n:”); scanf(“%d”,&choice); switch(choice) { case 1: for(i=0;i { printf(“nn*****学校编号:%d”,h[i].schoolnum); printf(“*****学校总分:%d” ,h[i].score); printf(“*****男团总分:%d”,h[i].mscore); printf(“*****女团总分:%d ”,h[i].wscore); } //按编号顺序输出 break; case 2: for(i=0;i remember[i]=i; for(i=0;i { for(j=i+1;j if(h[remember[i]].score { k=remember[i]; remember[i]=remember[j]; remember[j]=k; } } // 用冒泡排序方法,用辅助数组记住头结点下标 for(i=0;i { printf(“nn*****学校总分:%d”,h[remember[i]].score); printf(“*****学校编号:%d” ,h[remember[i]].schoolnum); printf(“*****男团总分:%d”,h[remember[i]].mscore); printf(“*****女团总分:%d ”,h[remember[i]].wscore); //按所记下标顺序输出 } //按学校总分输出 break; } printf(“n”); printf(“请选择继续,0 跳出n”); scanf(“%d”,&sign);}while(sign==2);//循环执行输出语句 printf(“nnn”);} //查询函数 void inquiry() { int choice;int i,j,k,s; printf(“n*****按学校编号查询*****n”); do{ printf(“要查询的参赛学校编号:”); scanf(“%d”,&i); if(i>n) printf(“错误:这个学校没有参加此次运动会!”); else { printf(“所要查询的参赛项目编号:”); scanf(“%d”,&j); if(j>m+w||j==0) printf(“此次运动会没有这个项目nn”);//学校编号超出范围,则输出警告 else { printf(“n这个项目取前%d名,该学校的成绩如下:n”,h[0].c[j-1].top); for(k=0;k<5;k++) if(h[i-1].c[j-1].range[k]!=0) { printf(“所获得的名次:%dn”,h[i-1].c[j-1].range[k]);//输出要查询学校项目的成绩 } } } printf(“n”); printf(“请选择 2 继续 , 0 跳出n”); scanf(“%d”,&s); printf(“nn”); }while(s==2); //循环执行输出语句 } //把数据存储在文件中 void writedata() { FILE *report; int i; if((report=fopen(“sportsdata.txt”,“w”))==null){ printf(“不能打开文件n”); exit(1); } for(i=0;i fwrite(&h[i],sizeof(headnode),1,report); fclose(report);} //按头结点块写入 //读出文件中数据的函数 void readdata() { FILE *report; int i,j,k,s; if((report=fopen(“sportsdata.txt”,“r”))==null) { printf(“file can not be openedn”); exit(1); } for(i=0;i { printf(“学校编号:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); printf(“学校总分:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); printf(“男团总分:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); printf(“女团总分:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); printf(“nnn”); getch(); for(j=0;j { printf(“项目编号:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); printf(“所取得的名次数量:”); fread(&k,sizeof(int),1,report); printf(“%dn”,k); for(s=0;s<5;s++) { fread(&k,sizeof(int),1,report); if(k!=0) printf(“名次:”); printf(“%dn”,k); } for(s=0;s<5;s++) { fread(&k,sizeof(int),1,report); if(k!=0) printf(“分数:”); printf(“%dn”,k); } } printf(“nnn”); getch();} fclose(report);//关闭文件 } //按照读一个数据就输出一个数据的方式显示数据内容 void main(){ int choice; printf(“n ╔===================★ welcome ★======================╗n”); printf(“n ******************运动会比赛计分系统*******************n”); printf(“n ★★★★★★ Design by 陈雪芸 ★★★★★★ n”); printf(“nn ********************1.输入比赛信息*********************n”); printf(“ ********************2.输出比赛信息*********************n”); printf(“ ********************3.查询比赛信息*********************n”); printf(“ ********************4.退出系统 *********************nn”); printf(“ ╚========╝nnn”); printf(“请选择要实现步骤的编号:nn”); scanf(“%d”,&choice);switch(choice){ case 1: inputinformation(); writedata(); main(); case 2: output(); main(); case 3: inquiry(); main(); case 4: exit(0); default: exit(0); } } 一、课程设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼: (1)进一步巩固、加深学生所学专业课程《C语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 (4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。 (6)熟练掌握C语言的基本语法,灵活运用各种数据类型。 (7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。 二、课程设计名称及内容 课程设计名称:运动会比赛计分系统 设计内容:设计一个运动会比赛计分系统,该系统要求对运动会比赛得分进行管理和维护。 三、任务和要求 要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数 各项目名次取法有如下几种: (1)取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1; (2)取前3名:第一名得分5,第二名得分3,第三名得分2;(3)用户自定义:各名次权值由用户指定。 四、设计方案提示 (1)界面 系统以菜单方式工作(2)输入数据并存入文件 使用到结构体变量和动态链表,由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。对输入的信息进行合法性判断,直到输入正确为止。都输入完成后,调用写文件函数对指定的文件进行写操作,把输入的信息写入到文件中。(3)显示所有记录 将文件中的所有记录以表格的形式输出。如果文件未打开会出现“文件打开失败!按任意键返回...”,关闭文件。(4)查询 所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。二:算法设计: 信息输入模块、比赛结果录入模块以及查询模 题目的总体要求是要建立三个模块:信息输入模块、建立三个模块 块。在建立完之后,要求该程序能够在用户将各种必要的信息记录之后,用户可以查询所 有学校的比赛成绩,而且也可以生成团体总分表,查看参赛学校信息和比赛项目信息等一切 录入的信息,为此,要示编程人员能通过一些具体的程序将以上的功能加以实现。在建立三个模块的大前提下,我们将采用结构体,循环体,指针和各种函数来实现这 种功能,在数据结构体中,要采用结构体数组,其中包括学校、项目、运动员三个结构体。学校结构体成员包括学校校名、竞赛项目、得分项目结构体成员包括项目名、权值。(1)在此程序中,包括几个头文件:mainfile.h;dos.h;conio.h;momery.h;接下来,定义全)局变量,其中包括“参赛学校项目数 N;男子项目数 M;女子项目数 W;参赛学校g_school;竞赛项目 g_sport;各名次链表指针 ptrHead,ptrThis,ptrNew;总体设计:系统设计为信息输入模块、比赛结果录入模块和查询模块三个模块。总 体设计:系统设计为信息输入模块、比赛结果录入模块和查询模块三个模块。 (2)各种结构的分析:)各种结构的分析: 静态存储方式: 它是指在程序运行期间由系统分配固定的存储空间的方式,全局变量全部存 静态存储方式: 放在静态存储区中,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放,在程 序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放。用 static 声明局部变量:使用该变量可以使局部变量的值在函数调用结束后不消失而保留原 值,这即为静态局部变量的特点。静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不 释放。对静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。如在定义局部变 量时不赋初值的话,则对静态局部不说,编译时自动赋初值 0(对数值型变量)或空字符 总体设计 信息输入模块 比赛结果录入模块 查询模块 设置参赛信息 设置竞赛项目总数 主菜单 设置竞赛项目信息 设置项目名次取法 生成报表 打印竞赛项目信息 填充参赛信息 请输入您的选择 开始。而对自动变量来说,如果不赋初值则它的值是一个不确定的值。虽然静态局部 变量在函数调用结束后仍然存在,但其他函数是不能引用它的。Malloc 函数 函数的作用是在内存的动态存储区中分配一个长度为 size 的连续空间。此函数的值 是一个指向分配域起始地址的指针,如果此函数未能成功地执行,则返回空指针。链表是动态地进行存储分配的一种结构,所谓建立动态链表是指在程序执行过程中从无到有 地建立一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系。循环结构是结构程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复 循环结构 杂程序的基本构造单元。通常用 while、do…while 语句实现循环,最常用的是 for 3 语句的循 环,夺循环中还有循环的嵌套,它是指一个循环体内又包含另一个完整的循环结构。用语句 来实现从循环体内跳出来,即提前结束循环,接着执行循环下面的语句,但 break 语句不能 用于循环语句和 swich 语句之外的任何其他语句中。另外一种就是 continue 语句,它的作用 是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判 定。Swich 语句 语句是多分支选择语句,它后面括号内的“表达式”,ANSI 标准允许它为任何类 型。当表达式的值与一个 case 后面的常量表达式的值相等时,就执行此 case 后面的语句,若所有的 case 中的常量表达式的值都没有与表达式的值匹配的,就执行 default 后面的语句,每一个 case 的常量表达式的值必须都不相同;否则就会出现相互矛盾的现象。各个 case 和 default 的出现次序不影响执行结果,执行完一个 case 后面的语句后,流程控制转移到下一 个 case 继续执行。“case 常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行 swich 语句时,根据 swich 后面表达式的值找到匹配的入口标号,就从此标号开始执 行下去,不再进行判断程序流程图 开始 请输入您的选择 c s i p q 编号 n=0? i<=2 i=0 i=1 0 2 1 MAX—M MAX—W 男团总分 女团总分 r 团体总分 输出 t 生成报表 结束 HOU 第 6 页 2010/9/5 项目名次的取法及每一名次的分值 开始 请选择编号 0 1 2 0 7 输入名次 0 5 1 5 1 3 t=i 2 3 2 2 i=i+1 3 2 i>0 4 1 n<5 n<3 输出 ****************************MENU1******************************* ****** 1.enter!!2.record!!3.search!!******************************************************************************* choice your number:() 二、课程设计体会 在此次的 C 语言的课程设计中,我不仅 学到了许多有庆这方面的专业知识,更重要的是我学会了如何在拿到一个题目时进行简单的 程序分析,并编译出一些相对简单的程序,当然了,对自己编译出的不对的程序,我也能 4 进 行一些分析,并对其进行完善。在此次的学习过程中,老师教给了我们很多的东西,从一开 始的不懂 VC++这种软件,到最后的我们可以进行较熟练的应用它,也许在这过程中,我们 无论是学生还是老师都遇到了一些小的困难,但是在我们师生的共同努力下,我们最终还是 克服了它,单从这一点来说,我们就学到了许多的东西,比如 teamwork,同学之间的相互 帮助以及与老师的配合,都证明了这一点,我相信这是我此次学习C 语言程序的最大收获。在我的程序设计的过程中,遇到了很大有难题,特别是在刚拿到我的题目时,头脑中 根本没有头绪,更不要说去编译程序了,当时真的很担心是否可以完成老师布置的任务,但 慢慢的在学习的过程中,我开始懂得了一些编译的方法,就尝试着去编译一些程序,结果还 是很好,最后我编出了我题目的程序,但是在程序的运行过程中,又遇到了新的难题,那就 是我所编的程序中有太多的错误,根本无法进行运行,没办法,只好硬着头皮修改,不过还好,在老师和同学们的帮助下,我最终将我的程序成功地进行了运行,在我自己的程序运行 时,心中有一种说不出的高兴,是的,自己这几天的努力总是没有白费。 五.附录: 源代码: #include }itemnode;typedef struct { int schoolnum; int score; int mscore; int wscore; itemnode c[m+w];}headnode;headnode h[n]; void input(){ int i,j,k,s; for(i=0;i { h[i].schoolnum=0; h[i].score=0; h[i].mscore=0; h[i].wscore=0; } for(i=0;i { printf(“n学 校 编 号:”); scanf(“%d”,&h[i].schoolnum); for(j=0;j { printf(“n项 目 编 号:”); scanf(“%d”,&h[i].c[j].itemnum); printf(“n取前3或前5名:”); scanf(“%d”,&h[i].c[j].top); while(h[i].c[j].top!=3&&h[i].c[j].top!=5) {printf(“n输入错误,请重新输入!:”); scanf(“%d”,&h[i].c[j].top);break;} printf(“n获得几个名次:”);6 scanf(“%d”,&k); for(s=0;s<5;s++) h[i].c[j].range[s]=0; for(s=0;s { l: printf(“n名 次:”); scanf(“%d”,&h[i].c[j].range[s]); if(h[i].c[j].top==3) switch(h[i].c[j].range[s]) { case 0:h[i].c[j].mark[s]=0; break; case 1:h[i].c[j].mark[s]=5; break; case 2:h[i].c[j].mark[s]=3; break; case 3:h[i].c[j].mark[s]=2; break; default:{puts(“输入错误!请重新输入!”); goto l;} } else switch(h[i].c[j].range[s]) { case 0:h[i].c[j].mark[s]=0; break; case 1:h[i].c[j].mark[s]=7; break; case 2:h[i].c[j].mark[s]=5; break; case 3:h[i].c[j].mark[s]=3; break; case 4:h[i].c[j].mark[s]=2; break; case 5:h[i].c[j].mark[s]=1; break; default:{puts(“输入错误!请重新输入!”); goto l;} } h[i].score=h[i].score+h[i].c[j].mark[s]; if(j<=m-1) h[i].mscore=h[i].mscore+h[i].c[j].mark[s]; else h[i].wscore=h[i].wscore+h[i].c[j].mark[s]; } printf(“n”); } } } void output(){ int choice,i,j,t; int a[n]; int sign; do { printf(“n***************************1.按学校编号****************************n”); printf(“*****************************2.按学校总分****************************n”); printf(“*****************************3.按男团总分****************************n”); printf(“*****************************4.按女团总分****************************n”); printf(“*****************************请根据提示进行操作!:”); scanf(“%d”,&choice); printf(“n”); switch(choice) { case 1:for(i=0;i { printf(“n学校编号:%dn”,h[i].schoolnum); printf(“学校总分:%dn”,h[i].score); 输出 输出 输出 输出 printf(“男团总分:%dn”,h[i].mscore); printf(“女团总分:%dn”,h[i].wscore); printf(“n”); } break; case 2:for(i=0;i a[i]=i; for(i=0;i { for(j=i+1;j if(h[a[i]].score { t=a[i]; a[i]=a[j]; a[j]=t; } } for(i=0;i { printf(“n学校编号:%dn”,h[a[i]].schoolnum); printf(“******************学校总分:%dn”,h[a[i]].score); printf(“******************男团总分:%dn”,h[a[i]].mscore); printf(“******************女团总分:%dn”,h[a[i]].wscore); printf(“n”); } break; case 3:for(i=0;i a[i]=i; for(i=0;i { for(j=i+1;j if(h[a[i]].mscore { t=a[i]; a[i]=a[j]; a[j]=t; } } for(i=0;i { printf(“n学校编号:%dn”,h[a[i]].schoolnum); printf(“******************学校总分:%dn”,h[a[i]].score); printf(“******************男团总分:%dn”,h[a[i]].mscore); printf(“******************女团总分:%dn”,h[a[i]].wscore); printf(“n”); } break; case 4:for(i=0;i a[i]=i; for(i=0;i { for(j=i+1;j if(h[i].wscore { t=a[i]; a[i]=a[j]; a[j]=t; } } for(i=0;i { printf(“n学校编号:%dn”,h[a[i]].schoolnum); printf(“******************学校总分:%dn”,h[a[i]].score); printf(“******************男团总分:%dn”,h[a[i]].mscore); printf(“******************女团总分:%dn”,h[a[i]].wscore); printf(“n”); } break; } printf(“是否继续操作(1/0)?:”); scanf(“%d”,&sign); printf(“n”); }while(sign==1); } void chaxun(){ int choice; int i,j,k,s; printf(“n*****1:按学校编号查询n”); printf(“n*****2:按项目编号查询n”); printf(“n*****请选择查询方式:”); scanf(“%d”,&choice); switch(choice) { case 1: do { printf(“要查询的学校编号:”); scanf(“%d”,&i); if((i>n)||(i<=0)) printf(“错误:这个学校没有参加此次运动会!n”); else { printf(“******************要查询的项目编号:”); scanf(“%d”,&j); if(j>m+w||j==0) printf(“******************此次运动会没有这个项目******************n”); else { printf(“这个项目取前 %d名,该学校的成绩如下:n”, 11 h[0].c[j-1].top); for(k=0;k<5;k++) if(h[i-1].c[j-1].range[k]!=0) printf(“名次:%dn”,h[i-1].c[j-1].range[k]); } } printf(“是否继续操作(1/0)?:”); scanf(“%d”,&s); printf(“n”); }while(s==1); break; case 2: do { printf(“要查询的项目编号:”); scanf(“%d”,&s); if(s>m+w||s==0) printf(“此次运动会不包括这个项目n”); else { printf(“该项目取前 %d名,取得名次的学校n”,h[0].c[s-1].top); for(i=0;i for(j=0;j<5;j++) if(h[i].c[s-1].range[j]!=0) printf(“ 学 校 编 号 :%d,名次:%dn”,h[i].schoolnum,h[i].c[s-1].range[j]); } printf(“是否继续操作(1/0)?:”); scanf(“%d”,&i); printf(“n”); }while(i==1); break; } } void write(){ int i,j,s; FILE *fp; if((fp=fopen(“sportsdata结果.txt”,“a+”))==NULL) { printf(“不能打开文件n”); exit(1); } fputs(“学校编号 学校总分 男子总分”,fp);fputs(“n”,fp); for(i=0;i { fprintf(fp,“%2dtt ”,h[i].schoolnum); fprintf(fp,“%2dtt”,h[i].score); fprintf(fp,“%2dtt”,h[i].mscore); fprintf(fp,“%2d ”,h[i].wscore); fputs(“n”,fp); } fclose(fp);} 女子总分 void read() { FILE *fp; int i,j,s; if((fp=fopen(“sportsdata.txt”,“r”))==NULL) { printf(“文件不存在,不能打开文件!n”); exit(1); } for(i=0;i { fscanf(fp,“%d”,&h[i].schoolnum); // for(j=0;j // { fscanf(fp,“%d”,&h[i].c[j].itemnum); fscanf(fp,“%d”,&h[i].c[j].top); // for(s=0;s<5;s++) // { fscanf(fp,“%d”,&h[i].c[j].range[s]); // } // } } fclose(fp);} int main(){ FILE *fp; int choice; int flag1=1,flag2=1; system(“cls”); do { printf(“n####***********************************************####n”); printf(“n####******************校级运动会分数统计系统*******************####n”); printf(“nn ####^^^^^^^^^^^^^^1.录入信息^^^^^^^^^^^^^^####n”); printf(“nn ####^^^^^^^^^^^^^^2.读取信息^^^^^^^^^^^^^^####n”); printf(“nn ####^^^^^^^^^^^^^^3.显示信息^^^^^^^^^^^^^^####n”); printf(“nn ####^^^^^^^^^^^^^^4.查询信息^^^^^^^^^^^^^^####n”); printf(“nn ####^^^^^^^^^^^^^^5.退出程序^^^^^^^^^^^^^^####n”); printf(“n####*************************************************************####n”); printf(“nn请根据提示选择操作!:”); scanf(“%d”,&choice); if(choice==1) flag1=0; else if((fp=fopen(“sportsdata.txt”,“r”))!=NULL) flag2=0; else { system(“cls”); printf(“没有信息,请你录入信息!n”); } }while(flag1&&flag2); switch(choice) { case 1: 欢迎使用程序 printf(“n==========请输入信息========n”); input(); write();printf(“==========信息已存入档=========”); main(); case 2: read(); write; break; case 3: printf(“===========输出信息==========n”); if(flag1) read(); output(); main(); case 4: printf(“===========查询信息==========n”); if(flag1) read(); chaxun(); main(); case 5: printf(“n退出系统!谢谢使用!nn”);exit(0); default: printf(“输入错误!n”);exit(0); } 六主要知识点 面向过程程序设计方法 界面制作,switch的应用。 数组或链表的实现与应用。 文件的读写。 七.其他 程序设计可在VC++、C++ Builder环境下进行。八.参考资料 [1] 黄明等编著《C语言课程设计》北京:电子工业出版社 [2] 郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社 [3] 宁正元《数据结构(c语言)》 南京:东南大学出版社。2000年6月第1版 [4] 严蔚敏等 《数据结构(c语言版)》 北京:清华大学出版社,1997年4月第1版 [5] 谭浩强编著《C程序设计题解与上机指导(第3版)》北京:清华大学出版社 [6] 谭浩强编著《C程序设计(第3版)》北京:清华大学出版社 姓名:周鹏学号:110111271.5 总结 大学体育是本着发展丰富的体育活动,娱乐我们的身心,提高我们身体素质的原则。学习网球会带给我带来一种乐感。它会使我心情变得很愉快,身体的每个关节都得到舒展。 在网球的初学过程里,刚开始我由于紧张,有时用力地握住球拍,再大力地挥出击球.本以为能够以完美曲线飞越球网,但事实上却是它向天飞去,再落地.在老师正确的姿势指导下 ,我慢慢地纠正自己的错误,将身体放松了下来.在后面的学习过程中,正是因为我有了比较放松和愉快的心情,对对手所给的球,我才能以一种好的状态去应对,快乐地挥动球拍。 我觉得脚步移动是关键,脚不能偷懒,一定要跑勤快了,跑到了位置的击球才能打出好球,不能光靠蛮力,一定要掌握好技巧,除了速度角度也很重要,最好能给球加一点上旋,这样打出的球才更稳定。和同伴打球的时候,要有意识的打到对方容易接到的地方,这样才能产生回合,要控制好力道,太轻或者太大力都容易发生偏差。网球是一项很靠技术的运动,虽然不需要身体碰撞,但在打球前也一定要活动开,避免发生运动伤害。在网球场上一定要注意,不要让球打到他人。每次打球出现极大的失误原因总是同样的——为了追赶一个球,结果就是当身体战到离球只有不到20厘米时才发现打不到球了。不是因为球太远打不到,而是因为球太近没法打。有些人觉得打网球乒乓球一类的动作很重要。的确,这种说法有一定的正确性,因为过于不合理的动作而受伤的风险是存在的;但是这种说法也有一定的局限性。动作的重要并不是要求每一次动作都要一模一样,也不是模仿他人的姿势,而是要让自己感觉击球时非常地舒展,感觉非常的舒服。因此,击球的动作只有合理性一说,绝对没有正确性。而如果当击球的时候非常放松的话,整个动作必定会十分连惯。重心可以说是任何运动中的最重要的因素。在网球中重心的移动可以产生很大的力量,因此根本就没有用手发力的必要。手就像鞭梢一样,保持灵活性的放松就好。之所以要侧身引拍就是为了让重心稍微后移,然后再回到正常位置。这样一来,打球的力量就可以完全用身体控制,并可以有效防止手部受伤了。打完球之后尽量回到有利于下一击的位置。总之,网球不是大多数人想象的那样,好像比足球篮球什么的轻松。其实打网球比那两个要累多了。首先,精神的集中程度要和乒乓球差不多,又不能太紧张,折返跑又很多,再加上球对球拍的冲击很大。所以,用整个身体去打网球才是王道。 通过体育课,我锻炼了自己的身体,加强了自己的身体素质;通过网球课的学习,我了解了更多关于网球技巧方面的东西:加强了自己对网球落点的判断的能力,加快了自己的反应速度,更学会了为别人着想,要尽量打出别人好接的球,而不是强攻压迫自己的球友。 1.双人踢毽子 每班两组(每组2人),每组对踢一次记1分。个人奖:选出所有小组中分数最高的三组记1、2、3名; 团体奖计分:选出每班两组总分最高的前六名,分别记15分、13分、11分、9分、7分、5分。2.企鹅漫步 每班一队(4人)根据所用时间排名。个人奖:取前三名; 团体奖计分:选出前六,分别记15分、13分、11分、9分、7分、5分。3.麻袋跳 每班一队(4人)根据时间排名。个人奖:取前三名; 团体奖计分:选出前六,分别记15分、13分、11分、9分、7分、5分。4.疾风二十一 每班一队(15人)根据时间排名。个人奖:取前三名; 团体奖计分:选出前六,分别记20分、17分、14分、11分、8分、5分。5.拔河 每班一队(15人)根据时间排名。个人奖:取前三名; 团体奖计分:选出前六,分别记20分、17分、14分、11分、8分、5分。 总:取团体奖计分最高前三名。 网球比赛计分规则 网球计分方法: 一、胜一分 遇到下列情况时,判对方胜1分: 1、发球员连续两次发球失误或脚误时。 2、接球员在发来的球没有着地前用球拍击球,或球触及自己的身体及所穿戴的衣物时。 3、在球第二次落地前未能还击过网时。 4、还击球触及对方场区界线以外的地面、固定物或其它物件时。 5、还击空中球失败时。 6、在比赛中,击球员故意用球拍拖带或接住球,或故意用球拍触球超过一次时。 7、“活球”期间运动员的身体、球拍(不论是否握在手中)或穿戴的其它物件触及球网、网柱、单打支柱、绳或钢丝绳、中心带、网边白布或对方场区以内的场地地面。 8、还击尚未过网的空中球(过网击球)。 9、除握在手中(不论单手或双手)的球拍外,运动员的身体或穿戴的物体触球。 10、抛拍击球时。 11、比赛进行中,运动员故意改变其球拍形状。 二、胜一局 运动员每胜一球得1分,先胜4分者胜一局。但遇双方各得3分时,则为“平分”(duece)。“平分”后,一方先得1分时,为“接球占先”(advantage serve)或“发球占先”(advantage)。占先后再得1分,才算胜一局。(其中得1分为fifteen,2分为thirty,3分为forty) 三、胜一盘 一方先胜6局为胜一盘,但遇双方各得5局时,一方必须净胜两局才算胜一盘。 四、决胜局(tie break,也叫抢七局) 在每盘的局数为6平时,进行决胜局,先得7分为胜该局及该盘,若分数为6平时,一方须净胜2分。 “15” “30” “40” 网球以15为基本单位的计分方法是始于15世纪,当时一整局有60分, 而60这个分数可均分为4个15分。 六分仪与1/6个圆一样, 共有60度, 每度60秒,当时的网球赛一局为4分, 4个15分为一度, 而4个15度又可构成1/6个圆, 故此就采用15分为基数来计算每球的得失分, 至于将45改为40, 是为了报分时发音的简便, 因此形成现代 “15” “30” “40”的计分方法。第二篇:c语言课程设计运动会比赛计分系统(含任务书)
第三篇:网球比赛计分规则
第四篇:趣味运动会计分规则
第五篇:网球比赛计分制