C++程序设计关于运动会报名系统

上传人:优*** 文档编号:48222265 上传时间:2022-01-01 格式:DOC 页数:34 大小:4.95MB
收藏 版权申诉 举报 下载
C++程序设计关于运动会报名系统_第1页
第1页 / 共34页
C++程序设计关于运动会报名系统_第2页
第2页 / 共34页
C++程序设计关于运动会报名系统_第3页
第3页 / 共34页
资源描述:

《C++程序设计关于运动会报名系统》由会员分享,可在线阅读,更多相关《C++程序设计关于运动会报名系统(34页珍藏版)》请在装配图网上搜索。

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 ca

4、ll10; /比赛项目名称 char time10; /比赛时间 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

5、name10; /运动员姓名 char avent10; /运动员参加的某比赛项目名称 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)查询运动员相关信息

6、函数: int find2()(9)友元函数: 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#include#includeusing namespace std;void fun1() cout*endl; coutendl; cout*运动会报名系统*endl;cout endl;cout 请按1进行 - 数据录入 endl;cout 请按2进行 - 数据修改 endl;cout 请按3进行

10、 - 数据删除 endl;cout 请按4进行 - 数据查询 endl;cout 请按5进行 - 数据显示 endl;cout 请按6进行 - 退出系统 endl;cout endl;coutendl;cout*endl;coutendl;cout*请输入一个数据,并按回车键!*endl;class Matchpublic:Match *next;/为创建链表做准备int number; /比赛项目编号char call10; /比赛项目名称char time10; /比赛时间char place20; /比赛地点 friendvoid input1();void input1() ofstr

11、eam fout(e:比赛项目.dat,ios:app);char ch;Match a;do cout请分别输入比赛项目编号、名称、比赛时间、比赛地点.a.numbera.calla.placea.time; a.next=NULL; fout.write(char *)&a,sizeof(Match); cout是否继续输入,如果继续键入Y|ych;while(ch=y|ch=Y); fout.close();Match *head1;void creat() head1=NULL; Match *p,*q=head1; ifstream fin(e:比赛项目.dat,ios:in); i

12、f(!fin) cout文件打开失败!next=p;q=p; p=new Match; fin.read(char*)p,sizeof(Match); fin.close();int change1() /对比赛项目相关信息修改 string password;cout请输入密码password;if(password=1234567890) cout您正在进行修改比赛项目有关事项操作!endl; creat(); Match *p1; p1=head1; cout请输入要修改比赛项目的编号:number1; while(p1!=NULL) if(p1-number=number1) sign

13、=1;break; p1= p1-next; if (sign=0) cout没有找到要修改的记录!endl; else cout请选择要修改比赛项目的那些信息endl;cout-修改比赛项目的编号-1endl;cout-修改比赛项目的名称-2endl;cout-修改比赛时间-3endl;cout-修改比赛地点-4endl;cout请输入对应信息的编号a;switch(a)case 1:cout请输入新的比赛编号:nu; p1-number=nu; cout比赛项目编号修改成功!endl; break; case 2:cout请输入新的比赛项目名称:info; strcpy(p1-call,i

14、nfo);cout比赛项目名称修改成功!endl; break; case 3:cout请输入新的比赛时间:info;strcpy(p1-time,info);cout比赛项目时间修改成功!endl; break; case 4:cout请输入新的比赛地点:info;strcpy(p1-place,info);cout比赛项目地点修改成功!next; fout.close(); return 0; else cout密码错误endl;int delete1() /对比赛项目相关信息进行删除 creat(); Match *p1,*p2; p2=p1=head1;cout请选择要删除比赛项目的那

15、些信息endl;cout-删除比赛项目的编号-1endl;cout-删除比赛项目的名称-2endl; cout请输入对应信息的编号n; int num,flag=0; char cal10; switch(n) case 1: cinnum; while(p1!=NULL) if(p1-number=num) flag=1;break; p2=p1; p1= p1-next; if (flag=0) cout没有找到要删除的记录!next=p1-next;case 2: cincal; while(p1!=NULL) if(!strcmp(p1-call,cal) flag=1;break;

16、p2=p1; p1= p1-next; if (flag=0) cout没有找到要删除的记录!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) coutnumbertcallttimet

