体育打分系统 c++.docx

上传人:b****8 文档编号:10629295 上传时间:2023-02-22 格式:DOCX 页数:12 大小:287.11KB
下载 相关 举报
体育打分系统 c++.docx_第1页
第1页 / 共12页
体育打分系统 c++.docx_第2页
第2页 / 共12页
体育打分系统 c++.docx_第3页
第3页 / 共12页
体育打分系统 c++.docx_第4页
第4页 / 共12页
体育打分系统 c++.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

体育打分系统 c++.docx

《体育打分系统 c++.docx》由会员分享,可在线阅读,更多相关《体育打分系统 c++.docx(12页珍藏版)》请在冰豆网上搜索。

体育打分系统 c++.docx

体育打分系统c++

体育打分系统

一·课题内容和要求

1.要求:

(1)系统可针对不同的竞技项目;

(2)可查询各裁判员打分的明细;

(3)能给出运动员的排名、打分情况等;

(4)运动员的基本信息保存于数据库中;

(5)裁判可直接选取某选手,对其打分;

(6)可查询打分规则;

(7)用VC++实现系统,要求界面简洁美观。

2.内容:

输出每个裁判给运动员打的分数,并且对成绩进行排序,最终通过运动员名字,运动员编号查询运动员的分数。

二.需求分析

1.structLinkNode*CreatLinklist(char*fname)这段代码用单链表进行排序,此处用单链表进行边建立边排序,首先定义四个指针p,u,v,h,用p指针来申请一个空间节点,v指针作为遍历点,h指针式头指针,u指针用来交换。

2.intGetRecord(FILE*fpt,structAthleteScore*sturecord)将指定文件的信息写到单链表节点中,上述单链表用来排序运动员的成绩,通过两个for循环来讲所有裁判员的分数输入进来。

3.voidInsertRecord()//这个函数的目的是实现裁判打分,我们可以新建一个成绩单并且可以写入,然后分别输入运动员的姓名和运动员的编号,通过for循环来实现输入裁判给的分数。

4.voidListathleteinfo(char*fname)此函数用来实现显示所有运动员的成绩,首先打开一个文件的名字,然后通过该函数实现这个功能。

5.intmain()这个是个主函数,分别输出裁判打分,按运动员名字查询分数.按运动员编号查询分数.显示所有运动员成绩.排名显示所有运动员成绩.退出系统.几个功能。

6.voidOutputLinklist(structLinkNode*h)此函数是顺序显示链表各个功能。

7.voidPutRecord(FILE*fpt,structAthleteScore*sturecord)此函数实现指定文件写入一个记录,此函数将二进制转化成我们能够看的见得文件形式。

8.intSearchbyCode(char*fname,char*key)//此函数是实现按运动员编号查询分数9.intSearchbyName(char*fname,char*key)//此函数是实现按运动员名字查询分数.

10.voidShowAthleteRecord(structAthleteScore*rpt)此函数是显示一个运动员的记录。

三.概要设计

这个程序通过定义函数structLinkNode*CreatLinklist(char*fname),intGetRecord(FILE*fpt,structAthleteScore*sturecord),voidInsertRecord()//1.裁判打分.,voidListathleteinfo(char*fname),intmain(),voidOutputLinklist(structLinkNode*h),voidShowAthleteRecord(structAthleteScore*rpt),intSearchbyName(char*fname,char*key)按运动员名字查询分数.,intSearchbyCode(char*fname,char*key)等函数来定义和运行整个体育竞赛打分系统。

通过这些函数的调用我们可以实现运动员总分的排序功能。

1.总排序程序流程图

2.所有成绩流程图

3.总分排序流程图

4.裁判打分流程图

5.运动员姓名查询流程图

四.详细设计

首先定义一个节点用来实现下面的链表排序。

structAthleteScore

{

charname[NAMELEN+1];/*姓名*/

charcode[CODELEN+1];/*学号*/

intscore[JUDEGNUM];/*各裁判给的成绩*/

inttotal;/*总成级*/

};

显示所有运动员成绩,通过while循环语句来嵌套显示一个运动员记录函数。

来实现输入并显示所有运动员的成绩。

voidListathleteinfo(char*fname)

{

FILE*fp;

structAthleteScores;

system("cls");

if((fp=fopen(fname,"r"))==NULL)

{

printf("Can'topenfile%s.\n",fname);

return;

}

while(GetRecord(fp,&s)!

=0)

{

ShowAthleteRecord(&s);

}

fclose(fp);

return;

}

