您好,登錄后才能下訂單哦!
小編給大家分享一下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++實現學校運動會管理系統的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。