田径运动会管理系统的设计与实现.docx

上传人:b****4 文档编号:24179895 上传时间:2023-05-25 格式:DOCX 页数:31 大小:418.01KB
下载 相关 举报
田径运动会管理系统的设计与实现.docx_第1页
第1页 / 共31页
田径运动会管理系统的设计与实现.docx_第2页
第2页 / 共31页
田径运动会管理系统的设计与实现.docx_第3页
第3页 / 共31页
田径运动会管理系统的设计与实现.docx_第4页
第4页 / 共31页
田径运动会管理系统的设计与实现.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

田径运动会管理系统的设计与实现.docx

《田径运动会管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《田径运动会管理系统的设计与实现.docx(31页珍藏版)》请在冰豆网上搜索。

田径运动会管理系统的设计与实现.docx

田径运动会管理系统的设计与实现

课程设计报告

田径运动会管理系统的设计与实现

课程《数据库原理及应用》

班级

学号

指导教师

时间:

2012年5月25日至2012年6月1日

指导教师对课程设计(论文)的评语(工作态度、任务完成情况、能力水平、设计说明书(论文)的撰写和图纸质量等):

 

成绩

指导教师签字年月日

第一章开发背景

计算机以其强大的性能价格优势给人们的工作、学习和生活带来极大的方便.计算机代替人工处理一些事务已成为必然。

整个人类社会已进入高度信息化,人们对信息和数据的利用和处理已经进入自动化、网络化和社会化的阶段。

如在查找资料、处理日常办公事务、科研生产等方面,无不需要利用大量的信息资源。

因此,如何有效地进行数据信息的管理和利用,已经成为人们普遍关注的课题。

在当今社会上,体育运动越来越普及,参与运动会的人越来越多,素质越来越高。

传统的运动会,一般是以人手组织为主,运动员的报名、赛事的安排、比赛场地的安排和成绩的记录等操作全都由人手操作,参加人数越多,运动会的规模就越大,管理工作就更加费时费力,而且容易出错。

学校田径运动会管理系统则为组织者提供一个简捷方便的方式来组织管理运动会,学校田径运动会管理系统是一种“人机交互系统”,通过简单的键盘输入与鼠标点击来完成烦琐的记录与安排工作,保证运动会的正常流畅的进行。

学校田径运动会管理系统是典型的数据库应用系统,可完成田径运动会管理中的运动员报名、分组编排,竞赛成绩处理及公告,成绩统计.信息查询等事务处理功能。

根据学校田径运动会的一般进程,本系统分为前期编排处理、比赛管理处理、查询输出处理和系统维护等四个工具模块来完成所期望的功能。

依据关系型数据库理论设计数据库的结构。

使用该系统可以极大地减小工作人员的劳动量,同时还可大大提高工作效率、可靠性和正确性。

 

第二章功能描述

1.用户管理

对进入系统的用户进行管理,可以查询、添加、删除用户,还可以修改用户的用户名和密码。

2.报名

填写自己的个人信息,选择参加的比赛项目。

3.运动员信息管理

可查看所有运动员的所有信息,还可以添加、修改、删除运动员的各种信息。

4.比赛项目管理

可查看所有的比赛项目,还可以对其进行添加、修改、删除。

5.成绩管理

可查看所有运动员的各项成绩,并可对成绩进行添加、修改、删除。

6.打印

可打印各项成绩,团体总分表,奖牌榜,破纪录情况表等。

7.运动员界面

运动员可使用自己的用户名和密码登陆系统,之后可通过自己的信息来查询自己各个比赛项目的成绩,还可以修改自己的密码。

 

第三章业务流程分析

业务流程图如图所示图3-1。

 

 

图3-1业务流程图

 

第四章数据流程分析

4.1数据流程图

数据流程如图4-1所示。

运动员信息

 

图4-1数据流程图

4.2数据字典

(1)数据流的描述

数据流编号:

D001

数据流名称:

成绩信息

简述:

运动员的比赛成绩

数据流来源:

运动员

数据流去向:

运动员信息判断

数据流组成:

编号+姓名等

数据流量:

1000/天

高峰流量:

3000/天

数据流编号:

D002

数据流名称:

成绩信息无效提示

简述:

管理员发现非运动员时的提示信息

数据流来源:

运动员信息判断

数据流去向:

