C++程序设计关于运动会报名系统Word文件下载.docx
《C++程序设计关于运动会报名系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++程序设计关于运动会报名系统Word文件下载.docx(40页珍藏版)》请在冰点文库上搜索。
(5)进入系统之前要先输入密码。
二概要设计
根据要求,系统可以分为数据录入,数据修改,数据删除,数据查询,数据显示,退出系统。
(1)数据录入:
管理员通过这个系统录入参赛人员的信息,赛事信息,比赛成绩等。
(2)数据修改:
管理员首先要输入密码,密码正确后可对录入的信息进行修改。
(3)数据删除:
根据需求,选择删除。
(4)数据查询:
管理员根据需求查询所需对象。
(5)数据显示:
显示所需要的数据内容。
(6)退出系统:
结束操作。
运动会报名系统功能模块图:
运动会报名系统
运动会信息
比赛成绩
比赛信息
信
显示
查询
删除
修改
录入
录入修改删除查询显示
三详细设计
1.包含的类:
关于比赛项目的类
(1)classMatch
{
public:
Match*next;
//为创建链表做准备
intnumber;
//比赛项目编号
charcall[10];
//比赛项目名称
chartime[10];
//比赛时间
charplace[20];
//比赛地点
friendvoidinput1();
};
关于运动员的类
(2)classAthlete
Athlete*next;
//运动员的编号
charname[10];
//运动员的姓名
charpart[20];
//运动员所属工作单位或省份
charsex[20];
//运动员性别
intage;
//运动员年龄
friendvoidinput2();
关于运动员成绩的类
(3)classMessage
Message*next;
//运动员姓名
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<
iostream>
fstream>
string>
usingnamespacestd;
voidfun1()
{cout<
<
"
******************************"
endl;
cout<
cout<
******运动会报名系统******"
┍▁▂▃▄▅▆▇█▇▆▅▄▃▂▁┑"
☆请按1进行---数据录入"
☆请按2进行---数据修改"
☆请按3进行---数据删除"
☆请按4进行---数据查询"
☆请按5进行---数据显示"
☆请按6进行---退出系统"
┕█▇▆▅▄▃▂▁▂▃▄▅▆▇█┙"
*******************************"
*****请输入一个数据,并按回车键!
*****"
}
classMatch
{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));
是否继续输入,如果继续键入Y|y"
ch;
}while(ch=='
y'
||ch=='
Y'
);
fout.close();
Match*head1;
voidcreat()
{head1=NULL;
Match*p,*q=head1;
ifstreamfin("
in);
if(!
fin)
文件打开失败!
exit(0);
}
p=newMatch;
fin.read((char*)p,sizeof(Match));
while(!
fin.eof())
{if(head1==NULL)head1=p;
else
q->
next=p;
q=p;
fin.read((char*)p,sizeof(Match));
fin.close();
intchange1()//对比赛项目相关信息修改
{
stringpassword;
请输入密码"
password;
if(password=="
1234567890"
)
{
您正在进行修改比赛项目有关事项操作!
creat();
Match*p1;
p1=head1;
请输入要修改比赛项目的编号:
intnumber1;
//要修改的比赛项目编号
intsign=0;
//设置的标记变量
number1;
while(p1!
=NULL)
{if(p1->
number==number1){sign=1;
break;
p1=p1->
next;
if(sign==0)
没有找到要修改的记录!
else
cout<
请选择要修改比赛项目的那些信息"
------修改比赛项目的编号----1"
------修改比赛项目的名称----2"
------修改比赛时间----3"
------修改比赛地点----4"
请输入对应信息的编号"
inta;
intnu;
//新的整形数据
charinfo[20];
//新的字符数组
cin>
a;
switch(a)
{
case1:
请输入新的比赛编号:
cin>
nu;
p1->
number=nu;
cout<
比赛项目编号修改成功!
case2:
请输入新的比赛项目名称:
info;
strcpy(p1->
call,info);
比赛项目名称修改成功!
break;
case3:
请输入新的比赛时间:
strcpy(p1->
time,info);
比赛项目时间修改成功!
break;
case4:
请输入新的比赛地点:
place,info);
比赛项目地点修改成功!
}
ofstreamfout("
out);
p1=head1;
{
fout.write((char*)p1,sizeof(Match));
p1=p1->
}
}
return0;
密码错误"
intdelete1()//对比赛项目相关信息进行删除
{creat();
Match*p1,*p2;
p2=p1=head1;
请选择要删除比赛项目的那些信息"
------删除比赛项目的编号----1"
------删除比赛项目的名称----2"
intn;
n;
intnum,flag=0;
charcal[10];
switch(n)
{case1:
num;
while(p1!
{if(p1->
number==num){flag=1;
p2=p1;
}
if(flag==0)
没有找到要删除的记录!
p2->
next=p1->
cal;
{if(!
strcmp(p1->
call,cal)){flag=1;
ofstreamfout("
{
fout.close();
return0;
voidprint1()
Match*p1=head1;
请分别输出比赛项目编号、名称、比赛时间、比赛地点."
p1->
number<
'
\t'
call<
time<
place<
intsign=0;
//设置的标记变量
请选择要查询比赛项目的哪些信息"
------按比赛项目的编号查询----1"
------按比赛项目的名称查询----2"
------按比赛时间查询----3"
------按比赛地点查询----4"
//查询整形数据条件
//查询字符型数据条件
请输入要查询的比赛编号:
while(p1!
number==nu){sign=1;
没有找到要查询的记录!
else
请输入要查询的比赛项目名称:
call==info){sign=1;
请输入要查询的比赛时间:
time,info)){sign=1;
break;
请输入要查询的比赛地点:
place,info)){sign=1;
break;
classAthlete
voidinput2()
\\运动员.dat"
Athleteb;
请分别输入运动员编号、姓名、性别、年龄、所属省份或工作单位."
b.number>
b.name>
b.sex>
b.age>
b.part;
b.next=NULL;
b,sizeof(Athlete));
Athlete*head4;
voidcreat2()
{head4=NULL;
Athlete*p,*q=head4;
p=newAthlete;
fin.read((char*)p,sizeof(Athlete));
{if(head4==NULL)head4=p;
fin.read((char*)p,sizeof(Athlete));
intchange2()//对运动员相关信息修改
您正在进行修改运动员基本信息操作!
creat2();
Athlete*p1;
p1=head4;
请输入要修改运动员的编号:
//要修改的运动员编号
{if(p1->
请选择要修改运动员的哪些信息"
------修改运动员的编号----1"
------修改运动员的姓名----2"
------修改运动员所属工作单位或省份----3"
------修改运动员性别----4"
------修改运动员年龄----4"
请输入新的运动员编号:
运动员的编号修改成功!
请输入新的运动员姓名: