




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
*******************实践教学******************* 兰州理工大学 计算机与通信学院2013年秋季学期Java课程设计题目:足球联赛积分管理系统专业班级:姓名:学号:指导教师:成绩:摘要足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。该设计以足球联赛为背景,设计足球联赛积分管理系统程序。通过对该题目的具体设计分析,可以对面向对象程序设计的思想更加深入理解,可以达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。同时对程序设计风格有全面的强调,提高解决实际问题的能力。并且通过与数据库的连接,深化对数据库编程的理解和运用。关键词:面向对象;Java;数据库编程;数据库序言通过足球联赛积分管理系统的设计,培养学生面向对象程序设计的思想,要求学生达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。同时强调好的程序设计风格,提高解决实际问题的能力。由于联赛中参赛的队伍数是固定的,因此可用对象数组来实现(也可以用链表结构)。每输入两个队的比赛成绩,则相应的队的有关数据(比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分等)即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数)排出名次并输出。
目录摘要……………………1序言……………………1正文……………………3一.系统分析与设计…………………3系统分析……………………3系统设计……………………3系统类的描述………………4二.详细设计…………5系统模块设计………………5数据库概念结构设计………6数据库逻辑模型结构设计…………………7使用ODBC建立WINDOW数据源的方法……8三.系统测试…………11四.软件使用说明书…………………13设计总结……………14参考文献……………15致谢…………………16源代码………………23
一.系统分析与设计系统分析足球联赛积分管理系统是一个以足球联赛为背景,设计足球联赛积分管理系统程序。采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次。面向对象程序开发语言采用JAVA,数据库管理系统采用MicrosoftAccess2003,集成开发环境使用eclipse。该管理系统是以自主设计为主,通过对该系统的具体设计分析,可以对面向对象程序设计的思想更加深入理解,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。系统设计在对该系统有初步的规划之后,我们应该着手处理如何初步规划该系统的各主要模块以及基本的方法,前面已经提到,我们使用面向对象程序设计的思路,而且运用数据库编程的理论,所以我们应该按照具体的思路来设计相应的应用,以下简要概述该系统的具体设计:(1).比赛过程的管理:包括一场比赛的基本信息的录入,如参赛双方的球队名称、比赛结果、进球情况等;(2).球队基本信息查询:查询球队的基本信息,输入球队名称,对比查找已有数据库,匹配到该球队,则输出球队的的进球数,胜负场次情况等;(3).积分榜查询:所有的输入结束后,按照联赛的积分规则,排列数据库中的几组关键数据,查询各个球队的名次;.系统类的描述(a).MainFrame类实现了主窗体;成员函数:privatevoidinitialize()成员变量:privateJFramefrmZ; publicstaticTextArearesultText;(b).LastTime实现了最后一轮比赛的窗口及主场、客场和其各自进球数的输入;成员函数:publicstaticvoidLasttime()成员变量:privatefinalJPanelcontentPanel=newJPanel(); privateJTextFieldzhuchangname; privateJTextFieldkechangname; privateJTextFieldzhuchang; privateJTextFieldkechang;(c).Search实现了队各个队伍比赛情况的查询;成员函数:publicstaticvoidsearch()成员变量:privatefinalJPanelcontentPanel=newJPanel(); privateJTextFieldtextField;(d).FootBean类申明成员变量ArrayList<HashMap<String,String>>listspublicclassFootBean{ publicstaticArrayList<HashMap<String,String>>lists=newArrayList<HashMap<String,String>>(); }(e).AccessConnection类实现了数据库的连接;成员函数:publicvoidGetInfo()publicvoidSetInfo()privateStatementexcuteUpdate()publicvoidSetScore()publicStringSearch(Stringname)publicStringSort()publicStringOutInfo()成员变量:publicinti=1; publicStringSQL_insert; publicConnectionconn; publicStatementsql; publicArrayList<HashMap<String,String>>lists; publicResultSetrs; publicstaticStringname; publicPreparedStatementps; publicbyte[]b;
(f).五个类之间的关系如下所示:图各个类之间关系流程图二.详细设计针对系统的局部构思,可以设计系统的功能模块如下所示:系统模块设计;数据库概念结构设计;数据库逻辑结构设计;数据库物理结构设计;.系统模块设计图系统模块图主窗体主窗体比赛过程球队信息积分信息输入主队输入进球输入队名得分胜利场次输球场次平局场次得分榜进球榜输入客队输入进球图主窗体模块图.数据库概念结构设计球队球队进行名称得分总进球主队客队主队进球客队进球比赛轮次进球输赢图数据库模块图.数据库逻辑模型结构设计表逻辑模型设计——球队表(Team)字段名数据类型宽度主码非空外码描述nameVARCHAR20是是否球队名称winVARCHAR30否否否胜利场次loseVARCHAR20否否否失败场次表逻辑模型设计——比赛进程表(Course)字段名数据类型宽度主码非空外码描述PLACEINT否是否名次nameVARCHAR20是是否球队名称timesINT否是否轮次WinINT否是否胜利场次flatINT否是否平局场次loseINT否是否失败场次inNumINT否是否总进球数scoreINT否是否积分使用ODBC建立WINDOW数据源的方法:开始>>控制面板>>管理工具>>数据源(ODBC)>>用户DSN或系统DSN>>点添加>>找到"MicrosoftAccessDriver(*.mdb)",选中,再点完成>>自定义数据源名称,可创建一个新的或选择已经有的Access数据库(.mdb)其它可以不选>>确定>>确定到此数据源已经建立成功连接数据库代码(部分):importclassAccessConnection{ publicinti=1; publicStringSQL_insert; publicConnectionconn; publicStatementsql; publicArrayList<HashMap<String,String>>lists=newArrayList<HashMap<String,String>>(); publicResultSetrs; publicstaticStringname=""; publicPreparedStatementps=null; publicbyte[]b=newbyte[2]; publicvoidGetInfo(){ try{ (""); }catch(Exceptione){ } try{ conn=("jdbc:odbc:redsun","",""); sql=(); rs=("SELECT*FROMfootball"); while()){ HashMap<String,String>temp=newHashMap<String,String>(); ("name",("name").toString()); ("lose",("lose")+""); ("win",("win")+""); ("flat",("flat")+""); ("in",("inNum")+""); ("score",("score")+""); ("times",("times")+""); (temp); } =lists; (); if(conn!=null){ "数据库连接正常");} }catch(Exceptione){ }finally{ } }
三、系统测试
四.软件使用说明书使用ODBC建立WINDOW数据源:开始>>控制面板>>管理工具>>数据源(ODBC)>>用户DSN或系统DSN>>点添加>>找到"MicrosoftAccessDriver(*.mdb)",选中,再点完成>>自定义数据源名称,可创建一个新的或选择已经有的Access数据库(.mdb)其它可以不选>>确定>>确定到此数据源已经建立成功由结果菜单中的最后一次输入菜单,输入最近一轮的比赛情况,包括比赛队名和各队的进球数;由排序菜单可查看比赛的积分表排序(递减排序),包括每个队的比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分;由查询菜单输入要查询的队名,可查看该对的比赛成绩。
设计总结经历这次的课程设计,对自己的学习有很多帮助,特别是对面向对象程序设计的思想、方法以及具体实现有了较为深刻的体会。在平时的很少有那么多的时间去学习java,这次的课程设计使我有了一个相对比较集中的时间去练习我的编程,特别是我的动手能力有了极大的提高,因为这次的课程设计几乎涉及到了java语言程序设计的整本书的重要内容,让我从中受益,有了一次巩固知识的机会。同时还让自己平时不怎么注意的问题得到了自己足够的关注,为以后写程序奠定下了坚实的基础,让自己对这门课的课程有了更深刻的认识。这次写完程序后,等到自己能顺利运行,中间经历了重重困难,一步一步的调试程序,经历了上百次的失败。不过,最后在程序顺利运行的那一刻,所有付出都有了回报。通过对该系统的具体设计分析,使我对面向对象程序设计的思想更加深入理解,我基本上掌握了Java语言的基本知识和技能和面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。同时对程序设计风格有全面的强调,提高解决实际问题的能力。并且通过与数据库的连接,深化对数据库编程的理解和运用。由于我们还没有学数据库这门课,所以我对数据库的操作基本上是清零状态,在网上搜了好多方法,数据库的连接,数据查找,数据库的升级。虽然对于数据库我知之甚深少,但是通过这次课设,让我对数据库产生了极大的兴趣,同时也认识到了数据库在软件编程中的重要地位。最后,用一句话总结这次的课程设计——发现问题并解决它。
参考文献[1]曲朝阳,杨杰明等.Java程序设计.北京:清华大学出版社,[2]耿祥以,张跃平.Java大学生实用教程.北京:电子工业出版社,[3]明日科技.Java经典编程.北京:清华大学出版社,[4]李尊朝,苏军.Java语言程序设计.北京:中国铁道出版社,[5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司,1990.
致谢 首先,我要感谢学校给我们提供了此次课程设计的机会,能让同学们在一起学习与研究,让我们有机会对所学的理论知识进行实践。其次,我还要特别感谢我的辅导老师王燕老师,在她的精心辅导和帮助下,我的设计才得以顺利完成,并使所学知识得以真正的应用。对她为我的设计所提出的宝贵意见表示忠心的感谢!最后、在设计过程中,也得到了许多同学的宝贵建议,同时还到许多校友的支持和帮助,在此一并致以诚挚的谢意。
源代码:Packagestudent;importclassAccessConnection{ publicinti=1; publicStringSQL_insert; publicConnectionconn; publicStatementsql; publicArrayList<HashMap<String,String>>lists=newArrayList<HashMap<String,String>>(); publicResultSetrs; publicstaticStringname=""; publicPreparedStatementps=null; publicbyte[]b=newbyte[2]; publicvoidGetInfo(){ try{ (""); }catch(Exceptione){ } try{ conn=("jdbc:odbc:redsun","",""); sql=(); rs=("SELECT*FROMfootball"); while()){ HashMap<String,String>temp=newHashMap<String,String>(); ("name",("name").toString()); ("lose",("lose")+""); ("win",("win")+""); ("flat",("flat")+""); ("in",("inNum")+""); ("score",("score")+""); ("times",("times")+""); (temp); } =lists; (); if(conn!=null){ "数据库连接正常");} }catch(Exceptione){ }finally{ } } publicvoidSetInfo(Stringzhuchang,Stringkechang,intzhu,intke){ Stringa=""; intb=0; GetInfo(); try{ conn=("jdbc:odbc:redsun","",""); booleanflag=false; for(inti=0;i< if"name").toString().equals(zhuchang)){ flag=true; if(zhu>ke){ b="win").toString())+1; a="updatefootballSETwin="+"'"+b+"'"+"WHEREname="+"'"+"name").toString()+"'"; } elseif(zhu==ke){ b="flat").toString())+1; a="updatefootballSETflat="+"'"+b+"'"+"WHEREname="+"'"+"name").toString()+"'"; } else{ b="lose").toString())+1; a="updatefootballSETlose="+"'"+b+"'"+"WHEREname="+"'"+"name").toString()+"'"; } ps=(a); (); b="times").toString())+1; a="updatefootballSETtimes="+"'"+b+"'"+"WHEREname="+"'"+"name").toString()+"'"; ps=(a); (); intc="in").toString())+zhu; Stringd="updatefootballSETinNum="+"'"+c+"'"+"WHEREname="+"'"+"name").toString()+"'"; PreparedStatementpx=(d); (); } } if(!flag){ Statementstmtl=(); if(zhu>ke) ("insertintofootballvalues('"+zhuchang+"','1','0','0','"+zhu+"','3','1')"); elseif(zhu==ke) ("insertintofootballvalues('"+zhuchang+"','0','0','1','"+zhu+"','1','1')"); else ("insertintofootballvalues('"+zhuchang+"','0','1','0','"+zhu+"','0','1')"); } flag=false; for(inti=0;i< if"name").toString().equals(kechang)){ flag=true; if(zhu<ke){ b="win").toString())+1; a="updatefootballSETwin="+"'"+b+"'"+"WHEREname="+"'"+"name").toString()+"'"; }elseif(zhu==ke){ b="flat").toString())+1; a="updatefootballSETflat="+"'"+b+"'"+"WHEREname="+"'"+"name").toString()+"'"; } else{ b="lose").toString())+1; a="updatefootballSETlose="+"'"+b+"'"+"WHEREname="+"'"+"name").toString()+"'"; } ps=(a); (); b="times").toString())+1; a="updatefootballSETtimes="+"'"+b+"'"+"WHEREname="+"'"+"name").toString()+"'"; ps=(a); (); intc="in").toString())+ke; Stringx="updatefootballSETinNum="+"'"+c+"'"+"WHEREname="+"'"+"name").toString()+"'"; ps=(x); (); } } if(!flag){ Statementstmtl=(); if(zhu<ke) ("insertintofootballvalues('"+kechang+"','1','0','0','"+ke+"','3','1')"); elseif(zhu==ke) ("insertintofootballvalues('"+kechang+"','0','0','1','"+ke+"','1','1')"); else ("insertintofootballvalues('"+kechang+"','0','1','0','"+ke+"','0','1')"); }(); }catch(Exceptione){ } SetScore(); } privateStatementexcuteUpdate(){ oString()+"'"; ps=(a); (); }(); }catch(Exceptione){ et("name").toString().equals(name)){ temp=(i).get("name").toString()+"得分:"+(i).get("score").toString()+ "胜球场次:"+(i).get("win").toString()+"输球场次:"+(i).get("lose").toString()+ "平局场次:"+(i).get("flat").toString(); } } returntemp; } publicStringSort(){ GetInfo(); b[0]=0x0d;b[1]=0x0a; ArrayList<HashMap<String,String>>temps=newArrayList<HashMap<String,String>>(); for(inti=0;i<();i++){ HashMap<String,String>temp=newHashMap<String,String>(); for(intj=i;j<();j++){ temp=(i); if("score").toString())<(j).get("score").toString())){ HashMap<String,String>s=(j); (i,s);(j,temp); } } } Stringsum=""; for(inti=0;i<();i++){ Stringtemp; temp=(i).get("name").toString()+"得分"+(i).get("score").toString()+"进球数:"+(i).get("in").toString()+"胜球场次:"+(i).get("win").toString()+"输球场次:"+(i).get("lose").toString()+ "平局场次:"+(i).get("flat").toString()+newString(b); sum=sum+temp; } returnsum; } publicStringOutInfo(){ Stringsum=""; GetInfo(); for(inti=0;i<();i++){ Stringtemp; temp=(i).get("name").toString()+"得分:"+(i).get("score").toString()+"\t"+"进球数:"+ (i).get("in").toString()+"\t"+ "胜球场次:"+(i).get("win").toString()+"输球场次:"+(i).get("lose").toString()+ "平局场次:"+(i).get("flat").toString()+newString(b); sum=sum+temp; } returnsum; }}packagestudent;importclassMainFrame{privateJFramefrmZ; publicstaticTextArearesultText; publicstaticvoidmain(String[]args){ (newRunnable(){ publicvoidrun(){ try{ MainFramewindow=newMainFrame(); } catch(Exceptione){ (); } } }); } publicMainFrame(){ initialize(); } privatevoidinitialize(){ frmZ=newJFrame(); ("足球积分管理系统"); (100,100,510,229); etLayout(null); resultText=newTextArea(); (0,0,494,170); ().add(resultText); JMenuBarmenuBar=newJMenuBar(); (menuBar); JMenumenu=newJMenu("结果"); (menu); JMenuItemmenuItem_2=newJMenuItem("最后一次比赛成绩"); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ (); } }); (menuItem_2); JMenumenu_1=newJMenu("查询"); (menu_1); JMenuItemmenuItem_1=newJMenuItem("分数查询"); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ (); } }); (menuItem_1); JMenumenu_2=newJMenu("排序"); (menu_2); JMenuItemmenuItem=newJMenuItem("递减排序"); (newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ (newAccessConnection().Sort()); } }); (menuItem); }}packagestudent;importclassLastTimeextendsJDialog{privatefinalJPanelcontentPanel=newJPanel(); privateJTextFieldzhuchangname; privateJTextFieldkechangname; privateJTextFieldzhuchang; privateJTextFieldkechang; publicstaticvoidLasttime(){ try{ LastTimedialog=newLastTime(); ; (true); }catch(Exceptione){ (); } } publicLastTime(){ setTitle("最后一次比赛成绩"); setBounds(100,100,389,174); getContentPane().setLayout(newBorderLayout()); (newEmptyBorder(5,5,5,5)); getContentPane().add(contentPanel,; (null); JLabellabel=newJLabel("主场"); (20,29,54,15); (label); zhuchangname=newJTextField(); (58,26,66,21); (zhuchangname); (10); JLabellabel_1=newJLabel("客场"); (186,29,54,15); (label_1); kechangname=newJTextField(); (239,26,66,21); (kechangname); (10); JLabellabel_2=newJLabel("进球数"); (10,66,54,15); (label_2); zhuchang=newJTextField(); (58,63,66,21); (zhuchang); (10); JLabellabel_3=newJLabel("进球数"); (186,66,54,15); (label_3); kechang=newJTextField(); (239,63,66,21); (kechang); (10); { JPanelbuttonPane=newJPanel(); (newFlowLayout); getContentPane().add(buttonPane,; { JButtonokButton=newJButton("确定"); (newActionListener(){ publicvoidactionP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中铁长江交通设计集团有限公司公开招聘11人笔试题库历年考点版附带答案详解
- 校园防疫及安全专项培训课件
- 2025中国建筑一局(集团)有限公司机械管理员招聘2人笔试题库历年考点版附带答案详解版
- 2025年智能制造行业智能化生产与工业升级研究报告
- 2025年电子商务行业移动支付与社交电商研究报告
- 2025年体育器材行业体育器材市场调研报告
- 2025年眼科患者的视觉康复方案设计模拟考试答案及解析
- 2025年社交媒体行业社交媒体平台用户行为研究与产品升级报告
- 2025年IT行业云计算技术应用研究报告
- 2025年文化创意产业行业创新模式与文化输出研究报告
- 学堂在线 战场侦察监视技术与装备 章节测试答案
- 全球变暖与地缘冲突-洞察及研究
- DG-TJ08-2120-2025 集体土地所有权调查技术标准
- 脑梗死健康宣教及指导
- 遵守安全生产法 当好第一责任人
- 创伤性气胸护理查房
- DB42T 750-2011 家用燃气燃烧器具安装维修服务质量评价规范
- 氧化蜡行业深度研究分析报告(2024-2030版)
- 2025-2030年中国备件制造行业市场现状供需分析及投资评估规划分析研究报告
- 2025至2030中国智能功率模块(IPM)行业项目调研及市场前景预测评估报告
- 装修装饰-设计方案投标文件(技术方案)
评论
0/150
提交评论