版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 ,代码如下。<html><appletcodebase=e:/java/classcode=HelloWorldApplet.classwidth=300height=120></applet></html>收集于网络,如有侵权请联系管理员删除精品文档步骤(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)收集于网络,如有侵权请联系管理员删除精品文档{=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<s.length;i++){try{messInfo=in.readLine();st=newStringTokenizer(messInfo);for(j=0;j<info.length;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<s.length;i++)if(isEnroll(s[i]))System.out.println(s[i].name+""+s[i].id+""+" 被录取!");elseSystem.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");elsereturn(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)编写程序实现如下功能:已知 Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法, Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(构造方法、修改年龄、显示基本信息)和一个构造方法。定义一组学生对象,并初始化他们的基本信息,然后依次输出。源程序:classPerson{publicStringname;publicStringsex;intage;Person(Stringname,Stringsex,intage){=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,"20031015123",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");收集于网络,如有侵权请联系管理员删除精品文档}}*//*方法二:使用抽象类 abstractabstractclassShape{abstractvoiddraw();}classCircleextendsShape{voiddraw(){System.out.println("ShapeCircle");}} // 定义Shape抽象类的派生类CircleclassTriangleextendsShape{voiddraw(){System.out.println("ShapeTriangle");}} // 定义Shape抽象类的派生类TriangleclassLineextendsShape{voiddraw(){System.out.println("ShapeLine");}}*/ // 定义Shape抽象类的派生类Line方法三:使用interface接口方法interfaceShape{publicvoiddraw();} // 定义一个Shape接口classCircleimplementsShape{public voiddraw(){收集于网络,如有侵权请联系管理员删除精品文档System.out.println("ShapeCircle");}}//基于Shape接口利用implements实现类CircleclassTriangleimplementsShape{publicvoiddraw(){System.out.println("ShapeTriangle");}} // 基于Shape接口利用implements实现类TriangleclassLineimplementsShape{public voiddraw(){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){=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();Employeeem;doublenumPay=0;v.addElement(newSale("liping",10000));收集于网络,如有侵权请联系管理员删除精品文档v.addElement(newSale("susan",12000));v.addElement(newTech("linda",40));v.addElement(newTech("write",20));v.addElement(newManager("gucci"));v.addElement(newManager("jessica"));Enumeratione=v.elements();while(e.hasMoreElements()){em=(Employee)e.nextElement();numPay=numPay+em.getPay();System.out.println(em);}System.out.println("总工资:"+numPay);}};收集于网络,如有侵权请联系管理员删除精品文档实验四 异常类的定义及处理一、实验目的了解异常处理方法。熟悉并掌握常见异常的捕获方法。熟悉JDK中已经定义的若干异常类的层次结构。掌握自定义异常类的创建方法。二、实验内容1)编写程序实现如下功能:生成并捕获到 NegativeArraySizeException 和IndexOutOfBoundsException 类型的异常,并显示捕获到的异常信息。然后在此基础上生成并捕获到 NullPointerException 类型的异常,并显示捕获到的异常信息。源程序:importjava.lang.*;importjava.io.*;classTestException{publicstaticvoidmain(String[]args){try{outofBound();arraySize();nullPointer();}catch(NegativeArraySizeExceptione){System.out.println(e.toString());}}staticvoidoutofBound(){try{inti;inta[];a=newint[10];for(i=0;i<11;i++)收集于网络,如有侵权请联系管理员删除精品文档{a[i]=i;System.out.println("a["+i+"]="+a[i]);}}catch(IndexOutOfBoundsExceptione){System.out.println(e.toString());}}staticvoidnullPointer(){try{Strings=null;System.out.println(s.length());}catch(NullPointerExceptione){System.out.println(e.toString());}}staticvoidarraySize()throwsNegativeArraySizeException{try{inta[];a=newint[-3];}catch(NegativeArraySizeExceptione){throwe;}}}编写程序实现如下功能:计算两个数之和,参与求和运算的每个数的值都必须在10-20之间,当任意一个数超出范围时,抛出自己的异常。源程序:classMyExceptionextendsException{privateStringMsg;收集于网络,如有侵权请联系管理员删除精品文档publicMyException(Stringmessage){super(message);Msg=message;}publicvoidprintMsg(){System.out.println(Msg);}}publicclassEX6_3{voidGenerateMyException()throwsMyException{thrownewMyException("此处发生异常信息");}publicstaticvoidmain(Stringargs[]){EX6_3obj=newEX6_3();try{obj.GenerateMyException();}catch(MyExceptione){e.printMsg();}}}思考题:2)编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。如果输入的参数个数为 1、2、3则它们应分别对应正方形、长方形、三角形,如果参数值为 0,则异常处理方法显示错误消息。源程序:classNullParameterExceptionextendsException{NullParameterException(StringMessage)收集于网络,如有侵权请联系管理员删除精品文档{super(Message);}}classTestArea{publicstaticvoidmain(String[]args){shapesh=null;intnum;num=args.length;try{switch(num){case1:sh=newZangle(Double.parseDouble(args[0]));break;case2:sh=newLongangle(Double.parseDouble(args[0]),Double.parseDouble(args[1]));break;case3:sh=newTriangle(Double.parseDouble(args[0]),Double.parseDouble(args[1]),Double.parseDouble(args[2]));break;case0:thrownewNullParameterException(" 参数个数为零!");}System.out.println(sh.area());}catch(Exceptione){System.out.println(e.toString());}}};abstractclassshape{abstractdoublearea();};收集于网络,如有侵权请联系管理员删除精品文档classTriangleextendsshape{doublea,b,c;Triangle(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;}doublearea(){doubles;s=(a+b+c)/2;return(Math.sqrt(s*(s-a)*(s-b)*(s-c)));}};classLongangleextendsshape{doublel,w;Longangle(doublel,doublew){this.l=l;this.w=w;}doublearea(){return(l*w);}};classZangleextendsshape{doublel;收集于网络,如有侵权请联系管理员删除精品文档Zangle(doublel){this.l=l;}doublearea(){returnl*l;}};收集于网络,如有侵权请联系管理员删除精品文档实验五 流、文件及基于文本的应用一、实验目的理解数据流的概念。理解Java流的层次结构。理解并掌握文件的读写操作方法。二、实验内容1) 编写一个javaApplication 程序,接受用户输入的 10个整数,比较并输出其中的最大值和最小值。源程序:importjava.io.*;publicclassMaxMainClass{//定义一个包含main方法的Application类MaxMinClassstaticintmaxInt(intdata[],intn){intk=data[0];for(inti=0;i<n;i++)if(k<data[i])k=data[i];returnk;}//找到数组data[n]中的最大值staticintminInt(intdata[],intn){intt=data[0];for(inti=0;i<n;i++)if(t>data[i])t=data[i];returnt;}//找到数组data[n]中的最小值publicstaticvoidmain(Stringargs[]){intdata[]=newint[10];Strings="";System.out.println("输入数组data[10],输入每个数后按回车:");收集于网络,如有侵权请联系管理员删除精品文档for(inti=0;i<10;i++){try{BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));s=in.readLine();data[i]=Integer.parseInt(s);}catch(IOExceptione){}}//利用Integer.parseInt方法将字符串转换为整数 intintk=maxInt(data,10);//调用maxInt方法,找到data[10]中最大值intt=minInt(data,10);//调用minInt方法,找到data[10]中最小值System.out.println("最大值为:"+k+"\n最小值为:"+t);}}编写一个程序,能将一个源程序中的空行及注释去掉,并将处理后的内容写到目标文件中。(源文件名称和目标文件名称均要求以命令行参数形式输入)源程序:importjava.io.*;classFileCopy{publicstaticvoidmain(String[]args){try{Strings1;inta=0;s1="abc"+a;intLineCount=0;BufferedReaderinput=newBufferedReader(newFileReader("AccessControl.java"));BufferedWriteroutput=newBufferedWriter(newFileWriter("test1.txt"));Stringc=input.readLine();Strings;while(c!=null){s=deleteComment(c);s=s.trim();if(!s.equals("")){收集于网络,如有侵权请联系管理员删除精品文档output.write(LineCount+":"+deleteComment(c));//删除评论output.newLine();System.out.println(deleteComment(c));LineCount++;}c=input.readLine();}input.close();output.close();}catch(IOExceptione){System.out.println(e);}}staticStringdeleteComment(Strings){intpos=0;if(s==null)returns;pos=s.indexOf("//");if(pos<0)returns;elsereturns.substring(0,pos);}}思考题:1)从一个文本文件中读入 30个学生的姓名和成绩,计算所有学生的最高分、最低分和平均分,并将结果写入另外一个文件。源程序:importjava.io.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年宠物行为师行为矫正方向笔试模拟题
- 2026年自然灾害防护知识
- 2026年中考物理力学部分精习题
- 2026年药师资格证考试模拟题精
- 2026年药学士资格考试模拟题
- 2026年企业基础知识培训
- 2026年物流师资格认证练习题
- 2026年小学二年级上册语文寒假作业基础卷含答案
- 2026年小学六年级下册数学计算能力综合提升卷含答案
- 中级注册安全工程师考试1000问(含答案)
- 国家开放大学《森林保护》形考任务1-4参考答案
- 广东省深圳市红岭中学化学自主招生试卷
- 洞口开挖安全技术措施
- 普通车床主传动系统设计
- 2023年湖南省长沙市雨花区初中会考科目调研检测地理试题
- 人防区域顶板预留洞封堵方案
- GB/T 18422-2013橡胶和塑料软管及软管组合件透气性的测定
- GA/T 497-2016道路车辆智能监测记录系统通用技术条件
- 湖南省长沙市长郡教育集团2021-2022学年中考三模数学试题含解析
- 脱挂式索道(检测)课件
- 审理商品房买卖合同纠纷案件司法解释的理解与适用
评论
0/150
提交评论