要求:

  1. 在校园歌手比赛中,歌手参加比赛,评委评分,并最后按名次高低输出显示。
    (1)有10个歌手参加比赛,实现班级,姓名及歌手的分数存储;
    (2)其中每个歌手的分数有5评委打分;
    (3)歌手最后得分为:去掉一个最高分和一个最低分,其余3分数的平均值;
    (4)对所有歌手进行从高到低排序。
    2.实现以下各个功能维护:
    (1)按姓名查找
    (2)插入歌手信息
    (3)删除歌手信息
    (4)修改歌手信息
    (5)显示
#include<stdio.h>
#include<windows.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
#define size 5  //评委人数
#define maxstu 10   //学生人数
struct student  //信息结构体
{int banji; //班级 char name[20]; //名字 int score[size];   //评委评分 float max;   //最大值 float min;    //最小值 float sum;    //总分float average;  //平均值
};
int count=0;   //学生人数
struct student stu[size];   //定义全局变量
fun1()  //选手信息录入
{int i,j;   //i代表学生,j代表评委 int sm;        //定义需要录入几位学生 float max1,min1;   //最大值,最小值 printf("请输入10位以内学生人数:");scanf("%d",&sm);for(i=0;i<sm;i++)
{ printf("请输入%d选手信息\n",i+1);printf("请输入班级:");scanf("%d",&stu[i].banji);getchar();printf("请输入姓名:");gets(stu[i].name);
for(j=0;j<size;j++)
{ printf("请输入%d评委打分:",j+1);scanf("%d",&stu[i].score[j]);
}
count++;
}
//最高分,最低分,总分,平均值
for(i=0;i<count;i++)
{max1=stu[i].score[0];for(j=0;j<size;j++){if(max1<stu[i].score[j])max1=stu[i].score[j];}stu[i].max=max1;
}
for(i=0;i<count;i++)
{min1=stu[i].score[0];for(j=0;j<size;j++){if(min1>stu[i].score[j])min1=stu[i].score[j];}stu[i].min=min1;
}
for(i=0;i<count;i++)
{stu[i].sum=stu[i].score[0];for(j=1;j<size;j++){stu[i].sum=stu[i].sum+stu[i].score[j];}stu[i].average=(stu[i].sum-stu[i].max-stu[i].min)/3;
}
}
fun2()//按姓名查找
{ int i;        //定义循环 char x[20];  //定义查找姓名 printf("请输入要查找学生的名字:");scanf("%s",x);getchar();
for(i=0;i<count;i++)
{ if(strcmp(stu[i].name,x)!=0)//判断是否相等 { continue;printf("没有找到学号为%s的学生信息\n",x);}else{printf("要查找的学生的信息为:\n班级:%d 姓名:%s 分数:%d %d %d %d %d 最高分:%f 最低分:%f 总分:%f 平均值:%f",
stu[i].banji,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],stu[i].max,stu[i].min,stu[i].sum,stu[i].average);}
}getchar();
}
fun3()  //插入歌手信息
{int weizhi,i,j;float max2,min2;struct student x;   //定义局部变量 if(count==maxstu){printf("位置已满,无法插入\n");}else{printf("请输入要插入的位置:");scanf("%d",&weizhi);if(weizhi>count+1||weizhi<1){printf("位置错误\n");}else{getchar();printf("请输入班级:");scanf("%d",&x.banji);getchar();printf("请输入姓名:");gets(x.name);
for(j=0;j<size;j++)
{printf("请输入评委打分:");scanf("%d",&x.score[j]);
}getchar();
for(i=0;i<count;i++)
{max2=x.score[0];for(j=0;j<size;j++){if(max2<x.score[j])max2=x.score[j];}x.max=max2;
}
for(i=0;i<count;i++)
{min2=x.score[0];for(j=0;j<size;j++){if(min2>x.score[j])min2=x.score[j];}x.min=min2;
}
for(i=0;i<count;i++)
{x.sum=x.score[0];for(j=1;j<size;j++){x.sum=x.sum+x.score[j];}x.average=(x.sum-x.max-x.min)/3;
}
for(i=count-1;i>=weizhi-1;i--)
{stu[i+1]=stu[i];
}stu[weizhi-1]=x;count++;
}
}
}
fun4()  //删除歌手信息
{int i,j;char a[20];printf("请输入要删除学生的名字:");scanf("%s",a);getchar();for(i=0;i<count;i++){if(strcmp(stu[i].name,a)!=0){ continue;printf("没有找到学号为%s的学生信息\n",a);}else{printf("要删除的学生的信息为:\n班级:%d 姓名:%s 分数:%d %d %d %d %d 最高分:%f 最低分:%f 总分:%f 平均值:%f",
stu[i].banji,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],stu[i].max,stu[i].min,stu[i].sum,stu[i].average); }getchar();for(j=i+1;j<=count;j++){ stu[j-1]=stu[j];}count--;
}
}
fun5()  //修改歌手信息
{int i,j;float max2,min2;char m[20];printf("请输入要修改学生的名字:");scanf("%s",m);getchar();
for(i=0;i<count;i++)
{if(strcmp(stu[i].name,m)!=0){ continue;printf("没有找到学号为%s的学生信息\n",m);}else{printf("当前学生的信息为:\n班级:%d 姓名:%s 分数:%d %d %d %d %d 最高分:%f 最低分:%f 总分:%f 平均值:%f\n",stu[i].banji,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],stu[i].max,stu[i].min,stu[i].sum,stu[i].average);printf("请输入要修改的班级:");scanf("%d",&stu[i].banji);getchar();printf("请输入要修改的姓名:");gets(stu[i].name);for(j=0;j<size;j++){printf("请输入%d评委打分:",j+1);scanf("%d",&stu[i].score[j]);}} }getchar();//最高分,最低分,总分for(i=0;i<count;i++){max2=stu[i].score[0];for(j=0;j<size;j++){if(max2<stu[i].score[j])max2=stu[i].score[j];}stu[i].max=max2;
}
for(i=0;i<count;i++)
{min2=stu[i].score[0];for(j=0;j<size;j++){if(min2>stu[i].score[j])min2=stu[i].score[j];}stu[i].min=min2;
}
for(i=0;i<count;i++)
{stu[i].sum=stu[i].score[0];for(j=1;j<size;j++){stu[i].sum=stu[i].sum+stu[i].score[j];}stu[i].average=(stu[i].sum-stu[i].max-stu[i].min)/3;
}
}
fun6()  //显示学生信息
{int i;getchar();for(i=0;i<count;i++){printf("\n%d学生的信息为:\n班级:%d 姓名:%s 分数:%d %d %d %d %d 最高分:%f 最低分:%f 总分:%f 平均值:%f",i+1,stu[i].banji,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],stu[i].max,stu[i].min,stu[i].sum,stu[i].average);}getchar();
}
fun7()  //按平均分排序
{int i,j;struct student temp;for(i=0;i<count;i++){for(j=i+1;j<count;j++){if(stu[i].average>stu[j].average){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}}}
getchar();
for(i=0;i<count;i++)
{printf("\n%d平均分按小到大排序为:\n班级:%d 姓名:%s 分数:%d %d %d %d %d 最高分:%f 最低分:%f 总分:%f 平均值:%f ",i+1,stu[i].banji,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],stu[i].max,stu[i].min,stu[i].sum,stu[i].average);
}
getchar();
}
void SetColor(unsigned short ForeColor,unsigned short BackGroundColor)
{  HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);  SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackGroundColor%16*16));
}
main()
{int n,i;for(i = 1;i <= 50;i++)  {  SetColor(0,14);  printf(" ");  printf("%d%%",2*i);  Sleep(101-2*i);  printf("\b\b\b");  }
SetColor(15,0);
printf("\b\n加载完成!即将进入:");
Sleep(2000);
system("cls");
do
{system("cls");printf("\n\t\t\t******歌手评分系统******\n");  printf("\n\t\t\t1:录入选手信息\n");  printf("\n\t\t\t2:按姓名查找\n");  printf("\n\t\t\t3:插入歌手信息\n");  printf("\n\t\t\t4:删除歌手信息\n");  printf("\n\t\t\t5:修改歌手信息\n");printf("\n\t\t\t6:显示歌手信息\n");printf("\n\t\t\t7:按平均分排序\n");printf("\n\t\t\t0:退出\n");printf("\n\t\t\t请选择(0-6):\n");scanf("%d",&n);
switch(n)
{case 1:fun1();break;case 2:fun2();break;case 3:fun3();break;case 4:fun4();break;case 5:fun5();break;case 6:fun6();break;case 7:fun7();break;
}
}while(n!=0);
}

