JAVA程序的设计说明.docx
- 文档编号:28566999
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:33
- 大小:122.78KB
JAVA程序的设计说明.docx
《JAVA程序的设计说明.docx》由会员分享,可在线阅读,更多相关《JAVA程序的设计说明.docx(33页珍藏版)》请在冰豆网上搜索。
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[])
{System.out.println("Hello,World!
");}
}
将文件命名为Hello.java,注意保存文件Hello.java到路径“e:
\java”下。
运行结果:
2)编写一个JavaApplet,使之能够在浏览器中显示“welcometoJavaAppletWorld”的字符串信息。
步骤
(1):
编写HelloWorldApplet.java程序文件,源代码如下。
importjava.applet.*;
importjava.awt.*;
publicclassHelloWorldAppletextendsApplet
{
publicvoidpaint(Graphicsg)
{g.drawString(“welcometoJavaAppletWorld,40,20);}
}
步骤
(2):
保存文件为e:
\java\HelloWorldApplet.java。
编译该文件,生成HelloWorldApplet.class字节码文件。
步骤(3):
编写显示HelloWorldApplet.calss的页面文件HelloWorld.html,代码如下。
/java/classcode=HelloWorldApplet.classwidth=300height=120> 步骤(4): 在提示符窗口调用小程序查看器浏览HelloWorld.html页面,观察Applet应用程序。 运行结果: 思考题: 1)编程实现: 随机产生20个整数存放到数组中,然后对其按照升序进行排序,最后对排序前后的数组按照每5个数的方式输出。 源程序: importjava.util.*; classRandomPx {publicstaticvoidmain(Stringargs[]) {intnum[]=newint[20]; inti,j,temp; Randomr=newRandom(); for(i=0;i<20;i++) num[i]=r.nextInt(); 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)System.out.print("\n\r"); System.out.print(num[i]+""); } } } 运行结果: 2)编程实现: 产生一个1-12之间的随机整数,并根据该随机整数的值,输出对应月份的英文名称。 源程序: importjava.io.*; classRandomMonth {publicstaticvoidmain(Stringargs[]) {Stringmonths[]={"January","February","March", "April","May","June","July", "Aguest","September","October", "November","December"}; inti; i=(int)(Math.random()*12); System.out.println(months[i]); } } 窗口显示: 实验二初步的面向对象的程序设计练习 一.实验目的: 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){ this.age=newage; } publicStringtoString(){ return(name+"学生: "+"性别"+sex+",年龄"+age+",学号为"+no+",班级为"+classno); } publicstaticvoidmain(String[]args){ studentxp=newstudentx(); p.updateage(25); System.out.println(p.getage()); System.out.println(p); } } 运行结果: 2)编写2)程序实现如下功能: 已知学生类有域变量(、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。 现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。 源程序: importjava.io.*; importjava.util.*; classSchool {staticfloatscoreLine; staticvoidsetscoreLine(floatscore) {scoreLine=score;} staticfloatgetscoreLine() {returnscoreLine;} } classStudent {Stringname,id; floatcomScore,score; floatgetcomScore() {returncomScore;} floatgetscore() {returnscore;} Student(Stringname,Stringid,floatcomScore,floatscore) {this.name=name; this.id=id; Score=comScore; this.score=score; } } classEnroll {staticbooleanisEnroll(Students) {if(s.getcomScore()>=School.getscoreLine()|| (s.getscore()>96&&s.getcomScore()>=300)) returntrue; elsereturnfalse; } publicstaticvoidmain(Stringargs[]) {Students[]=newStudent[3]; Stringinfo[]=newString[4]; inti,j; StringmessInfo; BufferedReaderin=newBufferedReader(newInputStreamReader(System.in)); StringTokenizerst; School.setscoreLine(550); for(i=0;i {try{messInfo=in.readLine(); st=newStringTokenizer(messInfo); for(j=0;j {info[j]=st.nextToken();} }catch(IOExceptionex){} s[i]=newStudent(info[0],info[1],Float.parseFloat(info[2]),Float.parseFloat(info[3])); } for(i=0;i if(isEnroll(s[i])) System.out.println(s[i].name+""+s[i].id+""+"被录取! "); else System.out.println(s[i].name+""+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分别为实部和虚部的数据。 源程序: importjava.io.*; publicclassComplex {doubleRealPart; doubleImageinPart; Complex(doublerp,doubleip) {RealPart=rp;ImageinPart=ip;} ComplexcomplexAdd(Complexa) {Complextemp; temp=newComplex(RealPart+a.RealPart,ImageinPart+a.ImageinPart); returntemp; } ComplexcomplexMinus(Complexa) {Complextemp; temp=newComplex(RealPart-a.RealPart,ImageinPart-a.ImageinPart); returntemp; } publicStringtoString() {if(ImageinPart<0) return(RealPart+"-"+Math.abs(ImageinPart)+"i"); else return(RealPart+"+"+ImageinPart+"i"); } publicstaticvoidmain(Stringargs[]) {charoperator; try{ Complexc1=newComplex(1,2); Complexc2=newComplex(3,4); ComplexcomplexResult=null; operator=(char)System.in.read(); switch(operator) {case'+': complexResult=plexAdd(c2);break; case'-': complexResult=plexMinus(c2);break; } System.out.println(complexResult); } catch(IOExceptione) {System.out.println(e); } } } 运行结果: 实验三面向对象程序设计的继承、多态等特性的练习 一、实验目的 1)掌握类的继承机制。 2)熟悉类中成员变量和方法的访问控制。 3)熟悉方法或构造方法多态性。 4)熟悉接口的定义方法。 二、实验容 1)编写程序实现如下功能: 已知Person类包含三个公共域变量(、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(构造方法、修改年龄、显示基本信息)和一个构造方法。 定义一组学生对象,并初始化他们的基本信息,然后依次输出。 源程序: classPerson { publicStringname; publicStringsex; intage; Person(Stringname,Stringsex,intage) {this.name=name; this.sex=sex; this.age=age; } } classStudentextendsPerson { publicStringsno; publicintclassno; publicvoidupdateAge(intage) {this.age=age; } Student(Stringname,Stringsex,intage,Stringsno,intclassno) {super(name,sex,age); this.sno=sno; this.classno=classno; } publicStringtoString() {System.out.println("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,"",2); s1.updateAge(21); s1.toString(); } } 2)输入课本例5-4的源程序,观察其运行结果,然后将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。 源程序: publicclassTestVirtualInvoke{ staticvoiddoStuff(Shapes){ s.draw(); } publicstaticvoidmain(String[]args){ Circlec=newCircle(); Trianglet=newTriangle(); Linel=newLine(); doStuff(c); doStuff(t); doStuff(l); } } classShape{ voiddraw(){ System.out.println("ShapeDrawing"); } } classCircleextendsShape{ voiddraw(){ System.out.println("ShapeCircle"); } } classTriangleextendsShape{ voiddraw(){ System.out.println("ShapeTriangle"); } } classLineextendsShape{ voiddraw(){ System.out.println("ShapeLine"); } }*/ /*方法二: 使用抽象类abstract abstractclassShape{ abstractvoiddraw(); } classCircleextendsShape{ voiddraw(){ System.out.println("ShapeCircle"); } }//定义Shape抽象类的派生类Circle classTriangleextendsShape{ voiddraw(){ System.out.println("ShapeTriangle"); } }//定义Shape抽象类的派生类Triangle classLineextendsShape{ voiddraw(){ System.out.println("ShapeLine"); } }*///定义Shape抽象类的派生类Line //方法三: 使用interface接口方法 interfaceShape{ publicvoiddraw(); }//定义一个Shape接口 classCircleimplementsShape{ publicvoiddraw(){ System.out.println("ShapeCircle"); } }//基于Shape接口利用implements实现类Circle classTriangleimplementsShape{ publicvoiddraw(){ System.out.println("ShapeTriangle"); } }//基于Shape接口利用implements实现类Triangle classLineimplementsShape{ publicvoiddraw(){ System.out.println("ShapeLine"); } }//基于Shape接口利用implements实现类Line 思考题: (1)某小型公司,主要有三类人员: 经理、兼职技术人员和兼职推销员。 这三类人员共同拥有的相关属性: 、编号;相关方法: 获取当月薪水的getPay()方法、显示个人信息的toString()方法。 人员编号基数为1000,每创建一个人员实例对象,其编号属性的值顺序加1。 月薪计算方法: 经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销人员的月薪按当月的销售额的4%提成。 源程序: importjava.util.*; abstractclassEmployee {Stringname; longno; staticlongid=1000; abstractdoublegetPay(); Employee(Stringname){this.name=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*0.4;} Sale(Stringname,longsaleNum) {super(name); no=id; this.saleNum=saleNum; } publicStringtoString() {return"name: "+name+"no: "+no+"pay: "+getPay();} } classTechextendsEmployee {longsalaryHours; doublegetPay() {returnsalaryHours*100;} Tech(Stringname,longsalaryHours) {super(name); no=id; this.salaryHours=salaryHours;} publicStringtoString() {return"name: "+name+"no: "+no+"pay: "+getPay();} }; classEmployApp { publicstaticvoidmain(Stringargs[]) { Vectorv=newVector(); Employe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 程序 设计 说明
![提示](https://static.bdocx.com/images/bang_tan.gif)