C++程序设计关于运动会报名系统_第1页
C++程序设计关于运动会报名系统_第2页
C++程序设计关于运动会报名系统_第3页
C++程序设计关于运动会报名系统_第4页
C++程序设计关于运动会报名系统_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课 程 设 计 报 告课程设计名称:运动会报名系统院 别:三 系姓 名:何 为 勇班 级:1 5 软 件 二学 号:2 0 1 5 0 3 0 5 2 0 8成 绩: 指 导 教 师:梁 风 兰 开 课 时 间:2015-2016学年2学期一需求分析1.问题描述:学校要举行2015春季运动会,设计一个运动会报名系统。假设该运动会有4个项目(100M 跑步、跳高、跳远、200M跑步),每个项目参加的人数不限,但每个学生最多只能参加其中的两项。设计的系统能够完成的基本信息进行录入、显示、修改、删除、保存等操作的管理。2.功能要求:(1)本系统的报名信息类应当包括:学号、姓名、性别、年龄、参加项目

2、名称。(2)本系统显示这样的菜单:请选择系统功能项:a 报名学生基本信息录入b 报名学生基本信息显示c 报名学生基本信息保存d 报名学生基本信息删除e 报名学生基本信息修改(要求先输入密码)f 报名学生基本信息查询(1)按学号查询(2)按姓名查询(3)按性别查询(4)按年龄查询(5)按项目查询g. 退出系统(3)执行一个具体的功能之后,程序将重新显示菜单。(4)将报名的基本信息保存到文件中。(5)进入系统之前要先输入密码。二概要设计 根据要求,系统可以分为数据录入,数据修改,数据删除,数据查询,数据显示,退出系统。(1) 数据录入:管理员通过这个系统录入参赛人员的信息,赛事信息,比赛成绩等。(

3、2) 数据修改:管理员首先要输入密码,密码正确后可对录入的信息进行修改。(3) 数据删除:根据需求,选择删除。(4) 数据查询:管理员根据需求查询所需对象。(5) 数据显示:显示所需要的数据内容。(6) 退出系统:结束操作。运动会报名系统运动会报名系统功能模块图: 运动会报名系统运动会信息比赛成绩比赛信息 信 显示 查询 删除修改录入 录入 修改 删除 查询 显示 三详细设计1.包含的类:关于比赛项目的类 (1)class Matchpublic: Match *next;/为创建链表做准备 int number; /比赛项目编号 char call10; /比赛项目名称 char time1

4、0; /比赛时间 char place20; /比赛地点 friend void input1(); 关于运动员的类(2) class Athletepublic: Athlete *next; int number; /运动员的编号 char name10; /运动员的姓名 char part20; /运动员所属工作单位或省份 char sex20; /运动员性别 int age; /运动员年龄 friend void input2(); 关于运动员成绩的类(3)class Messagepublic: Message *next; char name10; /运动员姓名 char aven

5、t10; /运动员参加的某比赛项目名称 int score ; /成绩 int ca; /名次 friend void input3();2.包含以下函数:(1)数据录入函数: void input1()(2)数据修改函数: int change1()(3)删除比赛项目信息函数: int delete1()(4)数据查询函数: void find1()(5)友元函数: friend int input2()(6)修改运动员相关信息函数: int change2() (7)删除运动员相关信息函数: int delete2()(8)查询运动员相关信息函数: int find2()(9)友元函数:

6、friend int input3()(10)修改赛事信息函数: int change3()(11)删除赛事信息 int delete3()(12)查询参赛人员姓名和项目: int find3()(13)显示数据函数: int print()四测试与分析1. 输入信息:2. 修改信息:3. 查询信息:4. 显示信息:5. 退出系统:五总结在这为期1周的时间内,我完成了运动会报名系统的程序设计。虽然在上个学期中,我们已经学习了C 语言程序设计这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,不断查阅资料来设计一项程序。这次设计

7、,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快

8、而准确的画出来。在这次课程设计中,我首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。终于功夫不负有心人,我成功了!在参考书上,我们不仅参考了曾经学过的高敬阳主编的c语言程序设计,还找到了由谭浩强主编的第三版c语言进行参考。当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死

9、循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。一周的小学期即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导。总而言之,这次C+程序设计实践让我收获很大。六全部代码#include<iostream>#include<fstream>#include<string>using namespace std;void fun1() cout<<"*"<<endl; cout<<endl; cout<<"*运动会报名系统*

10、"<<endl;cout<<" "<<endl;cout<<" 请按1进行 - 数据录入 "<<endl;cout<<" 请按2进行 - 数据修改 "<<endl;cout<<" 请按3进行 - 数据删除 "<<endl;cout<<" 请按4进行 - 数据查询 "<<endl;cout<<" 请按5进行 - 数据显示 "&

11、lt;<endl;cout<<" 请按6进行 - 退出系统 "<<endl;cout<<" "<<endl;cout<<endl;cout<<"*"<<endl;cout<<endl;cout<<"*请输入一个数据,并按回车键!*"<<endl;class Matchpublic:Match *next;/为创建链表做准备int number; /比赛项目编号char call10; /比赛

12、项目名称char time10; /比赛时间char place20; /比赛地点 friendvoid 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 *)&

13、amp;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

