您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > C语言程序课程设计歌手比赛系统
本文档如对你有帮助,请帮忙下载支持!淮南师范学院课程设计报告歌手比赛系统姓名:胡欢欢学号:09专业:计算机科学与技术班级:10级(1)班指导教师:彭飞职称:XXX2013年3月7日目录1.引言...............................................................................................................错误!未定义书签。2.系统设计........................................................................................................错误!未定义书签。2.1设计分析.............................................................................................错误!未定义书签。2.1.1项目描述...............................................................................错误!未定义书签。2.2程序结构............................................................................................错误!未定义书签。...........................................................................................................错误!未定义书签。2.2.2程序结构流程图.....................................................................错误!未定义书签。3.系统实现........................................................................................................错误!未定义书签。3.1各模块的功能及程序说明................................................................错误!未定义书签。3.2系统主要功能模块的运行效果图.....................................................错误!未定义书签。4.设计体会........................................................................................................错误!未定义书签。5.参考文献........................................................................................................错误!未定义书签。6.源程序代码....................................................................................................错误!未定义书签。本文档如对你有帮助,请帮忙下载支持!1.摘要C语言是一门计算机高级语言,它在Microsoft开发的软件VisualC++6.0中执行,C语言具有很多优点:1.C语言具有丰富的数据类型,众多的运算符,体现结构化程序设计的优良控制结构,具有抽象功能及体现信息隐蔽思想的函数。2.C语言的应用几乎遍及了程序的各个领域,如科学家,系统程序设计,字处理软件和电子表格软件的开发,信息管理,计算机辅助设计,等方面。3.C语言简洁,为完成某一功能所写的源程序代码往往比其他语言写得短,便利程序输入工作量减少。4.若程序员在书写过程时严格遵循ANSIC标准,则其源代码可不作修改,即可用于各种型号的计算机和各种操作系统,因此,C语言具有良好的可移植性。本次实践我们选择了使用C语言编写基于链表的程序,不仅使大家对程序设计、编程方法有了进一步提高,而且掌握了使用C语言动态内存分配及数据结构等方面的知识。2.系统设计2.1设计分析2.1.1项目描述1.项目名称:歌手打分系统2.功能描述:(1)生成字符界面的功能菜单**********1.输入选手数据********************2.评委打分************************3.成绩排序************************4.数据查询************************5.追加学生数据********************6.写入数据文件********************7.退出系统**************(2)通过输入菜单项的序号启动相应模块的功能①能够根据输入的选手人数创建链表;②录入9名评委给选手的打分,并存储到文件singerOriginal.dat中;本文档如对你有帮助,请帮忙下载支持!③按照去掉一个最高分和去掉一个最低分的原则求每名选手的平均分;②按平均分由高到低的顺序对选手进行排序;③把排名后的数据存储到文件singerFianl.dat中;④把原始数据和最终的结果输出到屏幕;④在第②步中保存singerOriginal.dat文件之前,可根据情况修改数据,例如:插入或删除歌手。2.2程序结构将歌手打分系统程序进行系统模块划分,共分为九部分,分别是:1.定义结构体2.创建链表函数3.输入数据函数4.计算函数5.排序函数6.输出数据函数7.输出最终数据8.删除函数9.插入函数10.主函数2.2.2程序结构流程图3.系统实现3.1各模块的功能及程序说明创建链表:使用尾插法插入数据;输入选手信息:包括选手信息的输入,选手成绩的输入,去掉一个最高分和最低分,并将其余评委的评分求出平均值。输出选手排名:包括选手成绩排名。删除和插入选手信息:将退赛选手和新参加的比赛的选手进行删除和插入。main得分录入创建链表输入成绩得分维护存储数据求平均分排序输出数据本文档如对你有帮助,请帮忙下载支持!主函数:将所有函数实现。3.2系统主要功能模块的运行效果图程序的运行效果图:4.设计体会在本次的C语言实践中,让我受益匪浅,通过本次的实践,让更深入的了解了C语言这门计算机语言,也明白了软件开发的相关流程和基本步骤,也许我的程序还存在些许问题,也许还不完美,但是我相信在以后的学习中我们会继改进的。也希望老师可以给我们提出您的宝贵意见。5.参考文献编程入门网:C程序设计(第四版)谭浩强著6.源程序代码#includestdio.h#includestdlib.h#includetime.h#includestring.h#defineN3#defineM10intadd=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;in;i++)scanf(%d%s,&a[i].num,&a[i].name);}voidInputscore(intscore[],intn){inti;for(i=0;in;i++)score[i]=1+(int)10*rand()/(RAND_MAX+1);}voidsort(structplayera[],floatb[],intn){inti,k,j,t;floattemp;charstr[8];for(i=0;in;i++){k=i;for(j=i+1;jn;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;iN;i++){printf(%d位选手的成绩:,i+1);Inputscore(a[i].score,M);for(j=0;jM;j++)printf(%d,a[i].score[j]);printf(\n);}break;case3:for(i=0;iN;i++){Max[i]=a[i].score[0];Min[i]=a[i].score[0];for(j=0;jM;j++){sum[i]+=a[i].score[j];if(Max[i]a[i].score[j])Max[i]=a[i].score[j];if(Min[i]a[i].score[j])Min[i]=a[i].score[j];本文档如对你有帮助,请帮忙下载支持!}aver[i]=(float)(sum[i]-Max[i]-Min[i])/(M-2);}sort(a,aver,N);for(i=0;iN;i++)printf(%s%5.2f\n,a[i].name,aver[i]);break;case4:printf(你想查询选手的数据:);scanf(%d,&m);for(i=0;iN;i++)if(a[i].num==m){printf(%d号选手%s总分:%d,最高分%d,最低分%d,平均分%5.2f,a[i].num,a[i].name,sum[i],Max[i],Min[i],aver[i]);printf(\n);}break;case5:printf(请输入要追加的选手数据:\n);add+=1;scanf(%d%s,&a[add].num,&a[add].name);break;case6:printf(将数据写入文件中:\n);for(i=0;iadd+1;i++){本文档如对你有帮助,请帮忙下载支持!fprintf(fp,%d,a[i].num);fprintf(fp,%s,a[i].name);fprintf(fp,%d\n,a[i].score);}break;case7:exit(0);break;default:flag=0;}}}程序2:#inc
本文标题:C语言程序课程设计歌手比赛系统
链接地址:https://www.777doc.com/doc-6166204 .html