首页 > 编程 > C++ > 正文

C++实现学校运动会管理系统

2020-05-23 13:25:54
字体:
来源:转载
供稿:网友

本文实例为大家分享了C++实现学校运动会管理系统的具体代码,供大家参考,具体内容如下

#include<iostream>#include<fstream>#include<string>using namespace std;void fun1(){  cout<<"******************************"<<endl;  cout<<endl;  cout<<"******学校运动会管理系统******"<<endl; cout<<"----数据录入    请按:1----"<<endl; cout<<"----数据修改    请按:2----"<<endl; cout<<"----数据删除    请按:3----"<<endl; cout<<"----数据查询    请按:4----"<<endl; cout<<"----数据显示    请按:5----"<<endl; cout<<"----退出系统    请按:6----"<<endl; cout<<endl; cout<<"*******************************"<<endl; cout<<endl; cout<<"*****请输入一个数据,并按回车键!*****"<<endl;}class Match{public: Match *next;//为创建链表做准备 int number;  //比赛项目编号 char call[10];  //比赛项目名称 char time[10];     //比赛时间 char place[20];  //比赛地点 friend void input1();};void input1(){  ofstream fout("e://比赛项目.dat",ios::app); char ch; Match a; do { cout<<"请分别输入比赛项目编号、名称、比赛时间、比赛地点."<<endl;  cin>>a.number>>a.call>>a.place>>a.time;  a.next=NULL;   fout.write((char *)&a,sizeof(Match));  cout<<"是否继续输入,如果继续键入Y|y"<<endl;  cin>>ch; }while(ch=='y'||ch=='Y'); fout.close();}Match *head1;void creat(){ head1=NULL;  Match *p,*q=head1;  ifstream fin("e://比赛项目.dat",ios::in);  if(!fin)  { cout<<"文件打开失败!"<<endl; exit(0);  }   p=new Match; fin.read((char*)p,sizeof(Match)); while(!fin.eof())  { if(head1==NULL) head1=p;   else  q->next=p; q=p;    p=new Match;    fin.read((char*)p,sizeof(Match)); }  fin.close();}int change1()      //对比赛项目相关信息修改{ cout<<"您正在进行修改比赛项目有关事项操作!"<<endl;  creat();  Match *p1;  p1=head1; cout<<"请输入要修改比赛项目的编号:"<<endl; int number1;    //要修改的比赛项目编号 int sign=0;    //设置的标记变量 cin>>number1; while(p1!=NULL) { if(p1->number==number1)  {sign=1;break;}     p1= p1->next; }  if (sign==0) cout<<"没有找到要修改的记录!"<<endl;  else { cout<<"请选择要修改比赛项目的那些信息"<<endl; cout<<"------修改比赛项目的编号----1"<<endl; cout<<"------修改比赛项目的名称----2"<<endl; cout<<"------修改比赛时间----3"<<endl; cout<<"------修改比赛地点----4"<<endl; cout<<"请输入对应信息的编号"<<endl; int a; int nu;      //新的整形数据 char info[20];     //新的字符数组 cin>>a; switch(a) { case 1:cout<<"请输入新的比赛编号:"<<endl;   cin>>nu;   p1->number=nu;     cout<<"比赛项目编号修改成功!"<<endl;        break;    case 2:cout<<"请输入新的比赛项目名称:"<<endl;  cin>>info;      strcpy(p1->call,info);  cout<<"比赛项目名称修改成功!"<<endl;       break;    case 3:cout<<"请输入新的比赛时间:"<<endl;  cin>>info;  strcpy(p1->time,info);  cout<<"比赛项目时间修改成功!"<<endl;       break;    case 4:cout<<"请输入新的比赛地点:"<<endl;  cin>>info;  strcpy(p1->place,info);  cout<<"比赛项目地点修改成功!"<<endl;     break; } ofstream fout("e://比赛项目.dat",ios::out); p1=head1;   while(p1!=NULL) {      fout.write((char*)p1,sizeof(Match));  p1=p1->next; }      fout.close();  } return 0;}int delete1()            //对比赛项目相关信息进行删除{ creat();  Match *p1,*p2;  p2=p1=head1; cout<<"请选择要删除比赛项目的那些信息"<<endl; cout<<"------删除比赛项目的编号----1"<<endl; cout<<"------删除比赛项目的名称----2"<<endl;   cout<<"请输入对应信息的编号"<<endl;    int n; cin>>n;  int num,flag=0;  char cal[10];  switch(n)  {case 1: cin>>num;       while(p1!=NULL)  { if(p1->number==num)  {flag=1;break;}        p2=p1;       p1= p1->next;  }       if (flag==0)       cout<<"没有找到要删除的记录!"<<endl;        else        p2->next=p1->next; case 2:  cin>>cal;       while(p1!=NULL)  { if(!strcmp(p1->call,cal))  {flag=1;break;}        p2=p1;       p1= p1->next;  }       if (flag==0)       cout<<"没有找到要删除的记录!"<<endl;        else        p2->next=p1->next;  }  ofstream fout("e://比赛项目.dat",ios::out);  p1=head1; while(p1!=NULL) {     fout.write((char*)p1,sizeof(Match)); p1=p1->next; }    fout.close(); return 0;}void print1(){ creat(); Match *p1=head1; cout<<"请分别输出比赛项目编号、名称、比赛时间、比赛地点."<<endl; while(p1!=NULL) { cout<<p1->number<<'/t'<<p1->call<<'/t'<<p1->time<<'/t'<<p1->place<<endl;     p1=p1->next; }  }void find1(){  creat();  Match *p1;  p1=head1;  int sign=0;//设置的标记变量   cout<<"请选择要查询比赛项目的哪些信息"<<endl; cout<<"------按比赛项目的编号查询----1"<<endl; cout<<"------按比赛项目的名称查询----2"<<endl; cout<<"------按比赛时间查询----3"<<endl; cout<<"------按比赛地点查询----4"<<endl; cout<<"请输入对应信息的编号"<<endl; int a; int nu;           //查询整形数据条件 char info[20];       //查询字符型数据条件 cin>>a; switch(a) { case 1:cout<<"请输入要查询的比赛编号:"<<endl;   cin>>nu;   while(p1!=NULL)   { if(p1->number==nu)  {sign=1;break;}         p1= p1->next;   }       if (sign==0)     cout<<"没有找到要查询的记录!"<<endl;    else       cout<<p1->number<<'/t'<<p1->call<<'/t'<<p1->time<<'/t'<<p1->place<<endl;       break;    case 2:cout<<"请输入要查询的比赛项目名称:"<<endl;  cin>>info;      while(p1!=NULL)   { if(p1->call==info)  {sign=1;break;}         p1= p1->next;   }       if (sign==0)     cout<<"没有找到要查询的记录!"<<endl;    else       cout<<p1->number<<'/t'<<p1->call<<'/t'<<p1->time<<'/t'<<p1->place<<endl;       break;    case 3:cout<<"请输入要查询的比赛时间:"<<endl;  cin>>info;  while(p1!=NULL)   { if(!strcmp(p1->time,info))  {sign=1;break;}         p1= p1->next;   }       if (sign==0)     cout<<"没有找到要查询的记录!"<<endl;    else       cout<<p1->number<<'/t'<<p1->call<<'/t'<<p1->time<<'/t'<<p1->place<<endl;     break;    case 4:cout<<"请输入要查询的比赛地点:"<<endl;  cin>>info;  while(p1!=NULL)   { if(!strcmp(p1->place,info))  {sign=1;break;}         p1= p1->next;   }       if (sign==0)     cout<<"没有找到要查询的记录!"<<endl;    else       cout<<p1->number<<'/t'<<p1->call<<'/t'<<p1->time<<'/t'<<p1->place<<endl;   break; }}class Athlete{public: Athlete *next; int number;     //运动员的编号 char name[10];    //运动员的姓名  char part[20];    //运动员所属工作单位或省份 char sex[20];      //运动员性别 int age;       //运动员年龄 friend void input2();};void input2(){  ofstream fout("e://运动员.dat",ios::app); char ch; Athlete b; do { cout<<"请分别输入运动员编号、姓名、性别、年龄、所属省份或工作单位."<<endl;  cin>>b.number>>b.name>>b.sex>>b.age>>b.part; b.next=NULL;    fout.write((char *)&b,sizeof(Athlete));   cout<<"是否继续输入,如果继续键入Y|y"<<endl; cin>>ch; }while(ch=='y'||ch=='Y');}Athlete *head4;void creat2(){ head4=NULL;  Athlete *p,*q=head4;ifstream fin("e://运动员.dat",ios::in);  if(!fin) { cout<<"文件打开失败!"<<endl; exit(0); }  p=new Athlete; fin.read((char*)p,sizeof(Athlete)); while(!fin.eof())   { if(head4==NULL) head4=p;   else   q->next=p; q=p;    p=new Athlete;    fin.read((char*)p,sizeof(Athlete)); }  fin.close();}int change2()      //对运动员相关信息修改{ cout<<"您正在进行修改运动员基本信息操作!"<<endl;  creat2();  Athlete *p1;  p1=head4; cout<<"请输入要修改运动员的编号:"<<endl; int number1;    //要修改的运动员编号 int sign=0;    //设置的标记变量 cin>>number1; while(p1!=NULL) { if(p1->number==number1)  {sign=1;break;}     p1= p1->next; }   if (sign==0) cout<<"没有找到要修改的记录!"<<endl;  else { cout<<"请选择要修改运动员的哪些信息"<<endl; cout<<"------修改运动员的编号----1"<<endl; cout<<"------修改运动员的姓名----2"<<endl; cout<<"------修改运动员所属工作单位或省份----3"<<endl; cout<<"------修改运动员性别----4"<<endl;    cout<<"------修改运动员年龄----4"<<endl; cout<<"请输入对应信息的编号"<<endl; int a; int nu;        //新的整形数据 char info[20];     //新的字符数组   cin>>a; switch(a) { case 1:cout<<"请输入新的运动员编号:"<<endl;   cin>>nu;   p1->number=nu;     cout<<"运动员的编号修改成功!"<<endl;        break;   case 2:cout<<"请输入新的运动员姓名:"<<endl;  cin>>info;      strcpy(p1->name,info);   cout<<"运动员姓名修改成功!"<<endl;       break;case 3:cout<<"请输入新的运动员所属工作单位或省份:"<<endl;  cin>>info;  strcpy(p1->part,info);  cout<<"运动员所属工作单位或省份修改成功!"<<endl;       break;case 4:cout<<"请输入新的性别:"<<endl;  cin>>info;  strcpy(p1->sex,info);  cout<<"运动员性别修改成功!"<<endl;     break;case 5:cout<<"请输入新的年龄:"<<endl;  cin>>nu;  p1->age=nu,  cout<<"运动员年龄修改成功!"<<endl;     break; } ofstream fout("e://运动员.dat",ios::out); p1=head4;   while(p1!=NULL) {      fout.write((char*)p1,sizeof(Athlete));  p1=p1->next; }  fout.close();  }  return 0;}int delete2()//对运动员相关信息进行删除{ creat2();  Athlete *p1,*p2;  p2=p1=head4; cout<<"请选择要删除运动员的哪些信息"<<endl; cout<<"------删除运动员的编号----1"<<endl; cout<<"------删除运动员的姓名----2"<<endl;   cout<<"请输入对应信息的编号"<<endl;    int n; cin>>n;   int num,flag=0;  char na[10];  switch(n)  {case 1:  cin>>num;       while(p1!=NULL)  { if(p1->number==num)  {flag=1;break;}        p2=p1;       p1= p1->next;  }       if (flag==0)       cout<<"没有找到要删除的记录!"<<endl;        else        p2->next=p1->next; case 2:  cin>>na;       while(p1!=NULL)  { if(!strcmp(p1->name,na))  {flag=1;break;}        p2=p1;       p1= p1->next;  }       if (flag==0)       cout<<"没有找到要删除的记录!"<<endl;        else        p2->next=p1->next;  }  ofstream fout("e://运动员.dat",ios::out);  p1=head4; while(p1!=NULL) {     fout.write((char*)p1,sizeof(Athlete)); p1=p1->next; }  fout.close(); return 0;}void find2(){  creat2();  Athlete *p1;  p1=head4; int sign=0;//设置的标记变量   cout<<"请选择要查询运动员的哪些信息"<<endl; cout<<"------按运动员的编号查询----1"<<endl; cout<<"------按运动员的姓名查询----2"<<endl; cout<<"请输入对应信息的编号"<<endl; int a; int nu;           //查询整形数据条件 char info[20];       //查询字符型数据条件 cin>>a; switch(a) { case 1:cout<<"请输入要查询的运动员编号:"<<endl;   cin>>nu;   while(p1!=NULL)   { if(p1->number==nu)  {sign=1;break;}         p1= p1->next;   }       if (sign==0)     cout<<"没有找到要查询的记录!"<<endl;    else  cout<<p1->number<<'/t'<<p1->name<<'/t'<<p1->part<<'/t'<<p1->sex<<'/t'<<p1->age<<endl;       break; case 2:cout<<"请输入要查询的运动员姓名:"<<endl;  cin>>info;      while(p1!=NULL)   { if(p1->name==info)  {sign=1;break;}         p1= p1->next;   }       if (sign==0)     cout<<"没有找到要查询的记录!"<<endl;    else     cout<<p1->number<<'/t'<<p1->name<<'/t'<<p1->part<<'/t'<<p1->sex<<'/t'<<p1->age<<endl;       break; }}void print2(){   creat2(); Athlete *p1=head4; cout<<"请分别输出运动员编号、姓名、所属省份或工作单位、性别、年龄."<<endl; while(p1!=NULL) { cout<<p1->number<<'/t'<<p1->name<<'/t'<<p1->part<<'/t'<<p1->sex<<'/t'<<p1->age<<endl;  p1=p1->next; }  }class Message{public: Message *next; char name[10];    //运动员姓名 char avent[10];   //运动员参加的某比赛项目名称 int score ;     //成绩 int ca;       //名次  friend void input3();};void input3(){ ofstream fout("e://比赛赛事.dat",ios::app); char ch; Message c; do { cout<<"请分别输入参赛运动员姓名、比赛名称、比赛成绩、比赛名次."<<endl;  cin>>c.name>>c.avent>>c.score>>c.ca; c.next=NULL;    fout.write((char *)&c,sizeof(Message));  cout<<"是否继续输入,如果继续键入Y|y"<<endl;  cin>>ch; }while(ch=='y'||ch=='Y');fout.close();}Message *head7;void creat3(){ head7=NULL;  Message *p,*q=head7;ifstream fin("e://比赛赛事.dat",ios::in);  if(!fin) { cout<<"文件打开失败!"<<endl; exit(0); }  p=new Message; fin.read((char*)p,sizeof(Message)); while(!fin.eof())   { if(head7==NULL) head7=p;   else   q->next=p; q=p;    p=new Message;    fin.read((char*)p,sizeof(Message)); }  fin.close();}int change3()  //修改比赛赛事信息{  cout<<"您正在进行修改比赛赛事有关事项操作!"<<endl;  creat3();  Message *p1;  p1=head7; cout<<"请输入参赛运动员姓名及参赛项目名称! "<<endl; char na[20]; char info[20]; int sign=0;//设置的标记变量 cin>>na>>info; while(p1!=NULL) { if((p1->name==na)&&(p1->avent==info))  {sign=1;break;}     p1= p1->next; }   if (sign==0) cout<<"没有找到要修改的记录!"<<endl;   else { cout<<"请选择要修改比赛赛事的哪些信息"<<endl; cout<<"------修改参赛运动员的姓名----1"<<endl; cout<<"------修改比赛项目的名称----2"<<endl; cout<<"------修改比赛成绩----3"<<endl; cout<<"------修改比赛名次----4"<<endl; cout<<"请输入对应信息的编号"<<endl; int a; int nu;        //新的整形数据 char info[20];     //新的字符数组    cin>>a; switch(a) { case 1:cout<<"请输入新的参赛运动员姓名:"<<endl;   cin>>info;   strcpy(p1->name,info);     cout<<"参赛运动员姓名修改成功!"<<endl;        break;case 2:cout<<"请输入新的比赛项目名称:"<<endl;  cin>>info;      strcpy(p1->avent,info);   cout<<"比赛项目名称修改成功!"<<endl;       break;case 3:cout<<"请输入新的比赛成绩:"<<endl;  cin>>nu;  p1->score=nu;  cout<<"比赛项目成绩修改成功!"<<endl;       break;case 4:cout<<"请输入新的比赛名次:"<<endl;  cin>>nu;  p1->ca=nu;  cout<<"比赛名次修改成功!"<<endl;     break; } ofstream fout("e://比赛赛事.dat",ios::out); p1=head7;   while(p1!=NULL) {      fout.write((char*)p1,sizeof(Message));  p1=p1->next; }    fout.close(); }  return 0;}int delete3()            //对比赛赛事相关信息进行删除{ creat3();  Message *p1,*p2;  p2=p1=head7;  cout<<"请输入要删除的参赛运动员姓名及比赛项目名称:"<<endl;  int flag=0;  char na[20];  char info[20];  cin>>na>>info;       while(p1!=NULL)  { if((p1->name==na)&&(p1->avent==info))  {flag=1;break;}        p2=p1;       p1= p1->next;  }       if (flag==0)       cout<<"没有找到要删除的记录!"<<endl;        else        p2->next=p1->next;  ofstream fout("e://比赛赛事.dat",ios::out);  p1=head7; while(p1!=NULL) {     fout.write((char*)p1,sizeof(Message)); p1=p1->next; }  fout.close(); return 0;}void print3(){ creat3(); Message *p1=head7; cout<<"请分别输出比赛参赛运动员姓名、比赛项目名称、比赛成绩、比赛名次."<<endl; while(p1!=NULL) { cout<<p1->name<<'/t'<<p1->avent<<'/t'<<p1->score<<'/t'<<p1->ca<<endl;    p1=p1->next; }  }void find3(){  creat3();  Message *p1;p1=head7;int sign=0;      //设置的标记变量 cout<<"请输入要查询的参赛运动员姓名和比赛项目名称! "<<endl;      char na[20]; char info[20];    //查询字符型数据条件 cin>>na>>info; while(p1!=NULL)   { if((p1->name==na)&&(p1->avent==info))  {sign=1;break;}         p1= p1->next;   }       if (sign==0)     cout<<"没有找到要查询的记录!"<<endl;    else       cout<<p1->name<<'/t'<<p1->avent<<'/t'<<p1->score<<'/t'<<p1->ca<<endl; }int find()//进行查找{ cout<<endl; cout<<"/t/t/t请输入要查询的信息:"<<endl; cout<<"/t/t比赛项目信息查询   请按:1"<<endl; cout<<"/t/t运动员信息查询    请按:2"<<endl; cout<<"/t/t比赛赛事信息查询   请按:3"<<endl; int j; cin>>j; switch(j) { case 1:find1();break; case 2:find2();break; case 3:find3();break; default:cout<<"输入数据有误!"<<endl; } return 0;}int input(){ cout<<endl; cout<<"/t/t/t请输入要输入的信息:"<<endl; cout<<"/t/t比赛项目信息输入   请按:1"<<endl; cout<<"/t/t运动员信息输入    请按:2"<<endl; cout<<"/t/t比赛赛事信息输入   请按:3"<<endl; int j; cin>>j; switch(j) { case 1:input1();break; case 2:input2();break; case 3:input3();break; default:cout<<"输入数据有误!"<<endl; } return 0;}int print(){ cout<<endl; cout<<"/t/t/t请输入要显示输出的信息:"<<endl; cout<<"/t/t比赛项目信息显示输出   请按:1"<<endl; cout<<"/t/t运动员信息显示输出    请按:2"<<endl; cout<<"/t/t比赛赛事信息显示输出   请按:3"<<endl; int j; cin>>j; switch(j) { case 1:print1();break; case 2:print2();break; case 3:print3();break; default:cout<<"输入数据有误!"<<endl; } return 0;}int change(){ cout<<endl; cout<<"/t/t/t请输入要修改的信息:"<<endl; cout<<"/t/t比赛项目信息修改   请按:1"<<endl; cout<<"/t/t运动员信息修改    请按:2"<<endl; cout<<"/t/t比赛赛事信息修改   请按:3"<<endl; int j; cin>>j; switch(j) { case 1:change1();break; case 2:change2();break; case 3:change3();break; default:cout<<"输入数据有误!"<<endl; } return 0;}int deleted(){ cout<<endl; cout<<"/t/t/t请输入要删除的信息:"<<endl; cout<<"/t/t比赛项目信息删除   请按:1"<<endl; cout<<"/t/t运动员信息删除    请按:2"<<endl; cout<<"/t/t比赛赛事信息删除   请按:3"<<endl; int j; cin>>j; switch(j) { case 1:delete1();break; case 2:delete2();break; case 3:delete3();break; default:cout<<"输入数据有误!"<<endl; } return 0;}int main(){  int i; do { fun1();cin>>i;  switch(i) { case 1:input();break; case 2:change();break; case 3:deleted();break; case 4:find();break; case 5: print();break; case 6: return 0; default:cout<<"您输入数据有误!"<<endl; } }while(1);return 0;}

C++,运动会,管理系统

C++,运动会,管理系统

C++,运动会,管理系统

C++,运动会,管理系统

C++,运动会,管理系统

C++,运动会,管理系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表