📄 s.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 + -