昆明理工大学楚雄应用技术学院
Java程序设计实训报告
( 2010 ~ 2011 )学年第二学期)
姓 名:杨 远 高
学 号: 200921702137
班 级:计算机网络技术20##级
指导教师: 田 海 雁
日 期: 二零##年七月
(1)加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。
(2)在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。
(3)在对Java程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。
(4)通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。
操作系统:Windows xp;
开发工具:jdk 1.6或以上版本
(1)本次实训分为三个模块,从基础出发,强调同学们的基本应用能力;
(2)每个模块中包括几道实作题,同学们根据要求完成题目代码,并把代码附在题目后面,并将编译运行结果的截图附在其后;(代码和截图缺一则扣分)
(3)实训过程要自己独立完成,如发现抄袭或COPY的同学,双方均以零分计;
(4)实训报告最后要写一份实训心得,讲述一下对JAVA编程的理解和看法,如果没有心得内容,将扣去一定的分值;
(5)每题完成的内容请同学们设置为绿色字体,其它自定。
实训报告以电子文档的形式上交,实训作业上交时建好一个包含学号和姓名的文件夹,将源代码、字节码文件和结果截图文件放在里面,和实训报告一起上交。
本次实训考核结果根据同学们上交的实训报告进行评分,分制按百分制进行,根据完成的内容按质和量两个方面进行考核。如果有抄袭情况,则按零分处理。
第一模块 应用程序结构
1、 输入一个三角形的3个边长,检查是否能构成一个直角三角形。
解:
2、 依次输入5个数,显示最大的那一个,并将最大的那个数写入文件test.txt文件中。
解:
3、 编写程序T,定义两个字符串类型的公共变量s1,s2,定义一个方法,给这两个变量赋值,再定义一个方法将两个字符串连接后显示,将该类放在包mybao中。其中这两个变量只能在本包中使用。
解:
4、 编写程序,定义一个接口,在该接口中有两个方法,分别送入一个参数做为某正方形的边长,一个方法计算正方形的周长,另一个方法计算机正方形的面积。再定义一个类,使用这个接口。
解:
5、 编写类M1,内有方法Pb输入任意一个整数,在屏幕上显示。主函数调用Pb,输入一个数,在屏幕上显示。编写类M2,继承M1,编写方法Pa,输入一个字符串,返回字符串的长度。主函数调用pa,pb,输入任意字符串,在屏幕上显示该字符串的长度。编写类M3,继承M2。编写方法pc,对于任意数组,返回该数组各元素的和。主函数调用pb,pc,输入任意数,求和。
解:
第二模块 小程序结构
1、 编写Applet在不同行上用不同的颜色显示自己姓名、班级、家庭地址的字符串。
解:
2、 编写Applet显示字符串“计算机网络技术20##级”,字符串及其显示位置、字体、字形、大小和颜色通过HTML文件中的PARAM参数来传递。
解:
3、 设计Applet程序,绘制一所房子,一棵树和一条弯弯的路,要求:房子和树要配上颜色。
解:
4、 设计Applet程序,绘制五星红旗。
解:
5.创建类,显示如下界面:
解:
第三模块 面向对象的编程
注意:以下各题的测试类自己编写,显示的结果内容可以自己定。
1、定义一个表示学生信息的类Student,要求如下:
(1)① 类Student的成员变量:
sNO 表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。
② 类Student的方法成员:
getNo():获得学号;getName():获得姓名;getSex():获得性别;getAge()获得年龄;getJava():获得Java 课程成绩
(2)按(1)中学生类Student的定义,创建两个该类的对象,存储并输出两个学生的信息计算机并输出这两个学生Java语言成绩的平均值。
(3)创建第(1)题的Student类的5个对象,求他们Java语言成绩的最大值和最小值。
解:
2、写出一个类People,并由该类做基类派生出子类Employee和Teacher。其中People类具有name、age两个保护成员变量,分别为String类型、整型,且具有公有的getAge成员函数,用于返回age变量的值。Employee类具有保护成员变量empno,Teacher类有teano和zc成员变量。
解:
3、编写1个TubeLight类,该类是对管状灯的描述,它继承于Light类。还拥有:
(1)2个成员变量
tubeLength(私有,整型) //用于存放灯管的长度
color(私有,String类型) //用于存放灯光的颜色
(2)构造器方法
TubeLight(int watts, int tubeLength,String color) //用于创建具有watts瓦,灯管长度为tugeLength,颜色为color的对象
(3)成员方法
public void printInfo() //打印输出灯的相关信息,包括瓦数、开关信息、长度以及颜色
解:
(4)请写一个测试程序,要求:
①创建一个管状灯的实例对象,该灯瓦数为:32;长度为50;白色灯光,状态为开。
②打印输出该灯的相关信息。
Linght类如下:
class Linght{
Private int watts;
Private Boolean indicator;
Linght(int watts){this.watts=watts;}
Light(int watts,Boolean indicator)
{
this.watts=watts;
this.indicator=indicator;}
public void switchOn()
{this.indicator=true;}
public void switchOff()
{this.indicator=false;}
pulic void printInfo(){
System.out.println(“watts=”+watts);
System.out.println(“indicator =”+ indicator);
}}
解:
第四部分 实训心得
经过这次的实训
实训报告书
实训名称: Java程序设计
系(部): 信息工程系
专业班级: 计算机(科本)10-1
学生姓名: XXX
学 号: 1043010108
指导教师: 王鸽
完成日期: 20##-12-13
山东科技大学泰山科技学院
1 实训概述... 1
2 逻辑推数课题的描述... 1
2.1 课题简介... 1
2.2 模块简介... 1
3 主要模块的详细设计... 2
3.1 用户界面... 2
3.2 随机数.... 2
3.3 单击事件处理.... 3
4 程序运行与测试... 5
4.1 程序运行.... 5
4.2 程序测试.... 6
5 实训总结... 7
逻辑推数的设计与实现
实训的主要目的在于将理论与实际应用相结合,使用程序设计语言java,以及相关软件设计开发知识完成软件的设计开发任务。本实训课程将为整个专业的学习以及软件设计水平的提高打下良好的基础,提高学生项目分析、设计、编写、调试和测试的能力,并培养基本的、良好的团队合作能力。实训中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握软件开发技术,提高分析、解决实际问题的能力
本次实训要求在学生能够较熟练使用java程序设计语言进行软件代码的编写,加深对相关课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
输入4个不重复的0-9之间的数字,与随机产生的4位数比较,要求这4位数不能重复,当数字位置与数值都正确,以“*A”表示,例如“2A”表示用户输入的4个数字中有2个数字数值与位置都正确;当数字位置不正确,数值正确时以“*B”表示,例如“2B”表示4个数中有2个数数值正确,但位置不对;举例说明,如果用户输入的数字是“1234”,而正确答案是“9421”,则给出提示“0A3B”,表示有3个数数值正确,但4个数的位置都不正确。如果猜8次都未猜中,游戏结束,可以重新开始游戏。界面使用用户界面和菜单实现。
逻辑推数分为三个模块,分别是用户界面模块、随机数模块、单击事件处理模块。用户界面由JLable标签、文本行和按钮等组成,分别用来显示答案和提示用户输入等。随机数通过Math.radam来产生,并通过repeat函数来控制随机数的产生。单击事件处理使用actionPerformed来监听单击按钮,通过监听不同按钮来产生不同的事件。
界面包括两个JLable标签,第一个标签提示输入将要猜测的数字,第二个标签用来显示判断的结果;一个JTextField文本行用来输入猜测的数字,3个JButton按钮的功能分别是“确定”、“重玩“、“答案”。界面截图如图1所示:
图1 界面图
主要代码:
JLabel J1=new JLabel("请输入你猜的数字:");
JTextField JT=new JTextField(4);
JLabel J2=new JLabel("");
JButton B1=new JButton("确定");
JButton B2=new JButton("重玩");
JButton B3=new JButton("答案");
使用Math.random()*b+1方法来产生随机数,产生的是1到b的随机数。使用repeat方法来判断产生的随机数是否有重复的数字,如果有重复的数字则重新生成一个随机数,直到产生没有重复的随机数为止。界面截图如图2所示:
图2 产生随机数图
主要代码:
public void fillup(int[] a,int b)
{ for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*b+1);
while(true){
if(repeat(a[i],a,i))a[i]=(int)(Math.random()*b+1);
elsebreak;}
} }
publicboolean repeat(int num,int[] before,int n){
for(int i=0;i<n;i++)
if(num==before[i])returntrue;
returnfalse;
}
使用actionPerformed来监听单击按钮,当单击B1按钮时会判断用户输入的数字,单击B2时会清空文本行并重新产生随机数,当单击B3时会调用JLable控件显示随机数。界面截图如下图所示:
图3 单击事件处理图
主要代码:
publicvoid actionPerformed(ActionEvent e){
if(e.getSource()==B1){
count++;
String s=JT.getText();
if(s.length()!=4)
{ J2.setText("请输入四位数字"); }
else { A=0;B=0;
for(int i=0;i<s.length();i++)
for(int j=0;j<i;j++)
if(s.charAt(i)==s.charAt(j))//第i个数字和第j个数字是否重复
J2.setText("输入重复,请输入其他数字");
else{if((s.charAt(i)-'0')==a[j])
{if(i==j)A++;
else B++; }
if(A==4){
JOptionPane.showMessageDialog(null, "恭喜你猜中了");
System.exit(0);
count=0;}
else J2.setText("提示:"+A+"A"+B+"B");
} }
}
if(count==8){
JOptionPane.showMessageDialog(null, "猜了八次还没猜中啊!");
System.exit(0); }
if(e.getSource()==B2){//重玩
fillup(a,9);
JT.setText("");
J2.setText(""); }
if(e.getSource()==B3){
J2.setText(Arrays.toString(a));
}}
程序流程图:
图4 程序流程图
程序运行如下图所示:
图5 运行图
总共进行了五次测试,分别对数据输入为空、数据输入不是四位数、有重复数字的输入、数据输入正确的测试。
(1)数据输入为空的测试如下图所示:
图6 测试为空
(2)输入数据的位数不是四位数字的测试如下图所示:
图7 测试不是四位数字
(3)有重复数字的测试如下图所示:
图8 测试不是四位数字
(4)数据输入正确的测试如下图所示:
图9 输入正确的测试
本次实训实现了使用用户界面来实现逻辑推数。从本次实训过程中,我受益匪浅。首先,我学会了如何编写用户界面,以及用户界面的布局方法。另外为我整个专业的学习以及软件设计水平的提高打下良好的基础,提高了项目分析、设计、编写、调试和测试的能力,并培养了基本的、良好的团队合作能力。使我深刻理解、牢固掌握了软件开发技术,提高分析、解决实际问题的能力
石家庄学院习报告王荣传20xx0502027数学与信息科学系信息与计算科学专业本科一班崔永刚讲师姓名:学号:院系:专业:班级:指导…
Java程序设计实训报告实训名称图书管理系统实训专业计算机应用技术班级学号090443220姓名高宇国指导教师侯丽敏20xx年12…
摘要随着自动化技术的不断发展电子产业对工艺生产的要求越来越高本次实训主要熟悉手工焊锡的常用工具的使用及其与修理手工电烙铁的焊接技术…
辽宁建筑职业学院Java高级应用实训报告课题名称婚庆公司网站专业软件技术班级xxxxxxxxxx学号姓名xxxx指导教师xxx二O…
PINGDINGSHANUNIVERSITYJava专业实训项目报告题目超市管理系统院系软件学院专业年级10级软件工程java工程…
实训报告书课程:Java项目实训专业班级:学生姓名:学号:指导教师:完成日期:重庆电子工程职业学院软件学院目录目录........…
JavaWeb实习报告一、实习目的与任务为了锻炼我们的实践动手能力,提高我们分析问题、解决问题的能力,培养我们的工作意识和团队合作…
辽宁建筑职业学院Java高级应用实训报告课题名称婚庆公司网站专业软件技术班级xxxxxxxxxx学号姓名xxxx指导教师xxx二O…
徐州工程学院管理学院实验报告实验课程名称数据结构与算法实验地点经济管理教学实验中心20xx年3月至20xx年6月专业信息管理与信息…
Java程序设计实训报告实训名称图书管理系统实训专业计算机应用技术班级学号090443220姓名高宇国指导教师侯丽敏20xx年12…
毕业实习实习名称:实习时间:学生姓名:学院名称:专业名称:班级名称:学号:指导教师:20xx03/04-20xx04/05董莹电子…