我们只学到函数,结构体跳着讲的,指针后面的都没学,所以代码看着有点绕,嘿嘿,第一次完成的程序,

校园歌手信息评分系统(C语言),大一新生期末实训相关推荐

  1. 南京邮电大学c语言实验报告5,南京邮电大学C语言大一上期末复习.pdf

    南京邮电大学C语言大一上期末复习.pdf 高级语言程序设计期末总复习高级语言程序设计期末总复习 课程的全部内容可分为五大模块课程的全部内容可分为五大模块 1 1基础知识基础知识 2 2三种基本结构及流 ...

  2. 国家开放大学计算机基础实训项目一,国家开放大学电大专科《微机系统与维护》网络课实训11及实训12作业及答案...

    国家开放大学电大专科<微机系统与维护>网络课实训11及实训12作业及答案 实训11 微机软件系统的维护实训报告 实训内容 操作系统维护工具的使用.注册表的维护.Windows优化大师软件的 ...

  3. 期末实训作业C语言实现银行管理系统

    C语言实现银行管理系统 期末实训作业C语言实现银行管理系统 要求实现的系统能进行以下操作: 开户 销户 查询 存款 取款 挂失 解除挂失 更改密码 退出系统 话不多说,上代码.并不完全是我自己构思自己 ...

  4. 画出识别c语言注释的转换图,C语言程序设计基础与实训教程》第1章:基础知识.ppt...

    <C语言程序设计基础与实训教程>第1章:基础知识.ppt>由会员分享,可在线阅读,更多相关<C语言程序设计基础与实训教程>第1章:基础知识.ppt(25页珍藏版)> ...

  5. 【R语言】沈阳地铁数据处理及站间流量统计——R语言第五次实训

    title: "R语言第五次实训" output: html_notebook 题目一: 1读数据 df <-read.csv("D:\\张志浩\\大数据班\\R语 ...

  6. C语言循环语句实训项目,C语言程序设计与项目实训

    C语言程序设计与项目实训 编辑 锁定 讨论 上传视频 <C语言程序设计与项目实训>是2013年清华大学出版社出版的图书,作者是吴艳平.徐海燕. 书    名 C语言程序设计与项目实训 作  ...

  7. 校园歌手大赛10分c语言,校园歌手大赛策划方案5

    为了丰富校园文化生活,提高广大学生的艺术涵养,展现师大学子团结创新.蓬勃向上的精神风貌,举办校园歌唱比赛.校园歌手大赛策划方案怎么写?这里给大家分享一些关于校园歌手大赛策划方案,希望能帮到各位. 校园 ...

  8. c语言编程题考试自动评分系统,C语言编程题考试自动评分系统简介.ppt

    C语言编程题考试自动评分系统简介 主要内容 教材简介 学习方法 机考系统简介 教材简介 教学理念的更新 教材简介 教材简介 国内55所院校使用 新版增加的内容 强化知识点.算法.编程方法与技巧 [编程 ...

  9. 考试自动评分系统C语言改错,基于XML结构的C语言考试的自动评分系统.doc

    基于XML结构的C语言考试的自动评分系统 摘 要:在C程序设计语言考试中为了解决定位难.一题多解和对于主观题没有统一的评价标准的情况,对考试系统中客观题和程序题的评分方法进行了研究.在比较结果的评分基 ...

最新文章

  1. 清华南开出品最新视觉注意力机制Attention综述
  2. linux shell nr,awk中NR和FNR的区别小结和实例演示
  3. quant companies
  4. 10 Lessons Learned Doing ICOs
  5. 新一代才子原创歌曲--《伤心日记》- 孔朝
  6. 学习笔记之ByteBuffer使用和实现以及文件内存映射
  7. C语言 字符串的声明与使用
  8. 最新dotCMS SQL注入漏洞 攻击者可获得敏感数据 绿盟科技发布安全威胁通告
  9. 3D 目标检测综述梳理图解
  10. php 裁剪png图片,解决thinkphp裁剪png图片背景不透明的方法
  11. Codeforces 1102F Elongated Matrix——状压dp
  12. Power BI数据建模
  13. CentOS最新版本与历史版本下载
  14. hahabet05-com:大数据与数据科学课程体系--哈哈电竞
  15. iptables添加IP段白名单
  16. beecloud支付后端java
  17. 手机技巧:手机只剩20%电量?有了这几招,多用2小时
  18. 【ZUFE-经费报销】浙江财经大学发票报销经验分享(以新苗报销为例)
  19. BZOJ.3551. [ONTAK2010]Peaks加强版
  20. ISO9000和ISO9001有哪些区别?

热门文章

  1. 小米usb当前设备已被临时限制3-2
  2. Java接入微信支付超级详细教程——从入门到精通
  3. psycopg2.pool.PoolError: connection pool exhausted
  4. SpringBoot整合Flyway
  5. 任意文件下载漏洞知识点
  6. 信号采样基本概念 —— 1. 冲激函数
  7. word显示隐藏格式清除残留格式
  8. STM32开发---F103系统时钟配置
  9. ROM(只读存储器)
  10. whm面板降mysql_在cPanel&WHM 78版上可以取消阻止MySQL 5.5