⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s.txt

📁 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目
💻 TXT
字号:
#include "iostream.h" 
#include "stdio.h" 

#include "string.h" 

#include "conio.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 main(){ 

char *m[6]; 

m[0]="参数设置"; 

m[1]="添加学生"; 

m[2]="统计 "; 

m[3]="学校查询"; 

m[4]="项目查询"; 

m[5]="返回 "; 

SCHOOLSTRUCT *h,*head,*SchoolTable;//=new SCHOOLSTRUCT; 

int ID; 

while(1) 

{ 

cout<<"运动会成绩统计"< 


for(int i=0;i<6;i++) 

{cout<<I+1<<M[I]< 


scanf("%d",&ID); //获取选中的菜单ID 

switch(ID) 

{ 

case 1: 

{ 

_SetArgs(); 

_SetXmInfor(); 

Creat_Shool_Link(SchoolTable); 

h=head=SchoolTable; 

break; 

} 

case 2: 

{ 

AddStudent(SchoolTable); 

break; 

} 

case 3: 

{ 

Tj_FX(h);OutPut_Link(h); 

break; 

} 

case 4: 

{ 

int m_school_id; 

int m_xm_id; 

cout<<"\n请输入学校编号(1--"<<SCHOOLCOUNT<<") School 


cin>>m_school_id; 

cout<<"\n请输入项目编号(1--"<<XM_COUNT<<") XM 


cin>>m_xm_id; 

Find_School_Xm(h,m_school_id,m_xm_id); 

break; 

} 

case 5: 

{ 

int m_xm_i; 

cout<<"\n请输入项目编号 

cin>>m_xm_i; 

Find_Xm_ID(h,1); 

} 

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 

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="; 

"<<GIRLCOUNT<<")ID="; 

"<<BOYCOUNT<<")ID="; 


cout<<"查询结果如下:\n"; 

while(h){ 

for(i=1;i<=h->count;i++) 

{ 

if(h->students[i].item==xm_ID) 

{ 

cout<<"学校:"<Name<<" 姓名:"<students[i].name<<" 名次:"<students[i].range< 


} 

} 

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<<"查询结果如下:"< 


cout<<"姓名:"<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<<"项目编号:"<students[i].item<<" 项目名称:"< 


cout<<"该项目得分:"<students[i].score<<" 名次:"<students[i].range< 


} 

} 

} 

void OutPut_Link(SCHOOLSTRUCT *head){ //向屏幕输出数据 

SCHOOLSTRUCT *h; 

h=head; 

int i; 

int xm_item; 

while(h){ //遍历学校 

getch(); 

cout<<"学校ID:\n"<serial<<" "; 

cout<<"学校名称:"<Name<<" "; 

cout<<"本次运动会积分:"<jifeng<<"\n"; 

cout<<"男子团体总分:"<menscore<<" "; 

cout<<"女子团体总分:"<womenscore<<" "; 

cout<<"总分:"<totalscore<<"\n"; 

cout<<"运动员数:"<count< 


cout<<"\n---------------------------------------\n"; 

for(i=1;i<=h->count;i++){//输出该校学生运动员情况 

cout<<"运动员名称"<students[i].name<<" "; 

cout<<"性别"<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<<" ?; 

students[i].score<<" "; 

cout<<"得分名次"<students[i].range<<"\n"; 

} 

cout<<"\n--------------------------------------\n"; 

getch(); 

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].count< 


} 

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="; 


loop_3: 

cout<<"\n请输女生 项目总数0<N<=20\NW="; 


xm_Count=boyCount+girlCount; //项目总数 

} 

void _SetXmInfor(){ //项目 资料 

int i; 

cout<<"\n请输入男生项目信息"< 


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<<" 名称 


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<<" 名称 


cin>>ANW; 

if(ANW==1)goto Loop_4; 

} 



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -