完整版C语言课程设计实验报告.docx
- 文档编号:11030617
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:19
- 大小:129.33KB
完整版C语言课程设计实验报告.docx
《完整版C语言课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《完整版C语言课程设计实验报告.docx(19页珍藏版)》请在冰豆网上搜索。
完整版C语言课程设计实验报告
目录1...
第1章问题描述2...
1.1题目2...
1.2基本要求2...
第2章需求分析2...
1.1软件的基本功能2...
1.2输入/输出形式2...
1.3测试数据要求3...
第3章概要设计3...
1.1主程序3...
第4章详细设计4...
1.1数据类型4...
1.2伪码算法4...
1.3程序流程图7...
第5章操作8...
1.1进入足球比赛积分排行榜界面8..
1.2进入目录8...
1.3输入球队比赛信息1..0.
1.4显示九轮比赛排行榜1..2
1.5保存数据1..5.
1.6由D盘查看数据1..6
第6章参考文献1..6.
第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进入足球比赛积分排行榜界面
ch=getch();
while(!
ch);
system("cls");
/*一下为功能选择模块*/说明:
进入欢迎页面。
1.2进入目录
c*C:
\DocmADnt@andSattrator面、谍程iSvbVDQbugX足尊比赛积…
Ed
-I
「录入球臥倍息
=1
趴显込臾弁菲行榜
仏宜由
选择功能选项丈输入所选功能討的数字》匕
IU
I±J
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=O,j=O,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」_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); 足球积分排行榜.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程序设计》(第三版)清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 语言 课程设计 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)