收藏 分销(赏)

Java课程设计(排球比赛记分系统)实验报告.docx

上传人:二*** 文档编号:4510566 上传时间:2024-09-26 格式:DOCX 页数:15 大小:260KB
下载 相关 举报
Java课程设计(排球比赛记分系统)实验报告.docx_第1页
第1页 / 共15页
本文档共15页,全文阅读请下载到手机保存,查看更方便
资源描述
《Java程序课程设计》 实验报告 题目: 排球比赛记分系统 专业: 软件工程 班级: 2015级 组别: 组长: 岑海佳 成员: 1515080101岑海佳、1515080127张圣华 完成日期: 2017.10.8 小组分工: 组 长 岑海佳 负责 主要页面设计及部分代码 组 员 张圣华 负责 部分代码设计 广西师范学院 目录 摘要……………………………………………………………………………………3 一、系统设计要求……………………………………………………………………4 二、系统需求分析……………………………………………………………………4 2.1功能需求……………………………………………………………………4 2.2性能需求……………………………………………………………………5 三、系统详细设计……………………………………………………………………6 3.1程序流图……………………………… ……………………………………6 3.2本系统运行界面…………………… ………………………………………7 四、设计总结和体会…………………………………………………………………9 五、参考文献…………………………………………………………………………9 代码附录……………………………………………………………………………10 摘要 随着计算机技术的发展,人们对计算机智能化的需求越来越大,对软件的实用性、速度等性能的要求也越来越高。未来各项赛事的举办肯定越来越科技化,传统手工记录赛事结果的记录也越来越满足不了大众需求,而且随着计算机的普及,信息处理量的逐渐扩大,各种工作都逐渐由手工转为自动化,将使许多复杂、繁琐、且需要很多人力的工作变得简单。在本课程设计中,我们就排球比赛记分系统进行科技化的更新,借此隐射到全部体育赛事中。 工具软件利用eclipse开发工具以及记事本记录方式来开发这个排球比赛记分系统。该系统要满足的是排球比赛记录人员记录简单化需求,通过电子化记录使得赛事结果更加安全可靠。此系统也很好的注重用户体验舒适度,力求为用户营造更良好的体验环境 关键字:排球比赛记分系统,Eclipse EE,记事本 一、系统设计要求 编写一个能够对排球比赛实时统计比分和显示比分的程序。排球竞赛规则规定:排球竞赛为五局三胜制,每局比赛中得够25分并且领先对方2分以上的一方将获得一局胜利,先获得三局胜利的一方将获得比赛的胜利。若比赛中出现24:24的比分,则一方必须领先对方2分方可结束一局。若双方前四局的比分为2:2,则将进行第五局的比赛,第五局比赛中得够15分并且领先对方2分以上的一方将获得胜利。若比赛中出现14:14的比分,则一方必须领先对方2分方可结束比赛。 设计一个程序,分别用两个按钮来输入比赛一方的得分。根据比赛进展,用两个固定的按钮输入比赛双方的得分,如果一方得分,则按下对应的按钮一次,GUI界面上的分数将增加1分。当完成一局比赛时,程序自动将比赛得分清零,并且相应地将获得本局胜利一方的局分增加1分。若一方获得三局比赛的胜利,则程序自动显示获胜一方的名称。 二、系统需求分析 排球计分系统是专门针对排球的一款计分系统,在符合排球规则的情况下轻松计分。应用此系统可以代替人工计分过程,大大减少了由于人员操作引起的错误。可以使排球计分达到真正的公正性、公开性。同时又方便了计分人员的记录操作,系统处理性强。 2.1功能需求: (一) 能自由选择任意两支比赛队伍,并且显示它们对应的队旗图像,提高用户体验舒适度; (二) 能选择任意比赛场次,并通过对应按钮为特定队伍进行得分加分; (三) 更换场次比分自动清零,重新计分; (四) 对得分进行判断,如果某只队伍符合胜利规则,则自动弹出胜利提示框; (五) 能选择保存赛程的比分,以供回顾使用。 2.2性能需求: 为了保证系统能够长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的性能需求。 2.2.1 准确性和及时性 系统处理的准确性和及时性是系统的必要性能。系统应能及时而且准确的根据用户权限及所输入的信息做出响应。由于本系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,而赛程比分对于整个赛事来说至关重要,我们需要保证这个系统能很好的保存比赛结果,这个要求在很大程度上决定了系统的成败。在系统开发过程中,必须采用一定的方法保证系统数据的准确性和及时性。 2.2.2 易用性 本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。 三、系统详细设计 3.1程序流图:本系统主要实现功能为比赛分数的累加及存储功能,下图3.1.1和图3.2分别为这两个功能的程序流图: 开始 某队得分 点击对应按钮 实现分数累加一 存入系统数据 否 判断是否满足 结束条件 是 结束 图3.1.1分累加流程图 开始 否 是否保存数据 是 保存文件 结束 图3.1.2 数据保存流程图 3.2本系统运行界面: 本系统各部分页面如下各图所示: 图3.2.1主窗口页面 图3.2.2选择比赛队伍窗口 3.2.3选择比赛场次页面 图3.2.4保存页面 四、设计总结和体会 二十一世纪是一个高速、快捷的年代。在这个高速发展的年代里,我们必须顺应社会发展,简化工作环节,提高工作效率,而且易学、易用,满足客户需求。 这次系统的设计从最开始的可行性研究,需求分析,到系统的总体设计,详细设计,再到编码、测试等的一个整体过程,使我们真正明白了要做一个软件的难度,特别是要做一个真正可用的软件,就更难了。在老师和同学的帮助下,我们把以往所学的知识结合起来,利用Eclipse开发工具,完成了本次课程设计,尽量使它能满足各个方面的要求。当然,我们的个人能力有限,还有很多不足的地方,敬请谅解。 在这次课程设计过程中我遇到了不少的难题,界面设计问题,函数使用与实现问题,消息处理问题等等。其中,最关键的是在最初对系统的需求分析做的不透彻,导致后续设计工作乃至编码时的修改工作量变大。所以,通过这次课程设计我深刻体会到软件工程还是必须学精通点、学透彻点。 通过这次课程设计,我学会了如何对所学课程综合运用,eclipse的使用也有了更进一步了解。总体来说,课程设计让我学了不少知识。 我认为课程设计是我们学习生涯中相当重要的一课,除了验证学生的学习成果外,也是训练一个人独立思考及解决问题的能力.在这里,我要感谢指导老师和同学在这次课程设计中对我的帮助。 五、参考文献: JAVA 2实用教程(第4版)耿祥义 张跃平 编著 清华大学出版社 附录:程序代码清单 package ziyou; import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.io.*; public class jiem extends JFrame { /** * */ int countAdd1= 0; int countAdd2= 0; String str1[] = {"国家", "中国", "美国", "英国"}; String str2[] = {"国家", "俄罗斯", "德国", "法国"}; String str3[]={"场次","第一场","第二场","第三场","第四场","第五场"}; private static final long serialVersionUID = 1L; private JButton insert = new JButton(); private JButton de = new JButton(); private JButton Add1 = new JButton("ADD"); private JButton Add2 = new JButton("ADD"); private JButton sava = new JButton("Sava"); private JLabel VS = new JLabel("VS"); private JLabel kong = new JLabel(" : "); private JLabel kong2 = new JLabel(" "); private JLabel kong3 = new JLabel(" "); private JLabel kong4 = new JLabel(" "); private JTextField text1=new JTextField(5); private JTextField text2=new JTextField(5); @SuppressWarnings({ "rawtypes", "unchecked" }) private JComboBox jcb= new JComboBox(str1); //下拉框 @SuppressWarnings({ "rawtypes", "unchecked" }) private JComboBox jcb1= new JComboBox(str2); //下拉框 @SuppressWarnings({ "rawtypes", "unchecked" }) private JComboBox jcb2= new JComboBox(str3); //下拉框 public jiem(){ Panel panel =new Panel(); //panel.setLayout(null); Panel panel2=new Panel(); Panel panel3=new Panel(); //***************窗体属性***************** this.setResizable(false); this.setTitle("排球记分系统");//标题设置 this.setBounds(200,100,500,600);//前面两个数据代表位置,后面两个代表大小 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); ImageIcon background = new ImageIcon("D:\\ziyou\\TuPian\\7.jpg"); // 把背景图片显示在一个标签里面 JLabel label = new JLabel(background); // 把标签的大小位置设置为图片刚好填充整个面板 label.setBounds(0, 0, this.getWidth(), this.getHeight()); // 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明 JPanel imagePanel = (JPanel) this.getContentPane(); imagePanel.setOpaque(false); // 把背景图片添加到分层窗格的最底层作为背景 this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE)); //***********第一行******************************** Dimension preferredSize = new Dimension(100,100);//设置尺寸 insert.setPreferredSize(preferredSize); de.setPreferredSize(preferredSize); VS.setFont(new Font("",1,30));//设置字体大小 panel.add(jcb); panel.add(insert); //insert.setBounds(10,10,100,10); panel.add(VS); panel.add(de); panel.add(jcb1); this.add(panel, BorderLayout.NORTH); //jcb.setSelectedIndex(1); //***********第一行******************************** //***********第二行******************************** setLayout(new FlowLayout()); panel2.add(jcb2); panel2.add(kong4); panel2.add(text1); panel2.add(kong); panel2.add(text2); panel2.add(kong3); panel2.add(sava); this.add(panel2,BorderLayout.NORTH); //***********第二行******************************** //***********第三行****************************** setLayout(new FlowLayout()); Dimension preferredSize1 = new Dimension(70,30);//设置尺寸 Add1.setPreferredSize(preferredSize1); Add2.setPreferredSize(preferredSize1); panel3.add(Add1); panel3.add(kong2); panel3.add(Add2); this.add(panel3,BorderLayout.NORTH); //************************************************* //**************ADD1 分数******************************* Add1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { countAdd1++; methodAdd1(); } } ); //***********ADD2 分数******************************* Add2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { countAdd2++; methodAdd2(); } } ); //***************下拉框触发一************************************ jcb.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { //如果选中了一个 if ((String) jcb.getSelectedItem()==str1[0]){ insert.setIcon(new ImageIcon("D:\\ziyou\\TuPian\\8.jpg"));} if ((String) jcb.getSelectedItem()==str1[1]){ insert.setIcon(new ImageIcon("D:\\ziyou\\TuPian\\1.jpg"));} if ((String) jcb.getSelectedItem()==str1[2]) { insert.setIcon(new ImageIcon("D:\\ziyou\\TuPian\\2.jpg"));} if ((String) jcb.getSelectedItem()==str1[3]) { insert.setIcon(new ImageIcon("D:\\ziyou\\TuPian\\3.jpg"));} } }); //****************************************************************** //**********************下拉框触发二*********************************** jcb1.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { //如果选中了一个 if ((String) jcb1.getSelectedItem()==str2[0]){ de.setIcon(new ImageIcon("D:\\ziyou\\TuPian\\8.jpg"));} if ((String) jcb1.getSelectedItem()==str2[1]){ de.setIcon(new ImageIcon("D:\\ziyou\\TuPian\\4.jpg"));} if ((String) jcb1.getSelectedItem()==str2[2]) { de.setIcon(new ImageIcon("D:\\ziyou\\TuPian\\5.jpg"));} if ((String) jcb1.getSelectedItem()==str2[3]) { de.setIcon(new ImageIcon("D:\\ziyou\\TuPian\\6.jpg"));} } }); //********************************************************************** //***************保存数据************************* sava.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { sava(); @SuppressWarnings("unused") int res=JOptionPane.showConfirmDialog(null, "正在保存", "是否保存", JOptionPane.YES_NO_OPTION); } } ); //******************************************************* this.setVisible(true); } //**********触发1*************************** public void methodAdd1(){ String s=String.valueOf(countAdd1); text1.setText(s); } //**********触发2************************************ public void methodAdd2(){ String s=String.valueOf(countAdd2); text2.setText(s); } //**************************************************** public void sava(){ FileOutputStream fop = null; File file; String content = (String) jcb.getSelectedItem()+"vs"+(String) jcb1.getSelectedItem()+" "+(String) jcb2.getSelectedItem()+" "+text1.getText().toString()+":"+text2.getText().toString(); try { file = new File("D:\\ziyou\\Sava Data",(String) jcb.getSelectedItem()+"vs"+(String) jcb1.getSelectedItem()+(String) jcb2.getSelectedItem()+".txt"); fop = new FileOutputStream(file); if (!file.exists()) { file.createNewFile(); } // get the content in bytes byte[] contentInBytes = content.getBytes(); fop.write(contentInBytes); fop.flush(); fop.close(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (fop != null) { fop.close(); } } catch (IOException e) { e.printStackTrace(); } } } } 15
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服