C++實現(xiàn)學(xué)校運動會管理系統(tǒng)
更新時間:2020年04月08日 10:06:48 作者:自動2121馬飛躍
這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)學(xué)校運動會管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C++實現(xiàn)學(xué)校運動會管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
void fun1()
{ cout<<"******************************"<<endl;
cout<<endl;
cout<<"******學(xué)校運動會管理系統(tǒng)******"<<endl;
cout<<"----數(shù)據(jù)錄入 請按:1----"<<endl;
cout<<"----數(shù)據(jù)修改 請按:2----"<<endl;
cout<<"----數(shù)據(jù)刪除 請按:3----"<<endl;
cout<<"----數(shù)據(jù)查詢 請按:4----"<<endl;
cout<<"----數(shù)據(jù)顯示 請按:5----"<<endl;
cout<<"----退出系統(tǒng) 請按:6----"<<endl;
cout<<endl;
cout<<"*******************************"<<endl;
cout<<endl;
cout<<"*****請輸入一個數(shù)據(jù),并按回車鍵!*****"<<endl;
}
class Match
{
public:
Match *next;//為創(chuàng)建鏈表做準(zhǔn)備
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<<"是否繼續(xù)輸入,如果繼續(xù)鍵入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() //對比賽項目相關(guān)信息修改
{
cout<<"您正在進(jìn)行修改比賽項目有關(guān)事項操作!"<<endl;
creat();
Match *p1;
p1=head1;
cout<<"請輸入要修改比賽項目的編號:"<<endl;
int number1; //要修改的比賽項目編號
int sign=0; //設(shè)置的標(biāo)記變量
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<<"請輸入對應(yīng)信息的編號"<<endl;
int a;
int nu; //新的整形數(shù)據(jù)
char info[20]; //新的字符數(shù)組
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() //對比賽項目相關(guān)信息進(jìn)行刪除
{ creat();
Match *p1,*p2;
p2=p1=head1;
cout<<"請選擇要刪除比賽項目的那些信息"<<endl;
cout<<"------刪除比賽項目的編號----1"<<endl;
cout<<"------刪除比賽項目的名稱----2"<<endl;
cout<<"請輸入對應(yīng)信息的編號"<<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;//設(shè)置的標(biāo)記變量
cout<<"請選擇要查詢比賽項目的哪些信息"<<endl;
cout<<"------按比賽項目的編號查詢----1"<<endl;
cout<<"------按比賽項目的名稱查詢----2"<<endl;
cout<<"------按比賽時間查詢----3"<<endl;
cout<<"------按比賽地點查詢----4"<<endl;
cout<<"請輸入對應(yīng)信息的編號"<<endl;
int a;
int nu; //查詢整形數(shù)據(jù)條件
char info[20]; //查詢字符型數(shù)據(jù)條件
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<<"是否繼續(xù)輸入,如果繼續(xù)鍵入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() //對運動員相關(guān)信息修改
{
cout<<"您正在進(jìn)行修改運動員基本信息操作!"<<endl;
creat2();
Athlete *p1;
p1=head4;
cout<<"請輸入要修改運動員的編號:"<<endl;
int number1; //要修改的運動員編號
int sign=0; //設(shè)置的標(biāo)記變量
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<<"請輸入對應(yīng)信息的編號"<<endl;
int a;
int nu; //新的整形數(shù)據(jù)
char info[20]; //新的字符數(shù)組
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()//對運動員相關(guān)信息進(jìn)行刪除
{ creat2();
Athlete *p1,*p2;
p2=p1=head4;
cout<<"請選擇要刪除運動員的哪些信息"<<endl;
cout<<"------刪除運動員的編號----1"<<endl;
cout<<"------刪除運動員的姓名----2"<<endl;
cout<<"請輸入對應(yīng)信息的編號"<<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;//設(shè)置的標(biāo)記變量
cout<<"請選擇要查詢運動員的哪些信息"<<endl;
cout<<"------按運動員的編號查詢----1"<<endl;
cout<<"------按運動員的姓名查詢----2"<<endl;
cout<<"請輸入對應(yīng)信息的編號"<<endl;
int a;
int nu; //查詢整形數(shù)據(jù)條件
char info[20]; //查詢字符型數(shù)據(jù)條件
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<<"請分別輸入?yún)①愡\動員姓名、比賽名稱、比賽成績、比賽名次."<<endl;
cin>>c.name>>c.avent>>c.score>>c.ca;
c.next=NULL;
fout.write((char *)&c,sizeof(Message));
cout<<"是否繼續(xù)輸入,如果繼續(xù)鍵入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<<"您正在進(jìn)行修改比賽賽事有關(guān)事項操作!"<<endl;
creat3();
Message *p1;
p1=head7;
cout<<"請輸入?yún)①愡\動員姓名及參賽項目名稱! "<<endl;
char na[20];
char info[20];
int sign=0;//設(shè)置的標(biāo)記變量
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<<"請輸入對應(yīng)信息的編號"<<endl;
int a;
int nu; //新的整形數(shù)據(jù)
char info[20]; //新的字符數(shù)組
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() //對比賽賽事相關(guān)信息進(jìn)行刪除
{ 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; //設(shè)置的標(biāo)記變量
cout<<"請輸入要查詢的參賽運動員姓名和比賽項目名稱! "<<endl;
char na[20];
char info[20]; //查詢字符型數(shù)據(jù)條件
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()//進(jìn)行查找
{
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<<"輸入數(shù)據(jù)有誤!"<<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<<"輸入數(shù)據(jù)有誤!"<<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<<"輸入數(shù)據(jù)有誤!"<<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<<"輸入數(shù)據(jù)有誤!"<<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<<"輸入數(shù)據(jù)有誤!"<<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<<"您輸入數(shù)據(jù)有誤!"<<endl;
}
}while(1);
return 0;
}






推薦幾篇文章:
關(guān)于管理系統(tǒng)的更多內(nèi)容請點擊《管理系統(tǒng)專題》進(jìn)行學(xué)習(xí)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言使用scanf連續(xù)輸入字符串出現(xiàn)的問題
這篇文章主要介紹了C語言使用scanf連續(xù)輸入字符串出現(xiàn)的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
C++如何實現(xiàn)BitMap數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了C++如何實現(xiàn)BitMap數(shù)據(jù)結(jié)構(gòu),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

