課程設計--運動員成績管理系統(tǒng)_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、<p>  Java SE程序設計</p><p><b>  期末課程設計報告</b></p><p>  題 目 運動員成績管理系統(tǒng) </p><p>  班 級: 2011信息管理與信息系統(tǒng)班 </p><p>  姓 名:

2、 </p><p>  學 號: </p><p>  成 績: </p><p>  完成時間: 2013 年 6 月</p><p><b>  

3、運動員成績管理系統(tǒng)</b></p><p><b>  第一章 引言2</b></p><p><b>  1.1開發(fā)背景2</b></p><p><b>  1.2需求分析3</b></p><p>  第二章 系統(tǒng)設計3</p>&l

4、t;p>  2.1 功能設計3</p><p>  2.2 數(shù)據(jù)庫設計5</p><p>  2.3 流程(或算法)設計7</p><p>  2.4 類與接口設計8</p><p>  第三章 系統(tǒng)實現(xiàn)8</p><p>  3.1 管理子系統(tǒng)8</p><p>  第四章

5、設計總結(jié)12</p><p><b>  參考文獻13</b></p><p>  附 錄(核心代碼)14</p><p><b>  運動員成績管理系統(tǒng)</b></p><p><b>  第一章 引言</b></p><p>  現(xiàn)在

6、全國已經(jīng)有不少學校在田徑運動會舉辦過程中采用了現(xiàn)代化的計算機技術(shù)進行運動會的系統(tǒng)管理,有的已經(jīng)達到了一個相當高的水平。但是我們發(fā)現(xiàn)這些運動會管理系統(tǒng)的設計和實現(xiàn)標準不一,參差不齊,而且更多的情況下這些系統(tǒng)只是實現(xiàn)了對運動會的分數(shù)統(tǒng)計等功能,在提供運動會的整個舉辦過程中的人性化、自動化服務等方面還有許多不足和欠缺。我們小組根據(jù)當前學校運動會的開展組織情況,結(jié)合運動會的組織原則和相關(guān)規(guī)定,運用現(xiàn)代計算機技術(shù),以全新的模式設計開發(fā)了適合田徑運

7、動會的校級運動會管理系統(tǒng)。</p><p><b>  1.1開發(fā)背景</b></p><p>  當前,運動會已經(jīng)在全國普遍開展,許多學校每年都定期的舉行不同規(guī)模的田徑運動會。但是,在運動會舉行過程中一直存在著參賽人數(shù)多,項目設置復雜,時間安排緊湊等問題,而且這些問題能否解決直接關(guān)系著運動會的成功與否。另一方面,人們對于比賽結(jié)果的實時性、準確性、安全性、可靠性的要求

8、也越來越高,而這些要求是人工操作很難實現(xiàn)的。同時競賽組織者要盡量減少人為因素的干擾,減少賽場作弊行為的發(fā)生,還要為參賽的教練員和運動員及時準確地提供競賽的相關(guān)信息,輔助進行競賽的決策指導。因此,計算機技術(shù)的融入就成為一種必然,而且逐漸成為運動會信息管理的核心所在。</p><p>  采用了本運動會管理系統(tǒng)后,運動員在比賽前由院系統(tǒng)一輸入個人信息即可,這樣就方便了運動員的報名,有錯誤時可以及時匯報修改。裁判員單獨

9、對各自的項目進行管理,保證上了比賽的公正、公平。每個項目都有單獨的帳號和密碼對應,以保證成績錄入人員對自己管轄范圍的唯一性和確定性。在成績查詢界面中可以準確及時的查詢到各參賽隊伍、各項目、各運動員的個人信息、比賽成績、排名、和團體加分的情況。以上運動會中各環(huán)節(jié)組織和編排工作的系統(tǒng)實現(xiàn),使大量繁瑣的人工組織編排任務通過簡單方便的操作便可以實現(xiàn),大大減輕了運動會組織人員的勞動強度,節(jié)省了大量物力、人力、財力,提高了工作效率,保證了數(shù)據(jù)的實時

10、性、準確性、安全性、可靠性,充分體現(xiàn)出了現(xiàn)代化的計算機技術(shù)在信息采集、處理、和管理等方面的無可比擬的優(yōu)越性。</p><p><b>  1.2需求分析</b></p><p><b>  1.2.1信息需求</b></p><p>  運動員信息:運動員編號,姓名,性別,項目,學院,類別,成績,名次, 日期,