14、(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() /对比赛项目相关信息修改 string password;cout<<"请输入密码"<<endl;cin>>password;if(password="123456

15、7890") 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)

16、 cout<<"没有找到要修改的记录!"<<endl; else cout<<"请选择要修改比赛项目的那些信息"<<endl;cout<<"-修改比赛项目的编号-1"<<endl;cout<<"-修改比赛项目的名称-2"<<endl;cout<<"-修改比赛时间-3"<<endl;cout<<"-修改比赛地点-4"<<endl;cou

17、t<<"请输入对应信息的编号"<<endl;int a;int nu; /新的整形数据char info20; /新的字符数组cin>>a;switch(a)case 1:cout<<"请输入新的比赛编号:"<<endl; cin>>nu; p1->number=nu; cout<<"比赛项目编号修改成功!"<<endl; break; case 2:cout<<"请输入新的比赛项目名称:"<&l

18、t;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<<"请输入新的比赛地点:"<

19、;<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; else cout<<"密码错误"<<endl;

20、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;

21、char cal10; 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;

22、 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<

23、;<"请分别输出比赛项目编号、名称、比赛时间、比赛地点."<<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;/设置的标

24、记变量 cout<<"请选择要查询比赛项目的哪些信息"<<endl;cout<<"-按比赛项目的编号查询-1"<<endl;cout<<"-按比赛项目的名称查询-2"<<endl;cout<<"-按比赛时间查询-3"<<endl;cout<<"-按比赛地点查询-4"<<endl;cout<<"请输入对应信息的编号"<<endl;int

25、 a;int nu; /查询整形数据条件char info20; /查询字符型数据条件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<

26、<'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<<&

27、quot;没有找到要查询的记录!"<<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

28、(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<<&quo

29、t;请输入要查询的比赛地点:"<<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<<

30、;'t'<<p1->place<<endl;break;class Athletepublic:Athlete *next;int number; /运动员的编号char name10; /运动员的姓名 char part20; /运动员所属工作单位或省份char sex20; /运动员性别int age; /运动员年龄friend void input2();void input2() ofstream fout("e:运动员.dat",ios:app);char ch;Athlete b;docout<<&quo

31、t;请分别输入运动员编号、姓名、性别、年龄、所属省份或工作单位."<<endl; cin>>b.number>>>>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;

32、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,siz

33、eof(Athlete); fin.close();int change2() /对运动员相关信息修改 string password;cout<<"请输入密码"<<endl;cin>>password;if(password="1234567890")cout<<"您正在进行修改运动员基本信息操作!"<<endl; creat2(); Athlete *p1; p1=head4; cout<<"请输入要修改运动员的编号:"<<en

34、dl; 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"<&

35、lt;endl; cout<<"-修改运动员的姓名-2"<<endl; cout<<"-修改运动员所属工作单位或省份-3"<<endl; cout<<"-修改运动员性别-4"<<endl; cout<<"-修改运动员年龄-4"<<endl; cout<<"请输入对应信息的编号"<<endl;int a;int nu; /新的整形数据char info20; /新的字符数组 ci

36、n>>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<<"运动员姓名修改成功!"<

37、<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<<"运动员性别修改成功!

38、"<<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(); re

39、turn 0;elsecout<<"输入密码错误"<<endl;int delete2()/对运动员相关信息进行删除 creat2(); Athlete *p1,*p2; p2=p1=head4;cout<<"请选择要删除运动员的哪些信息"<<endl;cout<<"-删除运动员的编号-1"<<endl;cout<<"-删除运动员的姓名-2"<<endl; cout<<"请输入对应信息的编号&quo

40、t;<<endl; int n;cin>>n; int num,flag=0; char na10; 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

41、) 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

42、 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 info20;

43、/查询字符型数据条件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->na

44、me<<'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<<

45、"没有找到要查询的记录!"<<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<<"请分

46、别输出运动员编号、姓名、所属省份或工作单位、性别、年龄."<<endl; while(p1!=NULL) cout<<p1->number<<'t'<<p1->name<<'t'<<p1->part<<'t'<<p1->sex<<'t'<<p1->age<<endl; p1=p1->next; class Messagepublic:Message *ne

47、xt;char name10; /运动员姓名char avent10; /运动员参加的某比赛项目名称int score ; /成绩int ca; /名次 friend void input3();void input3() ofstream fout("e:比赛赛事.dat",ios:app);char ch;Message c;docout<<"请分别输入参赛运动员姓名、比赛名称、比赛成绩、比赛名次."<<endl; cin>>>>c.avent>>c.score>>c

48、.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<&

49、lt;"文件打开失败!"<<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() /修改比赛赛事信息 string password;cout<<"请输入密码"<<endl

50、;cin>>password;if(password="1234567890")cout<<"您正在进行修改比赛赛事有关事项操作!"<<endl; creat3(); Message *p1; p1=head7; cout<<"请输入参赛运动员姓名及参赛项目名称! "<<endl; char na20; char info20; int sign=0;/设置的标记变量 cin>>na>>info; while(p1!=NULL) if(p1->n

51、ame=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<<

52、"-修改比赛成绩-3"<<endl; cout<<"-修改比赛名次-4"<<endl; cout<<"请输入对应信息的编号"<<endl;int a;int nu; /新的整形数据char info20; /新的字符数组 cin>>a;switch(a)case 1:cout<<"请输入新的参赛运动员姓名:"<<endl; cin>>info; strcpy(p1->name,info); cout&l

53、t;<"参赛运动员姓名修改成功!"<<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<<

54、;"比赛项目成绩修改成功!"<<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->nex

55、t; fout.close();return 0;elsecout<<"输入密码错误"<<endl;int delete3() /对比赛赛事相关信息进行删除 creat3(); Message *p1,*p2; p2=p1=head7; cout<<"请输入要删除的参赛运动员姓名及比赛项目名称:"<<endl; int flag=0; char na20; char info20; cin>>na>>info; while(p1!=NULL) if(p1->name=na)&a

56、mp;&(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<<"请分别输出比赛参赛运动员姓名、比赛项目名称、比赛成绩、比赛名次."<&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论