本文实例为大家分享了C++实现学校运动会管理系统的具体代码,供大家参考,具体内容如下
#include
#include
#include
using namespace std;
voID fun1()
{ cout<<"******************************"< cout< cout<<"******学校运动会管理系统******"< cout<<"----数据录入 请按:1----"< cout<<"----数据修改 请按:2----"< cout<<"----数据删除 请按:3----"< cout<<"----数据查询 请按:4----"< cout<<"----数据显示 请按:5----"< cout<<"----退出系统 请按:6----"< cout< cout<<"*******************************"< cout< cout<<"*****请输入一个数据,并按回车键!*****"< } 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<<"请分别输入比赛项目编号、名称、比赛时间、比赛地点."< cin>>a.number>>a.call>>a.place>>a.time; a.next=NulL; fout.write((char *)&a,sizeof(Match)); cout<<"是否继续输入,如果继续键入Y|y"< 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<<"文件打开失败!"< } 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<<"您正在进行修改比赛项目有关事项操作!"< creat(); Match *p1; p1=head1; cout<<"请输入要修改比赛项目的编号:"< int number1; //要修改的比赛项目编号 int sign=0; //设置的标记变量 cin>>number1; while(p1!=NulL) { if(p1->number==number1) {sign=1;break;} p1= p1->next; } if (sign==0) cout<<"没有找到要修改的记录!"< else { cout<<"请选择要修改比赛项目的那些信息"< cout<<"------修改比赛项目的编号----1"< cout<<"------修改比赛项目的名称----2"< cout<<"------修改比赛时间----3"< cout<<"------修改比赛地点----4"< cout<<"请输入对应信息的编号"< int a; int nu; //新的整形数据 char info[20]; //新的字符数组 cin>>a; switch(a) { case 1:cout<<"请输入新的比赛编号:"< cin>>nu; p1->number=nu; cout<<"比赛项目编号修改成功!"< break; case 2:cout<<"请输入新的比赛项目名称:"< cin>>info; strcpy(p1->call,info); cout<<"比赛项目名称修改成功!"< break; case 3:cout<<"请输入新的比赛时间:"< cin>>info; strcpy(p1->time,info); cout<<"比赛项目时间修改成功!"< break; case 4:cout<<"请输入新的比赛地点:"< cin>>info; strcpy(p1->place,info); cout<<"比赛项目地点修改成功!"< 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<<"请选择要删除比赛项目的那些信息"< cout<<"------删除比赛项目的编号----1"< cout<<"------删除比赛项目的名称----2"< cout<<"请输入对应信息的编号"< 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<<"没有找到要删除的记录!"< 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<<"没有找到要删除的记录!"< else p2->next=p1->next; } ofstream fout("e:比赛项目.dat",sizeof(Match)); p1=p1->next; } fout.close(); return 0; } voID print1() { creat(); Match *p1=head1; cout<<"请分别输出比赛项目编号、名称、比赛时间、比赛地点."< while(p1!=NulL) { cout< p1=p1->next; } } voID find1() { creat(); Match *p1; p1=head1; int sign=0;//设置的标记变量 cout<<"请选择要查询比赛项目的哪些信息"< cout<<"------按比赛项目的编号查询----1"< cout<<"------按比赛项目的名称查询----2"< cout<<"------按比赛时间查询----3"< cout<<"------按比赛地点查询----4"< cout<<"请输入对应信息的编号"< int a; int nu; //查询整形数据条件 char info[20]; //查询字符型数据条件 cin>>a; switch(a) { case 1:cout<<"请输入要查询的比赛编号:"< cin>>nu; while(p1!=NulL) { if(p1->number==nu) {sign=1;break;} p1= p1->next; } if (sign==0) cout<<"没有找到要查询的记录!"< else cout< break; case 2:cout<<"请输入要查询的比赛项目名称:"< cin>>info; while(p1!=NulL) { if(p1->call==info) {sign=1;break;} p1= p1->next; } if (sign==0) cout<<"没有找到要查询的记录!"< else cout< case 3:cout<<"请输入要查询的比赛时间:"< cin>>info; while(p1!=NulL) { if(!strcmp(p1->time,info)) {sign=1;break;} p1= p1->next; } if (sign==0) cout<<"没有找到要查询的记录!"< else cout< case 4:cout<<"请输入要查询的比赛地点:"< cin>>info; while(p1!=NulL) { if(!strcmp(p1->place,info)) {sign=1;break;} p1= p1->next; } if (sign==0) cout<<"没有找到要查询的记录!"< else cout< } } 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<<"请分别输入运动员编号、姓名、性别、年龄、所属省份或工作单位."< cin>>b.number>>b.name>>b.sex>>b.age>>b.part; b.next=NulL; fout.write((char *)&b,sizeof(Athlete)); cout<<"是否继续输入,如果继续键入Y|y"< 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<<"文件打开失败!"< } 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<<"您正在进行修改运动员基本信息操作!"< creat2(); Athlete *p1; p1=head4; cout<<"请输入要修改运动员的编号:"< int number1; //要修改的运动员编号 int sign=0; //设置的标记变量 cin>>number1; while(p1!=NulL) { if(p1->number==number1) {sign=1;break;} p1= p1->next; } if (sign==0) cout<<"没有找到要修改的记录!"< else { cout<<"请选择要修改运动员的哪些信息"< cout<<"------修改运动员的编号----1"< cout<<"------修改运动员的姓名----2"< cout<<"------修改运动员所属工作单位或省份----3"< cout<<"------修改运动员性别----4"< cout<<"------修改运动员年龄----4"< cout<<"请输入对应信息的编号"< int a; int nu; //新的整形数据 char info[20]; //新的字符数组 cin>>a; switch(a) { case 1:cout<<"请输入新的运动员编号:"< cin>>nu; p1->number=nu; cout<<"运动员的编号修改成功!"< break; case 2:cout<<"请输入新的运动员姓名:"< cin>>info; strcpy(p1->name,info); cout<<"运动员姓名修改成功!"< break; case 3:cout<<"请输入新的运动员所属工作单位或省份:"< cin>>info; strcpy(p1->part,info); cout<<"运动员所属工作单位或省份修改成功!"< break; case 4:cout<<"请输入新的性别:"< cin>>info; strcpy(p1->sex,info); cout<<"运动员性别修改成功!"< break; case 5:cout<<"请输入新的年龄:"< cin>>nu; p1->age=nu, cout<<"运动员年龄修改成功!"< 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<<"请选择要删除运动员的哪些信息"< cout<<"------删除运动员的编号----1"< cout<<"------删除运动员的姓名----2"< cout<<"请输入对应信息的编号"< 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<<"没有找到要删除的记录!"< 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<<"没有找到要删除的记录!"< else p2->next=p1->next; } ofstream fout("e:运动员.dat",sizeof(Athlete)); p1=p1->next; } fout.close(); return 0; } voID find2() { creat2(); Athlete *p1; p1=head4; int sign=0;//设置的标记变量 cout<<"请选择要查询运动员的哪些信息"< cout<<"------按运动员的编号查询----1"< cout<<"------按运动员的姓名查询----2"< cout<<"请输入对应信息的编号"< int a; int nu; //查询整形数据条件 char info[20]; //查询字符型数据条件 cin>>a; switch(a) { case 1:cout<<"请输入要查询的运动员编号:"< cin>>nu; while(p1!=NulL) { if(p1->number==nu) {sign=1;break;} p1= p1->next; } if (sign==0) cout<<"没有找到要查询的记录!"< else cout< break; case 2:cout<<"请输入要查询的运动员姓名:"< cin>>info; while(p1!=NulL) { if(p1->name==info) {sign=1;break;} p1= p1->next; } if (sign==0) cout<<"没有找到要查询的记录!"< else cout< break; } } voID print2() { creat2(); Athlete *p1=head4; cout<<"请分别输出运动员编号、姓名、所属省份或工作单位、性别、年龄."< while(p1!=NulL) { cout< 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<<"请分别输入参赛运动员姓名、比赛名称、比赛成绩、比赛名次."< cin>>c.name>>c.avent>>c.score>>c.ca; c.next=NulL; fout.write((char *)&c,sizeof(Message)); cout<<"是否继续输入,如果继续键入Y|y"< 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<<"文件打开失败!"< } 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<<"您正在进行修改比赛赛事有关事项操作!"< creat3(); Message *p1; p1=head7; cout<<"请输入参赛运动员姓名及参赛项目名称! "< 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<<"没有找到要修改的记录!"< else { cout<<"请选择要修改比赛赛事的哪些信息"<