运动会计分系统系统报告.docx
《运动会计分系统系统报告.docx》由会员分享,可在线阅读,更多相关《运动会计分系统系统报告.docx(8页珍藏版)》请在冰豆网上搜索。
![运动会计分系统系统报告.docx](https://file1.bdocx.com/fileroot1/2023-1/8/2106ed1a-0bc7-4365-8971-cc2358a64a76/2106ed1a-0bc7-4365-8971-cc2358a64a761.gif)
运动会计分系统系统报告
《程序设计基础》
课程设计报告
题目运动会比赛计分系统设计
专业班级数媒1302
学号201307120227
姓名任飞龙
指导老师
完成时间2014年6月23日
主要功能包括:
1)信息录入:
用户输入运动员的编号、姓名、性别、院系、跑步分数、篮球分数、足球分数,条数不限。
2)信息查找:
用户输入编号查找,有对应信息则显示,没有则输出“没有找到相应记录”。
3)信息修改:
可以实现对运动员“姓名、性别、院系、跑步分数、篮球分数、足球分数”信息的修改。
4)信息删除:
用户输入编号,有对应信息则询问“是否删除”,没有则显示“没有记录!
”
5)信息统计:
统计用户记录的总信息数目。
1)菜单选择模块完成用户命令的接收,此模块是运动会比赛计分系统的入口,用户所要进行的各种操作均需在此模块中进行选择而调用其他模块实现相应的功能;
2)信息输入模块完成必要信息的录入和保存;
3)统计模块是对输入信息的处理,是一种必要的辅助模块;
4)输出模块包括:
1不输出信息,读入文件中;
2输出信息,不读入文件。
其中输出的信息有:
姓名、性别、院系、跑步分数、篮球分数、足球分数;
5)文件读入模块是为了满足客户需要,为了储存信息,方便使用;
6)信息查询模块完成对各信息的查询,查询时应输入成员编号进行查询。
1.向用户展示主界面。
2.用户按0-5选择功能。
3.选择1,进入录入信息模块,分别记录运动员“跑步、篮球、足球”分数。
记录完毕,判断是否继续,是,就继续录入,直到用户退出录入信息模块;否则直接返回主界面。
4.选择2,进入查找信息模块,输入要查询的信息的编号,判断是否有记录,是,就显示该编号的信息,然后返回主界面;否则直接返回主界面。
5.选择3,进入删除信息模块,输入要删除的信息的编号,判断是否删除,是,就输出删除信息,然后返回主界面;否则直接返回主界面。
6.选择4,进入修改信息模块,输入要修改的信息的编号,判断是否修改,是,就重新录入信息,然后返回主界面;否则直接返回主界面。
7.选择5,进入统计信息模块,显示录入的信息条数,然后返回主界面。
8.选择0,退出程序。
录入模块为用户提供信息录入功能,在此功能下用户可以录入运动员的比赛成绩,并且,录入的信息会被保存在一个名为“运动会比赛计分系统”的文件中,方便用户查找,修改信息。
用户从主界面选择1后程序功能实现:
打开文件fp=fopen("运动会比赛计分系统","ab+"),读取文件中的信息,fread(&member[m],LEN,1,fp)==1,直到文件结尾while(!
feof(fp)),统计已录入的信息数目m++,如果m!
=0,则以相应格式显示已录入信息,并询问用户是否录入信息,如果m==0,仅询问用户是否录入信息strcmp(ch,"Y")==0||strcmp(ch,"y")==0,用户输入y或Y,开始录入信息,否则就返回主菜单,录入完成后,向文件中写入信息fwrite(&member[m],LEN,1,fp)!
=1,保存,并重新判断用户是否继续录入信息,直到用户选择不录入信息,退出此功能模块。
当用户从主界面选择5后程序功能实现:
打开文件fp=fopen("运动会比赛计分系统","ab+"),读取文件中的信息,fread(&member[m],LEN,1,fp)==1,直到文件结尾while(!
feof(fp)),统计已录入的信息数目m++,并显示已录入信息数目。
voidin()//录入运动员信息
{
inti,m=0;
charch[2];
FILE*fp;
if((fp=fopen("运动会比赛计分系统","ab+"))==NULL)
{
printf("不能打开文件!
\n");
return;
}
while(!
feof(fp))
{
if(fread(&member[m],LEN,1,fp)==1)
m++;//统计当前记录条数
}
fclose(fp);
if(m==0)
printf("没有找到!
\n");
else
{
show();//调用show函数,显示原有信息
}
if((fp=fopen("运动会比赛计分系统","wb"))==NULL)
{
printf("不能打开文件!
\n");
return;
}
for(i=0;ifwrite(&member[i],LEN,1,fp);//向指定的磁盘文件写入信息
printf("是否输入?
(y/n):
");
scanf("%s",ch);
while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)//判断是否要录入新信息
{
printf("编号:
");
scanf("%d",&member[m].num);//输入运动员编号
for(i=0;iif(member[i].num==member[m].num)
{
printf("该记录已经存在,按任意键继续!
");
getch();
fclose(fp);
return;
}
printf("运动员姓名:
");
scanf("%s",member[m].name);//输入运动员姓名
printf("请输入性别:
");
scanf("%s",member[m].sex);//输入性别
printf("请输入院系:
");
scanf("%s",member[m].faculty);//输入院系
printf("请输入跑步分数:
");
scanf("%f",&member[m].run);//输入跑步分数
printf("请输入篮球分数:
");
scanf("%f",&member[m].basketball);//输入篮球分数
printf("请输入足球分数:
");scanf("%f",&member[m].football);//输入足球分数
member[m].total=member[m].run+member[m].basketball+member[m].football;
//计算总分
if(fwrite(&member[m],LEN,1,fp)!
=1)//将新录入的信息写入指定的磁盘文件
{
printf("不能保存!
");
getch();
}
else
{
printf("%s已经保存!
\n",member[m].name);
m++;
}
printf("是否继续?
(y/n):
");
scanf("%s",ch);
}
fclose(fp);
printf("OK!
\n");
}
voidshow()
{
FILE*fp;
inti,m=0;
fp=fopen("运动会比赛计分系统","ab+");
while(!
feof(fp))
{
if(fread(&member[m],LEN,1,fp)==1)
m++;
}
fclose(fp);
printf("编号姓名性别院系跑步分数篮球分数足球分数总分\t\n");
for(i=0;i{
printf(FORMAT,DATA);
}
}
voidtotal()//统计
{
FILE*fp;
intm=0;
if((fp=fopen("运动会比赛计分系统","ab+"))==NULL)
{
printf("不能打开记录!
\n");
return;
}
while(!
feof(fp))
if(fread(&member[m],LEN,1,fp)==1)
m++;//统计记录个数
if(m==0)
{
printf("没有记录!
\n");
fclose(fp);
return;
}
printf("一共有%d条记录!
\n",m);//将统计的个数输出
fclose(fp);
}
1)录入运动员信息如图:
2)统计运动员信息如图:
通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。
在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。
参考文献
[1]谭浩强著,C程序设计(第三版),北京:
清华大学出版社,2007