java课程设计及答案Word文件下载.docx
- 文档编号:16478201
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:66
- 大小:501.65KB
java课程设计及答案Word文件下载.docx
《java课程设计及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《java课程设计及答案Word文件下载.docx(66页珍藏版)》请在冰豆网上搜索。
2011-4-22;
2011-4-29实验成绩:
批改教师:
批改时间:
实验1Java编程基础
一、实验目的
(1)熟练掌握JDK编写调试Java应用程序及Java小程序的方法。
(2)熟练掌握Java应用程序及小程序的结构。
(3)了解Java语言的特点,基本语句、运算符及表达式的使用方法。
(4)熟练掌握常见数据类型的使用。
(5)熟练掌握if-else、switch、while、do-while、for、continue、break、return语句的使用方法。
二、实验要求
(1)调试程序要记录调试过程中出现的问题及解决办法;
(2)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;
(3)做完实验后给出本实验的实验报告。
三、实验设备、环境
奔腾以上计算机,Windows2000、J2SDK、IE浏览器
四、实验步骤及内容
(1)输入并调试下面的程序
classHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println(“Hello,world”);
}
}
调试结果如下:
(2)编写程序,输出Fibonacci数列的前20个数
程序如下:
publicclassFibonacci
{
publicstaticvoidmain(Stringargs[])
{
inti,a=1,b=1,c;
for(i=0;
i<
20;
i++)
if(i<
2)
System.out.print(1+"
\t"
);
else
c=a+b;
System.out.print(c+"
a=b;
b=c;
(3)编写Java小程序,在IE浏览器中输出字符串”hello,world”
importjava.awt.*;
importjava.applet.Applet;
publicclassHWAppletextendsApplet
{
publicvoidpaint(Graphicsg)
g.drawString("
Hello,World"
10,50);
}
}
在另建一个html文档并在其中输入以下代码:
<
html>
appletcode="
HWApplet.class"
height=100width=300>
/applet>
/html>
(4)编写程序,输出如下形式的数字方阵:
n=4
0000
0111
0122
0123
importjava.util.Scanner;
classfangzheng
publicstaticvoidmain(Stringavgs[])
intn;
Scannercin=newScanner(System.in);
System.out.print("
请输入方阵的阶数:
"
n=cin.nextInt();
inta[][]=newint[n][n];
for(inti=0;
n;
for(intj=i;
j<
j++)
{
a[i][j]=a[j][i]=i;
for(inti=0;
i<
n;
i++)
{
for(intj=0;
j<
j++)
System.out.print(a[i][j]+"
"
System.out.println();
(6)编写一程序,求二维数组的鞍点。
publicclassandian{
publicstaticfinalint[][]array={
{1,2,3},
{4,5,6},
{7,8,9}
};
publicstaticvoidmain(String[]args){
array.length;
i++){
intminCol=getrowMin(i);
if(iscolMin(minCol,i)){
System.out.println("
array["
+i+"
]["
+minCol+"
]"
publicstaticintgetrowMin(introwNo){
intmin=array[rowNo][0];
intcol=0;
for(inti=1;
array[rowNo].length;
if(array[rowNo][i]<
min){
min=array[rowNo][i];
col=i;
returncol;
publicstaticbooleaniscolMin(intcolNo,introwNo){
if(array[i][colNo]<
array[rowNo][colNo])returnfalse;
returntrue;
}调试结果如下:
(6)编写程序,采用二维数组输出数字方阵。
输出下列方阵(当n=4时):
1267
35813
491214
10111516
publicclassT{
publicstaticvoidmain(String[]args){
intn=4;
//可以修改
intn2=n*n;
int[][]arr=newint[n][n];
if(i%2==0)arr[0][i]=(i+1)*(i+2)/2;
elsearr[0][i]=arr[0][i-1]+1;
intnum=arr[0][i];
if(i%2!
=0)
for(intj=1;
=i;
j++){
arr[j][i-j]=++num;
elsefor(intj=1;
arr[j][i-j]=--num;
n-1;
intnum=n2+1-arr[0][i];
arr[n-1][n-i-1]=num;
if(i%2==0)
i+1;
arr[n-j-1][n-i-1+j]=++num;
arr[n-j-1][n-i-1+j]=--num;
for(intj=0;
System.out.print(arr[i][j]+"
System.out.println();
六、讨论、思考题
1、Java小程序与Java应用程序的主要区别
在java语言中,能够独立运行的程序称为Java应用程序。
Java语言还有另外一种程序——Applet程序,Applet程序(也称Java小程序)是运行于各种网页文件中,用于增强网页的人机交互、动画显示、声音播放等功能的程序。
JavaApplet和JavaApplication在结构方面的主要区别表现在:
1)运行方式不同。
JavaApplet程序不能单独运行,它必须依附于一个用HTML语言编写的网页并嵌入其中,通过与Java兼容的浏览器来控制执行Java
Application是完整的程序,可以独立运行,只要有支持Java的虚拟机,它就可以独立运行而不需文件的支持。
2)运行工具不同。
运行JavaApplet程序的解释器不是独立的软件,而是嵌在浏览器中作为浏览器软件的一部分。
Java
Application程序被编译以后,用普通的Java解释器就可以使其边解释边执行,而Java
Applet必须通过网络浏览器或者Applet观察器才能执行。
3)程序结构不同。
每个Java
Application程序必定含有一个并且只有一个main方法,程序执行时,首先寻找main方法,并以此为入口点开始运行。
而Applet程序则没有含main方法的主类,这也正是Applet程序不能独立运行的原因。
尽管Applet没有含main方法的主类,但Applet一定有一个从
java.applet.Applet派生的类,它是由Java系统提供的。
4)JavaApplet程序可以直接利用浏览器或AppletViewer提供的图形用户界面,而JavaApplication程序则必须另外书写专用代码来营建自己的图形界面。
5)受到的限制不同Java
Application程序可以设计成能进行各种操作的程序,包括读/写文件的操作,但是
Applet
对站点的磁盘文件既不能进行读操作,也不能进行写
操作。
另外,Applet使Web页面增加了按钮等功能,从而增加了交互性。
JavaApplet和JavaApplication在执行方面的主要区别表现在:
JavaApplication一般是在本地机上运行,而JavaApplet一般放在服务器上,它是根据本地机的请求被下载到本地机,然后才在本地机上运行。
2、比较Java语言与C的程序结构
Java语言是基于C++语言发展而来,而c++语言又是从C语言发展而来。
因此java语言与C语言程序在变量定义、关键字的使用、方法(函数)定义、基本数据类型的使用、条件语句、循环语句的使用有着千丝万缕的关系,相似又不同。
Java的结构无关性、真正的面向对象和与Internet的协同工作等特性比上述任何一种语言更显得完善。
Java的许多术语来自于C,其语法也来自于C。
Java比C/C易学、易用,且有强大的内建功能,同时,Java的代码可以重用。
Java的主要缺点是解释执行,所以,C的性能仍是较为突出的。
然而,由于C即时编译器的开发,这一性能的沟壑也随之填平了。
这里先介绍几个不同
(1)指针:
指针包含变量的地址,指针在C编程过程中可能引起许多错误,容易造成内存崩溃。
Java取消了指针,但仍可以遍历所有的对象和数组。
(2)函数:
Java没有函数,但是Java的类和方法能够实现C/C用函数实现的任何任务。
C语言编程人员希望在标准库中找到的函数,Java用各种类的静态方法来实现。
(3)联合和结构:
在C语言中有三种复杂的数据类型:
联合、结构和类;
而在Java中只采用了类,其中在C中用联合和结构实现的工作,Java都用类来实现。
(4)Java语言不允许数据类型的自动强制转换。
3、Java语言中的数组与C语言中的数组相比有什么不同,它的优点是什么?
Java的数组是引用数据类型,一个数组变量采用引用方式保存多个数组元素;
数组元素的数据类型既可以是基本数据类型,也可以是引用数据类型,对数组元素所能进行的操作取决于数组元素所属的数据类型。
Java的数组元素都是动态数组,再在声明数组变量之后,使用new运算符申请数组存储空间。
Java不支持c/c++语言中的指针类型,所以对数组的操作只能使用下标,不能使用指针。
引用数据类型与基本数据类型变量的不同点在于:
存储单元的分配方式不同,两个变量之间的复制方式也不同。
基本数据类型的传值赋值,获得存储单元的方式是静态的,数组变量引用赋值,获得存储单元的方式都是动态的,必须使用new运算符。
引用变量保存地址、长度、引用计数等特性。
4、比较Java各种流程控制语句的特点,它们的适用场合
顺序结构语句:
不改变程序的执行流程,语句按书写次序依次顺序执行。
选择语句:
选择语句通过判断给定条件是否成立,决定是否执行该选择语句中包含的子句。
选择语句有两种:
if语句和switch语句。
当有两种选择并且需要根据条件选择是否执行时,通常使用if语句;
当有两种以上选择并且有表达式的值决定是否执行时,通常使用switch语句。
循环语句:
java提供了三种循环语句while、do-while、for实现循环结构。
共同特点是根据循环条件来判断是否执行循环体,实际应用中应该根据具体问题的要求选择合适的循环语句,有些问题,三种都适用。
While语句的特点是“先判断后执行”,当条件满足时执行循环体;
do-while语句特点是“先执行后判断”;
for语句将循环控制变量初值。
循环条件和变量的变化规律都以表达式形式写在循环体之前。
转移语句:
java语言提供三种三种无条件转移语句:
return、break和continue。
Return语句从方法中返回值,break和continue语句用于控制流程转移。
在switch语句的某个case子句中,或在while、repeat、for语句的循环体中,如果遇到break语句,则立即退出当前switch语句或循环语句。
在while、repeat、for语句的循环体中,如果遇到continue语句,则本次循环结束,回到循环条件,继续判断是否执行下一次循环。
类与对象实验学时:
2011-5-6;
2011-5-13实验成绩:
实验2类与对象
(1)熟练掌握Java语言类定义的基本语法
(2)熟练掌握类数据成员的访问控制,对象建立的方法
(3)熟练掌握类构造函数的定义,类方法的访问控制重载
(4)掌握静态成员的特点
(5)了解Java语言的垃圾回收机制。
(6)熟练掌握类继承的基本、语法包和接口的使用,掌握protected成员的特点,了解抽象方法和抽象类。
(1)完善例3.2的日期类MyDate。
classMyDate
privateintyear,month,day;
privatestaticintthisYear;
static
thisYear=2009;
publicMyDate(intyear,intmonth,intday)
this.set(year,month,day);
publicMyDate()
this(1970,1,1);
publicMyDate(MyDated)
this.set(d);
publicvoidset(inty,intm,intd)
this.year=y;
this.month=((m>
=1)&
(m<
=12))?
m:
1;
this.day=((d>
(d<
=31))?
d:
publicvoidset(MyDated)
set(d.year,d.month,d.day);
publicintgetYear()
returnthis.year;
publicintgetMonth()
returnthis.month;
publicintgetDay()
returnthis.day;
publicStringtoString()
returnthis.year+"
年"
+this.month+"
月"
+this.day+"
日"
;
publicstaticintgetThisYear()
returnthisYear;
publicstaticbooleanisLeapYear(intyear)
returnyear%400==0||year%100!
=0&
&
year%4==0;
publicbooleanisLeapYear()
returnisLeapYear(this.year);
publicbooleanequals(MyDated)
returnthis==d||d!
=null&
this.year==d.year&
this.month==d.month&
this.day==d.day;
publicstaticintdaysOfMonth(intyear,intmonth)
switch(month)
case1:
case3:
case5:
case7:
case8:
case10:
case12:
case31:
case4:
case6:
case9:
case11:
return30;
case2:
returnisLeapYear(year)?
29:
28;
default:
return0;
publicintdaysOfMonth()
returndaysOfMonth(this.year,this.month);
publicvoidtomorrow()
this.day++;
if(day>
this.daysOfMonth())
day=1;
month++;
if(month>
12)
month=1;
year++;
publicMyDateyestoday()
MyDateyes=newMyDate(this);
yes.day--;
if(yes.day==0)
yes.month--;
if(yes.month==0)
yes.month=12;
yes.year--;
yes.day=daysOfMonth(yes.year,yes.month);
returnyes;
classMyDate_ex
今年是"
+MyDate.getThisYear()+"
闰年?
+MyDate.isLeapYear(MyDate.getThisYear()));
MyDated1=newMyDate(2008,8,8);
MyDated2=newMyDate(d1);
System.out.println(d2+"
+闰年?
+d2.isLeapYear());
System.out.print(d2+"
的昨天是"
+d2.yestoday()+"
\n"
+d2+"
的明天是"
d2.tomorrow();
System.out.println(d2);
(2)设计一个复数类,成员包括实部和虚部,成员方法包括复数加法、减法、比较、转换成字符串等运算或操作。
classcomplex{
doublex,y;
complex(doublea,doubleb){x=a;
y=b;
publicclassshiyan42{
publicstaticvoidmain(String[]args)
complexnum1=newcomplex(6,-23);
complexnum2=newcomplex(1,-7);
num1的realpart="
+"
6"
其imagepart="
-23i"
num2的realpart="
1"
-7i"
doublerealpart=num1.x+num2.x;
doubleimagepart=num1.y+num2.y;
相加后realpart="
+realpart+"
imagepart="
+imagepart+"
i"
realpart=num1.x-num2.x;
imagepart=num1.y-num2.y;
相减后realpart="
(3)为例3.5的Student2类增加成绩的实例成员变量,并在例3.6的Group类中按照专业分别统计不同班级的学生成绩。
Student类程序如下:
thi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)