面向对象编程技术设计报告.docx
- 文档编号:30401301
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:15
- 大小:136.59KB
面向对象编程技术设计报告.docx
《面向对象编程技术设计报告.docx》由会员分享,可在线阅读,更多相关《面向对象编程技术设计报告.docx(15页珍藏版)》请在冰豆网上搜索。
面向对象编程技术设计报告
面向对象编程技术
实训报告
专业
计算机网络技术
学生姓名
XXX
班级
XXXX
学号
XXXXXXX
指导教师
XXX
完成日期
2013年3月6日
XXXX学院
第一部分:
实训总述
一、实训目的:
1.学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。
2.进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java数据库编程等。
3.通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。
二、实训总体要求:
1.问题的描述与程序将要实现的具体功能。
2.程序功能实现的具体设计思路或框架,并检查流程设计。
3.代码实现。
4.程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。
5.设计小结
三、实训题目:
1.选做
1)图形界面猜数字游戏。
2)图形界面简单计算器。
四、实训报告内容:
1)设计题目及具体要求
2)总体设计思路(简要说明系统包含的java源程序及其功能,描述类之间的主要关系)
3)具体设计(以表格形式描述各个类含有的成员变量和方法,并对关键代码加以说明,显示程序运行界面)
4)总结(包括对本课程的建议)
第二部分选做题目:
猜数字游戏
1.问题描述:
用户每次输入不同的四位数,与程序随机产生的数进行比较,并进行判断猜对的结果。
2.设计思路:
本程序功能不是太复杂,主要工作是界面的设计。
程序将分别设置不同的类,简洁明了,程序中的函数列表如下:
函数名称
函数功能简介
publicCaiFrame()
构造窗体
publicvoidwindowClosing(WindowEvente)
响应事件,实现窗口的关闭
publicvoidtextValueChanged(TextEvente)
实现光标自动跳到下一文本框
publicvoidactionPerformed(ActionEvente)
响应事件,执行相应的逻辑处理
publicsuiji()
重新产生随机数
publicStringgue(Strings,Stringc)
判断每次猜对的数的个数及位置的个数
3.代码实现:
publicclasscaishu{
publicstaticvoidmain(String[]args){
Caiframefrm=newCaiframe();
//frm.setVisible(true);
}
}
importjava.awt.*;
importjava.awt.event.*;
publicclassCaiframeextendsFrame{
publicstaticTextFieldtex[]=newTextField[8];
publicTextAreatxa;
publicFontfont=newFont("华文彩云",Font.BOLD,18);
publicLabellab=newLabel("");
publicwinliswin=newwinlis();
publicButtonbu1=newButton("OK");
publicButtonbu2=newButton("AGINI");
publicButtonbu3=newButton("显示答案");
publicbuttonlisbut=newbuttonlis(this);
Caiframe(){
setLayout(null);
setSize(330,400);
setTitle("王立宇110705113");
setLocation(270,160);
txa=newTextArea("请输入数字",15,24,TextArea.SCROLLBARS_VERTICAL_ONLY);
txa.setFocusable(false);
txa.setBounds(50,150,230,150);
txa.setFont(font);
intj=50,m=50;
for(inti=0;i<8;i++)
{
tex[i]=newTextField();
add(tex[i]);
if(i<4)
{
tex[i].setFocusable(false);
tex[i].setText("?
");
tex[i].setBounds(j,50,30,30);
tex[i].setFont(font);
j+=50;
}
else
{
tex[i].setBounds(m,90,30,30);
tex[i].setFont(font);
tex[i].addTextListener(newtextlis(this));
m+=50;
}
}
bu2.setBounds(250,50,50,30);
bu1.setBounds(250,90,50,30);
bu1.addActionListener(but);
bu2.addActionListener(but);
bu3.setBounds(50,320,65,25);
bu3.addActionListener(but);
lab.setBounds(150,320,50,30);
add(bu2);
add(bu1);
add(bu3);
add(lab);
add(txa);
addWindowListener(win);
setVisible(true);
}
}
importjava.awt.event.*;
importjava.awt.*;
classwinlisextendsWindowAdapter
{
publicvoidwindowClosing(WindowEvente)
{System.exit(0);}
}
classtextlisimplementsTextListener{
privateCaiframecaiframe;
publictextlis(Caiframecf){
caiframe=cf;
}
publicvoidtextValueChanged(TextEvente)
{
TextFieldtf=(TextField)e.getSource();
if(tf==caiframe.tex[4])
{
caiframe.tex[5].requestFocus();
}
if(tf==caiframe.tex[5])
{
caiframe.tex[6].requestFocus();
}
if(tf==caiframe.tex[6])
{
caiframe.tex[7].requestFocus();
}
if(tf==caiframe.tex[7])
{
caiframe.tex[4].requestFocus();
}
if(tf.getText().length()>1){
tf.setText(tf.getText().charAt(0)+"");
}
}
}
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.JOptionPane;
publicclassbuttonlisimplementsActionListener{
privateCaiframecaiframe;
publicbuttonlis(Caiframecf)
{
this.caiframe=cf;
}
suijisj=newsuiji();
intcount=0;
Guessgus=newGuess();
Stringstr1=sj.sui();
publicvoidactionPerformed(ActionEvente)
{
Buttonbtn=(Button)e.getSource();
Stringstr="";
Stringa="",b="",c="",d="";
//Stringstr2=caiframe.tex[4]+caiframe.tex[5]+caiframe.tex[6]+caiframe.tex[7]+"";
/*if(btn==caiframe.bu1)
{
caiframe.setBackground(Color.blue);
}
if(btn==caiframe.bu2)
{
caiframe.setBackground(Color.red);
}
*/
if(btn==caiframe.bu1)
{
count++;
a=caiframe.tex[4].getText();
b=caiframe.tex[5].getText();
c=caiframe.tex[6].getText();
d=caiframe.tex[7].getText();
try{
inta1=Integer.parseInt(caiframe.tex[4].getText());
inta2=Integer.parseInt(caiframe.tex[5].getText());
inta3=Integer.parseInt(caiframe.tex[6].getText());
inta4=Integer.parseInt(caiframe.tex[7].getText());
}
catch(Exceptiono)
{
JOptionPane.showMessageDialog(null,"对不起,格式不正确");
return;
}
Stringstr2=a+b+c+d;
str=gus.gue(str2,str1);
//System.out.print();
caiframe.txa.setText(caiframe.txa.getText()+"\n"+str2+"-->"+str);
if("4a0b".equalsIgnoreCase(str)){
caiframe.tex[0].setText(a);
caiframe.tex[1].setText(b);
caiframe.tex[2].setText(c);
caiframe.tex[3].setText(d);
JOptionPane.showMessageDialog(null,"恭喜完成!
!
"+"\n"+"猜了"+count+"次");
}
caiframe.tex[4].setText("");
caiframe.tex[5].setText("");
caiframe.tex[6].setText("");
caiframe.tex[7].setText("");
}
elseif(btn==caiframe.bu2)
{
str1=sj.sui();
caiframe.txa.setText("请输入数字");
caiframe.tex[4].setText("");
caiframe.tex[5].setText("");
caiframe.tex[6].setText("");
caiframe.tex[7].setText("");
caiframe.tex[0].setText("?
");
caiframe.tex[1].setText("?
");
caiframe.tex[2].setText("?
");
caiframe.tex[3].setText("?
");
caiframe.lab.setText("");
count=0;
}
else
{
caiframe.lab.setText(str1);
}
}
}
classsuiji{
Stringsui(){
intayu1[]=newint[4];
Strings="";
ayu1[0]=(int)(10*Math.random());
s=String.valueOf(ayu1[0]);
for(inti=1;i<4;i++)
{
inta=(int)(10*Math.random());
for(intj=i-1;j>=0;j--)
{
if(a==ayu1[j])
{
j++;
a=(int)(10*Math.random());
continue;
}
ayu1[i]=a;
}
s=ayu1[i]+s;
}
returns;
}
}
classGuess{
publicStringgue(Strings,Stringc){
inta=0,b=0;
for(inti=0;i<4;i++)
{
if(s.charAt(i)==(c.charAt(i)))
{
a++;
continue;
}
for(intj=0;j<4;j++)
{
if(s.charAt(i)==(c.charAt(j)))
b++;
}
}
Stringstr=a+"a"+b+"b";
a=0;b=0;
returnstr;
}
}
4.程序运行:
界面如下:
5.小结:
这次的课程设计,虽然难度并不是很大,但在写代码中也遇到一些困难。
因为对一些有关Java语言的不理解,于是参考书中的例题结合老师的讲解,遇到难以解决的问题会与同学一起讨论,以前上课时有许多问题并没有真正的认识到,但通过这次试验的制作,使我不仅掌握了许多更重要的知识点,还使我意识到自己很多方面的不足。
以后一定会加以改正。
程序截图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 编程 技术设计 报告