c++选手打分程序
c语言输入10个同学的成绩总分和平均值

c语言输入10个同学的成绩总分和平均值C语言输入10个同学的成绩总分和平均值一、前言在学习编程语言的过程中,C语言是一个非常基础且重要的语言。
在C 语言中,输入输出是非常基础的内容之一,学会如何输入和处理数据是我们学习编程的第一步。
本文将以输入10个同学的成绩总分和平均值为题,深入探讨C语言中的输入输出操作,并共享我对这个主题的个人理解。
二、基本概念在C语言中,我们可以通过scanf()函数来实现数据的输入。
scanf()函数是一个输入函数,可以将用户输入的数据存储到指定的变量中。
在本题中,我们需要输入10个同学的成绩,分别存储到不同的变量中。
三、具体操作在C语言中,我们可以使用循环来反复输入数据,以实现输入10个同学的成绩。
我们需要定义一个数组来存储这10个同学的成绩,然后通过循环依次输入每个同学的成绩。
我们可以使用循环再次遍历数组,求得这10个同学的成绩总和。
通过平均值公式,我们可以求得这10个同学的成绩平均值。
四、代码示例```c#include <stdio.h>int main() {int scores[10];int sum = 0;double average = 0.0;// 输入10个同学的成绩for (int i = 0; i < 10; i++) {printf("请输入第%d个同学的成绩:", i + 1);scanf("%d", &scores[i]);}// 计算成绩总和for (int i = 0; i < 10; i++) {sum += scores[i];}// 计算平均值average = (double) sum / 10;// 输出成绩总和和平均值printf("这10个同学的成绩总和为:%d\n", sum);printf("这10个同学的成绩平均值为:%.2f\n", average);return 0;}```五、总结回顾通过以上的代码示例,我们了解了如何在C语言中输入10个同学的成绩总分和平均值。
C语言实现歌手大奖赛计分程序

C语⾔实现歌⼿⼤奖赛计分程序本⽂实例为⼤家分享了C语⾔实现歌⼿⼤奖赛计分程序的具体代码,供⼤家参考,具体内容如下1. 题⽬描述编写⼀个程序,⽤户输⼊评委⼈数和分数后,程序可以计算去掉⼀个最⾼分和最低分后的平均成绩。
可多次输⼊选⼿成绩,输⼊N时退出程序。
2. 源代码#include <stdio.h>#include <stdlib.h>float score[99];//成绩数据int num=0;//评委数⽬float sum=0;//总分//输⼊打分数据并输出结果void inputSc(){if(num==0){printf("请您输⼊评委数⽬:");scanf("%d",&num);}int i=0;printf("请您输⼊%d位评委评分:\n",num);for(i=0;i<num;i++){scanf("%f",&score[i]);}//去掉最⾼分和最低分avoidMax(score);//输出结果printf("平均分:%.2f\n",sum/num);//恢复数⽬if(num>2){num = num+2;}}//成绩处理模块void avoidMax(float *score){int i=0;float max=*score,min=*score;//寻找最⾼分、最低分for(i=0;i<num;i++){if(*(score+i)>max)max = *(score+i);else if(*(score+i)<min);min = *(score+i);}//将最⾼分、最低分设置为0for(i=0;i<num;i++){if(num>2){if(*(score+i)==max || *(score+i)==min){*(score+i) = 0;}}sum += *(score+i);}if(num>2){num = num-2;}}//主函数int main(){char key;while(key!='N'&&key!='n'){inputSc();printf("按任意键继续下⼀选⼿成绩计算,退出请选择N:");fflush(stdin);key = getchar();}return 0;}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
C语言运动会计分程序编写

