歌手比赛系统课程设计说明书.docx
- 文档编号:7413080
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:9
- 大小:100.63KB
歌手比赛系统课程设计说明书.docx
《歌手比赛系统课程设计说明书.docx》由会员分享,可在线阅读,更多相关《歌手比赛系统课程设计说明书.docx(9页珍藏版)》请在冰豆网上搜索。
歌手比赛系统课程设计说明书
中北大学
课程设计说明书
学院、系:
软件学院
专业:
软件工程
学生姓名:
景
学号:
设计题目:
歌手比赛系统
起迄日期:
2013年10月11日~2013年11月16日
指导教师:
蔡兴旺
日期:
2013年11月16日
1设计目的
1)进一步巩固和复习C程序设计的基础知识;
2)培养学生结构化程序、模块化程序设计的方法和能力;
3)了解软件的编制过程及各环节的具体内容;
4)提高学生程序调试技巧、软件设计能力和代码规范化等素质;
5)提高学生分析问题、解决问题以及实际运用能力。
2任务概述
对一次歌手比赛的成绩进行管理,功能要求:
1、输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。
2、显示主菜单如下:
1)输入选手数据2)评委打分3)成绩排序(按平均分)4)数据查询5)追加学生数据6)写入数据文件7)退出系统。
3模块划分
4主要函数说明及其N-S图
排序函数:
根据评委成绩,去掉一个最高分和最低分,计算出平均值,然后进行排序。
计算函数:
算出各位选手的平均成绩。
主函数:
实现所有函数。
intflag=1,n,i,m,j;
flag
%dn
1234567
Intinfor(i=0;i 学号选手成绩i+1Max[i]=a[i].score[0for(i=0;i 和姓名Min[i]=a[i].score[0];a[i].num==m&a[add].num,i Forintscore[]intnifor(j=0;j For(i=0;i (i=0;i I++)1+(int)10TFsum[i],Max[i]a[i].score &a[i].*rand()/(RANMax[i]Min[i]>a[i].score[j],Min[i],aver[i] numD_MAX+1)=a[i]TFFILE*fp; &a[i]for(j=0;j name&a,a[i].score[j]a[i],.score[j]("data.txt", "w+" aver[i]=(float)(sum[i]-Max[i] -Min[i])/(M-2) break 图4.1主函数N-S图 5程序运行数据及其结果 6课程设计心得 通过几周的课程设计,使我更扎实的掌握C语言知识,如对象数组,string类等知识。 同时也让我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,并且在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 我觉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多函数的功能,并且对于其在程序中的使用有了更多的认识。 平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。 而且还可以记住很多东西。 ,平时看课本,这次看了,下次就忘了,通过动手实践让我们对知识点映象深刻。 认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。 所以这个课程设计对我的作用是非常大的。 附录: #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; printf("请输入歌手的学号和姓名: \n"); 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; } } } main() {intflag=1,n,i,m,j; FILE*fp; fp=fopen("data.txt","w+"); structplayera[20]; printf("歌手比赛系统主菜单\n"); printf("************************************************************\n"); printf("**********1.输入选手数据***********\n"); printf("**********2.评委打分***************\n"); printf("**********3.成绩排序***************\n"); printf("**********4.数据查询***************\n"); printf("**********5.追加学生数据***********\n"); printf("**********6.写入数据文件***********\n"); printf("**********7.退出系统***************\n"); printf("*************************************************************\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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 歌手 比赛 系统 课程设计 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)