歌手比赛系统.docx
- 文档编号:6076611
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:9
- 大小:191.31KB
歌手比赛系统.docx
《歌手比赛系统.docx》由会员分享,可在线阅读,更多相关《歌手比赛系统.docx(9页珍藏版)》请在冰豆网上搜索。
歌手比赛系统
一、系统设计
2.1设计分析
2.1.1项目描述
1.项目名称:
歌手打分系统
2.功能描述:
(1)生成字符界面的功能菜单
**************************************
*1.输入歌手成绩*
*2.插入新歌手*
*3.删除退赛歌手*
*4.歌手成绩排名*
*5.输出歌手分数*
*6.输出歌手排名*
*7.退出系统*
**************************************
(2)通过输入菜单项的序号启动相应模块的功能
1能够根据输入的选手人数创建链表;
2录入9名评委给选手的打分,并存储到文件singerOriginal.dat中;
3按照去掉一个最高分和去掉一个最低分的原则求每名选手的平均分;
4按平均分由高到低的顺序对选手进行排序;
5把排名后的数据存储到文件singerFianl.dat中;
6把原始数据和最终的结果输出到屏幕;
7在第②步中保存singerOriginal.dat文件之前,可根据情况修改数据,例如:
插入或删除歌手。
2.2程序结构
2.2.1程序划分
将歌手打分系统程序进行系统模块划分,共分为九部分,分别是:
1.定义结构体
2.创建链表函数
3.输入数据函数
4.计算函数
5.排序函数
6.输出数据函数
7.输出最终数据
8.删除函数
9.插入函数
10.主函数
2.2.2程序结构流程图
三、系统实现
3.1各模块的功能及程序说明
创建链表:
使用尾插法插入数据;
输入选手信息:
包括选手信息的输入,选手成绩的输入,去掉一个最高分和最低分,并将其余评委的评分求出平均值。
输出选手排名:
包括选手成绩排名。
删除和插入选手信息:
将退赛选手和新参加的比赛的选手进行删除和插入。
主函数:
将所有函数实现。
3.2系统主要功能模块的运行效果图
程序的运行效果图:
四、设计体会
在本次的C语言实践中,让我们受益匪浅,通过本次的实践,让我们更深入的了解了C语言这门计算机语言,也明白了软件开发的相关流程和基本步骤,也明白了团队精神的重要性,一项工作如果是靠一个人的力量是远远不够的。
虽然在设计软件中遇到了很多问题,我们所有组员通力合作,积极讨论,翻阅资料,最终完成了这次实践,也许我们的程序还存在些许问题,也许还不完美,但是我相信在以后的学习中我们会继续改进的。
也希望老师可以给我们提出您的宝贵意见。
五、源程序代码
#include
#include
#include
#include
#defineN3
#defineM10
intadd=N-1;
intsum[N]={0},Max[N],Min[N];
floataver[N]={0};
structplayer
{intnum;
charname[8];
intscore[M];
};
voidInistplayer(structplayera[],intn)
{inti;
for(i=0;i scanf("%d%s",&a[i].num,&a[i].name); } voidInputscore(intscore[],intn) {inti; for(i=0;i score[i]=1+(int)10*rand()/(RAND_MAX+1); } voidsort(structplayera[],floatb[],intn) {inti,k,j,t; floattemp; charstr[8]; for(i=0;i {k=i; for(j=i+1;j if(b[k]>b[j])k=j; if(k! =i) {temp=b[i]; b[i]=b[k]; b[k]=temp; strcpy(str,a[i].name); strcpy(a[i].name,a[k].name); strcpy(a[k].name,str); t=a[i].num; a[i].num=a[k].num; a[k].num=t; } } } voidmain() {intflag=1,n,i,m,j; FILE*fp; fp=fopen("data.txt","w+"); structplayera[20]; printf("**********1.输入选手数据***********\n"); printf("**********2.评委打分***************\n"); printf("**********3.成绩排序***************\n"); printf("**********4.数据查询***************\n"); printf("**********5.追加学生数据***********\n"); printf("**********6.写入数据文件***********\n"); printf("**********7.退出系统***************\n"); while(flag) {printf("你想进行的操作: "); scanf("%d",&n); switch(n) { case1: Inistplayer(a,N);break; case2: srand((unsigned)time(NULL)); for(i=0;i { printf("%d位选手的成绩: ",i+1); Inputscore(a[i].score,M); for(j=0;j printf("%d",a[i].score[j]); printf("\n"); } break; case3: for(i=0;i {Max[i]=a[i].score[0]; Min[i]=a[i].score[0];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 歌手 比赛 系统