C语言运动会计分程序编写简介本文档将指导您使用C语言编写一个运动会计分程序。
该程序可以用于记录运动会中的各项比赛成绩,并进行排名和统计。
通过编写此程序,您将学习C语言的基本语法和数据结构的应用。
目录•准备工作•程序框架•功能实现– 1. 添加参赛项目– 2. 添加运动员– 3. 记录成绩– 4. 排名和统计•总结准备工作在开始编写程序之前,您需要确保您已经安装了C语言的编译器。
您可以选择使用gcc或者其他常用的C语言编译器进行开发。
程序框架在编写程序之前,我们需要先设计程序的框架。
该程序需要实现以下功能:•添加参赛项目•添加运动员•记录成绩•排名和统计首先,我们需要定义一些数据结构来存储参赛项目、运动员和成绩信息。
接下来,我们将编写一系列的函数来实现上述功能。
以下是程序的框架:#include <stdio.h>// 定义数据结构:参赛项目struct Event {char name[50]; // 项目名称int participantCount; // 参赛人数// 其他项目相关信息...};// 定义数据结构:运动员struct Athlete {char name[50]; // 运动员姓名int score; // 运动员成绩// 其他运动员相关信息... };// 函数:添加参赛项目void addEvent();// 函数:添加运动员void addAthlete();// 函数:记录成绩void recordScore();// 函数:排名和统计void rankAndStats();int mn() {// 主程序逻辑return 0;}void addEvent() {// 添加参赛项目的具体逻辑}void addAthlete() {// 添加运动员的具体逻辑}void recordScore() {// 记录成绩的具体逻辑void rankAndStats() {// 排名和统计的具体逻辑}功能实现现在,我们将逐步实现程序的各个功能。
C++程序设计歌手打分

实验名称:歌手打分实验成绩:实验日期:5月30日—6月24日学号:实验学时:8学时姓名:一、实验目的利用所学习的C++知识,完成功能相应完整的系统的设计开发。
运用面向对象的编程思想开发设计程序。
二、准备内容1. 完成小型系统的设计开发,将主要部分进行注释。
2. 演示系统,演示过程中必须讲解出模块思想。
3. 回答老师的提问。
三、实验内容自已编写类的:写代码,得分点处要用注释标注做实验指导书的:写代码,每个功能模块用注释标注,每个类用注释标注,循环、判断、SWITCH语句用注释标注出来做游戏的:写代码,每个类用注释标注,循环、判断、SWITCH语句用注释标注出来。
将自己修改的地方标注出来。
四、实验结论制作系统的心得体会实验名称:歌手打分实验成绩:实验日期:5月30日—6月24日学号:094631210实验学时:8学时姓名:胡月一、实验目的利用所学习的C++知识,完成功能相应完整的系统的设计开发。
运用面向对象的编程思想开发设计程序。
二、准备内容1. 完成小型系统的设计开发,将主要部分进行注释。
2. 演示系统,演示过程中必须讲解出模块思想。
3. 回答老师的提问。
三、实验内容1.实验题目(实验指导书)N名裁判给M名歌手打分,评分原则是去掉一个最高分,去掉一个最低分,剩下的分数的平均值为该歌手的最终得分。
裁判给分的范围是60≤分数≤100。
裁判人数N=5。
编写一个程序,每个裁判所给的分数由键盘输入,要求屏幕按一定格式输出四项内容:歌手的姓名、他的最终得分、去掉的最高分、最低分;假如有4名歌手参加比赛,按得分由高到低输出全部歌手姓名和得分。
2.实验代码#include <iostream>using namespace std;const int JudgeNum=5; // 评委人数//常成员函数const int PlayerNum=4; // 选手人数class CompetitionResult {short num; // 选手号码char name[10]; // 选手姓名float score[JudgeNum]; // 记录各评委给选手的打分float average; // 选手最后得分public:CompetitionResult( );// 无参数构造函数CompetitionResult(short n, char * ps); // 一般构造函数float MaxScore( ); // 求评委打的最高分float MinScore( ); // 求评委打的最低分实验名称:歌手打分实验成绩:实验日期:5月30日—6月24日学号:094631210实验学时:8学时姓名:胡月void SetAvg(); // 求选手的最后得分float GetAvg() { return average; } // 读选手的最后得分short GetNo( ) { return num; } // 读选手的编号void setNo (int i) { num = i; } // 设置选手的编号char * GetName( ) { return name;} // 读选手的姓名float GetScore(int j){ return score[j];} // 读第j个评委的打分void SetScore(int k, float av){ score[k] = av;} // 记录第j个评委的打分friend void Sort(CompetitionResult * pr, int n); // 按最后得分由高到低排序//友元函数};CompetitionResult::CompetitionResult( ) // 无参数构造函数{num = 0;strcpy(name, "");for(int i = 0; i < JudgeNum; i++)//循环语句score[i] = 0;}CompetitionResult::CompetitionResult(short n, char * ps) // 一般构造函数{num = n;strcpy(name, ps);for(int i = 0; i < JudgeNum; i++)//循环语句score[i] = 0;}float CompetitionResult::MaxScore( )//求最高分{float max;max = score[0];for( int i = 1; i < JudgeNum; i++ )//循环语句if(score[i] > max)max = score[i];实验名称:歌手打分实验成绩:实验日期:5月30日—6月24日学号:094631210实验学时:8学时姓名:胡月return max;}float CompetitionResult::MinScore( )//求最低分{float min;min = score[0];for( int i = 1; i < JudgeNum; i++ )//循环语句if(score[i] < min)min = score[i];return min;}void CompetitionResult::SetAvg() // 求选手的最后得分{float total = 0;for( int i = 0; i < JudgeNum; i++)//循环语句total += score[i];total -= MaxScore()+MinScore();average=total/(JudgeNum-2);}void Sort(CompetitionResult * pr, int n) // 按最后得分由高到低排序{实验名称:歌手打分实验成绩:实验日期:5月30日—6月24日学号:094631210实验学时:8学时姓名:胡月int i, j,k;CompetitionResult temp;for (i=0;i<n-1;i++)//循环语句{k=i;for (j=i+1;j<n;j++)//循环语句if ((pr[j].average) > (pr[k].average))//判断语句k=j;if (k!=i)//判断语句{temp=pr[i];pr[i]=pr[k];pr[k]=temp;}}}int main( ){CompetitionResult r[PlayerNum] = {CompetitionResult(1, "张丽"), CompetitionResult(2, "刘飞"), CompetitionResult(3, "姜昕"), CompetitionResult(4, "张三")};float temp,min,max;cout << "采用100分制,裁判给分的范围是60≤分数≤100精确到小数点后两位,得分间用'TAB'键分隔"<<endl;for( int i =0; i < PlayerNum; i++ )//循环语句{cout << "\n请评委给第" << r[i].GetNo () << "号选手打分:\n";for(int j = 0; j < JudgeNum; j++ )//循环语句cout << "评委"<<j+1<<"\t";cout<<endl;for(j = 0; j < JudgeNum; j++ )//循环语句实验名称:歌手打分实验成绩:实验日期:5月30日—6月24日学号:094631210实验学时:8学时姓名:胡月{cin >> temp;if(temp<=60||temp>=100)//判断语句{cout<<"你输入了一个非法值。
C语言程序设计课程设计--歌手成绩管理系统

