1、C语言课程设计报告完整版C语言课程设计实习报告学生姓名: 学生学号: 所在班级: 任课教师: 课程成绩: 1. 题目需求(1) 在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1100分。选手的最后得分为:去掉一个最高分和一个最低分后其余8个数的平均值。(2) 同时对评委评分进行裁判,即在十个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分差距最大)的评委。 2需求分析根据题目要求,由于数据间单,仅涉及到简单排序及转换,程序中应提供显示、输入、输出、排序等操作,同时还可以提供键盘式选择菜单实现功能选择。3.总体设计这个系统可分为三个模块(见图 1 ),评分、对评委测评、退出。其
2、中主要功能是最终得分和对评委测评两个模块。 4.详细设计主函数比较简洁,只提供输入、功能处理和输出部分的函数调用。其中各功能模块用菜单方式选择;另外,菜单部分也可以写成函数。其流程图如图 2 所示。程序#include #include main () /*主函数 */void Vote_score();/* 声明 评分函数*/void BaW();/*声明 对裁判测评函数*/ int n,w;do puts(tt*MENU*nn);/*选择菜单*/puts(tttt 1.Vote and the score );/*对歌手评分*/puts(tttt 2.Best and worest vot
3、er);/*对裁判测评*/puts(tttt 0.Exit );/*退出*/puts(nntt *nn);printf(Choice your number (0-2): bb); scanf( %d,&n);if(n2)/*对选择的数字做判断*/ w=1;getchar ();else w=0;while (w=1);/*选择功能*/switch(n)case 1 : Vote_score();break;case 2 : BaW();break;case 0 : exit(0);void Vote_score()/*评分函数*/ int a10,b10,i,j,k,B,n,w; float
4、 A; B=0; printf(input the content :n); for(i=0;i10;i+)/*输入评选内容并求的评分之和*/ scanf(%d,&ai); bi=ai; B=B+bi; for (i=0;i9;i+)/*对评分按从小到大排序*/for(j=1;jbj)k=bi;bi=bj;bj=k;A=(B-b0-b9)/8.0;/*舍去最低分和最高分求平均分*/printf(The final score %f .n,A);/*输出结果*/printf(“What do you what to do?”);printf(ttn*1.MENU*nn *2.Exit *nn);
5、/*选择菜单*/ printf(ttt Choice you number: bb); scanf( %d,&n);if(n2)/*对选择的数字做判断*/ w=1;getchar ();else w=0;while(w=1);/*选择功能*/switch (n)case 1: main() ;break;/*返回主函数*/case 2: exit(0);/*退出*/#include void BaW()/*对裁判测评函数*/ int a10,b10,i,j,k,B,n,w; float A,f,c10,d10; B=0; printf(input the content :n); for(i=
6、0;i10;i+)/*输入评选内容并求的评分之和*/ scanf(%d,&ai); bi=ai; B=B+bi; for (i=0;i9;i+)for(j=1;jbj) k=bi;bi=bj;bj=k;A=(B-b0-b9)/8.0;for(i=0;i10;i+)/*求得各评分与平均分之差的绝对值*/ ci=fabs(ai-A);di=ci;for(i=0;i9;i+)/*对所求绝对值按从大到小排序*/for(j=1;j10;j+) if(didj) f=di;di=dj;dj=f; for(i=0;i10;i+)/*找出最公平评委*/if(ci=d9) printf(The best vot
7、ers number is %d . n,i);for(i=0;i10;i+)/*找出最不公平评委*/if(ci=d0) printf(The worst voters number is %d .n ,i);printf(“What do you what to do?”);printf(ttn*1.MENU*nn *2.Exit *nn);/*菜单*/ printf(ttt Choice you number: bb); scanf( %d,&n);if(n2)/*对选择的数字做判断*/ w=1;getchar ();else w=0;while(w=1);/*选择功能*/switch (
8、n)case 1: main() ;break;/*回主菜单*/case 2: exit(0);/*退出*/ 5. 上机操作1.编译、链接和运行。(略)2.结果(1) 主菜单函数:效果如图 3 所示。图 3 主菜单(2)评分模块:在主界面出现后输入1回车,选择评分函数。效果如图 4。 图 4 进入评分功能输入评分内容。效果图如图 5图 5 输入评分内容回车后得出最终得分并出现选择菜单。效果图如图 6。图 6 得出最终得分75.125000并出现选择菜单 输入 1 回车回到主函数。效果图如图7。 图 7 回到主菜单 输入 2 进入对裁判测评模块,并重复输入刚才的评分内容。效果图如图8。 图 8 进入测评模块并重复输入刚猜的评分内容按回车得出最公平裁判的序号和最不公平裁判序号。并出现选择菜单。效果图如图 9 图 9 得出序号为9的为最公平裁判。序号为5的为最不公平裁判。 选择 2 按回车退出。效果图如图 10 。 图 10 退出 6. 总结 程序比较简单,在这里用一些程序裁判测评模块中大部分和评分模块相同,但结果指向不同。程序中调用了数学函数中的求绝对值函数fabs .程序中有大量的数组排序,用for循环操作。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1