学校运动会管理系统C++课程设计.docx
《学校运动会管理系统C++课程设计.docx》由会员分享,可在线阅读,更多相关《学校运动会管理系统C++课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
学校运动会管理系统C++课程设计
C++程序设计课程设计报告
课题:
学校运动会管理系统设计
专业班级:
学号:
姓名:
评阅意见:
评定成绩:
指导老师签名:
年月日
指导教师:
摘要--------------------------------------3
前言--------------------------------------3
第一章开发环境和开发工----------------------4
.C/C++语言简介---------------------4
.开发背景--------------------------4
.开发环境--------------------------5
第二章算法思想----------------------------5
.系统需求分析----------------------5
.系统总体设计--------------------6
第三章算法实现(附源代码)-------------------6
第四章算法结果----------------------------23
结束语--------------------------------------26
参考文献------------------------------------26
心得体会------------------------------------27
致谢---------------------------------------28
摘要
运动会管理是一个重要内容,随着时代的进步,参加运动会的运动员数量也不断增加、项目也越来越多、运动会举办也越来越频繁,对运动会管理要求也越来越高。
如何管理好各单位、运动员的成绩的信息,对运动会管理系统的要求也越来越高,所以必须要不断地更新运动会管理系统,才能满足社会日益发展的需要。
本文是采用VC++作为前台开发工具,旨在实现对现有的运动会管理的基础上,提供信息录入,信息删除,信息查询,信息输出等服务,在此实验报告中主要实现对存储在管理系统中的数据表进行这些简单的操作,为提高运动会管理系统的效率提供了便利。
关键词:
VC++;运动会信息管理;
前言
计算机以其强大的性能价格优势给人们的工作、学习和生活带来极大的方便.计算机代替人工处理一些事务已成为必然。
整个人类社会已进入高度信息化,人们对信息和数据的利用和处理已经进入自动化、网络化和社会化的阶段。
如在查找资料、处理日常办公事务、科研生产等方面,无不需要利用大量的信息资源。
因此,如何有效地进行数据信息的管理和利用,已经成为人们普遍关注的课题。
信息在不同的领域里有着不同的概念,在管理科学领域中,通常认为信息是经过加工处理后的一种数据形式,是一种有次序的符号排列,它是系统传输和处理的对象。
处在信息时代的今天,信息的作用越来越为人们所重视。
制定成绩计划,研究投资策略,都离不开对信息的充分利用。
在当今社会上,体育运动越来越普及,参与运动会的人越来越多,素质越来越高。
传统的运动会,一般是以人手组织为主,运动员的报名、赛事的安排、比赛场地的安排和成绩的记录等操作全都由人手操作,参加人数越多,运动会的规模就越大,管理工作就更加费时费力,而且容易出错。
学校田径运动会管理系统则为组织者提供一个简捷方便的方式来组织管理运动会,学校田径运动会管理系统是一种“人机交互系统”,通过简单的键盘输入与鼠标点击来完成烦琐的记录与安排工作,保证运动会的正常流畅的进行。
学校田径运动会管理系统是典型的数据库应用系统,可完成田径运动会管理中的运动员基本信息录入,竞赛成绩处理及公告,成绩统计.信息查询等事务处理功能。
根据学校田径运动会的一般进程,本系统分为数据修改、查询、删除、计算等四个工具模块来完成所期望的功能。
依据关系型数据库理论设计数据库的结构。
使用该系统可以极大地减小工作人员的劳动量,同时还可大大提高工作效率、可靠性和正确性。
第一章开发环境和开发工具
1.1C/C++语言简介
C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它由美国贝尔研究所的于1972年推出。
1978后,C语言已先后被移植到大、中、小及微型机上。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。
开发背景
随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。
采用计算机进行信息化管理已成为衡量企业管理科学化和现代化的重要标志,而人事管理的全面自动化、信息化则是其中重要的组成部分。
人事管理的好坏对于企业的决策者和管理者来说都至关重要,在很大程度上影响着企业的经济效益和社会效益。
因此,本文所研究的人事管理信息系统具有一定的使用价值和现实意义。
开发环境
本文所采用的开发环境主要是基于C++语言在VisualC++平台上开发的系统,界面友好,功能强大,调试也很方便。
这是微软出的一个C语言集成开发环境(IDE),主要有:
VC++等,分为企业版和学生版等。
对于初学者VC++是比较容易上手的,但其对标准支持的不好可能使人养成不良的编程习惯。
第二章算法思想
系统需求分析
●本实验中,对不同的对象采取不同的存储结构,对比赛项目采取链式结构,而对于参赛运动员采取一个结构就可以了。
本程序中主要用到线性表的一些基本操作,将比赛项目信息,运动员信息,赛事信息都构造成线性表。
具体功能通过主函数分别调用各函数实现。
●参考本实验的功能要求,本程序分为七个模块:
主函数、信息录入函数、信息修改函数、信息删除函数、信息查询函数,信息输出函数。
●信息录入函数有包括比赛项目信息录入函数(包括比赛编号、名称等),运动员信息录入函数(运动员的编号、姓名、性别、年龄、工作单位或省份)、比赛赛事信息录入函数(某运动员参加某比赛项目,成绩、名次)。
●信息修改函数包括比赛项目、运动员信息、赛事信息修改。
●信息查询函数包括根据比赛项目、运动员编号进行查修
●信息输出函数包括比赛项目、运动员信息、赛事信息输出等。
系统总体设计
本文研究开发的运动会管理系统用于支持用于查询各个学校在运动会中的成绩。
有几种目标:
●支持输入各个项目的基本信息;
●可以按比赛项目编号或名称查询、删除、修改信息。
●可以按运动员编号或姓名查询、删除、修改信息
●数据输入信息并能随时查询
第三章算法实现
附源代码:
#include
#include
#include
usingnamespacestd;
voidfun1()
{cout<<"******************************"<cout<cout<<"******学校运动会管理系统******"<cout<<"----数据录入请按:
1----"<cout<<"----数据修改请按:
2----"<cout<<"----数据删除请按:
3----"<cout<<"----数据查询请按:
4----"<cout<<"----数据显示请按:
5----"<cout<<"----退出系统请按:
6----"<cout<cout<<"*******************************"<cout<cout<<"*****请输入一个数据,并按回车键!
*****"<}
classMatch
{
public:
Match*next;at",ios:
:
app);
charch;
Matcha;
do
{cout<<"请分别输入比赛项目编号、名称、比赛时间、比赛地点."<cin>>>>>>>>;
=NULL;
((char*)&a,sizeof(Match));
cout<<"是否继续输入,如果继续键入Y|y"<cin>>ch;
}while(ch=='y'||ch=='Y');
();
}
Match*head1;
voidcreat()
{head1=NULL;
Match*p,*q=head1;
ifstreamfin("e:
\\比赛项目.dat",ios:
:
in);
if(!
fin)
{cout<<"文件打开失败!
"<}
p=newMatch;
((char*)p,sizeof(Match));
while(!
())
{if(head1==NULL)head1=p;
else
q->next=p;
q=p;
p=newMatch;
((char*)p,sizeof(Match));
}
();
}
intchange1()at",ios:
:
out);
p1=head1;
while(p1!
=NULL)
{
((char*)p1,sizeof(Match));
p1=p1->next;
}
();
}
return0;
}
intdelete1()at",ios:
:
out);
p1=head1;
while(p1!
=NULL)
{
((char*)p1,sizeof(Match));
p1=p1->next;
}
();
return0;
}
voidprint1()
{
creat();
Match*p1=head1;
cout<<"请分别输出比赛项目编号、名称、比赛时间、比赛地点."<while(p1!
=NULL)
{cout<number<<'\t'<call<<'\t'<time<<'\t'<place<p1=p1->next;
}
}
voidfind1()
{creat();
Match*p1;
p1=head1;
intsign=0;at",ios:
:
app);
charch;
Athleteb;
do
{cout<<"请分别输入运动员编号、姓名、性别、年龄、所属省份或工作单位."<cin>>>>>>>>>>;
=NULL;
((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;
((char*)p,sizeof(Athlete));
while(!
())
{if(head4==NULL)head4=p;
else
q->next=p;
q=p;
p=newAthlete;
((char*)p,sizeof(Athlete));
}
();
}
intchange2()at",ios:
:
out);
p1=head4;
while(p1!
=NULL)
{
((char*)p1,sizeof(Athlete));
p1=p1->next;
}
();
}
return0;
}
intdelete2()at",ios:
:
out);
p1=head4;
while(p1!
=NULL)
{
((char*)p1,sizeof(Athlete));
p1=p1->next;
}
();
return0;
}
voidfind2()
{creat2();
Athlete*p1;
p1=head4;
intsign=0;<while(p1!
=NULL)
{cout<number<<'\t'<name<<'\t'<part<<'\t'<sex<<'\t'<age<p1=p1->next;
}
}
classMessage
{
public:
Message*next;
charname[10];at",ios:
:
app);
charch;
Messagec;
do
{cout<<"请分别输入参赛运动员姓名、比赛名称、比赛成绩、比赛名次."<cin>>>>>>>>;
=NULL;
((char*)&c,sizeof(Message));
cout<<"是否继续输入,如果继续键入Y|y"<cin>>ch;
}while(ch=='y'||ch=='Y');
();
}
Message*head7;
voidcreat3()
{head7=NULL;
Message*p,*q=head7;
ifstreamfin("e:
\\比赛赛事.dat",ios:
:
in);
if(!
fin)
{
cout<<"文件打开失败!
"<}
p=newMessage;
((char*)p,sizeof(Message));
while(!
())
{if(head7==NULL)head7=p;
else
q->next=p;
q=p;
p=newMessage;
((char*)p,sizeof(Message));
}
();
}
intchange3()at",ios:
:
out);
p1=head7;
while(p1!
=NULL)
{
((char*)p1,sizeof(Message));
p1=p1->next;
}
();
}
return0;
}
intdelete3()at",ios:
:
out);
p1=head7;
while(p1!
=NULL)
{
((char*)p1,sizeof(Message));
p1=p1->next;
}
();
return0;
}
voidprint3()
{
creat3();
Message*p1=head7;
cout<<"请分别输出比赛参赛运动员姓名、比赛项目名称、比赛成绩、比赛名次."<while(p1!
=NULL)
{cout<name<<'\t'<avent<<'\t'<score<<'\t'<ca<p1=p1->next;
}
}
voidfind3()
{creat3();
Message*p1;
p1=head7;
intsign=0;//设置的标记变量
cout<<"请输入要查询的参赛运动员姓名和比赛项目名称!
"<charna[20];
charinfo[20];//查询字符型数据条件
cin>>na>>info;
while(p1!
=NULL)
{if((p1->name==na)&&(p1->avent==info)){sign=1;break;}
p1=p1->next;
}
if(sign==0)
cout<<"没有找到要查询的记录!
"<else
cout<name<<'\t'<avent<<'\t'<score<<'\t'<ca<}
intfind()//进行查找
{
cout<cout<<"\t\t\t请输入要查询的信息:
"<cout<<"\t\t比赛项目信息查询请按:
1"<cout<<"\t\t运动员信息查询请按:
2"<cout<<"\t\t比赛赛事信息查询请按:
3"<intj;
cin>>j;
switch(j)
{
case1:
find1();break;
case2:
find2();break;
case3:
find3();break;
default:
cout<<"输入数据有误!
"<}
return0;
}
intinput()
{
cout<cout<<"\t\t\t请输入要输入的信息:
"<cout<<"\t\t比赛项目信息输入请按:
1"<cout<<"\t\t运动员信息输入请按:
2"<cout<<"\t\t比赛赛事信息输入请按:
3"<intj;
cin>>j;
switch(j)
{
case1:
input1();break;
case2:
input2();break;
case3:
input3();break;
default:
cout<<"输入数据有误!
"<}
return0;
}
intprint()
{
cout<cout<<"\t\t\t请输入要显示输出的信息:
"<cout<<"\t\t比赛项目信息显示输出请按:
1"<cout<<"\t\t运动员信息显示输出请按:
2"<cout<<"\t\t比赛赛事信息显示输出请按:
3"<intj;
cin>>j;
switch(j)
{
case1:
print1();break;
case2:
print2();break;
case3:
print3();break;
default:
cout<<"输入数据有误!
"<}
return0;
}
intchange()
{
cout<cout<<"\t\t\t请输入要修改的信息:
"<cout<<"\t\t比赛项目信息修改请按:
1"<cout<<"\t\t运动员信息修改请按:
2"<cout<<"\t\t比赛赛事信息修改请按:
3"<intj;
cin>>j;
switch(j)
{
case1:
change1();break;
case2:
change2();break;
case3:
change3();break;
default:
cout<<"输入数据有误!
"<}
return0;
}
intdeleted()
{
cout<cout<<"\t\t\t请输入要删除的信息:
"<cout<<"\t\t比赛项目信息删除请按:
1"<cout<<"\t\t运动员信息删除请按:
2"<cout<<"\t\t比赛赛事信息删除请按:
3"<intj;
cin>>j;
switch(j)
{
case1:
delete1();break;
case2:
delete2();break;
case3:
delete3();break;
default:
cout<<"输入数据有误!
"<}
return0;
}
intmain()
{
inti;
do
{
fun1();
cin>>i;
switch(i)
{
case1:
input();break;
case2:
change();break;
case3:
deleted();break;
case4:
find();break;
case5:
print();break;
case6:
return0;
default:
cout<<"您输入数据有误!
"<}
}while
(1);
return0;
}
第四章算法结果
算法结果以截屏的形式显示出:
1.信息录入
2.信息修改
3.信息删除
4.信息查询
5.信息输出及退出系统
结束语
本系统是在WindowsXP的环境下设计和调试的,并安装有VisualBasic开发工具。
经过调试证明:
1.本系统能满足学校田径运动会的需求,在录入的运动员信息和比赛项目信息数据准确的情况下,就能保证结果准确。
不需要反复核对,减少了大量重复操作。
2.软件功能强大,系统运行稳定,而且软件处理的速度快,能够保证实时的数据处理,满足随时信息查询的需求。
3.由于水平和时间有限,本系统还有些不足之处,比如在比赛中的运动员名次采用了手动录入的方法。
不支持自动生成。
参考文献
1.《C语言》,谭浩强等编著,清华大学出版社;
2.《C++面向对象程序设计教程》,陈维兴林小茶编著,清华大学出版社。
心得体会
因为在理论学习中没有好好的掌握