《C语言程序设计课程设计》课程设计报告题目:歌手成绩管理系统学院:计算机科学与技术歌手成绩管理系统一、系统菜单及任务(1)系统菜单的主要功能(1)输入歌手信息(2)输出歌手信息(3)歌手成绩排序(4)记录歌手信息(5)保存歌手信息(6)添加歌手信息(7)删除歌手信息(8)退出系统(2)实现的任务:完成对歌手比赛信息的各种管理。
歌手比赛系统对一次歌手比赛的成绩进行管理,功能要求:1、输入每个选手的数据包括姓名、歌曲名、各评委的打分成绩,大众评委打分成绩,根据输入计算出总成绩。
2、显示主菜单如下:1)输入信息2)显示信息3)结果排序4)保存信息5)显示结果6)退出系统。
二、设计内容:确定能表述歌手信息的数据结构,至少要有姓名、歌曲名、各评委打分、大众评委打分等信息,它是本程序的核心数据结构,定义为如下的结构体类型:struct Sing{float P1;float P2;float A[M];};struct Singer{int num;float sum;char singerName[10];char singName1[20];char singName2[20];struct Sing singScore1;struct Sing singScore2;};三、程序应具有以下基本功能:❖信息输入:输入每个选手的数据包括姓名、各首歌曲的歌曲名、各评委的打分成绩,大众评委打分成绩❖计算成绩:根据输入计算出各歌手的每首歌得分以及总得分。
❖成绩排序:按歌手的最后得分❖保存结果:将结果保存在文本文件中。
❖要求界面良好四、主要流程图程序各模块(输入,显示等)结构图:五、系统测试程序进行实例如下1、显示主菜单界面:主要功能输入歌手信息输出歌手信息歌手成绩排序记录歌手信息保存歌手信息添加歌手信息删除歌手信息退出系统2、选择1:运行界面如下六、源程序及系统文件使用说明#include<stdio.h>#include<stdlib.h>/*动态存储分配函数*/#include<string.h>/*字符函数和字符串函数*/ #include<math.h>/*数学函数*/#define M 5int N;struct Sing/*歌曲信息结构体*/{float P1;float P2;float A[M];};struct Singer/*歌手信息结构体*/{int num;float sum;char singerName[10];char singName1[20];char singName2[20];struct Sing singScore1;struct Sing singScore2;};struct Singer Sin[200];void print(){printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");printf(" 欢迎进入歌手成绩管理系统\n");printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");}void menu();void input()/*输入歌手信息*/{int i;for(i=0;i<3;i++){printf("请输入歌手编号:");scanf("%d",&Sin[i].num );printf("请输入歌手姓名:");scanf("%s",Sin[i].singerName );printf("请输入歌曲1名称:");scanf("%s",Sin[i].singName1 );printf("请输入歌曲1大众评委打分:");scanf("%f",&Sin[i].singScore1.P1);printf("请输入歌曲1专业评委1打分:");scanf("%f",&Sin[i].singScore1.A[0]);printf("请输入歌曲1专业评委2打分:");scanf("%f",&Sin[i].singScore1.A[1]);printf("请输入歌曲1专业评委3打分:"); scanf("%f",&Sin[i].singScore1.A[2]);printf("请输入歌曲1专业评委4打分:"); scanf("%f",&Sin[i].singScore1.A[3]);printf("请输入歌曲1专业评委5打分:"); scanf("%f",&Sin[i].singScore1.A[4]);printf("歌曲1专业评委打分为:");Sin[i].singScore1.P2=(Sin[i].singScore1.A[0]+Sin[i].singScore1.A[1]+Sin[i].singScore1.A[2]+Sin[i].singScore1.A[3]+Sin[i].singScore1.A[4])/5;printf("%f\n",Sin[i].singScore1.P2);printf("请输入歌曲2名称:");scanf("%s",Sin[i].singName2 );printf("请输入歌曲2大众评委打分:");scanf("%f",&Sin[i].singScore2.P1);printf("请输入歌曲2专业评委1打分:"); scanf("%f",&Sin[i].singScore2.A[0]);printf("请输入歌曲2专业评委2打分:"); scanf("%f",&Sin[i].singScore2.A[1]);printf("请输入歌曲2专业评委3打分:"); scanf("%f",&Sin[i].singScore2.A[2]);printf("请输入歌曲2专业评委4打分:"); scanf("%f",&Sin[i].singScore2.A[3]);printf("请输入歌曲2专业评委5打分:"); scanf("%f",&Sin[i].singScore2.A[4]);printf("歌曲2专业评委打分为:");Sin[i].singScore2.P2=(Sin[i].singScore2.A[0]+Sin[i].singScore2.A[1]+Sin[i].singScore2.A[2]+Sin[i].singScore2.A[3]+Sin[i].singScore2.A[4])/5;printf("%f\n",Sin[i].singScore2.P2);printf("该歌手的总成绩为:");Sin[i].sum = Sin[i].singScore1.P1+Sin[i].singScore1.P2+Sin[i].singScore2.P1+Sin[i].singScore2.P2 ;printf("%lf\n",Sin[i].sum);}menu();}void output()/*输出歌手信息*/{int i;printf("输出歌手信息是:\n");for(i=0;i<3;i++){printf("编号歌手歌曲1 大众评委专业评委歌曲2 大众评委专业评委总分:\n");printf("%d\t%4s\t%4s\t%4.2f\t%6.2f\t%6s\t%8.2f\t%4.2f\t%6.2f\t\n",Sin[i].num ,Sin[i].singerName,Sin[i].singName1,Sin[i].singScore1.P1,Sin[i].singScore1.P2,Sin[i].singName2,Sin[i].singScore2.P1,Sin[i].singScore2.P2,Sin[i].sum);}menu();}void sort()/*对歌手成绩进行排序*/{float t,d,e,g,h;int i,j,m;char b[10],c[20],f[20];for(j=0;j<3;j++)for(i=0;i<2-j;i++)if(Sin[i].sum>Sin[i+1].sum ){t=Sin[i].sum ;Sin[i].sum =Sin[i+1].sum;Sin[i+1].sum =t;/*分数排序*/m=Sin[i].num ;Sin[i].num =Sin[i+1].num ;Sin[i+1].num =m;/*编号排序*/strcpy(b,Sin[i].singerName);strcpy(Sin[i].singerName,Sin[i+1].singerName);strcpy(Sin[i+1].singerName,b);/*名字复制替换进行名字排序*/strcpy(c,Sin[i].singName1);strcpy(Sin[i].singName1,Sin[i+1].singName1);strcpy(Sin[i].singName1,c);/*歌曲1名称排序*/d=Sin[i].singScore1.P1;Sin[i].singScore1.P1=Sin[i+1].singScore1.P1;Sin[i+1].singScore1.P1=d;/*歌曲1大众评委打分的排序*/e=Sin[i].singScore1.P2;Sin[i].singScore1.P2=Sin[i+1].singScore1.P2;Sin[i+1].singScore1.P2=e;/*歌曲1专业评委打分的排序strcpy(f,Sin[i].singName2);strcpy(Sin[i].singName2,Sin[i+1].singName2);strcpy(Sin[i+1].singName2,f);/*歌曲2名称的排序*/g=Sin[i].singScore2.P1;Sin[i].singScore2.P1=Sin[i+1].singScore2.P1;Sin[i+1].singScore2.P1=g;/*歌曲2大众评委打分的排序*/h=Sin[i].singScore2.P2;Sin[i].singScore2.P2=Sin[i+1].singScore2.P2;Sin[i+1].singScore2.P2=h;/*歌曲2专业评委打分的排序*/}printf("排序后的结果为:\n");printf("编号姓名总成绩:\n");for(i=0;i<3;i++)printf("%d\t%s\t%lf\t\n",Sin[i].num,Sin[i].singerName,Sin[i].sum);menu();}void save()/*将歌手信息保存到文本文件中*/{FILE *fp;int i;if((fp=fopen("f:\\lin","wb"))==NULL){printf("cannot open file\n");return;}for(i=0;i<200;i++)if(fwrite(&Sin[i],sizeof(struct Singer),1,fp)==1){printf("文件写入错误\n");break;}fclose(fp);}void WritetoText(int n)/*将所有记录写入文件*/{int i=0;FILE *fp;/*定义文件指针*/char filename[200];printf("将所有记录写入文件:\n");/*输入文件名*/printf("输入文件名:\n");scanf("%s",filename);if((fp=fopen(filename,"a"))==NULL)/*打开文件*/{printf("不能打开文件:\n");system("pause");return;/*终止程序*/}fprintf(fp,"%d\n",n);/*循环写入数据*/fprintf(fp,"编号歌手歌曲1 大众评委专业评委歌曲2 大众评委专业评委总分:\n");while(i<n){fprintf(fp,"%d\t%2s\t%2s\t%lf\t%lf\t%6s\t%lf\t%lf\t%lf\t\n", Sin[i].num, Sin[i].singerName,Sin[i].singName1,Sin[i].singScore1.P1,Sin[i].singScore1.P2,Sin[i].singName2,Sin[i].singScore2.P1,Sin[i].singScore2.P2,Sin[i].sum);i++;}fclose(fp);/*关闭文件*/printf("Successed!\n");//返回成功信息menu();}void Tianjia_a_record()/*添加函数*/{int i,j;int a;printf("请输入一个歌手的编号:");scanf("%d",&a);for(i=0;i<N;i++)if(a==Sin[i].num)/*两个整数进行比较*/{printf("不能进行添加操作");j++;break;}if(j==0)/*新添加的歌手编号与原歌手中没有相同的*/ {Sin[i].num=a;printf("歌手名:");scanf("%s",Sin[i].singerName);printf("歌曲1的名称:");scanf("%s",Sin[i].singName1);printf("歌曲1的大众评委打分:");scanf("%f",&Sin[i].singScore1.P1);printf("歌曲1的专业评委1打分:");scanf("%f",&Sin[i].singScore1.A[0]);printf("歌曲1的专业评委2打分:");scanf("%f",&Sin[i].singScore1.A[1]);printf("歌曲1的专业评委3打分:");scanf("%f",&Sin[i].singScore1.A[2]);printf("歌曲1的专业评委4打分:");scanf("%f",&Sin[i].singScore1.A[3]);printf("歌曲1的专业评委5打分:");scanf("%f",&Sin[i].singScore1.A[4]);printf("歌曲1的专业评委打分:"); scanf("%f",&Sin[i].singScore1.P2);printf("歌曲2的名称:");scanf("%s",Sin[i].singName2);printf("歌曲2的大众评委打分:"); scanf("%f",&Sin[i].singScore2.P1); printf("歌曲2的专业评委1打分:"); scanf("%f",&Sin[i].singScore2.A[0]); printf("歌曲2的专业评委2打分:"); scanf("%f",&Sin[i].singScore2.A[1]);printf("歌曲2的专业评委3打分:"); scanf("%f",&Sin[i].singScore2.A[2]); printf("歌曲2的专业评委4打分:"); scanf("%f",&Sin[i].singScore2.A[3]);printf("歌曲2的专业评委5打分:"); scanf("%f",&Sin[i].singScore2.A[4]); printf("歌曲2的专业评委打分:"); scanf("%f",&Sin[i].singScore2.P2);printf("该歌手的总成绩:");scanf("&f",&Sin[i].sum);save();N++;system("pause");}}void name_Delete() /*按照姓名删除歌手信息*/{int i,j=0;char a[20];printf("\n输入一个歌手的姓名");scanf("%s",a);for(i=0;i<N;i++)if(strcmp(Sin[i].singerName,a)==0){Sin[i].num=Sin[i+1].num;/*编号*/strcpy(Sin[i].singerName,Sin[i+1].singerName);/*歌手名*/strcpy(Sin[i].singName1,Sin[i+1].singName1);/*歌曲1名称*/strcpy(Sin[i].singName2,Sin[i+1].singName2);/*歌曲2名称*/Sin[i].singScore1=Sin[i+1].singScore1;/*歌曲1得分*/Sin[i].singScore2=Sin[i+1].singScore2;/*歌曲2得分*/Sin[i].sum=Sin[i+1].sum;/*总得分*/printf("该歌手信息删除成功");N--;//j++;}if(j==0)printf("系统中无该歌手信息");}void dakai()/*定义打开函数*/{FILE *fp;system("cls");if((fp=fopen("filename","rb"))==NULL){printf("文件不存在\n");return;}}void menu()/*定义菜单函数*/{printf(" 歌手成绩管理系统\n");printf("**********************Menu**********************\n");printf(" * 1.输入信息 2.显示信息*\n");printf(" * 3.结果排序 4.信息保存到文件中*\n");printf(" * 5.信息记录到文件中 6.添加信息*\n");printf(" * 7.删除信息8.退出程序*\n");printf("************************************************\n");printf("请选择所要进行的选项:");}void Quit()/*退出函数*/{printf("结束程序"); exit(0);}void menu_select() /*菜单选择*/{int a;int n=3;printf("输入:");scanf("%d",&a);switch(a){case 1:printf("\n");input();break;case 2:printf("\n");output();break;case 3:printf("\n");sort();break;case 4:printf("\n");save();break;case 5:printf("\n");WritetoText(n);break;case 6:printf("\n");Tianjia_a_record();break;case 7:printf("\n");name_Delete();break;case 8:printf("\n"); Quit(); break;}}void main(){struct Singer Sin[200];print();menu();menu_select();}。
C语言 歌星大奖赛

