《Java面向对象程序设计》课程
实验一报告
学号:
姓名:
专业:
学校:
1.1 实验目标
? 查找、下载JDK系统文件,并正确完成JDK的安装;
? 正确安装并使用Eclipse软件;
? 完成利用IDE进行简单Java程序的编写、调试及运行;
? 完成利用CMD进行简单Java程序的编写、调试及运行;
? 实验Java运算符在程序中的使用;
? 实验Java数组程序的应用。
1.2 实验要求
? 请各位学习者记录实验调试中出现的问题、调试过程及解决方法;
? 请各位学习者记录实验成果,并将运行结果抓屏;
? 请各位学习者按教学大纲的要求完成实验报告
– 完成实验报告Word文件
– 请将程序设计思想和方法、最终程序清单(自行设计部分明确表示)、运行结果抓屏等
? 报告提交到课程【作业】中。
1.3 实验内容
1.3.1 实验题1:搭建Java开发环境
【题目要求】
步骤1:请进入“http://www.oracle.com/cn/index.html”Oracle公司网站,在下载模块中查找、下载JDK系统文件和DOCS文档(建议选择JDK7以后版本);
步骤2:完成JDK的安装,观察并记录安装后的资源管理器中结构;
步骤3:设置系统环境变量,CLASSPATH变量和Path变量(参考教材和视频课程);
步骤4:完成DOCS文档安装;
步骤5:安装Eclipse软件,运行并测试。
【实验过程记录】
1.Oracle公司网站JDK系统文件下载链接和页面(抓屏)
2.Oracle公司网站DOCS文档下载链接和页面(抓屏)
3.系统环境变量设置(记录并抓屏)
CLASSPATH = D:\Program Files\Java\jdk1.8.0_05\lib;.;
Path =D:\Program Files\Java\jdk1.8.0_05\bin;
4.Eclipse软件运行界面(抓屏)
【实验总结和收获】
环境基本搭好
1.3.2 实验题2:利用IDE进行Java程序开发
【题目要求】
IDE开发运行Java程序是Java学习中重要点,使用Eclipse来开发运行Java程序,实现一个简单的程序输出“My name is XXX,I love Java!”。
步骤1:打开Eclipse软件,右击鼠标新建项目;
步骤2:在新建对话框中输入项目名称,生成新项目;
步骤3:按照标准格式写入程序(类的名称可以自己设定,代码撰写要求注意格式和编码规范);
步骤4:程序输出语句“My name is XXX,I love Java!”中的XXX修改为学习者自己的姓名;
步骤5:右键运行项目,调试并记录控制台输出结果。
【实验过程记录】
1.运行中出现的问题与解决方案
无,顺利
2.调试完成的最终代码(其中重要部分可以涂红和加粗)
package com.bjou.example;
publicclass Myname {
publicstaticvoid main(String[] args) {
// TODO Auto-generated method stub
System.out.println("My name is XXX,I love Java!");
}
}
3.控制台输出结果(抓图)
【实验总结和收获】
基本流程会了。
1.3.3 实验题3:利用CMD开发运行Java程序
【题目要求】
在这里我们使用CMD实现一个简单的程序输出“Welcome to Java!”。
步骤1:打开电脑任意存储盘位置存放Java的源程序;
步骤2:编辑源文件,打开Windows附件中的“记事本”软件,键入应用程序后保存成扩展名为“.java”的文件(注意:Java的文件名与主类名称应该一致);
步骤3:命令行编译运行,在Windows附件中的选择“运行”命令,在运行窗口中键入“CMD”命令;
步骤4:编译源程序,利用javac.exe命令,记录编译后结果;
步骤5:运行字节码文件,利用java.exe命令,记录运行结果。
【实验过程记录】
1.运行中出现的问题与解决方案
无
2.调试完成的最终代码(其中重要部分可以涂红和加粗)
import java.util.*;
public class HelloJavaApp{
public static void main(String args[]){
System.out.println("Hello World!");
}
}
3.编译后结果(抓图)
4.运行后结果(抓图)
【实验总结和收获】
会在CMD下用JDK
1.2.4 实验题4:运行一个完整的程序
【题目要求】
运行下面MyDate类,并添加输出语句,以显示m的值。
public class MyDate {
private int day = 1;
private int month = 1;
private int year = 2000;
public MyDate(int d, int m, int y) {
year = y;
month = m;
day = d;
}
public void display() {
System.out.println(year + " / " + month + " / " +day);
}
public static void main(String[] args) {
MyDate m = new MyDate(1, 8, 2013);
}
}
【实验过程记录】
1.运行中出现的问题与解决方案
无
2.调试完成的最终代码(其中自主修改部分可以涂红和加粗)
package com.bjou.example;
publicclass MyDate {
privateint day = 1;
privateint month = 1;
privateint year = 2000;
public MyDate(int d, int m, int y) {
year = y;
month = m;
day = d;
}
publicvoid display() {
System.out.println(year + " / " + month + " / " +day);
}
publicstaticvoid main(String[] args) {
MyDate m = new MyDate(1, 8, 2013);
m.display();
}
}
3.运行后结果(抓图)
【实验总结和收获】
无
1.2.5 实验题5:Java运算
【题目要求】
完成下面Java运算符程序的调试和运行。请记录运行结果,并对运行结果进行分析。
public class Ex1_5{
public static void main(String args[]){
int a=234;
int b;
boolean c;
b=0;
c=(a==234)||(b++==1);
System.out.println("b="+b+" c="+c);
b=0;
c=(a==234)|(b++==1);
System.out.println("b="+b+" c="+c);
b=0;
c=(a!=234)||(b++==1);
System.out.println("b="+b+" c="+c);
b=0;
c=(a!=234)|(b++==1);
System.out.println("b="+b+" c="+c);
}
}
【实验过程记录】
1.运行中出现的问题与解决方案
无
2.运行后结果(抓图)
3. “|”运算符和“||”运算符运行结果的异同分析
前者两侧所有表达式都要算,后者从左到右算如果有TURE后面的就不算了
【实验总结和收获】
学会了分析两个或运算符的差别
1.2.6 实验题6:Java数组运算
【题目要求】
编写程序完成如下要求:将源数组s[]中第2至4数组元素,复制到目的数组d[]的第4个元素开始的位置。显示复制前后的源数组和目的数组内容。
源数组: int s[] = { 1, 2, 3, 4, 5, 6 };
目的数组: int d[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
提示:利用java.lang.System类的arraycopy()方法进行数组元素复制。
【实验过程记录】
1.运行中出现的问题与解决方案
无
2.调试完成的最终代码(其中自主修改部分可以涂红和加粗)
publicclass Helloword {
publicstaticvoid main(String[] args) {
// TODO Auto-generated method stub
int s[]={1,2,3,4,5,6};
int d[]={10,9,8,7,6,5,4,3,2,1};
System.arraycopy(s, 1, d, 3, 4);
for(int i=0;i<d.length;i++)
System.out.println(d[i]);
}
}
3.运行后结果(抓图)
【实验总结和收获】
学会了System.arraycopy函数
一、实验目的及内容
目的:掌握和巩固Java面向对象程序设计的概念、方法。
内容:
1. 设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。
2. 编写一个表示人的类Person,该类满足以下要求:
l 有两个private成员变量:name(名字)、age(年龄);在Person类外访问这两个成员变量均通过接口器函数(getXXX,setXXX)。
l 该类具有一个有两个参数的构造函数,这两个参数分别用来初始化name和age成员变量。
l 该类包含一个方法public boolean older(Person r),用于比较当前对象年纪是否比参数r的年纪大,若是,则返回true,否则,返回false。
编写另外一个类:TestPerson,该类包含下面函数:
public static void sortPerson(Person[] personList),在该函数中利用Person类的older方法实现对数组personList按年龄从小到大排序。main函数位于该类中。在main函数中
(1) 创建Person类的10个对象,并保存到一个数组中,创建10个对象时,每个对象的年龄为0~100的一个随机数(用Math.random()函数得到)。
(2) 输出这个数组中每个对象的名字、年龄。
(3) 调用sortPerson方法,对这个数组中的10个Person对象按年龄排序。
(4) 输出排序后数组中每个对象的名字、年龄。
二、要求
1. 给出上述程序的中涉及到的类的类图(可用visio画)、解决上述问题的思路、代码和测试结果。
1.设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。
设计思路:要实现一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。我创建了一个Number类,并创建了两个对象number1和number2,该类有一个类成员函数static int numberofsum(int a, int b)来求和,一个类成员变量countnumber来统计对象的个数,还有实例成员变量num,通过两个对象求和以及统计对象个数,说明了一个类的所有对象共享同一个类成员变量,两个对象都有自己的num值说明了一个类的多个对象拥有各自的实例成员变量。
类图:
程序代码:
//package number;
public class Number {
public static void main(String[] args) {
System.out.println("Create two numbers!");
Number number1 = new Number(5);
System.out.println("After create the first number,countnumber is "
+ number1.countnumbers);
Number number2 = new Number(10);
System.out.println("After create the second number,countnumber is "
+ number2.countnumbers);
System.out.println("The two numbers is "
+ number1.num + " and " + number2.num);
System.out.println("The sum of two numbers is "
+ numberofsum(number1.num, number2.num));
}
static int countnumbers = 0;
int num;
Number(int a) {
num = a;
countnumbers++;
}
static int numberofsum(int a, int b) {
int sum = a + b;
return sum;
}
}
测试结果:
2.编写一个表示人的类Person,以及另外一个类:TestPerson。具体要求见实验内容。
设计思路:定义两个类Person和TestPerson,TestPerson类中有public static void sortPerson(Person[] personList)来对创建的十个对象进行年龄大小排序。
类图:
程序代码:
//package testperson;
import java.util.Scanner;
public class TestPerson {
public static void main(String[] args) {
final int number = 10;
Scanner input = new Scanner(System.in);
Person[] personArray = new Person[number];
for (int i = 0; i < personArray.length; i++) {
System.out.print("Please enter the name of person " + (i + 1) + ":");
String personName = input.next();
int personAge = (int) (Math.random() * 100);
personArray[i] = new Person(personAge, personName);
System.out.println("The " + (i + 1) + " person's name is "
+ personArray[i].getName()
+ " and the age is " + personArray[i].getAge());
}
sortPerson(personArray);
}
public static void sortPerson(Person[] personList) {
Person t;
for (int i = 0; i < personList.length - 1; i++) {
for (int j = i + 1; j < personList.length; j++) {
if (personList[i].older(personList[j])) {
t = personList[i];
personList[i] = personList[j];
personList[j] = t;
}
}
}
System.out.println("The age from young to old order is:");
for (int k = 0; k < personList.length; k++) {
System.out.println((k + 1) + ", name: " + personList[k].getName()
+ ", age: " + personList[k].getAge());
}
}
}
class Person {
private int age;
private String name;
Person(int getAge, String getName) {
age = getAge;
name = getName;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
public void setAge(int setage) {
age = setage;
}
public void setName(String setname) {
name = setname;
}
public boolean older(Person r) {
if (this.age > r.age) {
return true;
} else {
return false;
}
}
}
测试结果:
福建农林大学计算机与信息学院课程名称课题名称姓名学号专业年级指导教师职称计算机类课程设计报告面向对象程序设计课程设计猜数字游戏计算…
面向对象程序设计课程设计报告题目门禁系统的设计与实现系(院)计算机科学技术系专业软件技术班级20##级3班学生姓名学号指导教师二〇…
面向对象程序设计课程设计报告题目职工信息管理小型公司工资管理系统院系专业班级学号学生姓名小组成员20xx年9月6日一引言本题对程序…
C面向对象程序设计课程设计报告题目分数计算器设置班级专业计算机科学与技术学号K031241521姓名周林指导教师小组成员周林张齐满…
面向对象程序设计程序设计报告课程设计2020学年第学期设计题目职工工资管理系统设计院系计算机科学与信息工程学院专业班级学号学生姓名…
安徽广播电视大学梁伍七一、引言中期评估之前,我校加强网络教学的同时,逐步形成了“面授辅导+网络教学+小组学习”的课程教学模式实践模…
课程实验报告课程名称面向对象程序设计实验名称面向过程的整型栈编程院系计算机科学与技术专业班级学号姓名指导教师年日面向对象程序设计实…
C面向对象程序设计课程设计报告题目分数计算器设置班级专业计算机科学与技术学号K031241521姓名周林指导教师小组成员周林张齐满…
面向对象程序设计课程设计报告题目门禁系统的设计与实现系(院)计算机科学技术系专业软件技术班级20##级3班学生姓名学号指导教师二〇…
课程设计报告课程名称课题名称专业班级学号20xx03010308姓名杜云龙指导教师20xx年月日湖南工程学院课程设计任务书课程名称…
《面向对象的程序设计基础》课程总结20xx~20xx学年第一学期基本结束,“面向对象的程序设计基础”课程的教学任务圆满完成。下面对…