完整版C语言课程设计实验报告.docx

上传人:b****7 文档编号:15798008 上传时间:2023-07-07 格式:DOCX 页数:22 大小:94.21KB
下载 相关 举报
完整版C语言课程设计实验报告.docx_第1页
第1页 / 共22页
完整版C语言课程设计实验报告.docx_第2页
第2页 / 共22页
完整版C语言课程设计实验报告.docx_第3页
第3页 / 共22页
完整版C语言课程设计实验报告.docx_第4页
第4页 / 共22页
完整版C语言课程设计实验报告.docx_第5页
第5页 / 共22页
完整版C语言课程设计实验报告.docx_第6页
第6页 / 共22页
完整版C语言课程设计实验报告.docx_第7页
第7页 / 共22页
完整版C语言课程设计实验报告.docx_第8页
第8页 / 共22页
完整版C语言课程设计实验报告.docx_第9页
第9页 / 共22页
完整版C语言课程设计实验报告.docx_第10页
第10页 / 共22页
完整版C语言课程设计实验报告.docx_第11页
第11页 / 共22页
完整版C语言课程设计实验报告.docx_第12页
第12页 / 共22页
完整版C语言课程设计实验报告.docx_第13页
第13页 / 共22页
完整版C语言课程设计实验报告.docx_第14页
第14页 / 共22页
完整版C语言课程设计实验报告.docx_第15页
第15页 / 共22页
完整版C语言课程设计实验报告.docx_第16页
第16页 / 共22页
完整版C语言课程设计实验报告.docx_第17页
第17页 / 共22页
完整版C语言课程设计实验报告.docx_第18页
第18页 / 共22页
完整版C语言课程设计实验报告.docx_第19页
第19页 / 共22页
完整版C语言课程设计实验报告.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

完整版C语言课程设计实验报告.docx

《完整版C语言课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《完整版C语言课程设计实验报告.docx(22页珍藏版)》请在冰点文库上搜索。

完整版C语言课程设计实验报告.docx

完整版C语言课程设计实验报告

 

第1章问题描述

1.1题目

足球比赛积分排行榜程序

1.2基本要求

(1)10个足球队进行9轮循环赛,胜一场积3分,平一场积1分,输一场积0分。

(2)如果两个队积分相同,进行净胜球的比较,如果净胜球再相同进行总进球的比较。

(3)编写一程序输入每轮比赛的比分,并可以存储。

(4)最后统计出每轮比赛的积分榜。

第2章需求分析

1.1软件的基本功能

(1)输入10个足球队的9轮比赛进球数。

(2)计算10个球队的积分,净胜球,总进球。

(3)对9轮比赛进行排序。

1.2输入/输出形式

由键盘输入,屏幕输出,并且以TXT形式保存。

1.3测试数据要求

输入九轮比赛10个足球队的进球数,由系统统计积分、净胜球、总进球数,并输出。

第3章概要设计

1.1主程序

头文件:

#include

说明:

main函数的头文件,控制整个程序。

#include

说明:

清屏的头文件。

#include

说明:

包括了大量的函数原型,调用现成的库函数。

#include

说明:

基于char*的字符串处理函数。

全局变量:

voidinput();输入数据函数

voidsort();排序数据函数

voiddisplay();显示数据函数

voidsave();保存数据函数

第4章详细设计

1.1数据类型

int整型char字符型

1.2伪码算法

(1)原始数据录入模块

voidinput()/*原始数据录入模块*/