#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <string.h>typedef struct singer{int identity;char name[8];char sex;float degree[10];float avgDegree;struct singer *next;}S;int main(){char choice, ch;S *headID = NULL; // identity chain head S *headDG = NULL; // degree chain headS *newSinger(S *head);void displayChain(S *head);S *sortByDegree(S *head);void displayJudgment(S *head);do{system("cls");printf("\n\n\t\t$$$$$$$$$$$$ 一个简单的评分系统$$$$$$$$$$$$\n\n (问题重述)在歌星大赛中有n个选手,有10个评委为参加比赛的选手打分,分数为1~10分。
选手最后得分为:去掉一个最高分和最低分后其余8个分数的平均值。
请编写一个程序实现。
同时对评委评分进行裁判,即在10个评委中找出最公平(即为最接近平均分)和最不公平(即与平均分的差距最大)的评委。
\n\n 说明:此程序有一定的错误输入提示,但在输入数据时请尽量按提示正确输入;建议输入的评分是由一个个位和一个小数位组成的数字,范围在区间[0, 10],eg:8.7,9.4,1.8等。
\n\n");printf("\n-------------------------------------------------------\n\n");printf("\t1 ...... 添加新选手的得分;\n");printf("\t2 ...... 按选手代码查看;\n");printf("\t3 ...... 按选手得分查看;\n");printf("\t4 ...... 查看对评委评分进行裁判的结果.\n");printf("\n请选择一种操作,输入相应编号:");choice = getchar();ch = getchar(); // get "enter" charswitch(choice){case '1':printf("\n\n添加新选手\n");headID = newSinger(headID);break;case '2':if(headID == NULL)printf("\n请先运行’1‘。
C语言课程设计报告—歌星大奖赛评分系统