11、記錄</p><p>  用戶信息:姓名,用戶口令,用戶身份,用戶權(quán)限等</p><p>  項目信息:項目名稱,項目類型</p><p>  運動員編號范圍信息:學院,編號范圍</p><p>  參賽單位信息:參賽單位,參賽項目,參賽類別</p><p>  最高記錄信息:項目,成績,創(chuàng)造者,創(chuàng)造單位,創(chuàng)造地點等&

12、lt;/p><p><b>  1.2.2功能需求</b></p><p>  系統(tǒng)要實現(xiàn)的主要功能有:</p><p>  對運動員信息的維護和管理,能夠完成運動員信息的添加,修改和刪除,并按一定條件查詢運動員信息,查詢結(jié)果按名次排序。</p><p>  對用戶信息的管理,能夠完成信息的添加、修改和刪除,并按一定條件查詢

13、信息。</p><p>  對項目信息的管理,能夠完成信息的添加、修改和刪除,并按一定條件查詢信息。</p><p>  對運動員編號范圍信息的管理,能夠完成信息的添加、修改和刪除,并按一定條件查詢信息。</p><p>  對參賽單位信息的管理,能夠完成信息的添加、修改和刪除,并按一定條件查詢信息。</p><p>  對最高記錄信息的管理

14、,能夠完成信息的添加、修改和刪除,并按一定條件查詢信息。</p><p><b>  系統(tǒng)設計</b></p><p><b>  2.1 功能設計</b></p><p>  為了詳細描述系統(tǒng)功能,在系統(tǒng)功能劃分的的基礎上,對相應系統(tǒng)的數(shù)據(jù)流圖進行功能分解,得到含義明確、功能單一的單元功能模塊,從而得到系統(tǒng)的功能模塊圖。

15、如下圖所示。</p><p>  圖2.1 系統(tǒng)功能模塊</p><p><b>  賽前管理模塊</b></p><p>  這一模塊是主要完成運動會賽前事務,如確定每個學院運動員的編號范圍,參賽的項目,及每個學院所打破項目記錄的情況。如圖所示</p><p><b> ?。?)成績管理模塊</b&g

16、t;</p><p>  這一模塊主要完成運動員成績的管理,包括運動員成績的錄入,成績排名,是否破紀錄,項目排名,和記錄所有運動員成績。按編號或姓名查詢運動員的成績,按記錄查詢本次運動會中破紀錄的運動員信息,按學院查詢本學院比賽情況,如圖5所示。</p><p><b> ?。?)成績查詢模塊</b></p><p>  這一模塊主要完成瀏覽運

17、動員成績信息、項目成績信息、學院成績信息、每日成績、名次查詢。</p><p><b> ?。?)用戶管理模塊</b></p><p>  這一模塊主要完成瀏覽用戶,刪除/修改用戶權(quán)限,修改用戶密碼。</p><p><b>  2.2 數(shù)據(jù)庫設計</b></p><p> ?。?)數(shù)據(jù)庫和表名稱&

18、lt;/p><p><b>  表的結(jié)構(gòu)設計</b></p><p>  ·表一(運動員信息表)</p><p><b>  ·項目</b></p><p><b>  ·</b></p><p><b>  參賽表&

19、lt;/b></p><p><b>  ·</b></p><p><b>  用戶表</b></p><p>  2.3 流程(或算法)設計</p><p><b>  頂層圖</b></p><p><b>  運動會信息

20、</b></p><p>  運動會信息普通用戶信息</p><p><b>  運動用戶</b></p><p><b>  會信信息</b></p><p><b>  息</b></p><p><b>  圖層<

21、/b></p><p><b>  運動員比賽用戶</b></p><p><b>  成績信息信息</b></p><p>  學院賽況最高記錄信息運動員</p><p><b>  成績</b></p><p><b>  查

22、詢信息</b></p><p><b>  項目信息</b></p><p><b>  查詢項目信息</b></p><p><b>  信息運動員</b></p><p>  成績 用戶學院參賽</p><p&

23、gt;<b>  信息情況</b></p><p><b>  項目信息</b></p><p><b>  用戶學院</b></p><p>  信息 參賽情況 </p><p>  2.4 類與接口設計</p><p>  Actio

24、nListener接口:</p><p>  1.實現(xiàn)了此接口的類有:mainframe,Runframed;以上兩個類實現(xiàn)了登陸界面add_user,change_pwd,user_manager實現(xiàn)對用戶的管理,具體是增加,修改和刪除的操作。</p><p>  2.Add_record,all_record,change_del_record,tj_result實現(xiàn)對比賽成績的記錄,

25、具體是添加,刪除操作的控制。</p><p>  3.bsProject,csDW,eth_no,pj_eth,pj_record實現(xiàn)賽前準備,具體是運動員的增加,記錄的增加,更新。</p><p>  4.Break_record_find,date_result_find,eth_result_find,pj_result_find,xueyuan_result_find實現(xiàn)對記錄的查