17、placenext; void find1() creat(); Match *p1; p1=head1; int sign=0;/设置的标记变量 cout请选择要查询比赛项目的哪些信息endl;cout-按比赛项目的编号查询-1endl;cout-按比赛项目的名称查询-2endl;cout-按比赛时间查询-3endl;cout-按比赛地点查询-4endl;cout请输入对应信息的编号a;switch(a)case 1:cout请输入要查询的比赛编号:nu; while(p1!=NULL) if(p1-number=nu) sign=1;break; p1= p1-next; if (sign

18、=0) cout没有找到要查询的记录!endl; else coutnumbertcallttimetplaceendl; break; case 2:cout请输入要查询的比赛项目名称:info; while(p1!=NULL) if(p1-call=info) sign=1;break; p1= p1-next; if (sign=0) cout没有找到要查询的记录!endl; else coutnumbertcallttimetplaceendl; break; case 3:cout请输入要查询的比赛时间:info;while(p1!=NULL) if(!strcmp(p1-time,

19、info) sign=1;break; p1= p1-next; if (sign=0) cout没有找到要查询的记录!endl; else coutnumbertcallttimetplaceendl; break; case 4:cout请输入要查询的比赛地点:info;while(p1!=NULL) if(!strcmp(p1-place,info) sign=1;break; p1= p1-next; if (sign=0) cout没有找到要查询的记录!endl; else coutnumbertcallttimetplaceendl;break;class Athletepubli

20、c: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请分别输入运动员编号、姓名、性别、年龄、所属省份或工作单位.b.numberb.nameb.sexb.ageb.part;b.next=NULL; fout.write(char *)&

21、b,sizeof(Athlete); cout是否继续输入,如果继续键入Y|ych;while(ch=y|ch=Y);Athlete *head4;void creat2() head4=NULL; Athlete *p,*q=head4;ifstream fin(e:运动员.dat,ios:in); if(!fin)cout文件打开失败!next=p;q=p; p=new Athlete; fin.read(char*)p,sizeof(Athlete); fin.close();int change2() /对运动员相关信息修改 string password;cout请输入密码passw

22、ord;if(password=1234567890)cout您正在进行修改运动员基本信息操作!endl; creat2(); Athlete *p1; p1=head4; cout请输入要修改运动员的编号:number1; while(p1!=NULL) if(p1-number=number1) sign=1;break; p1= p1-next; if (sign=0) cout没有找到要修改的记录!endl; else cout请选择要修改运动员的哪些信息endl; cout-修改运动员的编号-1endl; cout-修改运动员的姓名-2endl; cout-修改运动员所属工作单位或省

23、份-3endl; cout-修改运动员性别-4endl; cout-修改运动员年龄-4endl; cout请输入对应信息的编号a;switch(a)case 1:cout请输入新的运动员编号:nu; p1-number=nu; cout运动员的编号修改成功!endl; break; case 2:cout请输入新的运动员姓名:info; strcpy(p1-name,info);cout运动员姓名修改成功!endl; break;case 3:cout请输入新的运动员所属工作单位或省份:info;strcpy(p1-part,info);cout运动员所属工作单位或省份修改成功!endl; b

24、reak;case 4:cout请输入新的性别:info;strcpy(p1-sex,info);cout运动员性别修改成功!endl; break;case 5:cout请输入新的年龄:nu;p1-age=nu,cout运动员年龄修改成功!next; fout.close(); return 0;elsecout输入密码错误endl;int delete2()/对运动员相关信息进行删除 creat2(); Athlete *p1,*p2; p2=p1=head4;cout请选择要删除运动员的哪些信息endl;cout-删除运动员的编号-1endl;cout-删除运动员的姓名-2endl; c

25、out请输入对应信息的编号n; int num,flag=0; char na10; switch(n) case 1: cinnum; while(p1!=NULL) if(p1-number=num) flag=1;break; p2=p1; p1= p1-next; if (flag=0) cout没有找到要删除的记录!next=p1-next;case 2: cinna; while(p1!=NULL) if(!strcmp(p1-name,na) flag=1;break; p2=p1; p1= p1-next; if (flag=0) cout没有找到要删除的记录!next=p1-

26、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-按运动员的编号查询-1endl;cout-按运动员的姓名查询-2endl;cout请输入对应信息的编号a;switch(a)case 1:cou

27、t请输入要查询的运动员编号:nu; while(p1!=NULL) if(p1-number=nu) sign=1;break; p1= p1-next; if (sign=0) cout没有找到要查询的记录!endl; else coutnumbertnametparttsextageendl; break;case 2:cout请输入要查询的运动员姓名:info; while(p1!=NULL) if(p1-name=info) sign=1;break; p1= p1-next; if (sign=0) cout没有找到要查询的记录!endl; else coutnumbertnamet

28、parttsextageendl; break;void print2() creat2(); Athlete *p1=head4; cout请分别输出运动员编号、姓名、所属省份或工作单位、性别、年龄.endl; while(p1!=NULL) coutnumbertnametparttsextagenext; class Messagepublic:Message *next;char name10; /运动员姓名char avent10; /运动员参加的某比赛项目名称int score ; /成绩int ca; /名次 friend void input3();void input3()

29、ofstream fout(e:比赛赛事.dat,ios:app);char ch;Message c;docout请分别输入参赛运动员姓名、比赛名称、比赛成绩、比赛名次.c.namec.aventc.scorec.ca;c.next=NULL; fout.write(char *)&c,sizeof(Message); cout是否继续输入,如果继续键入Y|ych;while(ch=y|ch=Y);fout.close();Message *head7;void creat3() head7=NULL; Message *p,*q=head7;ifstream fin(e:比赛赛事.dat,

30、ios:in); if(!fin)cout文件打开失败!next=p;q=p; p=new Message; fin.read(char*)p,sizeof(Message); fin.close();int change3() /修改比赛赛事信息 string password;cout请输入密码password;if(password=1234567890)cout您正在进行修改比赛赛事有关事项操作!endl; creat3(); Message *p1; p1=head7; cout请输入参赛运动员姓名及参赛项目名称! nainfo; while(p1!=NULL) if(p1-name

31、=na)&(p1-avent=info) sign=1;break; p1= p1-next; if (sign=0) cout没有找到要修改的记录!endl; else cout请选择要修改比赛赛事的哪些信息endl; cout-修改参赛运动员的姓名-1endl; cout-修改比赛项目的名称-2endl; cout-修改比赛成绩-3endl; cout-修改比赛名次-4endl; cout请输入对应信息的编号a;switch(a)case 1:cout请输入新的参赛运动员姓名:info; strcpy(p1-name,info); cout参赛运动员姓名修改成功!endl; break;c

32、ase 2:cout请输入新的比赛项目名称:info; strcpy(p1-avent,info); cout比赛项目名称修改成功!endl; break;case 3:cout请输入新的比赛成绩:nu;p1-score=nu;cout比赛项目成绩修改成功!endl; break;case 4:cout请输入新的比赛名次:nu;p1-ca=nu;cout比赛名次修改成功!next; fout.close();return 0;elsecout输入密码错误endl;int delete3() /对比赛赛事相关信息进行删除 creat3(); Message *p1,*p2; p2=p1=head

33、7; cout请输入要删除的参赛运动员姓名及比赛项目名称:nainfo; while(p1!=NULL) if(p1-name=na)&(p1-avent=info) flag=1;break; p2=p1; p1= p1-next; if (flag=0) cout没有找到要删除的记录!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

34、() creat3(); Message *p1=head7; cout请分别输出比赛参赛运动员姓名、比赛项目名称、比赛成绩、比赛名次.endl; while(p1!=NULL) coutnametaventtscoretcanext; void find3() creat3(); Message *p1;p1=head7;int sign=0; /设置的标记变量cout请输入要查询的参赛运动员姓名和比赛项目名称! nainfo;while(p1!=NULL) if(p1-name=na)&(p1-avent=info) sign=1;break; p1= p1-next; if (sign=

35、0) cout没有找到要查询的记录!endl; else coutnametaventtscoretcaendl; int find()/进行查找coutendl;coutttt请输入要查询的信息:endl;couttt比赛项目信息查询 请按:1endl;couttt运动员信息查询 请按:2endl;couttt比赛赛事信息查询 请按:3j;switch(j)case 1:find1();break;case 2:find2();break;case 3:find3();break;default:cout输入数据有误!endl; return 0;int input()coutendl;co

36、utttt请输入要输入的信息:endl;couttt比赛项目信息输入 请按:1endl;couttt运动员信息输入 请按:2endl;couttt比赛赛事信息输入 请按:3j;switch(j)case 1:input1();break;case 2:input2();break;case 3:input3();break;default:cout输入数据有误!endl; return 0;int print()coutendl;coutttt请输入要显示输出的信息:endl;couttt比赛项目信息显示输出 请按:1endl;couttt运动员信息显示输出 请按:2endl;couttt比赛赛事信息显示输出 请按:3j;switch(j)case 1:print1();break;case 2:print2();break;case 3:print3();break;default:cout输入数据有误!endl; return 0

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!