C语言课程实习报告课程名称:歌星大奖赛学院:信息工程学院专业:通信工程班级:学号:姓名:指导老师:第一部分:课程设计编号、名称、容名称:歌星大奖赛容:【要求】(1)在歌星大奖赛中,有十个评委为参赛的选手打分,分数为1~100分。
选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均植。
请编写一个程序实现。
(2)同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分的差距最大)的评委。
【提示】一、需求分析这个问题的第一个要求算法比较简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。
第二个要求为了考虑效率,要用到排序技术。
第二部分:程序总体设计思路由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。
在编写本程序的过程中,首先我借助购买的指导材料,了解了一些目标程序运行的次序与界面的操作方法,然后按照题目的具体要求进行思考和设计。
具体的设计思路如下:程序的要根据十个评委对歌手的打分情况,求出这个歌手的平均成绩和最公平及最不公平的裁判。
首先,我先考虑到程序的数据输入,可以用scanf函数来解决,并将输入的数据存放于数组中。
随后对存放在数组中的数据进行排序,这步为执行找出最不公平的裁判提高了效率,只需将排好序的数组的首尾分值与平均值进行比较即可。
将排好序的数组中间的八个数求平均值即为此歌手的成绩,可见排序法可大大的简化程序。
接下来是最后一个任务就是找最公平的裁判,此过程我使用拆半法,先将靠近中间的一个裁判假设为最公平的,再将他前面的裁判与之比较,找出前半部分的最公平的裁判,再将之与后半部分的进行比较,得出最终的最公平的裁判。
为了方便管理员更好的使用界面操作,我还设置了每输入完一组数据并得到结果后,或接着输入下组数据或按0跳出界面。
整个程序的设计思路到此结束。
第三部分:程序功能划分、图示及流程图【功能模块划分及其流程图】本程序功能模块根据程序设计的需求,综合程序的实用性、人性化、智能化的考虑,将程序划分为6个部分分别编写,程序主体功能将由这6个部分来完成。
C语言课设-唱歌比赛评分系统