链表按总分排序,通过p,u,v,h四个指针用单链表实现边建立边排序的方法,通过p指针申请一个空间节点,v指针是一个遍历点,通过单链表指针的比较来实现链表按总分排序。

structLinkNode*CreatLinklist(char*fname)

{

FILE*fp;

//structAthleteScores;

structLinkNode*p,*u,*v,*h;

//inti;

if((fp=fopen(fname,"r"))==NULL)

{

printf("Can'topenfile%s.\n",fname);

returnNULL;

}

h=NULL;

p=(structLinkNode*)malloc(sizeof(structLinkNode));//shenqingyigekongjianjiedian

while(GetRecord(fp,(structAthleteScore*)p)!

=0)

{

v=h;

while(v&&p->total<=v->total)

{

u=v;

v=v->next;

}

if(v==h)

h=p;

else

u->next=p;

p->next=v;

p=(structLinkNode*)malloc(sizeof(structLinkNode));

}

free(p);

fclose(fp);

returnh;

}

一下是主函数部分,通过switch,case,语句来实现主函数的功能,主要是读入一个文件,通过case语句以及上述函数的调用实现裁判打分,运动员成绩总分的排序。

intmain()

{

//inti,j,n;

charc;

charbuf[BUFFSIZE];//定义一个缓存

while

(1)

{

system("cls");

printf("\n--------------Inputacommand-----------\n");

printf("|1:

裁判打分.|\n");

printf("|2:

按运动员名字查询分数.|\n");

printf("|3:

按运动员编号查询分数.|\n");

printf("|4:

显示所有运动员成绩.|\n");

printf("|5:

排名显示所有运动员成绩.|\n");

printf("|6:

退出系统.|\n");

printf("输入命令:

\n");

scanf("%c",&c);/*输入选择命令*/

switch(c)

{

case'1':

InsertRecord();

getch();

break;

case'2':

/*按运动员的姓名寻找记录*/

printf("运动员名称:

\n");

scanf("%s",buf);

SearchbyName(filename,buf);

getch();

break;

case'3':

/*按运动员的号码寻找记录*/

printf("运动员编号:

\n");

scanf("%s",buf);

SearchbyCode(filename,buf);

getch();

break;

case'4':

/*列出所有运动员记录*/

Listathleteinfo(filename);

getch();

break;

case'5':

/*按总分从高到低排列显示*/

if((head=CreatLinklist(filename))!

=NULL)

OutputLinklist(head);

getch();

break;

case'6':

return1;

default:

break;

}

}

return1;

}

5、测试数据及其结果分析

6、调试过程中的问题

在代码设计的初期,试图建立一个MFC界面,但是在建立的时候对于C++类的掌握不够熟悉,不能够正确使用,导致没有在规定的时间完成。

同时对单链表的掌握也不够熟练,尤其用单链表进行排序的时候,不能够正确理解单链表是如何边建立边排序的问题。

7、参考文献和查阅的资料

《面向对象程序设计及C++》朱立华俞琼朱建编著人民邮电出版社

《C语言程序设计》朱立华王立柱编著人民邮电出版社

《数据结构与算法分析》MarkAllenWeiss(美)人民邮电出版社

8、程序设计总结

做了两周的课程设计,有很多的心得体会,更多的是同学之间的合作精神,这道课程设计花了我们一到两周的时间,几人合作,老师的帮忙才完成。

在设计过程中,我付出了很多,也懂得了只有付出才有回报。

在这次设计中,我遇到了很多困难,但我没有向困难低头,通过查询资料,虚心向同学、老师请教,才一一得到了解决。

我发现平时学的太少了,在今后我首先要把老师在课堂讲的弄懂,弄透,在此基础上利用课余时间多看课外书籍,拓宽知识面。

在设计过程中,合作精神必不可少。

单凭一个人的力量是不能完成的,毕竟一个人学的很有限。

每个人掌握的不同。

我相信:

态度决定一切,只有努力才有收获。

很感谢这次的课程设计,它使我更加深刻地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,做任何事都要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。

人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的路上,总遇到重重困难,但正是因为困难我们才变的更坚强。

今后的路还很长,面对困难,让我们用行动去俘虏它吧!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1