Java课程设计排球比赛记分系统实验报告.docx
- 文档编号:9592184
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:18
- 大小:234.42KB
Java课程设计排球比赛记分系统实验报告.docx
《Java课程设计排球比赛记分系统实验报告.docx》由会员分享,可在线阅读,更多相关《Java课程设计排球比赛记分系统实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
Java课程设计排球比赛记分系统实验报告
《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开发工具以及记事本记录方式来开发这个排球比赛记分系统。
该系统要满足的是排球比赛记录人员记录简单化需求,通过电子化记录使得赛事结果更加安全可靠。
此系统也很好的注重用户体验舒适度,力求为用户营造更良好的体验环境
关键字:
排球比赛记分系统,EclipseEE,记事本
一、系统设计要求
编写一个能够对排球比赛实时统计比分和显示比分的程序。
排球竞赛规则规定:
排球竞赛为五局三胜制,每局比赛中得够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的使用也有了更进一步了解。
总体来说,课程设计让我学了不少知识。
我认为课程设计是我们学习生涯中相当重要的一课,除了验证学生的学习成果外,也是训练一个人独立思考及解决问题的能力.在这里,我要感指导老师和同学在这次课程设计中对我的帮助。
五、参考文献:
JAVA2实用教程(第4版)耿祥义跃平编著清华大学
附录:
程序代码清单
packageziyou;
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
importjava.io.*;
publicclassjiemextendsJFrame{
/**
*
*/
intcountAdd1=0;
intcountAdd2=0;
Stringstr1[]={"国家","中国","美国","英国"};
Stringstr2[]={"国家","俄罗斯","德国","法国"};
Stringstr3[]={"场次","第一场","第二场","第三场","第四场","第五场"};
privatestaticfinallongserialVersionUID=1L;
privateJButtoninsert=newJButton();
privateJButtonde=newJButton();
privateJButtonAdd1=newJButton("ADD");
privateJButtonAdd2=newJButton("ADD");
privateJButtonsava=newJButton("Sava");
privateJLabelVS=newJLabel("VS");
privateJLabelkong=newJLabel(":
");
privateJLabelkong2=newJLabel("");
privateJLabelkong3=newJLabel("");
privateJLabelkong4=newJLabel("");
privateJTextFieldtext1=newJTextField(5);
privateJTextFieldtext2=newJTextField(5);
SuppressWarnings({"rawtypes","unchecked"})
privateJComboBoxjcb=newJComboBox(str1);//下拉框
SuppressWarnings({"rawtypes","unchecked"})
privateJComboBoxjcb1=newJComboBox(str2);//下拉框
SuppressWarnings({"rawtypes","unchecked"})
privateJComboBoxjcb2=newJComboBox(str3);//下拉框
publicjiem(){
Panelpanel=newPanel();
//panel.setLayout(null);
Panelpanel2=newPanel();
Panelpanel3=newPanel();
//***************窗体属性*****************
this.setResizable(false);
this.setTitle("排球记分系统");//标题设置
this.setBounds(200,100,500,600);//前面两个数据代表位置,后面两个代表大小
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
ImageIconbackground=newImageIcon("D:
\\ziyou\\TuPian\\7.jpg");
//把背景图片显示在一个标签里面
JLabellabel=newJLabel(background);
//把标签的大小位置设置为图片刚好填充整个面板
label.setBounds(0,0,this.getWidth(),this.getHeight());
//把容窗格转化为JPanel,否则不能用方法setOpaque()来使容窗格透明
JPanelimagePanel=(JPanel)this.getContentPane();
imagePanel.setOpaque(false);
//把背景图片添加到分层窗格的最底层作为背景
this.getLayeredPane().add(label,newInteger(Integer.MIN_VALUE));
//***********第一行********************************
DimensionpreferredSize=newDimension(100,100);//设置尺寸
insert.setPreferredSize(preferredSize);
de.setPreferredSize(preferredSize);
VS.setFont(newFont("",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(newFlowLayout());
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(newFlowLayout());
DimensionpreferredSize1=newDimension(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(newActionListener()
{
Override
publicvoidactionPerformed(ActionEvente)
{
countAdd1++;
methodAdd1();
}
}
);
//***********ADD2分数*******************************
Add2.addActionListener(newActionListener()
{
Override
publicvoidactionPerformed(ActionEvente)
{
countAdd2++;
methodAdd2();
}
}
);
//***************下拉框触发一************************************
jcb.addItemListener(newItemListener()
{
Override
publicvoiditemStateChanged(ItemEvente)
{
//如果选中了一个
if((String)jcb.getSelectedItem()==str1[0]){
insert.setIcon(newImageIcon("D:
\\ziyou\\TuPian\\8.jpg"));}
if((String)jcb.getSelectedItem()==str1[1]){
insert.setIcon(newImageIcon("D:
\\ziyou\\TuPian\\1.jpg"));}
if((String)jcb.getSelectedItem()==str1[2]){
insert.setIcon(newImageIcon("D:
\\ziyou\\TuPian\\2.jpg"));}
if((String)jcb.getSelectedItem()==str1[3]){
insert.setIcon(newImageIcon("D:
\\ziyou\\TuPian\\3.jpg"));}
}
});
//******************************************************************
//**********************下拉框触发二***********************************
jcb1.addItemListener(newItemListener()
{
Override
publicvoiditemStateChanged(ItemEvente)
{
//如果选中了一个
if((String)jcb1.getSelectedItem()==str2[0]){
de.setIcon(newImageIcon("D:
\\ziyou\\TuPian\\8.jpg"));}
if((String)jcb1.getSelectedItem()==str2[1]){
de.setIcon(newImageIcon("D:
\\ziyou\\TuPian\\4.jpg"));}
if((String)jcb1.getSelectedItem()==str2[2]){
de.setIcon(newImageIcon("D:
\\ziyou\\TuPian\\5.jpg"));}
if((String)jcb1.getSelectedItem()==str2[3]){
de.setIcon(newImageIcon("D:
\\ziyou\\TuPian\\6.jpg"));}
}
});
//**********************************************************************
//***************保存数据*************************
sava.addActionListener(newActionListener()
{
Override
publicvoidactionPerformed(ActionEvente)
{
sava();
SuppressWarnings("unused")
intres=JOptionPane.showConfirmDialog(null,"正在保存","是否保存",JOptionPane.YES_NO_OPTION);
}
}
);
//*******************************************************
this.setVisible(true);
}
//**********触发1***************************
publicvoidmethodAdd1(){
Strings=String.valueOf(countAdd1);
text1.setText(s);
}
//**********触发2************************************
publicvoidmethodAdd2(){
Strings=String.valueOf(countAdd2);
text2.setText(s);
}
//****************************************************
publicvoidsava(){
FileOutputStreamfop=null;
Filefile;
Stringcontent=(String)jcb.getSelectedItem()+"vs"+(String)jcb1.getSelectedItem()+""+(String)jcb2.getSelectedItem()+""+text1.getText().toString()+":
"+text2.getText().toString();
try{
file=newFile("D:
\\ziyou\\SavaData",(String)jcb.getSelectedItem()+"vs"+(String)jcb1.getSelectedItem()+(String)jcb2.getSelectedItem()+".txt");
fop=newFileOutputStream(file);
if(!
file.exists()){
file.createNewFile();
}
//getthecontentinbytes
byte[]contentInBytes=content.getBytes();
fop.write(contentInBytes);
fop.flush();
fop.close();
}catch(IOExceptione){
e.printStackTrace();
}finally{
try{
if(fop!
=null){
fop.close();
}
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课程设计 排球 比赛 记分 系统 实验 报告