校园歌手信息评分系统(C语言),大一新生期末实训
要求:
- 在校园歌手比赛中,歌手参加比赛,评委评分,并最后按名次高低输出显示。
(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语言),大一新生期末实训相关推荐
- 南京邮电大学c语言实验报告5,南京邮电大学C语言大一上期末复习.pdf
南京邮电大学C语言大一上期末复习.pdf 高级语言程序设计期末总复习高级语言程序设计期末总复习 课程的全部内容可分为五大模块课程的全部内容可分为五大模块 1 1基础知识基础知识 2 2三种基本结构及流 ...
- 国家开放大学计算机基础实训项目一,国家开放大学电大专科《微机系统与维护》网络课实训11及实训12作业及答案...
国家开放大学电大专科<微机系统与维护>网络课实训11及实训12作业及答案 实训11 微机软件系统的维护实训报告 实训内容 操作系统维护工具的使用.注册表的维护.Windows优化大师软件的 ...
- 期末实训作业C语言实现银行管理系统
C语言实现银行管理系统 期末实训作业C语言实现银行管理系统 要求实现的系统能进行以下操作: 开户 销户 查询 存款 取款 挂失 解除挂失 更改密码 退出系统 话不多说,上代码.并不完全是我自己构思自己 ...
- 画出识别c语言注释的转换图,C语言程序设计基础与实训教程》第1章:基础知识.ppt...
<C语言程序设计基础与实训教程>第1章:基础知识.ppt>由会员分享,可在线阅读,更多相关<C语言程序设计基础与实训教程>第1章:基础知识.ppt(25页珍藏版)> ...
- 【R语言】沈阳地铁数据处理及站间流量统计——R语言第五次实训
title: "R语言第五次实训" output: html_notebook 题目一: 1读数据 df <-read.csv("D:\\张志浩\\大数据班\\R语 ...
- C语言循环语句实训项目,C语言程序设计与项目实训
C语言程序设计与项目实训 编辑 锁定 讨论 上传视频 <C语言程序设计与项目实训>是2013年清华大学出版社出版的图书,作者是吴艳平.徐海燕. 书 名 C语言程序设计与项目实训 作 ...
- 校园歌手大赛10分c语言,校园歌手大赛策划方案5
为了丰富校园文化生活,提高广大学生的艺术涵养,展现师大学子团结创新.蓬勃向上的精神风貌,举办校园歌唱比赛.校园歌手大赛策划方案怎么写?这里给大家分享一些关于校园歌手大赛策划方案,希望能帮到各位. 校园 ...
- c语言编程题考试自动评分系统,C语言编程题考试自动评分系统简介.ppt
C语言编程题考试自动评分系统简介 主要内容 教材简介 学习方法 机考系统简介 教材简介 教学理念的更新 教材简介 教材简介 国内55所院校使用 新版增加的内容 强化知识点.算法.编程方法与技巧 [编程 ...
- 考试自动评分系统C语言改错,基于XML结构的C语言考试的自动评分系统.doc
基于XML结构的C语言考试的自动评分系统 摘 要:在C程序设计语言考试中为了解决定位难.一题多解和对于主观题没有统一的评价标准的情况,对考试系统中客观题和程序题的评分方法进行了研究.在比较结果的评分基 ...
最新文章
- 清华南开出品最新视觉注意力机制Attention综述
- linux shell nr,awk中NR和FNR的区别小结和实例演示
- quant companies
- 10 Lessons Learned Doing ICOs
- 新一代才子原创歌曲--《伤心日记》- 孔朝
- 学习笔记之ByteBuffer使用和实现以及文件内存映射
- C语言 字符串的声明与使用
- 最新dotCMS SQL注入漏洞 攻击者可获得敏感数据 绿盟科技发布安全威胁通告
- 3D 目标检测综述梳理图解
- php 裁剪png图片,解决thinkphp裁剪png图片背景不透明的方法
- Codeforces 1102F Elongated Matrix——状压dp
- Power BI数据建模
- CentOS最新版本与历史版本下载
- hahabet05-com:大数据与数据科学课程体系--哈哈电竞
- iptables添加IP段白名单
- beecloud支付后端java
- 手机技巧:手机只剩20%电量?有了这几招,多用2小时
- 【ZUFE-经费报销】浙江财经大学发票报销经验分享(以新苗报销为例)
- BZOJ.3551. [ONTAK2010]Peaks加强版
- ISO9000和ISO9001有哪些区别?