C++程序设计关于运动会报名系统.docx
- 文档编号:19345465
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:40
- 大小:1.79MB
C++程序设计关于运动会报名系统.docx
《C++程序设计关于运动会报名系统.docx》由会员分享,可在线阅读,更多相关《C++程序设计关于运动会报名系统.docx(40页珍藏版)》请在冰豆网上搜索。
C++程序设计关于运动会报名系统
课程设计报告
课程设计名称:
运动会报名系统
院别:
三系
姓名:
何为勇
班级:
15软件二
学号:
20150305208
成绩:
指导教师:
梁风兰
开课时间:
2015-2016学年2学期
一需求分析
1.问题描述:
学校要举行2015春季运动会,设计一个运动会报名系统。
假设该运动会有4个项目(100M跑步、跳高、跳远、200M跑步),每个项目参加的人数不限,但每个学生最多只能参加其中的两项。
设计的系统能够完成的基本信息进行录入、显示、修改、删除、保存等操作的管理。
2.功能要求:
(1)本系统的报名信息类应当包括:
学号、姓名、性别、年龄、参加项目名称。
(2)本系统显示这样的菜单:
请选择系统功能项:
a报名学生基本信息录入
b报名学生基本信息显示
c报名学生基本信息保存
d报名学生基本信息删除
e报名学生基本信息修改(要求先输入密码)
f报名学生基本信息查询
(1)按学号查询
(2)按姓名查询
(3)按性别查询
(4)按年龄查询
(5)按项目查询
g.退出系统
(3)执行一个具体的功能之后,程序将重新显示菜单。
(4)将报名的基本信息保存到文件中。
(5)进入系统之前要先输入密码。
二概要设计
根据要求,系统可以分为数据录入,数据修改,数据删除,数据查询,数据显示,退出系统。
(1)数据录入:
管理员通过这个系统录入参赛人员的信息,赛事信息,比赛成绩等。
(2)数据修改:
管理员首先要输入密码,密码正确后可对录入的信息进行修改。
(3)数据删除:
根据需求,选择删除。
(4)数据查询:
管理员根据需求查询所需对象。
(5)数据显示:
显示所需要的数据内容。
(6)退出系统:
结束操作。
运动会报名系统
运动会报名系统功能模块图:
运动会报名系统
运动会信息
比赛成绩
比赛信息
信
显示
查询
删除
修改
录入
录入修改删除查询显示
三详细设计
1.包含的类:
关于比赛项目的类
(1)classMatch
{
public:
Match*next;//为创建链表做准备
intnumber;//比赛项目编号
charcall[10];//比赛项目名称
chartime[10];//比赛时间
charplace[20];//比赛地点
friendvoidinput1();
};
关于运动员的类
(2)classAthlete
{
public:
Athlete*next;
intnumber;//运动员的编号
charname[10];//运动员的姓名
charpart[20];//运动员所属工作单位或省份
charsex[20];//运动员性别
intage;//运动员年龄
friendvoidinput2();
};
关于运动员成绩的类
(3)classMessage
{
public:
Message*next;
charname[10];//运动员姓名
charavent[10];//运动员参加的某比赛项目名称
intscore;//成绩
intca;//名次
friendvoidinput3();
};
2.包含以下函数:
(1)数据录入函数:
voidinput1()
(2)数据修改函数:
intchange1()
(3)删除比赛项目信息函数:
intdelete1()
(4)数据查询函数:
voidfind1()
(5)友元函数:
friendintinput2()
(6)修改运动员相关信息函数:
intchange2()
(7)删除运动员相关信息函数:
intdelete2()
(8)查询运动员相关信息函数:
intfind2()
(9)友元函数:
friendintinput3()
(10)修改赛事信息函数:
intchange3()
(11)删除赛事信息intdelete3()
(12)查询参赛人员姓名和项目:
intfind3()
(13)显示数据函数:
intprint()
四测试与分析
1.输入信息:
2.修改信息:
3.查询信息:
4.显示信息:
5.退出系统:
五总结
在这为期1周的时间内,我完成了运动会报名系统的程序设计。
虽然在上个学期中,我们已经学习了《C语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,不断查阅资料来设计一项程序。
这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。
C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。
要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。
只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。
这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。
开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。
在这次课程设计中,我首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。
而且尽可能的将模块细分,最后在进行函数的调用。
我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。
终于功夫不负有心人,我成功了!
在参考书上,我们不仅参考了曾经学过的高敬阳主编的《c语言程序设计》,还找到了由谭浩强主编的第三版《c语言》进行参考。
当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。
一周的小学期即将结束,时间虽短,但是我收获了很多。
最后,谢谢老师和同学们的指导。
总而言之,这次C++程序设计实践让我收获很大。
六全部代码
#include
#include
#include
usingnamespacestd;
voidfun1()
{cout<<"******************************"< cout< cout<<"******运动会报名系统******"< cout<<"┍▁▂▃▄▅▆▇█▇▆▅▄▃▂▁┑"< cout<<"☆请按1进行---数据录入"< cout<<"☆请按2进行---数据修改"< cout<<"☆请按3进行---数据删除"< cout<<"☆请按4进行---数据查询"< cout<<"☆请按5进行---数据显示"< cout<<"☆请按6进行---退出系统"< cout<<"┕█▇▆▅▄▃▂▁▂▃▄▅▆▇█┙"< cout< cout<<"*******************************"< cout< cout<<"*****请输入一个数据,并按回车键! *****"< } classMatch { public: Match*next;//为创建链表做准备 intnumber;//比赛项目编号 charcall[10];//比赛项目名称 chartime[10];//比赛时间 charplace[20];//比赛地点 friendvoidinput1(); }; voidinput1() {ofstreamfout("e: \\比赛项目.dat",ios: : app); charch; Matcha; 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; voidcreat() {head1=NULL; Match*p,*q=head1; ifstreamfin("e: \\比赛项目.dat",ios: : in); if(! fin) {cout<<"文件打开失败! "< } p=newMatch; fin.read((char*)p,sizeof(Match)); while(! fin.eof()) {if(head1==NULL)head1=p; else q->next=p; q=p; p=newMatch; fin.read((char*)p,sizeof(Match)); } fin.close(); } intchange1()//对比赛项目相关信息修改 { stringpassword; cout<<"请输入密码"< cin>>password; if(password=="1234567890") { cout<<"您正在进行修改比赛项目有关事项操作! "< creat(); Match*p1; p1=head1; cout<<"请输入要修改比赛项目的编号: "< intnumber1;//要修改的比赛项目编号 intsign=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<<"请输入对应信息的编号"< inta; intnu;//新的整形数据 charinfo[20];//新的字符数组 cin>>a; switch(a) { case1: cout<<"请输入新的比赛编号: "< cin>>nu; p1->number=nu; cout<<"比赛项目编号修改成功! "< break; case2: cout<<"请输入新的比赛项目名称: "< cin>>info; strcpy(p1->call,info); cout<<"比赛项目名称修改成功! "< break; case3: cout<<"请输入新的比赛时间: "< cin>>info; strcpy(p1->time,info); cout<<"比赛项目时间修改成功! "< break; case4: cout<<"请输入新的比赛地点: "< cin>>info; strcpy(p1->place,info); cout<<"比赛项目地点修改成功! "< break; } ofstreamfout("e: \\比赛项目.dat",ios: : out); p1=head1; while(p1! =NULL) { fout.write((char*)p1,sizeof(Match)); p1=p1->next; } fout.close(); } return0; } else cout<<"密码错误"< } intdelete1()//对比赛项目相关信息进行删除 {creat(); Match*p1,*p2; p2=p1=head1; cout<<"请选择要删除比赛项目的那些信息"< cout<<"------删除比赛项目的编号----1"< cout<<"------删除比赛项目的名称----2"< cout<<"请输入对应信息的编号"< intn; cin>>n; intnum,flag=0; charcal[10]; switch(n) {case1: 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; case2: 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; } ofstreamfout("e: \\比赛项目.dat",ios: : out); p1=head1; while(p1! =NULL) { fout.write((char*)p1,sizeof(Match)); p1=p1->next; } fout.close(); return0; } voidprint1() { creat(); Match*p1=head1; cout<<"请分别输出比赛项目编号、名称、比赛时间、比赛地点."< while(p1! =NULL) {cout< p1=p1->next; } } voidfind1() {creat(); Match*p1; p1=head1; intsign=0;//设置的标记变量 cout<<"请选择要查询比赛项目的哪些信息"< cout<<"------按比赛项目的编号查询----1"< cout<<"------按比赛项目的名称查询----2"< cout<<"------按比赛时间查询----3"< cout<<"------按比赛地点查询----4"< cout<<"请输入对应信息的编号"< inta; intnu;//查询整形数据条件 charinfo[20];//查询字符型数据条件 cin>>a; switch(a) { case1: cout<<"请输入要查询的比赛编号: "< cin>>nu; while(p1! =NULL) {if(p1->number==nu){sign=1;break;} p1=p1->next; } if(sign==0) cout<<"没有找到要查询的记录! "< else cout< break; case2: cout<<"请输入要查询的比赛项目名称: "< cin>>info; while(p1! =NULL) {if(p1->call==info){sign=1;break;} p1=p1->next; } if(sign==0) cout<<"没有找到要查询的记录! "< else cout< case3: cout<<"请输入要查询的比赛时间: "< cin>>info; while(p1! =NULL) {if(! strcmp(p1->time,info)){sign=1;break;} p1=p1->next; } if(sign==0) cout<<"没有找到要查询的记录! "< else cout< case4: cout<<"请输入要查询的比赛地点: "< cin>>info; while(p1! =NULL) {if(! strcmp(p1->place,info)){sign=1;break;} p1=p1->next; } if(sign==0) cout<<"没有找到要查询的记录! "< else cout< } } classAthlete { public: Athlete*next; intnumber;//运动员的编号 charname[10];//运动员的姓名 charpart[20];//运动员所属工作单位或省份 charsex[20];//运动员性别 intage;//运动员年龄 friendvoidinput2(); }; voidinput2() {ofstreamfout("e: \\运动员.dat",ios: : app); charch; Athleteb; 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; voidcreat2() {head4=NULL; Athlete*p,*q=head4; ifstreamfin("e: \\运动员.dat",ios: : in); if(! fin) { cout<<"文件打开失败! "< } p=newAthlete; fin.read((char*)p,sizeof(Athlete)); while(! fin.eof()) {if(head4==NULL)head4=p; else q->next=p; q=p; p=newAthlete; fin.read((char*)p,sizeof(Athlete)); } fin.close(); } intchange2()//对运动员相关信息修改 { stringpassword; cout<<"请输入密码"< cin>>password; if(password=="1234567890") { cout<<"您正在进行修改运动员基本信息操作! "< creat2(); Athlete*p1; p1=head4; cout<<"请输入要修改运动员的编号: "< intnumber1;//要修改的运动员编号 intsign=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<<"请输入对应信息的编号"< inta; intnu;//新的整形数据 charinfo[20];//新的字符数组 cin>>a; switch(a) { case1: cout<<"请输入新的运动员编号: "< cin>>nu; p1->number=nu; cout<<"运动员的编号修改成功! "< break; case2: cout<<"请输入新的运动员姓名: "<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 关于 运动会 报名 系统