运动员

数据流组成:

编号+姓名等

数据流量:

100/天

高峰流量:

500/天

(2)处理逻辑的描述

处理逻辑编号:

P001

处理逻辑名称:

运动员信息判断

简述:

判断运动员信息的合法性

输入的数据流:

成绩信息

处理描述:

根据运动员提供的个人信息,验证运动员信息,验证通过则继续查看是否有运动员的比赛记录,验证不通过则返回给运动员信息指明为非运动员。

输出的数据流:

D001运动员信息、D002无效提示信息

处理频率:

10次/天

处理逻辑编号:

P002

处理逻辑名称:

比赛成绩查询

简述:

查询运动员的比赛成绩

输入的数据流:

D001成绩信息

处理描述:

根据运动员提供的个人信息,查找是否有该运动员的比赛记录,有则进行成绩输出,如没有则返回该运动员无比赛成绩。

输出的数据流:

D001成绩信息+D003比赛项目信息

处理频率:

1000次/天

(3)数据存储的描述

数据存储编号:

F001

数据存储名称:

运动员信息

简述:

运动员的基本信息

数据存储组成:

编号+姓名+性别+比赛项目+代表队

关键字:

编号

相关联的处理:

P001

数据存储编号:

F002

数据存储名称:

比赛项目信息

简述:

比赛的所有项目

数据存储组成:

项目编号+项目名称+项目类型+跑道类型+记录

关键字:

项目编号

相关联的处理:

P002,P003,P005

(4)外部实体的描述

外部实体编号:

S001

外部实体名称:

运动员

简述:

参加比赛的人

输入的数据流:

D002,D003

输出的数据流:

D001

第五章概念模型设计

(1)运动员实体E-R图

运动员实体E-R图如图5-1所示。

 

图5-1运动员实体E-R图

(2)比赛项目实体E-R图

比赛项目实体E-R图如图5-2所示。

 

图5-2比赛项目实体E-R图

(3)比赛成绩实体E-R图

比赛成绩实体E-R图如图5-3所示。

 

图5-3比赛成绩实体E-R图

(4)运动会系统实体E-R图

运动会系统实体E-R图如图5-4所示。

 

 

图5-4运动会系统实体E-R图

 

第六章逻辑模型设计和优化

(1)运动员信息表

表1运动员信息表

编号

姓名

性别

比赛项目

代表队

Char(10)

Char(20)

Char(10)

Char(20)

Char(20)

(2)比赛项目表

表2比赛项目表

项目编号

项目名称

项目类型

跑道类型

记录

Char(10)

Char(20)

Char(10)

Char(10)

Char(20)

(3)比赛成绩表

表3比赛成绩表

姓名

项目名称

成绩

名次

破记录

Char(20)

Char(20)

Char(20)

Char(10)

Char(10)

(4)用户信息表

表4用户信息表

姓名

密码

Char(20)

Char(20)

 

第七章物理设计和实施

得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以及如何建立索引等,可以采用系统的默认设置。

数据库实施主要包括在具体的DBMS中创建数据库和表的过程,本设计所选用的DBMS为SQLSERVER2005,有关创建数据库和关系表的SQL语句如下所示:

(1)创建数据库

CREATEDATABASE田径运动会管理系统

(2)创建数据库表

/*创建用户信息表*/

