JAVA程序设计.docx
- 文档编号:18104688
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:28
- 大小:121KB
JAVA程序设计.docx
《JAVA程序设计.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计.docx(28页珍藏版)》请在冰点文库上搜索。
JAVA程序设计
二○一○~二○一一学年第一学期
信息科学与工程学院
Java实验报告
课程名称:
java实验报告
班级:
学号:
姓名:
实验一熟悉Java程序的编辑、编译和运行环境
一、实验目的
1)掌握设置Java程序运行环境的方法,并熟悉Java程序的集成开发工具。
2)掌握编写、编译、运行简单的JavaApplication和JavaApplet程序的方法步骤,初步了解java程序的特点和基本结构。
3)掌握Java基本数据类型、运算符与表达式。
4)理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
二、实验过程
1)编写一个JavaApplication,利用JDK软件包中的工具编译并运行这个程序。
步骤
(1):
编写、编译Java源程序。
打开Jcreator编辑器,新建一个java文件,键入如下程序代码:
publicclassHello
{
publicstaticvoidmain(Stringargs[])
{"Hello,World!
");}
}
将文件命名为,注意保存文件到路径“e:
\java”下。
运行结果:
2)编写一个JavaApplet,使之能够在浏览器中显示“welcometoJavaAppletWorld”的字符串信息。
步骤
(1):
编写程序文件,源代码如下。
import.*;
import.*;
publicclassHelloWorldAppletextendsApplet
{
publicvoidpaint(Graphicsg)
{(“welcometoJavaAppletWorld,40,20);}
}
步骤
(2):
保存文件为e:
\java\。
编译该文件,生成字节码文件。
步骤(3):
编写显示的页面文件,代码如下。
/java/classcode=width=300height=120> 步骤(4): 在提示符窗口调用小程序查看器浏览页面,观察Applet应用程序。 运行结果: 思考题: 1)编程实现: 随机产生20个整数存放到数组中,然后对其按照升序进行排序,最后对排序前后的数组按照每5个数的方式输出。 源程序: import.*; classRandomPx {publicstaticvoidmain(Stringargs[]) {intnum[]=newint[20]; inti,j,temp; Randomr=newRandom(); for(i=0;i<20;i++) num[i]=(); for(i=0;i<19;i++) for(j=0;j<19-i;j++) {if(num[j]>num[j+1]) {temp=num[j]; num[j]=num[j+1]; num[j+1]=temp; } } for(i=0;i<20;i++) {if(i%5==0)"\n\r"); ""); } } } 运行结果: 2)编程实现: 产生一个1-12之间的随机整数,并根据该随机整数的值,输出对应月份的英文名称。 源程序: import.*; classRandomMonth {publicstaticvoidmain(Stringargs[]) {Stringmonths[]={"January","February","March", "April","May","June","July", "Aguest","September","October", "November","December"}; inti; i=(int)()*12); } } 窗口显示: 实验二初步的面向对象的程序设计练习 一.实验目的: 1)掌握类的构造方法的定义。 2)掌握创建类实例的方法。 3)初步掌握面向对象的编程思想。 二.实验过程: 1)编写程序实现如下功能: 已知学生类有域变量(学号、班号、姓名、性别、年龄)和方法(构造方法、获得学号、获得班号、获得性别、获得年龄、修改年龄,显示基本信息),定义一组学生对象,并初始化他们的基本信息,然后依次输出。 源程序: publicclassstudentx{ privateStringno; privateStringclassno; privateStringname; privateStringsex; privateintage; studentx(){ no="1"; classno="1"; name="lucy"; sex="male"; age=0; } Stringgetno(){ returnno; } Stringgetclassno(){ returnclassno; } Stringgetname(){ returnname; } intgetage(){ returnage; } voidupdateage(intnewage){ =newage; } publicStringtoString(){ return(name+"学生: "+"性别"+sex+",年龄"+age+",学号为"+no+",班级为"+classno); } publicstaticvoidmain(String[]args){ studentxp=newstudentx(); (25); 运行结果: 2)编写2)程序实现如下功能: 已知学生类有域变量(姓名、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。 现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。 源程序: import.*; import.*; classSchool {staticfloatscoreLine; staticvoidsetscoreLine(floatscore) {scoreLine=score;} staticfloatgetscoreLine() {returnscoreLine;} } classStudent {Stringname,id; floatcomScore,score; floatgetcomScore() {returncomScore;} floatgetscore() {returnscore;} Student(Stringname,Stringid,floatcomScore,floatscore) {=name; =id; =comScore; =score; } } classEnroll {staticbooleanisEnroll(Students) {if()>=()|| ()>96&&()>=300)) returntrue; elsereturnfalse; } publicstaticvoidmain(Stringargs[]) {Students[]=newStudent[3]; Stringinfo[]=newString[4]; inti,j; StringmessInfo; BufferedReaderin=newBufferedReader(newInputStreamReader); StringTokenizerst; (550); for(i=0;i<;i++) {try{messInfo=(); st=newStringTokenizer(messInfo); for(j=0;j<;j++) {info[j]=();} }catch(IOExceptionex){} s[i]=newStudent(info[0],info[1],(info[2]),(info[3])); } for(i=0;i<;i++) if(isEnroll(s[i])) ""+s[i].id+""+"被录取! "); else ""+s[i].id+""+"没有录取! "); } } 运行结果: 思考题: 1、1)定义复数类Complex,其满足如下要求(18分): 复数类Complex的属性有: RealPart: double型,代表复数的实数部分 ImaginPart: double型,代表复数的虚数部分 复数类Complex的方法有: Complex(doublerp,doubleip): 构造函数,形参rp为实部的初值,ip为虚部的初值。 ComplexcomplexAdd(Complexa): 将当前复数对象与形参复数对象相加,所得的结果仍是一个复数,并将结果返回给此方法的调用者。 ComplexcomplexMinus(Complexa): 将当前复数对象与形参复数对象相减,所得的结果仍是一个复数,并将结果返回给此方法的调用者。 publicStringtoString(): 把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部的数据。 源程序: import.*; publicclassComplex {doubleRealPart; doubleImageinPart; Complex(doublerp,doubleip) {RealPart=rp;ImageinPart=ip;} ComplexcomplexAdd(Complexa) {Complextemp; temp=newComplex(RealPart+,ImageinPart+; returntemp; } ComplexcomplexMinus(Complexa) {Complextemp; temp=newComplex,; returntemp; } publicStringtoString() {if(ImageinPart<0) return(RealPart+"-"+(ImageinPart)+"i"); else return(RealPart+"+"+ImageinPart+"i"); } publicstaticvoidmain(Stringargs[]) {charoperator; try{ Complexc1=newComplex(1,2); Complexc2=newComplex(3,4); ComplexcomplexResult=null; operator=(char)switch(operator) {case'+': complexResult=(c2);break; case'-': complexResult=(c2);break; } } catch(IOExceptione) {} } } 运行结果: 实验三面向对象程序设计的继承、多态等特性的练习 一、实验目的 1)掌握类的继承机制。 2)熟悉类中成员变量和方法的访问控制。 3)熟悉方法或构造方法多态性。 4)熟悉接口的定义方法。 二、实验内容 1)编写程序实现如下功能: 已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(构造方法、修改年龄、显示基本信息)和一个构造方法。 定义一组学生对象,并初始化他们的基本信息,然后依次输出。 源程序: classPerson { publicStringname; publicStringsex; intage; Person(Stringname,Stringsex,intage) {=name; =sex; =age; } } classStudentextendsPerson { publicStringsno; publicintclassno; publicvoidupdateAge(intage) {=age; } Student(Stringname,Stringsex,intage,Stringsno,intclassno) {super(name,sex,age); =sno; =classno; } publicStringtoString() {"name="+name+"sex="+sex+"age="+age+" sno="+sno+"classno"+classno+""); return"name="+name+"sex="+sex+"age="+age+"sno="+sno+"classno"+classno+""; } }; publicclassTestStudent { publicstaticvoidmain(String[]args) {Students1=newStudent("susan","女",20,"123",2); (21); (); } } 2)输入课本例5-4的源程序,观察其运行结果,然后将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。 源程序: publicclassTestVirtualInvoke{ staticvoiddoStuff(Shapes){ (); } publicstaticvoidmain(String[]args){ Circlec=newCircle(); Trianglet=newTriangle(); Linel=newLine(); doStuff(c); doStuff(t); doStuff(l); } } classShape{ voiddraw(){ "ShapeDrawing"); } } classCircleextendsShape{ voiddraw(){ "ShapeCircle"); } } classTriangleextendsShape{ voiddraw(){ "ShapeTriangle"); } } classLineextendsShape{ voiddraw(){ "ShapeLine"); } }*/ /*方法二: 使用抽象类abstract abstractclassShape{ abstractvoiddraw(); } classCircleextendsShape{ voiddraw(){ "ShapeCircle"); } }; abstractclassEmployee {Stringname; longno; staticlongid=1000; abstractdoublegetPay(); Employee(Stringname){=name;id=id+1;} }; classManagerextendsEmployee { doublepay=8000; doublegetPay(){return8000;} Manager(Stringname) {super(name); no=id; } publicStringtoString(){return"name: "+name+"no: "+no+"pay: 8000";} }; classSaleextendsEmployee {longsaleNum; doublegetPay(){returnsaleNum*;} Sale(Stringname,longsaleNum) {super(name); no=id; =saleNum; } publicStringtoString() {return"name: "+name+"no: "+no+"pay: "+getPay();} } classTechextendsEmployee {longsalaryHours; doublegetPay() {returnsalaryHours*100;} Tech(Stringname,longsalaryHours) {super(name); no=id; =salaryHours;} publicStringtoString() {return"name: "+name+"no: "+no+"pay: "+getPay();} }; classEmployApp { publicstaticvoidmain(Stringargs[]) { Vectorv=newVector(); Employeeem; doublenumPay=0; (newSale("liping",10000)); (newSale("susan",12000)); (newTech("linda",40)); (newTech("write",20)); (newManager("gucci")); (newManager("jessica")); Enumeratione=(); while()) { em=(Employee)(); numPay=numPay+(); } "总工资: "+numPay); } }; 实验四异常类的定义及处理 一、实验目的 1)了解异常处理方法。 2)熟悉并掌握常见异常的捕获方法。 3)熟悉JDK中已经定义的若干异常类的层次结构。 4)掌握自定义异常类的创建方法。 二、实验内容 1)编写程序实现如下功能: 生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。 然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。 源程序: import.*; import.*; classTestException { publicstaticvoidmain(String[]args) { try{ outofBound(); arraySize(); nullPointer(); } catch(NegativeArraySizeExceptione) {} staticvoidoutofBound() { try{ inti;inta[]; a=newint[10]; for(i=0;i<11;i++) {a[i]=i; "a["+i+"]="+a[i]); } } catch(IndexOutOfBoundsExceptione) {} staticvoidnullPointer() { try{ Strings=null; } catch(NullPointerExceptione) {} staticvoidarraySize()throwsNegativeArraySizeException { try{ inta[]; a=newint[-3]; } catch(NegativeArraySizeExceptione) {throwe;} } } 2)编写程序实现如下功能: 计算两个数之和,参与求和运算的每个数的值都必须在10-20之间,当任意一个数超出范围时,抛出自己的异常。 源程序: classMyExceptionextendsException{ privateStringMsg; publicMyException(Stringmessage){ super(message); Msg=message; } publicvoidprintMsg(){ } } publicclassEX6_3{ voidGenerateMyException()throwsMyException{ thrownewMyException("此处发生异常信息"); } publicstaticvoidmain(Stringargs[]){ EX6_3obj=newEX6_3(); try{ (); } catch(MyExceptione){ (); } } } 思考题: 2)编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。 如果输入的参数个数为1、2、3则它们应分别对应正方形、长方形、三角形,如果参数值为0,则异常处理方法显示错误消息。 源程序: classNullParameterExceptionextendsException { NullParameterException(StringMessage) {super(Message); } } classTestArea {publicstaticvoidmain(String[]args) {shapesh=null; intnum; num=; try{ swi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 程序设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)