26、</p><p><b>  第三章 系統(tǒng)實現(xiàn)</b></p><p><b>  3.1 管理子系統(tǒng)</b></p><p>  在主界面上會顯示對應的菜單欄,可以分別點擊用戶管理”,“賽前管理”,“成績管理”,“成績查詢”,“更換背景”完成相應的功能。點擊“返回登錄”可返回到登錄界面。</p><

27、p>  圖3-1運動會管理系統(tǒng)主界面</p><p>  在登錄界面,用戶可以輸入已有的用戶編號和密碼,選擇身份后登錄。若沒有賬號可以點擊“快速注冊”按鈕獲得一個新的賬號。</p><p>  圖3-2運動會管理系統(tǒng)登陸界面</p><p>  密碼修改對話框,用戶可以在這里修改登錄密碼。</p><p>  圖3-3運動會管理系統(tǒng)系統(tǒng)

28、用戶密碼修改界面</p><p>  比賽項目可以在這里添加,刪除,查詢,刷新。</p><p>  圖3-4運動會管理系統(tǒng)比賽項目界面</p><p>  運動員可以在這里查看自己的成績。</p><p>  圖3-5運動會管理系統(tǒng)運動員成績查詢界面</p><p>  學院可以在這里查看自己的成績。</p&g

29、t;<p>  圖3-6運動會管理系統(tǒng)學院成績查詢界面</p><p>  圖3-7運動會管理系統(tǒng)運動員編號范圍界面</p><p>  圖3-8運動會管理系統(tǒng)系統(tǒng)用戶管理界面</p><p><b>  設計總結(jié) </b></p><p><b>  一 設計</b></p&g

30、t;<p>  本校級運動會管理系統(tǒng)在功能實現(xiàn)方面主要分為以下幾點:</p><p>  運動員個人信息管理模塊。運動員管理與普通的用戶管理基本類似,包括用戶的添加、修改、編輯和刪除功能,參賽項目的維護。例如有的運動員臨時因傷不能參寒,有的又調(diào)整為可以參加某個項目(雖然嚴格說來,不允許運動員臨時更改參賽項目,但需要在系統(tǒng)中留有余地)。</p><p>  運動員成績管理模塊。

31、操作員可以對成績進行錄入,一旦提交則只能查看不能修改管理員可以查看成績并調(diào)整成績,因為前場工作人員可能犯錯,需要管理員進行更改,但日志中要對此更改進行記錄。運動員可以通過終端查看運動成績。</p><p>  權(quán)限管理模塊。管理員可以對操作人員進行信息維護,如增加前場成績錄入人員,或者某位成績錄入人員調(diào)離崗位則取消其權(quán)限。對于運動員可以匿名查詢某個項目的成績。</p><p><b&

32、gt;  二 總結(jié)</b></p><p>  這次課程設計經(jīng)過親身的實踐操作,學到很多東西,自己的管理系統(tǒng)基本上實現(xiàn)了一些功能。通過這次設計,感到隨著科技的發(fā)展,管理系統(tǒng)在進行數(shù)據(jù)管理時起到的作用越來越大。</p><p>  就運動會管理系統(tǒng)而言,此系統(tǒng)是針對一般的小型運動會中成績的記錄仍需要手動處理和排序、個人的成績往往會在處理中丟失或者不準確、比賽排名出來慢等現(xiàn)象而設計

33、的,通過這個小型的運動會管理系統(tǒng),展現(xiàn)如何設計這樣一個復雜的系統(tǒng)。本系統(tǒng)從數(shù)據(jù)庫層的設計、業(yè)條的處理及java界面實現(xiàn),都需要詳細地設計與規(guī)化。</p><p>  在設計此系統(tǒng)的過程中,我們遇到許多問題,但是經(jīng)過我們的不懈努力,還是想辦法解決了問題!比如,我們在剛開始調(diào)試程序的時候就發(fā)現(xiàn)了一個問題,關(guān)于access的驅(qū)動程序不能裝載成功。我們立即分析問題,查找根源并在網(wǎng)上尋求解決方法。但是我們足足找了整整一天,

34、也分析了一天,依舊沒能找出這個問題的根源。最后 ,我們只能繞過access的驅(qū)動,決定從數(shù)據(jù)源ODBC建橋試試。結(jié)果成功的繞過了access驅(qū)動。</p><p>  我們曾有過因為accessr用戶驗證機制不太重視,結(jié)果調(diào)試了許多次也不能成功的教訓!</p><p>  本次實訓所做的運動會管理系統(tǒng),雖然說是完成了,但是還有很多問題。因為時間問題和對知識掌握不足等。總之,在這次課程設計中