CREATETABLE用户信息表(

用户Char(20)NOTNULL,

密码Char(20)NOTNULL,

/*创建运动员信息表*/

CREATETABLE运动员信息表(

编号Char(20)PrimaryNOTNULL,

姓名Char(20)NOTNULL,

性别Char(10)NOTNULL,

比赛项目1Char(20)NOTNULL,

比赛项目2Char(20)NOTNULL,

比赛项目3Char(20)NOTNULL,

比赛项目4Char(20)NOTNULL,

代表队Char(20)NOTNULL,

/*创建比赛项目表*/

CREATETABLE比赛项目表(

姓名Char(10)PrimaryNOTNULL,

项目名称Char(20)NOTNULL,

项目类型Char(10)NOTNULL,

跑道类型Char(10)NOTNULL,

记录Char(20)NOTNULL,

/*创建比赛成绩表*/

CREATETABLE比赛成绩表(

姓名Char(20)PrimaryNOTNULL,

项目名称Char(20)NOTNULL,

成绩Char(20)NOTNULL,

名次Char(10)NOTNULL,

破记录Char(10)NULL,

/*创建管理员*/

CREATETABLE管理员(

用户Char(20)NOTNULL,

密码Char(20)NOTNULL,

 

第八章系统测试

1.系统登录

登录界面如图8-1所示。

图8-1登录界面

对应代码:

privatevoidbutton1_Click(objectsender,EventArgse)

{

try

{

if(txtUserName.Text=="")//判断用户是否输入了用户名

{

MessageBox.Show("用户名不能为空");

}

else

{

if(txtPwd.Text=="")

{

MessageBox.Show("密码不能为空");//判断用户是否输入了密码

}

else

{

SqlConnectioncon=DBOcn.createCon();//创建数据库连接

con.Open();

if(comboBox1.Text=="运动员")

{

SqlCommandcmd=newSqlCommand("selectcount(*)from用户信息表where用户='"+txtUserName.Text+"'and密码='"+txtPwd.Text+"'",con);

inti=Convert.ToInt32(cmd.ExecuteScalar());

if(i>0)

{

this.Hide();

Form3M=newForm3();

M.Show();

FormN=newForm();

N.Close();

}

else

{

MessageBox.Show("用户名或者密码错误,请重新输入!

");

txtUserName.Clear();

txtPwd.Clear();

txtUserName.Focus();

}

}

elseif(comboBox1.Text=="管理员")

{SqlCommandcmd=newSqlCommand("selectcount(*)from管理员where用户='"+txtUserName.Text+"'and密码='"+txtPwd.Text+"'",con);

inti=Convert.ToInt32(cmd.ExecuteScalar());

if(i>0)

{

this.Hide();

Form4M=newForm4();

M.Show();

FormN=newForm();

N.Close();

}

else

{

MessageBox.Show("用户名或者密码错误,请重新输入!

");

txtUserName.Clear();

txtPwd.Clear();

txtUserName.Focus();

}

}

else

{

MessageBox.Show("请选择登录界面");

}

}

}

}

catch(Exceptionex)

{

MessageBox.Show(ex.ToString());

}

}

privatevoidtxtPwd_KeyPress(objectsender,KeyPressEventArgse)

{

if(e.KeyChar==13)//判断是否按下Enter键

{

button1_Click(sender,e);//调用“登录”按钮的Click事件

}

}

2.报名

报名界面如图8-2所示。

图8-2报名界面

对应代码:

privatevoid提交_Click(objectsender,EventArgse)

{strings;

SqlConnectioncon=DBOcn.createCon();

con.Open();//在原表中新建一个新行,然后再数据添加到新行中

SqlCommandcmd=newSqlCommand("insertinto运动员信息表(@编号,@姓名,@性别,@比赛项目1,@比赛项目2,@比赛项目3,@比赛项目4,@代表队)",con);

cmd.Parameters.Add("@编号",SqlDbType.Char,20).Value=textBox1.Text;

cmd.Parameters.Add("@姓名",SqlDbType.Char,20).Value=textBox2.Text;

cmd.Parameters.Add("@代表队",SqlDbType.Char,20).Value=textBox3.Text;

if(radioButton1.Checked==true)

{s="男";

cmd.Parameters.Add("@性别",SqlDbType.Char,2).Value=s;

}

if(radioButton2.Checked==true)

s="女";

cmd.Parameters.Add("@性别",SqlDbType.Char,2).Value=s;

}

cmd.Parameters.Add("@比赛项目1",SqlDbType.Char,10).Value=comboBox1.Text;

cmd.Parameters.Add("@比赛项目2",SqlDbType.Char,40).Value=comboBox2.Text;

cmd.Parameters.Add("@比赛项目3",SqlDbType.Char,20).Value=comboBox3.Text;

cmd.Parameters.Add("@比赛项目4",SqlDbType.Char,20).Value=comboBox4.Text;

cmd.Connection=con;

cmd.ExecuteNonQuery();

con.Close();

SqlDataAdaptersda=newSqlDataAdapter("select编号as编号,姓名as姓名,性别as性别,比赛项目1as比赛项目1,比赛项目2as比赛项目2,比赛项目3as比赛项目3,比赛项目4as比赛项目4,代表队as代表队",con);

DataSetds=newDataSet();

sda.Fill(ds,"table");

this.textBox1.Enabled=false;

MessageBox.Show("报名成功!

");

}

privatevoidcomboBox1_DropDown(objectsender,EventArgse)

{string[]str={"跳远(男)","跳高(男)","男子100米","男子200米","男子400米","男子800米","男子110米栏","男子4×100米接力","跳远(女)","跳高(女)","女子100米","女子200米","女子400米","女子800米","女子100米栏","女子4×100米接力"};

if(radioButton1.Checked==true)

{comboBox1.Items.Clear();

for(inti=0;i<8;i++)

{comboBox1.Items.Add(str[i]);

}

}

if(radioButton2.Checked==true)

{comboBox1.Items.Clear();

for(inti=8;i<16;i++)

{comboBox1.Items.Add(str[i]);

}

}

}

privatevoidcomboBox2_DropDown(objectsender,EventArgse)

{string[]str={"跳远(男)","跳高(男)","男子100米","男子200米","男子400米","男子800米","男子110米栏","男子4×100米接力","跳远(女)","跳高(女)","女子100米","女子200米","女子400米","女子800米","女子100米栏","女子4×100米接力"};

if(radioButton1.Checked==true)

{comboBox1.Items.Clear();

for(inti=0;i<8;i++)

{comboBox1.Items.Add(str[i]);

}

}

if(radioButton2.Checked==true)

{comboBox1.Items.Clear();

for(inti=8;i<16;i++)

{comboBox1.Items.Add(str[i]);

}

}

}

privatevoidcomboBox3_DropDown(objectsender,EventArgse)

{string[]str={"跳远(男)","跳高(男)","男子100米","男子200米","男子400米","男子800米","男子110米栏","男子4×100米接力","跳远(女)","跳高(女)","女子100米","女子200米","女子400米","女子800米","女子100米栏","女子4×100米接力"};

if(radioButton1.Checked==true)

{comboBox1.Items.Clear();

for(inti=0;i<8;i++)

{comboBox1.Items.Add(str[i]);

}

}

if(radioButton2.Checked==true)

{comboBox1.Items.Clear();

for(inti=8;i<16;i++)

{comboBox1.Items.Add(str[i]);

}

}

}

privatevoidcomboBox4_DropDown(objectsender,EventArgse)

{string[]str={"跳远(男)","跳高(男)","男子100米","男子200米","男子400米","男子800米","男子110米栏","男子4×100米接力","跳远(女)","跳高(女)","女子100米","女子200米","女子400米","女子800米","女子100米栏","女子4×100米接力"};

if(radioButton1.Checked==true)

{comboBox1.Items.Clear();

for(inti=0;i<8;i++)

{comboBox1.Items.Add(str[i]);

}

}

if(radioButton2.Checked==true)

{comboBox1.Items.Clear();

for(inti=8;i<16;i++)

{

comboBox1.Items.Add(str[i]);

}

}

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

this.Close();

Form1f=newForm1();

f.Show();

}

3.运动员界面

运动员界面如图8-3所示。

图8-3运动员界面

对应代码:

privatevoidshow()

{this.textBox1.Text=this.dataGridView1.CurrentRow.Cells[0].Value.ToString();

this.textBox2.Text=this.dataGridView1.CurrentRow.Cells[1].Value.ToString();

this.textBox3.Text=this.dataGridView1.CurrentRow.Cells[2].Value.ToString();this.textBox4.Text=this.dataGridView1.CurrentRow.Cells[3].Value.ToString();

this.textBox5.Text=this.dataGridView1.CurrentRow.Cells[4].Value.ToString();this.textBox6.Text=this.dataGridView1.CurrentRow.Cells[5].Value.ToString();

this.textBox7.Text=this.dataGridView1.CurrentRow.Cells[6].Value.ToString();this.textBox8.Text=this.dataGridView1.CurrentRow.Cells[7].Value.ToString();this.textBox9.Text=this.dataGridView1.CurrentRow.Cells[8].Value.ToString();

this.textBox10.Text=this.dataGridView1.CurrentRow.Cells[9].Value.ToString();

}

catch(Exceptionex)

{

MessageBox.Show("不能对列进行排序");

}

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(textBox1.Text==""&&textBox2.Text=="")

{

return;

}

if(textBox1.Text!

="

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1