歌手比赛系统课程设计说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中北大学
课程设计说明书
学院、系:软件学院
专业:软件工程
学生姓名:景学号:
设计题目:歌手比赛系统
起迄日期: 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图
排序函数:根据评委成绩,去掉一个最高分和最低分,计算出平均值,然后进行排序。
计算函数:算出各位选手的平均成绩。
主函数:实现所有函数。
int flag=1,n,i,m,j;
flag
%d n
1 2 3 4 5 6 7 Int i n for(i=0;i 学号选手成绩i+1 Max[i]=a[i].score[0 for(i=0;i 和姓名Min[i]=a[i].score[0]; a[i].num==m &a[add].num, i For i nt score[] int n i for(j=0;j For(i=0;i (i=0;i I++) 1+(int)10 T F sum[i],Max[i] a[i].score &a[i]. *rand()/(RAN Max[i] Min[i]>a[i].score[j],Min[i],aver[i] num D_MAX+1) =a[i] T F FILE *fp; &a[i] for(j=0;j "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 #define N 3 #define M 10 int add = N-1; int sum[N]={0},Max[N],Min[N]; float aver[N]={0}; struct player {int num; char name[8]; int score[M]; }; void Inistplayer(struct player a[],int n) {int i; printf("请输入歌手的学号和姓名:\n"); for(i=0;i scanf("%d %s",&a[i].num,&a[i].name); } void Inputscore(int score[],int n) {int i; for(i=0;i score[i]=1+(int)10*rand()/(RAND_MAX+1); } void sort(struct player a[],float b[],int n) {int i,k,j,t; float temp; char str[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() {int flag=1,n,i,m,j; FILE *fp; fp = fopen("data.txt","w+"); struct player a[20]; printf(" 歌手比赛系统主菜单\n");