//运动会分数统计 ////////
//时间:2005-7-4
//程序: 张建波
#include <iostream.h>
#include <string.h>
#include "menu.h"
#include "Key.h"
typedef struct xm_table{
int item;// 项目编号
char name[20];
int count; //该项目得分人的数量
}XM_TABLE;
struct STUDENT{
char name[20]; //姓名
int score; //得分成绩
int range; //得分名次
int item; //得分项目
int sex; //性别
};
typedef struct SchoolStruct //参赛学校
{
int count; //计算实际运动员个数
int serial; //学校编号
char Name[20];
int menscore; //男子团体总分
int womenscore; //女子团体总分
int totalscore; //团体总分
int jifeng; //学校积分
struct STUDENT students[10]; //参赛运动员
struct SchoolStruct *next; //参赛学校
}SCHOOLSTRUCT;
void Creat_Shool_Link(SCHOOLSTRUCT * &head); //建立链表
void Add_Student_link(SCHOOLSTRUCT * &head); //添加获奖学生
void Tj_FX(SCHOOLSTRUCT * &head); //成绩统计
void Find_Xm_ID(SCHOOLSTRUCT * &head,int xm_ID); //按项目编号查询取得前三或前五名的学校。
void Find_School_Xm(SCHOOLSTRUCT * &head,int School_ID,int XM_ID);//按学校编号查询学校某个项目
void OutPut_Link(SCHOOLSTRUCT *head); //向屏幕输出数据
void _SetArgs(); //参数设置
void _SetXmInfor(); //项目 资料
void AddStudent(SCHOOLSTRUCT *&SchoolTable); //添加学生数据
int SchoolCount=0;//学校总数
int boyCount=0;//男生项目 总数
int girlCount=0;//女生项目 总数
int xm_Count=0; //项目 总数
XM_TABLE xm_T[41];//项目表
int _f1_main(){ //函数入口
Menu m[9];
m[1].Name="参数设置";
m[2].Name="添加学生";
m[3].Name="统计 ";
m[4].Name="学校查询";
m[5].Name="项目查询";
m[6].Name="返回 ";
SCHOOLSTRUCT *h,*head,*SchoolTable;//=new SCHOOLSTRUCT;
int ID=1;
while(1)
{
ShowMenu("数据结构--运动会成绩统计",m,6); //显示菜单
ID=SelectMenuID(); //获取选中的菜单ID
switch(ID){
case 1:{
_SetArgs();
_SetXmInfor();
Creat_Shool_Link(SchoolTable);
h=head=SchoolTable;
InitKey();
break;
}
case 2:{AddStudent(SchoolTable);InitKey();break;}
case 3:{Tj_FX(h);OutPut_Link(h);InitKey();break;}
case 4:{
int m_school_id;
int m_xm_id;
cout<<"/n请输入学校编号(1--"<<SchoolCount<<") School ID=";
cin>>m_school_id;
cout<<"/n请输入项目编号(1--"<<xm_Count<<") XM ID=";
cin>>m_xm_id;
Find_School_Xm(h,m_school_id,m_xm_id);
InitKey();
break;
}
case 5:{
int m_xm_i;
cout<<"/n请输入项目编号 ID=";
cin>>m_xm_i;
Find_Xm_ID(h,1);
InitKey();
}
case 6:return 0;
}
}
return 0;
}
void Creat_Shool_Link(SCHOOLSTRUCT * &head){ //建立链表
//创建链表
SCHOOLSTRUCT *p;
p=new SCHOOLSTRUCT;
head=p;
for(int i=1;i<=SchoolCount;i++)
{
p=p->next=new SCHOOLSTRUCT;
cout<<"请输入学校名称/n";
cout<<"学校编号School ID="<<i<<endl;
cout<<"School Name=";
p->serial=i;
p->jifeng=0; //设置积分为 0
p->totalscore=0;
p->womenscore=0;
p->menscore=0;
cin>>p->Name;
p->count=0; //置运动员数为0;
}
p->next=NULL;
head=head->next;
}
void Add_Student_link(SCHOOLSTRUCT * &head){//添加获奖学生
SCHOOLSTRUCT *h,*p;
int School_ID; //学校ID
char Student_name[20]; //学生姓名
int sex;//性别
int XM_ID;
int score;
int range; //得分名次
cout<<"请输入学生学校ID(1<--->"<<SchoolCount<<")ID=";
cin>>School_ID;
cout<<"请输入学生姓名Name=";
cin>>Student_name;
cout<<"请选择学生性别[0=女 1=男]sex=";
cin>>sex;
if(sex==0)
cout<<"/n请输入项目编号ID(1<--->"<<girlCount<<")ID=";
if(sex==1)
cout<<"/n请输入项目编号ID(1<--->"<<boyCount<<")ID=";
cin>>XM_ID;
cout<<"/n请输入该项目得分score=";
cin>>score;
cout<<"/n请输入得分名次range=";
cin>>range;
//查找学校ID
h=head;
while(h)
{
if(h->serial==School_ID)
{
p=h;
p->count=p->count+1; //运动员数+1
strcpy(p->students[p->count].name,Student_name); //学生姓名
p->students[p->count].item=XM_ID ;//得分项目
xm_T[XM_ID].count=xm_T[XM_ID].count+1; //该项目得分人数+1
p->students[p->count].range=range;//得分名次
p->students[p->count].score=score;//得分
p->students[p->count].sex=sex; //性别
break;
}
else h=h->next;
}
}
void Tj_FX(SCHOOLSTRUCT * &head){//成绩统计
SCHOOLSTRUCT *h,*p;
p=h=head; //保存链表头指针
int menscore=0; //男子团体总分
int womenscore=0; //女子团体总分
int totalscore=0; //团体总分
int i;
int item_i=0;
int jf=0;//积分
while(p){
for(i=1;i<=p->count;i++)
{
//计算分数
totalscore=totalscore+p->students[i].score; //计算总分
if(p->students[i].sex==0)womenscore=womenscore+p->students[i].score;////女子团体总分
else menscore=menscore+p->students[i].score;//男子团体总分
//计算积分
item_i=p->students[i].item;
if(xm_T[item_i].count>=5){
//取前5名
if(p->students[i].range==1)jf=jf+7;
else if(p->students[i].range==2)jf=jf+5;
else if(p->students[i].range==3)jf=jf+3;
else if(p->students[i].range==4)jf=jf+2;
else if(p->students[i].range==5)jf=jf+1;
}
if(xm_T[item_i].count<5){
//取前3名
if(p->students[i].range==1)jf=jf+5;
else if(p->students[i].range==2)jf=jf+3;
else if(p->students[i].range==3)jf=jf+2;
}
// cout<<"/nDEBUG:jf="<<jf<<endl;
// cout<<"/nDEBUG p->students[i].range:"<<p->students[i].range<<endl;
}
p->jifeng=jf; //计算积分
p->womenscore=womenscore;//保存 女子总分
p->menscore=menscore;//保存 男子总分
p->totalscore=totalscore;//保存总分
jf=0;
menscore=0; //男子团体总分
womenscore=0; //女子团体总分
totalscore=0; //总分
p=p->next; //向后移动指针
}
}
void Find_Xm_ID(SCHOOLSTRUCT * &head,int xm_ID){ //按项目编号查询取得前三或前五名的学校。
SCHOOLSTRUCT *h,*p;
p=h=head; //保存链表头指针
int i;
cout<<"/n按项目编号查询取得前三或前五名的学校/n";
cout<<"查询结果如下:/n";
while(h){
//
for(i=1;i<=h->count;i++)
{
if(h->students[i].item==xm_ID)
{
cout<<"学校:"<<h->Name<<" 姓名:"<<h->students[i].name<<" 名次:"<<h->students[i].range<<endl;
}
}
h=h->next;
}
}
void Find_School_Xm(SCHOOLSTRUCT * &head,int School_ID,int XM_ID){//按学校编号查询学校某个项目
SCHOOLSTRUCT *h,*p;
p=h=head; //保存链表头指针
while(h){
if(h->serial==School_ID){p=h;break;}
h=h->next;
}
cout<<"/n按学校编号查询学校某个项目/n";
int xm_i=0;
for(int i=1;i<=p->count;i++){
if(p->students[i].item==XM_ID){
cout<<"查询结果如下:"<<endl;
cout<<"姓名:"<<p->students[i].name<<" ";
xm_i=p->students[i].item;
if(p->students[i].sex==0){
cout<<"性别:女/n";
xm_i=xm_i+20;
}
else {
cout<<"性别: 男/n";
}
cout<<"项目编号:"<<p->students[i].item<<" 项目名称:"<<xm_T[xm_i].name;
cout<<"该项目得分:"<<p->students[i].score<<" 名次:"<<p->students[i].range<<endl;
}
}
}
void OutPut_Link(SCHOOLSTRUCT *head){ //向屏幕输出数据
SCHOOLSTRUCT *h;
h=head;
int i;
int xm_item;
while(h){ //遍历学校
cout<<"学校ID:/n"<<h->serial<<" ";
cout<<"学校名称:"<<h->Name<<" ";
cout<<"本次运动会积分:"<<h->jifeng<<"/n";
cout<<"男子团体总分:"<<h->menscore<<" ";
cout<<"女子团体总分:"<<h->womenscore<<" ";
cout<<"总分:"<<h->totalscore<<"/n";
cout<<"运动员数:"<<h->count<<endl;
cout<<"/n---------------------------------------/n";
for(i=1;i<=h->count;i++){//输出该校学生运动员情况
cout<<"运动员名称"<<h->students[i].name<<" ";
cout<<"性别"<<h->students[i].sex<<"/n";
xm_item=h->students[i].item;
if(h->students[i].sex==0)xm_item=xm_item+20; //如果是女生则项目表向后移动20
cout<<"得分项目"<<xm_T[xm_item].name<<" ";
cout<<"得分"<<h->students[i].score<<" ";
cout<<"得分名次"<<h->students[i].range<<"/n";
}
cout<<"/n--------------------------------------/n";
h=h->next; //指针向后移动
}
cout<<"/n--本次运动会的项目清单--/n";
int xm_count_i;
for(xm_count_i=1;xm_count_i<=boyCount;xm_count_i++)
{
cout<<"编号 "<<xm_T[xm_count_i].item<<" 名称 "<<xm_T[xm_count_i].name<<" 参与人数 "<<xm_T[xm_count_i].count<<endl;
}
for(xm_count_i=1;xm_count_i<=girlCount;xm_count_i++)
{
cout<<"编号 "<<xm_T[xm_count_i+20].item<<" 名称 "<<xm_T[xm_count_i+20].name<<" 参与人数 "<<xm_T[xm_count_i+20].count<<endl;
}
cout<<"/n-------------------------/n";
}
void _SetArgs(){ //参数设置
//// 设置参赛学校
loop_1:
cout<<"请输入参赛学校(n>=2)/nn=";
cin>>SchoolCount;
if(SchoolCount<2){cout<<"/n数据输入有误";goto loop_1;}
////////////////////////////
loop_2:
cout<<"/n请输男生 项目总数0<n<=20/nm=";
cin>>boyCount;
if(boyCount<0 || boyCount>20){cout<<"/n数据输入有误";goto loop_2;}
/////////////////////////////
loop_3:
cout<<"/n请输女生 项目总数0<n<=20/nw=";
cin>>girlCount;
if(girlCount<0 || girlCount>20){cout<<"/n数据输入有误";goto loop_3;}
/////////////////////////////
xm_Count=boyCount+girlCount; //项目总数
}
void _SetXmInfor(){ //项目 资料
int i;
cout<<"/n请输入男生项目信息"<<endl;
for(i=1;i<=boyCount;i++){
cout<<"项目 "<<i<<" 名称 name=";
xm_T[i].item=i; //项目编号
xm_T[i].count=0; //该项目的参与人数
cin>>xm_T[i].name; //项目名称
}
cout<<"/n请输入女生项目信息"<<endl;
for(i=1;i<=girlCount;i++){
cout<<"项目 "<<i<<" 名称 name=";
xm_T[20+i].item=i; //项目编号
cin>>xm_T[20+i].name; //项目名称
}
}
void AddStudent(SCHOOLSTRUCT *&SchoolTable){ //添加学生数据
int ANW;
Loop_4:
Add_Student_link(SchoolTable); //添加学生数据
cout<<"/n是否继续添加学生数据?[0=No 1=Yes]/n";
cin>>ANW;
if(ANW==1)goto Loop_4;
}
相关推荐
数据结构习题集之运动会分数统计
运动会分数统计 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct Score{ char AthleteName [20]; char SchoolName [20]; int SchoolCode; int Rank; ch...
数据结构课设----运动会分数统计系统
1.运动会分数统计 [问题描述] 参加运动会的n个学校编号为1 ~ n。比赛分成m个男子项目和w个女子项 目,项目编号分别为1~ m和m+1~ m+w。由于各项目参加人数差别较大,有 些项目取前五名,得分顺序为7,5,3, 2,1;还有些项目只取前三名,得分 顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。 [基本要求] 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分, 3)可以按学校编号或名称、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按
数据结构作业 运动会分数统计 c++
///////////////////////// 说明 ////////////////////////////////// 共有N个学校参加运动会,编号为1~N。 ////// 共有W个项目,编号为1~W ////// 在某个项目结束后可以进行该项目的数据输入 ////// 可以显示指定项目的所
数据结构程序设计 运动会分数统计
摘 要 设计了一个运动会分数统计系统,该系统可以简单的统计有关于运动会的信息。本系统采用VC++作为软件开发环境,运用了排序算法和线性表的顺序存储等算法。实现了对运动会数据的存储与排序运算。操作简单,界面清晰,易于为用户所接受。 关键词:算法;运动会;系统 1 课题描述 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m...
数据结构 运动会分数统计
#include #include #include #includeusing namespace std; int n; //n个学校 int m; //m个男子项目 int w; //w个女子项目 struct pro //表示项目的结构体 { string name; //项目名称 int snum[6]; //前3或5名学校的编号 }p[2
运动会分数统计源代码(数据结构课程设计)
数据结构课程设计 运动会分数统计 源代码 C++ 纯原创 编译环境 VC6.0
数据结构课程设计——运动会分数统计
数据结构课程设计——运动会分数统计题目要求1.问题描述2.设计要求3.测试数据代码结构体设计函数设计各函数具体实现Sch GetSchool();Pro GetProject();void Initialization();void Input();void view();void Sum_Score();void Sc_numsort();void Sc_scoreSort();void Sc_ManSort();void Sc_WomanSort();void Find_Scnum();void Fin
数据结构运动会分数统计系统
数据结构运动会分数统计系统,课程设计需要的可以看一下.
数据结构:运动会分数统计
#include<stdio.h> #include<math.h> #include <conio.h> #include <process.h> #define n 2//学校数目 #define m 1//男子项目数目 #define w 1//女子项目数目 #define null 0 typedef struct { int ...
数据结构课程设计-运动会分数统计系统
运动会分数统计系统 --------------------------------------------本程序的运行平台为Windows 2000/XP/,不设最低配置。 本程序可以实现运动会记录的创建、增加、按学院编号查询、按项目编号查询、按学 编号排序、按运动员编号排序、按男子团体总分排序、按女子团体总分排序、按学院 总分排序等功能。可以实现文件的存取操作。各个功能可按菜单提示实现。 文件score.data是为保护数据而自定义的一种文件格式,可以用记事本打开! --------------------------------------------- 希望本程序可以对初学c++的同学有说帮助!!! ---------------------------------------------作者:流倏(sharlon123) QQ:370854700
运动会分数统计源码(C)
运动会分数统计源代码 任务:参加运动会有10个学校,学校编号为1……10。比赛分成18个男子项目,和12个女子项目。项目编号为男子1……18,女子19……30。不同的项目取前三名积分,前三名的积分分别为:5、3、2。 功能要求: a) 可以输入各个项目的前三名的成绩; b) 能统计各学校总分; c) 可以按学校编号或名称、学校总分、男女团体总分排序输出; d) 数据存入文件并能随时查询 ; e) 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称; 输出形式:有中文提示,各学校分数为整型; 存储结构:根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 原文链接:https://blog.youkuaiyun.com/weixin_46720804/article/details/115290173
运动会分数统计(数据结构课设)(C语言版)
本文为数据结构与算法的课程设计《运动会分数统计》的一个分享,使用了顺序表的数据结构。并且将信息以表格的方式打印输出和在txt文件中导入导出。欢迎大家浏览并提出宝贵意见,感谢各位。
数据结构运动会分数统计报告,c语言运动会分数统计(数据结构课程设计实验报告)
【c语言】数据结构运动会分数统计报告,运动会分数统计(数据结构课程设计实验报告) 运动会分数统计 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前前三名积分;前三名的积分分别为:5、3、2。(m、w<=20,n<=10) 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前前三名积分;前三名的积分分别为:5、3、2。(m、w<=20,n<=10) 功能要求: 1) 可以输入各个项目的前三名或前五名的成绩; 2) 能统计各学校总分; 3) 可以按学校编号、学校总分、男女团体总分排序输出; 4) 可以按学校编号查询学校某个项目的情况; 5) 可以按项目编号查询取得前三或前五名的学校。 规定:输入数据形式和范围:10以内的整数(如果做得更好可以输入学校的名称,运动项目的名称) 输出形式:有中文提示,各学校分数为整形
java数据结构运动会分数统计_数据结构课程设计——运动会分数统计
#include#include #include #include#include #define Schnum 6 // school 个数#define Pronum 6// project 个数#define N 3 //前n名#define M 5 //前m名void intzoom(int a, int b);void screen();void schoolman();void sc...
数据结构课程设计运动会分数统计(C语言版).doc
数据结构课程设计运动会分数统计(C语言版)
从CMOS到CML:手把手教你为PLL选对分频器电路(附性能对比与选型指南)
本文深入解析了PLL分频器电路的三大主流架构——静态CMOS、动态TSPC和CML,通过性能参数对比和实测数据,提供了从频率需求、功耗预算到噪声防护的完整选型指南。特别针对高频应用的CML分频器设计要点和混合架构优化方案,为射频与模拟IC设计工程师提供实用参考。
数据结构实训——运动会分数统计
题目1: 运动会分数统计(限1 人完成) 任务: 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 功能要求: 输入各个项目的前三名或前五名...
MySQL常见面试题汇总(建议收藏!!!)
目录一、索引相关(1)什么是索引?(2)索引是个什么样的数据结构呢?(3)为什么使用索引?(4)Innodb为什么要用自增id作为主键?(5)Hash 索引和 B+ 树索引有什么区别或者说优劣呢?(6)什么是聚簇索引(6)非聚簇索引一定会回表查询吗?(6)聚簇索引和非聚簇索引的区别(6)MyISAM和InnoDB实现B+树索引方式的区别是什么?(6)MySQL中有四种索引类型,可以简单说说吗?(6)覆盖索引是什么?(6)联合索引是什么?为什么需要注意联合索引中的顺序?(6)创建的索引有没有被使用到?或者说怎
java数据结构运动会分数统计,数据结构课程设计-运动会分数统计
数据结构课程设计-运动会分数统计 课 程 设 计 报 告 课程名称课程名称 数据结构 课题名称课题名称 运动会分数统计 专专 业业 班班 级级 学学 号号 姓姓 名名 指导老师指导老师 2013 年年 6 月月 29 日日 课 程 设 计 内 容课 程 设 计 内 容 1.1.课程设计目的课程设计目的 课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相 成的必不可少的一个教学环节。...
MySQL安装配置教程(超级详细)
一、 下载MySQL Mysql官网下载地址:MySQL :: Download MySQL Installer (Archived Versions) 1. 选择要安装的版本,本篇文章选择的是5.7.31版本,点击Download下载 正在上传…重新上传取消 二、 安装MySQL 1. 选择设置类型双击运行mysql-installer-community-5.7.31.0.msi 这里选择是自定义安装,所以直接选择“Custom”,点击“Next” “Developer Default”是
艾德克斯电子负载IT8510维修
2年前从朋友那收了这台艾德克斯电子负载,收来的时候上面的编码器就不好用,就是旋转的时候一会增加一会减小这种现象,不过其他功能都是正常的,自己也就将就用这。直到昨天,电子负载开机发现空载的时候电压不是0,开始有mV级的跳动,心想这个不正常。又测试了一下恒流功能,已经不能正常工作了。
8055



被折叠的 条评论
为什么被折叠?



