《Java課程設(shè)計報告-運動會成績管理系統(tǒng).doc》由會員分享,可在線閱讀,更多相關(guān)《Java課程設(shè)計報告-運動會成績管理系統(tǒng).doc(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
運動會成績管理系統(tǒng)
Java課程設(shè)計
小組成員:
姓名:
班級:
學(xué)號:
日期: 2012年1月4日6日
目錄
運動會成績管理系統(tǒng) 2
1 概述 2
1.1 課程設(shè)計的目的和意義 2
1.2 團隊介紹 2
1.2.1成員介紹 2
1.2.2 組內(nèi)分工 2
2 系統(tǒng)功能介紹 3
2.1 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計介紹 4
2.1.1 數(shù)據(jù)庫和表名稱 4
2.1.2 表的結(jié)構(gòu)設(shè)計 4
2.2 管理模塊介紹 5
2.2.1 賽前管理模塊 6
2.2.2 成績管理模塊 6
2.2.3 成績查詢模塊 6
2.2.4 用戶管理模塊 7
3 系統(tǒng)界面展示 7
3.1 主界面 7
3.2 登錄后的主界面 7
3.2.1 用戶管理 8
3.2.2 賽前管理 8
3.2.3 成績管理 8
3.2.4 成績查詢 9
3.2.5 更換背景 9
3.2.6 幫助管理 9
4 主要程序代碼 10
4.1 mainframe 10
4.2 Runframe 14
4.3 connection 17
5 個人總結(jié) 18
參考文獻 19
運動會成績管理系統(tǒng)
1 概述
1.1 課程設(shè)計的目的和意義
運動會管理系統(tǒng)是針對一般的小型運動會中成績的記錄仍需要手工處理和排序、個人的成績往往會在處理中丟失或者不準(zhǔn)確、比賽排名出來慢等現(xiàn)象而設(shè)計的,通過這個小型的運動會管理系統(tǒng),展現(xiàn)如何設(shè)計這樣一個復(fù)雜的系統(tǒng)。運動會項目繁多,如何使系統(tǒng)具有良好的擴展性和穩(wěn)定性,對于一個系統(tǒng)來說將面臨很大的挑戰(zhàn),需要處理的數(shù)據(jù)格式也不一致,如何很好地考慮這些,對于設(shè)計實現(xiàn)人員來講,也都有一定的難度。本例包含了數(shù)據(jù)庫層的的設(shè)計、業(yè)務(wù)的處理以及Java界面的實現(xiàn),從各個方面進行詳細的設(shè)計和規(guī)劃,使整個系統(tǒng)能夠滿足現(xiàn)實需要。
通過Java課程設(shè)計,學(xué)生能夠了解整個課程設(shè)計的流程及系統(tǒng)設(shè)計實現(xiàn)過程,使學(xué)生能夠更好的將課堂所學(xué)知識運用于實踐中,在實踐中檢驗自己的所學(xué),同時也鍛煉學(xué)生的動手能力以及思考能力。
1.2 團隊介紹
1.2.1成員介紹
組長:祝
組員:龍、熊、李、余、郭、王、劉
1.2.2 組內(nèi)分工
祝:負(fù)責(zé)組內(nèi)的任務(wù)分工,在課程設(shè)計的過程中協(xié)調(diào)組員之間的合作。同時負(fù)責(zé)程序設(shè)計中運動員成績查詢模塊的設(shè)計。
龍:負(fù)責(zé)程序設(shè)計中運動員成績管理模塊的設(shè)計。
熊:負(fù)責(zé)系統(tǒng)開發(fā)的設(shè)計及程序文檔的撰寫。
李:負(fù)責(zé)程序中數(shù)據(jù)庫的搭建與連接。
余:負(fù)責(zé)用戶管理模塊的設(shè)計。
郭:負(fù)責(zé)數(shù)據(jù)庫中表單的輸入及幫助文檔的撰寫。
王:負(fù)責(zé)數(shù)據(jù)庫中表單的輸入及幫助文檔的撰寫。
劉:主要負(fù)責(zé)協(xié)助組長工作,在本次課程設(shè)計中起協(xié)助作用。
2 系統(tǒng)功能介紹
本系統(tǒng)采用軟件工程原理,使用面向?qū)ο蟮腏ava編程環(huán)境編寫運動員管理系統(tǒng),利用SQL Sever數(shù)據(jù)庫技術(shù),對數(shù)據(jù)庫進行了全面的開發(fā)。該運動員管理系統(tǒng)主要包括前臺應(yīng)用程序的開發(fā)以及后臺數(shù)據(jù)庫的建立和維護兩個方面,實現(xiàn)了運動員成績數(shù)據(jù)庫的創(chuàng)建及運動員成績的輸入、統(tǒng)計、瀏覽和維護,使得系統(tǒng)具有界面友好,功能強大,易于維護的特點。
本運動會成績管理系統(tǒng)在功能實現(xiàn)方面主要分為以下幾點:
1. 賽前管理模塊。這一模塊是主要完成運動會參賽項目的維護,如確定每個學(xué)院運動員的編號范圍,參賽的項目,及以往運動會的歷史記錄。
2.運動員成績管理模塊。操作員可以對成績進行錄入,一旦提交則只能查看不能修改;管理員可以查看成績并調(diào)整成績,因為前場工作人員可能犯錯,需要管理員進行更改,但日志中要對此更改進行記錄。
3.運動員成績查詢模塊。用戶可以通過終端查看運動員成績信息、項目成績信息、學(xué)院成績信息、每日成績、名次查詢。
4.用戶管理模塊。包括用戶的添加、修改、編輯和刪除功能。管理員可以對操作人員進行信息維護,管理普通用戶。普通用戶在注冊后登陸查詢運動員成績。
5.系統(tǒng)幫助模塊。提供相關(guān)的系統(tǒng)幫助文檔,包括成績查詢幫助、成績管理幫助、賽前管理幫助、用戶使用幫助。
設(shè)計系統(tǒng)體系結(jié)構(gòu)如圖1所示。其中,應(yīng)用層提供諸如GUI的顯示、事件處理等;代理層是分離上層和具體數(shù)據(jù)庫訪問層的,也可稱為業(yè)務(wù)層,這樣的目的是當(dāng)數(shù)據(jù)庫發(fā)生變更時,可以將程序的改動縮減到最小。數(shù)據(jù)庫接口層是與具體的數(shù)據(jù)庫進行交互面對數(shù)據(jù)進行提取、存入操作。模塊包是與數(shù)據(jù)庫實體相對應(yīng)的類定義,也可以說與數(shù)據(jù)庫中的每條記錄相對應(yīng)。
應(yīng)用層
模塊
代理層
數(shù)據(jù)庫接口層
圖1
2.1 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計介紹
2.1.1 數(shù)據(jù)庫和表名稱
在本系統(tǒng)中數(shù)據(jù)庫的名稱設(shè)置為yundonghui。數(shù)據(jù)庫中表名稱和字符標(biāo)識如下所示:
序號
表名稱
1
表一(運動員信息)
2
項目表
3
參賽表
4
最高記錄
5
用戶
2.1.2 表的結(jié)構(gòu)設(shè)計
表一(運動員信息表)
字段名稱
類型
寬度
小數(shù)位數(shù)
是否為空
運動員編號
Char
8
NO
姓名
Char
20
Yes
性別
char
4
Yes
項目
Char
20
Yes
學(xué)院
Char
20
Yes
成績
Char
12
Yes
名次
int
4
0
Yes
日期
data
8
Yes
記錄
Char
4
Yes
項目
字段名稱
類型
寬度
小數(shù)位數(shù)
是否為空
項目
Char
20
NO
類別
Char
8
Yes
參賽表
字段名稱
類型
寬度
小數(shù)位數(shù)
是否為空
參賽單位
Char
20
NO
參賽項目
Char
20
Yes
參賽類別
char
8
Yes
最高記錄表
字段名稱
類型
寬度
小數(shù)位數(shù)
是否為空
項目
Char
20
NO
成績
Char
20
Yes
創(chuàng)造者
char
20
Yes
創(chuàng)造單位
char
20
Yes
創(chuàng)造地點
char
20
Yes
用戶表
字段名稱
類型
寬度
小數(shù)位數(shù)
是否為空
用戶名
Char
20
NO
密碼
Char
20
Yes
用戶類型
Char
10
Yes
2.2 管理模塊介紹
為了詳細描述系統(tǒng)模塊功能,在系統(tǒng)功能模塊劃分的的基礎(chǔ)上,對相應(yīng)系統(tǒng)的數(shù)據(jù)流圖進行功能分解,得到含義明確、功能單一的單元功能模塊,從而得到系統(tǒng)的功能模塊圖。如下圖所示。
運動員成績管理系統(tǒng)
賽前管理模塊
成績
管理模塊
成績
查詢模塊
系統(tǒng)幫助模塊
用戶管理模塊
圖2 系統(tǒng)功能結(jié)構(gòu)圖
2.2.1 賽前管理模塊
這一模塊是主要完成運動會賽前事務(wù),如確定每個學(xué)院運動員的編號范圍,參賽的項目,及每個學(xué)院所打破項目記錄的情況。如圖3所示。
賽前管理模塊
參賽賽單位瀏覽、添加、刪除
項目記錄瀏覽
運動員編號范圍瀏覽、添加、刪除
比賽項目瀏覽、添加、刪除
圖3 賽前管理模塊
2.2.2 成績管理模塊
這一模塊主要完成運動員成績的管理,包括運動員成績的錄入,成績排名,是否破紀(jì)錄,項目排名,和記錄所有運動員成績。按編號或姓名查詢運動員的成績,按記錄查詢本次運動會中破紀(jì)錄的運動員信息,按學(xué)院查詢本學(xué)院比賽情況,如圖4所示。
成績管理模塊
總成績匯總
項目排名匯總
運動員成績排名
運動員成績錄入
記錄破平匯總
圖4 成績管理模塊
2.2.3 成績查詢模塊
這一模塊主要完成瀏覽運動員成績信息、項目成績信息、學(xué)院成績信息、每日成績、名次查詢。如圖5所示。
成績查詢模塊
名次查詢
每日成績查詢
學(xué)院成績查詢
項目成績查詢
運動員成績查詢
圖5 成績查詢模塊
2.2.4 用戶管理模塊
這一模塊主要完成瀏覽用戶,刪除/修改用戶權(quán)限,修改用戶密碼。如圖6所示。
用戶密碼修改
系統(tǒng)用戶管理
用戶管理模塊
用戶瀏覽
刪除用戶
用戶權(quán)限修改
3 系統(tǒng)界面展示
3.1 主界面
主界面中包括了登錄注冊兩個選項(如左下圖所示),已注冊用戶可以輸入用戶名及密碼直接登錄,未注冊用戶可通過注冊按鈕進行注冊(如右下圖所示)。
3.2 登錄后的主界面
登錄后會顯示系統(tǒng)的主要操作界面,導(dǎo)航欄中包括有用戶管理、賽前管理、成績管理、更換背景、幫助管理共5個選項。單擊每個選項會彈出相對應(yīng)的下拉菜單。
3.2.1 用戶管理
用戶管理中包含了系統(tǒng)用戶管理、用戶密碼修改及返回登錄框。(如左下圖所示)其中,系統(tǒng)用戶可以通過選項查看并管理普通用戶。(如右下圖所示)普通用戶則可以進行密碼的修改及返回登陸框的操作。
3.2.2 賽前管理
系統(tǒng)用戶可以通過賽前管理對比賽項目、參賽單位、項目記錄及運動員編號范圍進行修改和編輯。
3.2.3 成績管理
系統(tǒng)用戶可以通過成績管理對運動會成績進行成績的錄入、修改和刪除、統(tǒng)計學(xué)院成績及總成績冊管理。
3.2.4 成績查詢
用戶可以通過成績查詢查詢運動員成績、項目成績、每日成績及記錄查詢。
3.2.5 更換背景
用戶可以根據(jù)自己的喜歡進行背景圖片的更改。
3.2.6 幫助管理
用戶可以通過幫助文檔查看查詢幫助。
4 主要程序代碼
4.1 mainframe
package system;
import help.help1;
import help.help2;
import help.help3;
import help.help4;
import javax.swing.*;
import java.awt.event.*;
import java.io.FileNotFoundException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFrame;
import prapare_manager.bsProject;
import prapare_manager.csDW;
import prapare_manager.eth_no;
import prapare_manager.pj_record;
import record_find.break_record_find;
import record_find.date_result_find;
import record_find.eth_result_find;
import record_find.pj_result_find;
import record_find.xueyuan_result_find;
import record_manager.add_record;
import record_manager.all_record;
import record_manager.change_del_record;
import record_manager.tj_result;
import user.change_pwd;
import user.quanxian;
import user.user_manager;
public class mainframe
extends JFrame implements ActionListener,Runnable {
private static final long serialVersionUID = 1L;
JPanel cp;int i=1;
ImageIcon icon1=new ImageIcon("picture/7.jpg");
ImageIcon icon2=new ImageIcon("picture/2.jpg");
ImageIcon icon3=new ImageIcon("picture/3.jpg");
ImageIcon icon4=new ImageIcon("picture/4.jpg");
ImageIcon icon5=new ImageIcon("picture/6.jpg");
ImageIcon icon6=new ImageIcon("picture/1.jpg");
ImageIcon icon7=new ImageIcon("picture/5.jpg");
ImageIcon icon8=new ImageIcon("picture/8.jpg");
ImageIcon icon9=new ImageIcon("picture/9.jpg");
ImageIcon icon10=new ImageIcon("picture/10.jpg");
ImageIcon icon11=new ImageIcon("picture/11.jpg");
ImageIcon icon12=new ImageIcon("picture/12.jpg");
JLabel tp1=new JLabel(icon1,JLabel.CENTER);
JMenuBar bar=new JMenuBar();
JMenu menu1=new JMenu("用戶管理");
JMenuItem a1=new JMenuItem("系統(tǒng)用戶管理");
JMenuItem a2=new JMenuItem("用戶密碼修改");
JMenuItem a3=new JMenuItem("返回登錄框");
JMenu menu2=new JMenu("賽前管理");
JMenuItem b1=new JMenuItem("比賽項目");
JMenuItem b2=new JMenuItem("參賽單位");
JMenuItem b3=new JMenuItem("項目記錄");
JMenuItem b4=new JMenuItem("運動員編號范圍");
JMenu menu3=new JMenu("成績管理");
JMenuItem c1=new JMenuItem("成績錄入");
JMenuItem c2=new JMenuItem("成績修改/刪除");
JMenuItem c3=new JMenuItem("統(tǒng)計學(xué)院成績");
JMenuItem c4=new JMenuItem("總成績冊");
JMenu menu4=new JMenu("成績查詢");
JMenuItem d1=new JMenuItem("運動員成績");
JMenuItem d2=new JMenuItem("項目成績");
JMenuItem d3=new JMenuItem("學(xué)院成績");
JMenuItem d4=new JMenuItem("每日成績");
JMenuItem d5=new JMenuItem("紀(jì)錄查詢");
JMenu menu7=new JMenu("更換背景");
JMenuItem g1=new JMenuItem("上一張");
JMenuItem g2=new JMenuItem("下一張");
JMenu menu6=new JMenu("幫助管理");
JMenuItem f1=new JMenuItem("賽前管理幫助");
JMenuItem f2=new JMenuItem("成績管理幫助");
JMenuItem f3=new JMenuItem("成績查詢幫助");
JMenuItem f5=new JMenuItem("用戶使用幫助");
JMenuItem f4=new JMenuItem("退出系統(tǒng)");
JMenu menu8=new JMenu();
public mainframe(){try{Init();
if(new quanxian().get_quanxian()==2){a1.setEnabled(false);c1.setEnabled(false);c2.setEnabled(false);}
if(new quanxian().get_quanxian()==0){a1.setEnabled(true);c1.setEnabled(true);c2.setEnabled(true);}
}catch(Exception err){err.printStackTrace();}}
public void Init() throws Exception
{ cp = (JPanel)this.getContentPane();
cp.setLayout(null);
//this.setSize(new Dimension(800, 600));
this.setTitle("運動會成績管理系統(tǒng)");
this.setResizable(false);
tp1.setText("");
tp1.setSize(700, 500);
bar.setOpaque(true);
setJMenuBar(bar);
menu1.add(a1);
menu1.add(a2);
menu1.add(a3);
bar.add(menu1);
a1.addActionListener(this);
a2.addActionListener(this);
a3.addActionListener(this);
menu2.add(b1);
menu2.add(b2);
menu2.add(b3);
menu2.add(b4);
bar.add(menu2);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
menu3.add(c1);
menu3.add(c2);
menu3.add(c3);
menu3.add(c4);
bar.add(menu3);
c1.addActionListener(this);
c2.addActionListener(this);
c3.addActionListener(this);
c4.addActionListener(this);
menu4.add(d1);
menu4.add(d2);
menu4.add(d3);
menu4.add(d4);
menu4.add(d5);
bar.add(menu4);
d1.addActionListener(this);
d2.addActionListener(this);
d3.addActionListener(this);
d4.addActionListener(this);
d5.addActionListener(this);
menu7.add(g1);
menu7.add(g2);
bar.add(menu7);
g1.addActionListener(this);
g2.addActionListener(this);
menu6.add(f5);
menu6.add(f1);
menu6.add(f2);
menu6.add(f3);
menu6.add(f4);
bar.add(menu6);
f1.addActionListener(this);
f2.addActionListener(this);
f3.addActionListener(this);
f5.addActionListener(this);
f4.addActionListener(this);
menu8.setEnabled(false);
bar.add(menu8);
cp.add(tp1,null);
this.setSize(700,500);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public void run()
{
while(true)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
menu8.setText(" "+sdf.format(new Date()));
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
public static void main(String arg[])
{
mainframe
鏈接地址:http://www.hcyjhs8.com/p-8810898.html