35、,我們學到了許多東西,這些是在理論課中不能學到的。學會了項目開發(fā)的基本思想,加深了我對Java以及access的了解,以及加強了我動手編程開發(fā)項目的實際能力。對我以后的學習和工作打下了基礎,讓我受益匪淺!</p><p><b>  作業(yè)工作量比列</b></p><p>  王斌:55%(部分代碼編寫,搜尋參考文獻以及后期排版制作);李澤?。?5%(部分代碼編寫,數(shù)

36、據(jù)庫設計)</p><p><b>  參考文獻</b></p><p>  周華清, 李為民, 張昌龍等. Java典型模塊與項目實戰(zhàn)大全[J]. 清華大學出版社,2012, 1.</p><p>  耿祥義,張越平。Java2 實用教程 (第四版) [J] ,清華大學出版社,2012,8.</p><p>  附

37、 錄(核心代碼)</p><p>  package record_find;</p><p>  import java.sql.*;</p><p>  import java.awt.Color;</p><p>  import java.awt.event.ActionEvent;</p><p>  imp

38、ort java.awt.event.ActionListener;</p><p>  import java.sql.DriverManager;</p><p>  import javax.swing.*;</p><p>  public class date_result_find extends JFrame implements ActionList

39、ener</p><p><b>  {</b></p><p>  private static final long serialVersionUID = -7700451926035976789L;</p><p>  JPanel cp;</p><p>  int i1=0,i2=0;//復選框選擇記錄<

40、/p><p>  JScrollPane jsp = new JScrollPane();</p><p>  ImageIcon icon=new ImageIcon("picture/12.jpg");</p><p>  JLabel tp=new JLabel(icon,JLabel.CENTER);</p><p>

41、  Object[][] rowData=new Object[200][10]; </p><p>  String[] columnNames = {</p><p>  "編號","姓名", "性別","項目","學院","類別","成績",&q

42、uot;名次","日期","紀錄"};</p><p>  JTable jT1 = new JTable(rowData, columnNames);</p><p>  JButton b1=new JButton("查 詢");</p><p>  JButton b2=new JButto

43、n("刷 新");</p><p>  JButton b3=new JButton("返 回");</p><p>  JLabel j1=new JLabel("日 期:");</p><p>  JLabel j2=new JLabel("日期格式:2013.5.1");<

44、/p><p>  JTextField t1=new JTextField();</p><p>  public date_result_find()</p><p>  {try{Init();}catch (Exception err){err.printStackTrace();}}</p><p>  public void Init(

45、) throws Exception{</p><p>  cp=(JPanel)this.getContentPane();</p><p>  cp.setLayout(null);</p><p>  this.setSize(800,640);</p><p>  this.setTitle("日期成績查詢");&

46、lt;/p><p>  j1.setBounds(40,480,120,30);</p><p>  j1.setFont(new java.awt.Font("Dialog",0,20));</p><p>  j1.setForeground(new Color(255,0,0));</p><p>  cp.add(j1

47、);</p><p>  t1.setBounds(100,480,140,30);</p><p>  t1.setFont(new java.awt.Font("Dialog",1,15));</p><p>  cp.add(t1);</p><p>  j2.setBounds(100,510,140,30);&l

48、t;/p><p>  j2.setFont(new java.awt.Font("Dialog",0,15));</p><p>  j2.setForeground(new Color(0,200,0));</p><p>  cp.add(j2);</p><p>  b1.setBounds(300,480,85,30)

49、;</p><p>  b1.setFont(new java.awt.Font("Dialog",0,15));</p><p>  b1.addActionListener(this);</p><p>  cp.add(b1);</p><p>  b2.setBounds(415,480,85,30);</p

50、><p>  b2.setFont(new java.awt.Font("Dialog",0,15));</p><p>  b2.addActionListener(this);</p><p>  cp.add(b2);</p><p>  b3.setBounds(530,480,85,30);</p>&

51、lt;p>  b3.setFont(new java.awt.Font("Dialog",0,15));</p><p>  b3.addActionListener(this);</p><p>  cp.add(b3);</p><p>  jsp.setBounds(40,8,720,400);</p><p>

52、;  jsp.add(jT1);</p><p>  cp.add(jsp);</p><p>  tp.setSize(800,600);</p><p>  tp.setText("");</p><p>  cp.add(tp,null);</p><p>  this.setResizabl

53、e(false);</p><p>  this.setLocationRelativeTo(null);</p><p>  this.setVisible(true);</p><p><b>  try</b></p><p><b>  {</b></p><p> 

54、 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p>  java.sql.Connection con=DriverManager.getConnection("jdbc:odbc:yundonghui","sa","123");</p><p>  

55、Statement ps=con.createStatement();</p><p>  ResultSet rs = null;</p><p>  rs=ps.executeQuery("select * from 表一"); </p><p>  jT1.setModel(new javax.swing.table.DefaultT

56、ableModel());</p><p>  Object[][] rowData=new Object[200][10]; </p><p>  String[] columnNames = {</p><p>  "編號","姓名", "性別","項目","學院"

57、;,"類別","成績","名次","日期","紀錄"}; </p><p>  JTable jT1=new JTable(rowData, columnNames); //創(chuàng)建新的JTable對象</p><p>  jsp.getViewport().

58、add(jT1,null); //加載JTable對象</p><p><b>  int i=0; </b></p><p>  while(rs.next())</p><p><b>  {</b></p><p>  rowData[i][0] = rs.getString(1);</

59、p><p>  rowData[i][1] = rs.getString(2);</p><p>  rowData[i][2] = rs.getString(3);</p><p>  rowData[i][3] = rs.getString(4);</p><p>  rowData[i][4] = rs.getString(5);</

60、p><p>  rowData[i][5] = rs.getString(6);</p><p>  rowData[i][6] = rs.getString(7);</p><p>  rowData[i][7] = rs.getString(8);</p><p>  rowData[i][8] = rs.getString(9);</

61、p><p>  rowData[i][9] = rs.getString(10);</p><p><b>  i++;</b></p><p><b>  } </b></p><p>  }catch(Exception err){err.printStackTrace();JOptionPane.

62、showMessageDialog(null,"數(shù)據(jù)庫連接出錯!");}</p><p><b>  }</b></p><p>  public static void main(String args[])</p><p>  {new date_result_find();}</p><p> 

63、 public void actionPerformed(ActionEvent e) </p><p><b>  { </b></p><p>  if(e.getSource()==b3) { this.dispose();}</p><p>  else if(t1.getText().equals("")){J

64、OptionPane.showMessageDialog(null, "請輸入要查詢的日期!");t1.requestFocus();}</p><p><b>  else</b></p><p><b>  try {</b></p><p>  Class.forName("sun.jd

65、bc.odbc.JdbcOdbcDriver");</p><p>  Connection con=DriverManager.getConnection("jdbc:odbc:yundonghui","sa","123");</p><p>  Statement ps=con.createStatement();&

66、lt;/p><p>  ResultSet rs=null;</p><p>  if(e.getSource()==b2)</p><p><b>  {</b></p><p>  rs=ps.executeQuery("select * from 表一");</p><p>

67、  t1.setText("");</p><p><b>  }</b></p><p><b>  else{</b></p><p>  rs=ps.executeQuery("select * from 表一 where 日期='"+t1.getText().trim

68、()+"'");</p><p>  if(!rs.next()){JOptionPane.showMessageDialog(null, "沒有記錄!\n或輸入的日期格式不對!");t1.setText("");rs=ps.executeQuery("select * from 表一");}</p><p

69、>  else{rs=ps.executeQuery("select * from 表一 where 日期='"+t1.getText().trim()+"'");}</p><p><b>  }</b></p><p>  jT1.setModel(new javax.swing.table.Defau

70、ltTableModel());</p><p>  Object[][] rowData=new Object[200][10]; </p><p>  String[] columnNames = {</p><p>  "編號","姓名", "性別","項目","學院&q

71、uot;,"類別","成績","名次","日期","紀錄"}; </p><p>  JTable jT1=new JTable(rowData, columnNames); //創(chuàng)建新的JTable對象</p><p>  jsp.getViewport

72、().add(jT1,null); //加載JTable對象</p><p><b>  int i=0; </b></p><p>  while(rs.next())</p><p><b>  {</b></p><p>  rowData[i][0] = rs.getString(1);&l

73、t;/p><p>  rowData[i][1] = rs.getString(2);</p><p>  rowData[i][2] = rs.getString(3);</p><p>  rowData[i][3] = rs.getString(4);</p><p>  rowData[i][4] = rs.getString(5);&l

74、t;/p><p>  rowData[i][5] = rs.getString(6);</p><p>  rowData[i][6] = rs.getString(7);</p><p>  rowData[i][7] = rs.getString(8);</p><p>  rowData[i][8] = rs.getString(9);&l

75、t;/p><p>  rowData[i][9] = rs.getString(10);</p><p><b>  i++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  catch (Exce

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論