沈阳航空航天大学课程设计任务书学院:专业:班级:学号:题目:唱歌比赛评委评分系统一、课程设计时间二、课程设计内容参加唱歌比赛3位选手的名称和出场顺序存放在文件file22.txt中;评委共有7个。
每当一个选手表演之后,7个评委都分别评分(0~10分),而选手的最终得分计算规则为:去掉7个评分的最高和最低分,取剩下5个评分的平均值。
程序最后打印出3位选手的成绩。
三、课程设计要求程序质量:✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧用户界面中的菜单至少应包括“读取并显示选手名单”、“表演与评分”、“打印最后成绩”、“退出”4项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:✧课程结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字指导教师:________ 学生签名:________五、成绩六、教师评语目录一、需求分析 (1)二、设计分析 (2)三、主要界面截图 (4)四、技术要点 (9)五、个人总结 (14)六、参考文献 (15)七、源程序 (15)一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。
该系统是一个分数录入以及评定系统,其使用者被假定为某歌唱比赛的管理人员,系统应该具有安全、稳定、功能齐全的特点。
1. 安全性分析系统管理的数据涉及到参赛的所有选手,为防止他人恶意修改,所以在进入评分系统前有密码程序,只有掌握了正确的密码才能进入程序进行各项操作。
2. 稳定性分析指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。
3. 主要功能分析(1)密码程序:在程序尾端设置好密码,只有掌握密码的管理员才能进入程序进行成绩录入,修改等操作,避免信息被他人修改,造成比赛不公(2)菜单:有一个功能强大又清晰明了的菜单能极大程度方便管理员的操作(3)数据输入:在每个输入前都有详细分类和提示,简单明了,根据提示输入参赛选手号数,姓名,各个评委打分成绩(4)数据保存:对于输入的数据,或被修改的数据应该保存到某个磁盘文件中,实现永久存储。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cout<<number<<"\t\t"<<name<<"\t\t"<<neirong<<"\t\t";
for(int i=0;i<5;i++)
{
cout<<score[i]<<" ";
}
cout<<endl;
}
void people::show2()
{
cout<<number<<"\t\t"<<name<<"\t\t "<<gao<<"\t\t"<<di<<"\t\t"<<jilei<<" \t\t"<<LastScore;
----------------------------------------------------------
1 zhangjin 9.7 7.9 44.9 8.98
2 lintao 9.3 8.2 43.9 8.78
3 guojian 8.9 8.4 42.9 8.58
4 maling 8.9 7.9 42.2 8.44
people pt=p[i];
p[i]=p[i+1];
p[i+1]=pt;
}
}
}
}
}
ofstream f6("f3.txt");
for(i=0;i<5;i++)
{
f6.write((char*)(&p[i]),sizeof(p[i]));
}
f6.close();
ifstream f7("f3.txt");
下为改程序的代码:
#include<iostream>
#include<fstream>
#include<conio.h>
#include<windows.h>
#include<ctime>
using namespace std;
class people
{
private:
int number;
char* name;
{
if(p[i].youxiao!=p[i+1].youxiao)
{
if(p[i].youxiao<p[i+1].youxiao)
{
people pt=p[i];
p[i]=p[i+1];
p[i+1]=pt;
}
}
else
{
srand(time(NULL));
int x=rand();
if(x==1)
{
}
f2.close();
cout<<"按任意键开始统计";
getch();
system("cls");
cout<<"编号\t\t姓名\t\t最高分\t\t最低分\t\t累积得分\t最后得分"<<endl;
cout<<"--------------------------------------------------------------------------------------"<<endl;
{
number=Nnumber;
name=new char[];
strcpy(name,Nname);
for(int i=0;i<5;i++)
{
score[i]=Nscore[i];
}
neirong=new char[];
strcpy(neirong,Nneirong);
}
void people::show1()
for(i=0;i<5;i++)
{
f7.read((char*)(&p[i]),sizeof(p[i]));
p[i].show2();
cout<<endl;
cout<<"-------------------------------------------------------------------------------------------------"<<endl;
5 liuyifan 9.5 9.1 9.8 9.2 9.0 9.5 8.9
那么,程序执行后,屏幕显示结果以及磁盘文件f2.txt中的结果均应该为:
----------------------------------------------------------
参赛号 姓 名 最高分 最低分 累积分 最后得分
for(i=0;i<5;i++)
{
p[i].pai();
p[i].gao=p[i].getgao();
p[i].di=p[i].getdi();
p[i].LastScore=p[i].getLastScore();
p[i].jilei=p[i].getjilei();
p[i].youxiao=p[i].getyouxiao();
getch();
system("cls");
cout<<"编号\t\t姓名\t\t最高分\t\t最低分\t\t累积得分\t最后得分"<<endl;
cout<<"-------------------------------------------------------------------------------------------------"<<endl;
假设参赛选手人数n=5,评委人数m=7,磁盘文件f1.txt中的初始数据为:
1 zhangjin 8.8 9.3 7.9 8.7 8.9 9.7 9.2
2 lintao 8.9 8.2 8.6 8.8 8.5 9.1 9.3
3 guojian 8.9 8.4 8.7 8.6 8.6 8.4 8.6
4 maling 7.9 8.3 8.5 8.6 8.5 8.9 8.3
float score[5];
char* neirong;
public:
void pai();
float gao;
float di;
float jilei;
float LastScore;
float youxiao;
float getLastScore();
float getyouxiao();
void set(int Nnumber,char* Nname,float Nscore[],char* Nneirong);
for(j=0;j<4;j++)
{
for(i=0;i<4-j;i++)
{
if(p[i].LastScore!=p[i+1].LastScore)
{
if(p[i].LastScore<p[i+1].LastScore)
{
people pt=p[i];
p[i]=p[i+1];
p[i+1]=pt;
}
}
else
}
ofstream f4("f2.txt");
for(i=0;i<5;i++)
{
f4.write((char*)(&p[i]),sizeof(p[i]));
}
f4.close();
ifstream f5("f2.txt");
for(i=0;i<5;i++)
{
f5.read((char*)(&p[i]),sizeof(p[i]));
void show1();
void show2();
void show3()
{
for(int i=0;i<5;i++)
{
cout<<score[i]<<" ";
}
}
float getgao();
float getdi();
float getjilei();
};
float people::getyouxiao()
score[i+1]=t;
}
}
}
}
float people::getLastScore()
{
float s=(score[1]+score[2]+score[3])/3;
return s;
}
void people::set(int Nnumber,char* Nname,float Nscore[],char* Nneirong)
{
float s=score[4];
return s;
}
void people::pai()
{
for(int j=0;j<4;j++)
{
for(int i=0;i<4-j;i++)
{
if(score[i]<score[i+1])