{

inti=0,j=0,k;

charch;

printf("\t1.录入球队信息\t");

for(i=0;i<9;i++)//i代表9轮

{

printf("\n\n\t输入第%d轮比赛的信息\n",i+1);

for(n=0;n<5;j++)//n代表每轮的5场比赛,每场有2各队

{

某场的第一只队

输入队名到match[i][j].Name;

输入进球数到match[i][j].d_goal;

某场的第二只队

输入队名到match[i][j+5].Name;

输入进球数到match[i][j+5].d_goal;

算每个队的失球数

match[i][n].s_goal=match[i][n+1].d_goal;

第一只队的失球数等于第二只队的失球数;

第二只队的失球数等于第一只队的进球数;

算每个队的得分

如果第一只队的进球数等于第二只队的进球数,两个队的得分各1分;

如果第一只队的进球数大于第二只队的进球数,第一个队3分,第二个队0分;

如果第一只队的进球数小于第二只队的进球数,第一个队0分,第二个队3分;

算第一只队的截至到本轮总得分,截至到本轮净胜球,截至到本轮总进球

if(i==0)

{

第一轮的截至到本轮总得分=本场得分;

第一轮的截至到本轮净胜球=本场净胜球;

第一轮的截至到本轮总进球=本场进球数;

}

else

{

for(j=0;j<10;j++)

{

for(k=0;k<10;k++)

{

if(match[i][j]的队名和match[i-1][k]的队名一样)

{

match[i][j]的截至到本轮总得分=match[i-1][k]的截至到本轮总得分+match[i][j]的本场得分;

match[i][j]的截至到本轮净胜球,截至到本轮总进球同理计算;

}

}

}

}

}

printf("\t\t按任意键返回主菜单.");

fflush(stdin);

fflush(stdin);

ch=getch();

system("cls");

}

(2)排序数据函数

voidsort()/*排序数据函数*/

{

structMatchInfomatch;

inti,j,n;

for(i=0;i<9;i++)

{

for(j=0;j<9;j++)

{

for(n=j+1;n<10;n++)

{

if(Match[i][j]总积分小于Match[i][n]的总积分)

{

Match[i][j]结构体与Match[i][n]结构体调换

}

}

}

}

}

voidsort1()/*排序数据函数*/

{

structMatchInfomatch;

inti=0,j,n;

for(i=0;i<9;i++)

{

for(j=0;j<9;j++)

{

for(n=j+1;n<10;n++)

{

if(Match[i][j]总积分等于Match[i][n]的总积分)

{

if(Match[i][j]总净胜球小于Match[i][n].总净胜球)

{

Match[i][j]结构体与Match[i][n]结构体调换

}

}

}

}

}

}

voidsort2()/*排序数据函数*/

{

structMatchInfomatch;

inti=0,j,n;

for(i=0;i<9;i++)

{

for(j=0;j<9;j++)

{

for(n=j+1;n<10;n++)

{

if(Match[i][j]总积分等于Match[i][n]的总积分)

{

if(Match[i][j]总净胜球小于Match[i][n].总净胜球)

{

if(Match[i][j]总进球小于Match[i][n]总进球)

{

Match[i][j]结构体与Match[i][n]结构体调换

}

}

}

}

}

}

}

1.3程序流程图

第5章操作

1.1进入足球比赛积分排行榜界面

图2

 

voidmain()/*主函数*/

{

intas;

charch;

do{

printf("\n\n\n\n\t\t****&****&****&****&****&****&****&****&****&****");

start:

printf("\n\n\n\n\t\t\t欢迎进入足球比赛积分排行榜\n");

printf("\n\n\n\n\t\t******************按任意键继续********************");

ch=getch();

}

while(!

ch);

system("cls");

/*一下为功能选择模块*/

说明:

进入欢迎页面。

1.2进入目录

图3

do

{

printf("\n\t\t\t\t1.录入球队信息\n\t\t\t\t2.显示积分排行榜\n\t\t\t\t3.保存积分\n\t\t\t\t4.退出\n");

printf("\t\t\t\t选择功能选项(输入所选功能前的数字):

");

fflush(stdin);

/*可用可不用,用于清除缓存防止下次用scanf输入是出现错误*/

scanf("%d",&as);

switch(as)

{

case1:

system("cls");

input();

break;

case2:

system("cls");

display();

break;

case3:

system("cls");

save();

break;

case4:

system("exit");

exit(0);

default:

system("cls");

gotostart;

}

}while

(1);/*while

(1),1表示真,所以while

(1)表示永远循环下去,*/

/*至此功能选择结束*/

}

说明:

上面的函数用来选择后续操作。

1.3输入球队比赛信息

voidinput()/*原始数据录入模块*/

{

inti=0,j=0,k;

charch;

printf("\t1.录入球队信息\t");

for(i=0;i<9;i++)

{

printf("\n\n\t输入第%d轮比赛的信息\n",i+1);

for(j=0;j<5;j++)

{

printf("\n输入第%d场比赛的信息\n",j+1);

printf("\n输入第一只队球队代号(A,B,C...):

");

scanf("%s",&Match[i][j].name);

fflush(stdin);

printf("\n输入进球数:

");

fflush(stdin);

scanf("%d",&Match[i][j].d_goal);

printf("\n输入第二只队球队代号(A,B,C...):

");

scanf("%s",&Match[i][j+5].name);

fflush(stdin);

printf("\n输入进球数:

");

fflush(stdin);

scanf("%d",&Match[i][j+5].d_goal);

Match[i][j].s_goal=Match[i][j+5].d_goal;

Match[i][j+5].s_goal=Match[i][j].d_goal;

Match[i][j].j_goal=Match[i][j].d_goal-Match[i][j].s_goal;//净胜球

Match[i][j+5].j_goal=Match[i][j+5].d_goal-Match[i][j+5].s_goal;//净胜球

if(Match[i][j].d_goal==Match[i][j+5].d_goal)

{

Match[i][j].score=1;Match[i][j+5].score=1;

}

if(Match[i][j].d_goal>Match[i][j+5].d_goal)

{

Match[i][j].score=3;Match[i][j+5].score=0;

}

if(Match[i][j].d_goal

{

Match[i][j].score=0;Match[i][j+5].score=3;

}

printf("%s的本场净胜球是%d,积分是%d\n",Match[i][j].name,Match[i][j].j_goal,Match[i][j+5].score);

printf("%s的本场净胜球是%d,积分是%d\n",Match[i][j+5].name,Match[i][j+5].j_goal,Match[i][j+5].score);

}

}

for(i=0;i<9;i++)

{

if(i==0)

{

for(j=0;j<10;j++)

{

Match[i][j].total_score=Match[i][j].score;

Match[i][j].total_j_goal=Match[i][j].j_goal;

Match[i][j].total_z_goal=Match[i][j].d_goal;

}

}

else

{

for(j=0;j<10;j++)

{

for(k=0;k<10;k++)

{

if(0==strcmp(Match[i][j].name,Match[i-1][k].name))

{

Match[i][j].total_score=Match[i-1][k].total_score+Match[i][j].score;

Match[i][j].total_j_goal=Match[i-1][k].total_j_goal+Match[i][j].j_goal;

Match[i][j].total_z_goal=Match[i-1][k].total_z_goal+Match[i][j].d_goal;

}

}

}

}

}

printf("\t\t按任意键返回主菜单.");

fflush(stdin);

fflush(stdin);

ch=getch();

system("cls");

}

说明:

上面的函数用来读入键盘输入的数据,并且判断每个队伍的单轮积分情况、净胜球情况、总进球情况。

1.4显示九轮比赛排行榜

voidsort()/*排序数据函数*/

{

structMatchInfomatch;

inti,j,n;

for(i=0;i<9;i++)

{

for(j=0;j<9;j++)

{

for(n=j+1;n<10;n++)

{

if(Match[i][j].total_score

{

match=Match[i][n];

Match[i][n]=Match[i][j];

Match[i][j]=match;

}

}

}

}

}

voidsort1()/*排序数据函数*/

{

structMatchInfomatch;

inti=0,j,n;

for(i=0;i<9;i++)

{

for(j=0;j<9;j++)

{

for(n=j+1;n<10;n++)

{

if(Match[i][j].total_score==Match[i][n].total_score)

{

if(Match[i][j].total_j_goal

{

match=Match[i][n];

Match[i][n]=Match[i][j];

Match[i][j]=match;

}

}

}

}

}

}

voidsort2()/*排序数据函数*/

{

structMatchInfomatch;

inti=0,j,n;

for(i=0;i<9;i++)

{

for(j=0;j<9;j++)

{

for(n=j+1;n<10;n++)

{

if(Match[i][j].total_score==Match[i][n].total_score)

{

if(Match[i][j].total_j_goal==Match[i][n].total_j_goal)

{

if(Match[i][j].total_z_goal

{

match=Match[i][n];

Match[i][n]=Match[i][j];

Match[i][j]=match;

}

}

}

}

}

}

}

voiddisplay()/*显示数据函数*/

{

inti=0,j=0;

charas;

sort();

sort1();

sort2();

do

{

printf("\t\t球队信息列表\n");

for(i=0;i<9;i++)

{

printf("\t\t\t第%d轮比赛信息\n",i+1);

printf("\t代号\t\t积分\t净胜球\t总进球\n");

for(j=0;j<10;j++)

printf("\t%s\t\t%d\t%d\t%d\n",Match[i][j].name,Match[i][j].total_score,Match[i][j].total_j_goal,Match[i][j].total_z_goal);

}

printf("\t\t按任意键返回主菜单.");

fflush(stdin);

as=getch();

}

while(!

as);

system("cls");

}

说明:

上面的函数用来判断每个队伍的积分情况、净胜球情况、总进球情况,并且由屏幕输出。

1.5保存数据

voidsave()/*保存数据函数*/

{

FILE*fp;

inti,j;

fflush(stdin);

if((fp=fopen("d:

\\足球积分排行榜.txt","wt"))!

=NULL)

for(i=0;i<9;i++)

{

fprintf(fp,"\t\t\t第%d轮比赛信息\n",i+1);

fprintf(fp,"\t代号\t\t积分\t净胜球\t总进球\n");

for(j=0;j<10;j++)

fprintf(fp,"\t%s\t\t%d\t%d\t%d\n",Match[i][j].name,Match[i][j].total_score,Match[i][j].total_j_goal,Match[i][j].total_z_goal);

}

fclose(fp);

printf("\n");

printf("\t\t\t操作成功!

\n");

system("pause");

system("cls");

}

说明:

将每轮比赛的积分输出,并且保存在新建的"足球积分排行榜.txt"文件中。

1.6由D盘查看数据

第6章参考文献

【1】:

王新孙雷《c语言课程设计》.清华大学出版社

【2】:

谭浩强《c程序设计》(第三版)清华大学出版社

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2