Java程序设计实验报告CXX_第1页
Java程序设计实验报告CXX_第2页
Java程序设计实验报告CXX_第3页
Java程序设计实验报告CXX_第4页
Java程序设计实验报告CXX_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、优质文本学 生 实 验 报 告理工类课程名称:Java程序设计 专业班级:13软件3班 学生学号: 学生姓名: 所属院部:软件工程学院 指导教师: 陈圣XX 20 14 20 15 学年 第 1 学期 金陵科技学院教务处制实验报告书写要求实验报告原那么上要求学生手写,要求书写工整。假设因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加工程。填写考前须知1细致观察,及时、准确、如实记录。2准确说明,层次清晰。3

2、尽量采用专用术语来说明事物。4外文、符号、公式要准确,应使用统一规定的名词和符号。5应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验工程的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验工程名称: Java编程根底 实验学时: 2 同组学生姓名: 实验地点: A203 实验日期: 2014/10/13 实验成绩: 批改教师: 陈圣国 批改时间: ?Java程

3、序设计实验?指导书实验1 Java编程根底一、实验目的和要求(1) 熟练掌握JDK编写调试Java应用程序及Java小程序的方法。(2) 熟练掌握Java应用程序及小程序的结构。(3) 了解Java语言的特点,根本语句、运算符及表达式的使用方法。(4) 熟练掌握常见数据类型的使用。(5) 熟练掌握if-else、switch、while、do-while、for、continue、break、return语句的使用方法。二、实验要求1调试程序要记录调试过程中出现的问题及解决方法;2编写程序要标准、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;3做完实验后给出本实验的实验报告。三、实

4、验设备、环境奔腾以上计算机,Windows 2000 、J2SDK、IE浏览器四、实验步骤及内容1输入并用JDK编译运行下面的程序class HelloWorldpublic static void main(String args)System.out.println(“Hello,world);22-18import java.util.*; public class sushu public static void main(String args) Scanner input=new Scanner(System.in); System.out.print("Please i

5、nput a number:"); int number=input.nextInt(); int s=0; if(number=2) System.out.println("是质数"); else for(int i=2;i<number;i+) s=number%i; if(s=0) break; if(s=0) System.out.println("不是质数"); else System.out.println("是质数"); 32-19public class yanghuisanjiao public st

6、atic void main(String args) int a=new int1010; for(int i=0;i<10;i+) for(int j=0;j<10;j+) if (j<i) aij=1; if(j=0) aij=1; else aij=ai-1j-1+ai-1j; else aij=1; for(int i=0;i<10;i+) for(int k=1;k<=10-i;k+) System.out.printf(" "); for(int j=0;j<=i;j+) System.out.printf("%3

7、d ",aij); System.out.printf("n"); 4 2-28import java.util.Scanner;public class huiwen public static void main(String args)int i,j,n=0;System.out.println("请输入一个字符串");Scanner in =new Scanner(System.in);String str=in.next();for(i=0,j=str.length()-1;i<str.length()-1|j>0;i+,

8、j-)if(str.charAt(i)!=str.charAt(j)n=-1;break;if(n=0)System.out.println("是回文字符串");elseSystem.out.println("不是回文字符串");52-32public class shishuzifuchuan public static double parseDouble(String s) int i=0, sign=s.charAt(0)='-' ? -1 : 1; if (s.charAt(0)='+' | s.charAt(0

9、)='-') i+; double value=0, power=0.1; while (i<s.length() && s.charAt(i)>='0' && s.charAt(i)<='9') value = value*10+s.charAt(i+)-'0' if (i<s.length() && s.charAt(i)='.') i+; while (i<s.length() && s.charAt(i)>=

10、'0' && s.charAt(i)<='9') value += (s.charAt(i)-'0')*power; i+; power*=0.1; value *=sign; if (i<s.length() && (s.charAt(i)='E' | s.charAt(i)='e') i+; power = (s.charAt(i)='-') ? 0.1 :10; if (s.charAt(i)='+' | s.charAt(i)=&#

11、39;-') i+; int exp=0; while (i<s.length() && s.charAt(i)>='0' && s.charAt(i)<='9') exp = exp*10+s.charAt(i+)-'0' for (int j=0; j<exp; j+) value*=power; return value; public static double toDouble(String s) int j=s.indexOf('.'), k=s.inde

12、xOf('E'); if (k=-1) k=s.indexOf('e'); if (j=-1 && k=-1) return MyInteger.parseInt(s); int i=0, sign = s.charAt(0)='-' ? -1 : 1; if (s.charAt(0)='+' | s.charAt(0)='-') i+; double value=0, power=0.1; if (j!=-1) value=MyInteger.parseInt(s.substring(i,j);

13、j+; while (j<s.length() && s.charAt(j)>='0' && s.charAt(j)<='9') value += (s.charAt(j)-'0')*power; j+; power*=0.1; value *=sign; if (k!=-1) if (j=-1) value=MyInteger.parseInt(s.substring(0,k); k+; power = (s.charAt(k)='-') ? 0.1 :10; if (s.cha

14、rAt(k)='+' | s.charAt(k)='-') k+; int exp=MyInteger.parseInt(s.substring(k); for (j=0; j<exp; j+) value*=power; return value; 五、实验结果与分析1运行结果:Hello,world2运行结果:Please input a number:24不是质数3运行结果: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28

15、56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 14运行结果:请输入一个字符串asdffdsa是回文字符串5六、讨论、思考题(1) 比拟Java语言与C的程序结构Java语言是基于C+语言开展而来,而c+语言又是从C语言开展而来。因此java语言与C语言程序在变量定义、关键字的使用、方法,函数,定义、根本数据类型的使用、条件语句、循环语句的使用有着千丝万缕的关系,相似又不同。Java的结构无关性、真正的面向对象和与Internet的协同工作等特性比上述任何一种语言更显得完善。Java的许多术语来自于C ,其语法也来自于C 。Java比C/C 易学、易用,且有

16、强大的内建功能,同时,Java的代码可以重用。Java的主要缺点是解释执行,所以,C 的性能仍是较为突出的。然而,由于C即时编译器的开发,这一性能的沟壑也随之填平了。 这里先介绍几个不同 1指针:指针包含变量的地址,指针在 C 编程过程中可能引起许多错误,容易造成内存崩溃。Java取消了指针,但仍可以遍历所有的对象和数组。 2函数:Java没有函数,但是Java的类和方法能够实现C/C 用函数实现的任何任务。C语言编程人员希望在标准库中找到的函数,Java用各种类的静态方法来实现。 3联合和结构:在C 语言中有三种复杂的数据类型:联合、结构和类;而在Java中只采用了类,其中在C中用联合和结构

17、实现的工作,Java都用类来实现。 4Java语言不允许数据类型的自动强制转换。(2) Java语言中的数组与C语言中的数组相比有什么不同,它的优点是什么?Java的数组是引用数据类型,一个数组变量采用引用方式保存多个数组元素,数组元素的数据类型既可以是根本数据类型,也可以是引用数据类型,对数组元素所能进行的操作取决于数组元素所属的数据类型。Java的数组元素都是动态数组,再在声明数组变量之后,使用new运算符申请数组存储空间。 Java不支持c/c+语言中的指针类型,所以对数组的操作只能使用下标,不能使用指针。引用数据类型与根本数据类型变量的不同点在于,存储单元的分配方式不同,两个变量之间的

18、复制方式也不同。根本数据类型的传值赋值,获得存储单元的方式是静态的数组变量引用赋值,获得存储单元的方式都是动态的,必须使用new运算符。引用变量保存地址、长度、引用计数等特性。(3) 比拟Java各种流程控制语句的特点,它们的适用场合顺序结构语句不改变程序的执行流程,语句按书写次序依次顺序执行。 选择语句选择语句通过判断给定条件是否成立,决定是否执行该选择语句中包含的子句。选择语句有两种,if语句和switch语句。当有两种选择并且需要根据条件选择是否执行时,通常使用if语句,当有两种以上选择并且有表达式的值决定是否执行时通常使用switch语句。 循环语句java提供了三种循环语句while

19、、do-while、for实现循环结构。共同特点是根据循环条件来判断是否执行循环体,实际应用中应该根据具体问题的要求选择适宜的循环语句,有些问题,三种都适用。While语句的特点是“先判断后执行,当条件满足时执行循环体,do-while语句特点是“先执行后判断,for语句将循环控制变量初值。循环条件和变量的变化规律都以表达式形式写在循环体之前。 转移语句java语言提供三种三种无条件转移语句,return、break和continue。Return语句从方法中返回值break和continue语句用于控制流程转移。在switch语句的某个case子句中,或在while、repeat、for语句

20、的循环体中,如果遇到break语句,那么立即退出当前switch语句或循环语句。在while、repeat、for语句的循环体中,如果遇到continue语句,那么本次循环结束,回到循环条件,继续判断是否执行下一次循环。实验工程名称: 类与对象 实验学时: 2 同组学生姓名: 实验地点: A203 实验日期: 2014/10/20 实验成绩: 批改教师: 陈圣国 批改时间: 实验2 类与对象一、实验目的(1) 熟练掌握Java语言类定义的根本语法(2) 熟练掌握类数据成员的访问控制,对象建立的方法(3) 熟练掌握类构造函数的定义,类方法的访问控制重载(4) 掌握静态成员的特点(5) 了解Jav

21、a语言的垃圾回收机制。(6) 熟练掌握类继承的根本、语法包和接口的使用,掌握protected成员的特点,了解抽象方法和抽象类。二、实验要求1调试程序要记录调试过程中出现的问题及解决方法;2编写程序要标准、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;3做完实验后给出本实验的实验报告。三、实验设备、环境奔腾以上计算机,Windows 2000 、J2SDK、IE浏览器四、实验步骤及内容(1) 3-32 完善例3.2的日期类MyDate。class MyDate private int year, month, day; private static int thisYear; st

22、atic thisYear=2014; public MyDate(int year,int month,int day) this.set(year,month,day); public MyDate() this(1970,1,1); public MyDate(MyDate d) this.set(d); public void set(int y,int m,int d) this.year=y; this.month=(m>=1)&(m<=12)?m:1; this.day=(d>=1)&(d<=31)?d:1; public void set

23、(MyDate d) set(d.year,d.month,d.day); public int getYear() return this.year; public int getMonth() return this.month; public int getDay() return this.day; public String toString() return this.year+"年"+this.month+"月"+this.day+"日" public static int getThisYear() return th

24、isYear; public static boolean isLeapYear(int year) return year%400=0|year%100!=0&&year%4=0; public boolean isLeapYear() return isLeapYear(this.year); public boolean equals(MyDate d) return this=d|d!=null&&this.year=d.year&&this.month=d.month&&this.day=d.day; public st

25、atic int daysOfMonth(int year,int month) switch(month) case 1:case 3:case 5:case 7:case 8: case 10:case 12:case 31:return 31; case 4:case 6: case 9:case 11:return 30; case 2:return isLeapYear(year)?29:28; default:return 0; public int daysOfMonth() return daysOfMonth(this.year,this.month); public voi

26、d tomorrow() this.day+; if(day>this.daysOfMonth() day=1; month+; if(month>12) month=1; year+; public MyDate yestoday() MyDate yes=new MyDate(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); return yes; public int getWe

27、ek(MyDate d) int c,y,m,n; c=d.year/100; y=d.year%100; m=d.month; n=d.day; return (c/4-2*c+y+y/4+26*(m+1)/10+n-1)%7; public String WeekString(MyDate d) String a=new String6; a0="星期日"a1="星期一"a2="星期二"a3="星期三"a4="星期四"a5="星期五"a6="星期六"r

28、eturn agetWeek(d); class MyDate_ex public static void main(String args) System.out.println("今年是"+MyDate.getThisYear()+",闰年"+MyDate.isLeapYear(MyDate.getThisYear(); MyDate d1=new MyDate(2012,7,3); MyDate d2=new MyDate(d1); System.out.println(d2+",闰年"+d2.isLeapYear();d2.W

29、eekString(d2); System.out.print(d2+"的昨天是"+d2.yestoday()+"n"+d2+"的明天是"); d2.tomorrow(); System.out.println(d2); (2) 3-34 设计一个复数类,成员包括实部和虚部,成员方法包括复数加法、减法、比拟、转换成字符串等运算或操作。class complex double x,y; complex(double a,double b)x=a;y=b; public class Complex2 public static void

30、main(String args) complex num1=new complex(6,-23); complex num2=new complex(1,-7); System.out.println("num1的realpart="+"6"+" 其imagepart="+"-23i"); System.out.println("num2的realpart="+"1"+" 其imagepart="+"-7i");double real

31、part=num1.x+num2.x; double imagepart=num1.y+num2.y; System.out.println("相加后 realpart="+realpart+" imagepart="+imagepart+"i"); realpart=num1.x-num2.x; imagepart=num1.y-num2.y; System.out.println("相减后 realpart="+realpart+" imagepart="+imagepart+"i

32、"); (3) 3-35,3-363-35public class Color private int value; public Color(int red,int green,int blue) value = 0xff000000 | (red & 0xFF)<<16) | (green & 0xFF)<<8) | blue & 0xFF; public Color(int rgb) value = 0xff000000|rgb; public int getRGB() return value; public int getRe

33、d() return (getRGB()>>16) & 0xFF; public int getGreen() return (getRGB()>>8) & 0xFF; public int getBlue() return getRGB() & 0xFF; 3-36public class Point privateint x,y;public Point()public Point(int x,int y)this.set(x, y);public void set(int x,int y)this.x=x;this.y=y;public S

34、tring toString()return "("+this.x+","+this.y+")"public static void main(String args)Point p=new Point(5,6);Pixel p1=new Pixel("黑");p1.set(3,4);p1.set1("红");System.out.println("Point的像素点为:"+p);System.out.println("Pixel的像素点为:"+p1.to

35、String();System.out.println("Pixel的像素点为:"+p1);System.out.println("Pixel的颜色为:"+p1.toString1();class Pixel extends Pointprivate String color;/public Pixel()public Pixel(String color)this.set1(color);public void set1(String color)this.color=color;public String toString1()return colo

36、r;(4) 3-38public class Student private staticint m=1,n=1,k=1;/h=1,i=0,j=0;public String Message(String speciality,String name,int score1,int score2,int score3)if(speciality="软件") System.out.println(name+","+speciality+",000"+k+",Java:"+score1+",数据结构:"

37、;+score2+",C语言:"+score3);k+;else if(speciality="网通") System.out.println(name+","+speciality+",000"+m+",模电:"+score1+",数电:"+score2+",C语言:"+score3);m+;else if(speciality="计算机") System.out.println(name+","+speciali

38、ty+",000"+n+",高数:"+score1+",计算机网络:"+score2+",C语言:"+score3);n+;/else newMessage(speciality,name,score1,score2,score3);return null;public static void main(String args) Student s=new Student();s.Message("软件","徐智力" ,88,77,80);s.Message("软件

39、","吴亦凡",86,70,92);s.Message("网通","周公平",87,76,85);s.Message("网通","闫娜",87,98,79);s.Message("计算机","柳龚杰",87,88,69);s.Message("计算机","李雄雄",60,87,92);(5) 4-17interface Area public abstract double area(); interfac

40、e Volume public abstract double volume(); public class yuanzhui extends Object implements Area,Volume private double radius; private double length;private double height; public yuanzhui(double radius,double length,double height) this.radius = radius; this.length = length; this.height = height; publi

41、c yuanzhui() this(0,0,0); public double area() /计算圆锥的外表积,实现Area接口中的抽象方法 return Math.PI*this.radius*this.length+Math.PI*this.radius* this.radius ; public double volume() /计算圆锥的体积,实现Volume接口中的抽象方法 return Math.PI * this.radius * this.radius * this.height/3; public String toString() return "一个圆锥,半径

42、"+this.radius+",高"+this.height+",斜边,"+this.length+"外表积为"+this.area()+",体积为"+this.volume(); public static void main(String args) System.out.println(new yuanzhui().toString(); System.out.println(new yuanzhui(4,5,3).toString(); 五、实验结果与分析1运行结果:今年是2014,闰年false

43、2012年7月3日,闰年true ,星期二2012年7月3日的昨天是2012年7月2日2012年7月3日的明天是2012年7月4日2运行结果:num1的realpart=6 其imagepart=-23inum2的realpart=1 其imagepart=-7i相加后 realpart=7.0 imagepart=-30.0i相减后 realpart=5.0 imagepart=-16.0i3Point的像素点为:(5,6)Pixel的像素点为:(3,4)Pixel的像素点为:(3,4)Pixel的颜色为:红4徐智力,软件,0001,Java:88,数据结构:77,C语言:80吴亦凡,软件,

44、0002,Java:86,数据结构:70,C语言:92周公平,网通,0001,模电:87,数电:76,C语言:85闫娜,网通,0002,模电:87,数电:98,C语言:79柳龚杰,计算机,0001,高数:87,计算机网络:88,C语言:69李雄雄,计算机,0002,高数:60,计算机网络:87,C语言:925一个圆锥,半径0.0,高0.0,斜边,0.0外表积为0.0,体积为0.0一个圆锥,半径4.0,高3.0,斜边,5.0外表积为113.09733552923,体积为50.26548245743六、讨论、思考题(1) 类的继承有什么好处?子类继承后可以重写,也可以不重写,看需要决定。如果重写的

45、话在实例中调用的是新写的方法如果不重写的话在实例中调用的是父类的方法。 被包含对象通过包含他们的类来访问。黑盒重用,因为被包含对象的内部细节是不可见的。具有很好的封装。通过获得和被包含对象的类型相同的对象引用,可以在运行时动态定义组合的方式。(2) 抽象类与接口的共同点是什么?不同点表现在哪些地方? 相同点都不能被直接实例化,都可以通过继承实现其抽象方法。都是面向抽象编程的技术根底,实现了诸多的设计模式。 不同点 接口支持多继承;抽象类不能实现多继承。接口只能定义抽象规那么;类既可以定义规那么,还可能提供已实现的成员。接口是一组行为标准;抽象类是一个不完全的类。着重族的概念。 接口可以用于支持

46、回调;抽象类不能实现回调,因为继承不支持。 接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。实验工程名称: 图形用户界面 实验学时: 2 同组学生姓名: 实验地点: A203 实验日期: 2014/10/27 实验成绩: 批改教师: 陈圣国 批改时间: 实验3 图形用户界面一、实验目的(1) 掌握AWT组件的使用方法(2) 熟练掌握AWT中常用界面元素如窗口、菜单、对话框的使用方法(3) 掌握用户界面动作与事件的处理程序

47、的编写方法。(4) 熟练掌握构造用户界面的方法和常见界面元素的使用。二、实验要求1调试程序要记录调试过程中出现的问题及解决方法;2编写程序要标准、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;3做完实验后给出本实验的实验报告。三、实验设备、环境奔腾以上计算机,Windows 98 、J2SDK、IE浏览器四、实验步骤及内容编写并调试如下程序界面采用awt实现:(1) 6-31设计一个图形界面的计算器程序,要求能够实现加减乘除等根本运算。import java.awt.*; import java.awt.event.*; class Computer implements Acti

48、onListener Frame frame = new Frame("计算器"); TextField tf = new TextField("0"); int state =0; public Computer() Panel panel = new Panel(); /也是一个容器但不能单独存在最终要加到frame panel.setLayout(new GridLayout(4,5); String label = "7","8","9","/","sqrt

49、","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","=" for(int i=0;i<label.length;i+) Buttonb=newButton(labeli); if(labeli.equals("/")|labeli.equals("+")|labeli.equals("-")|labeli.equals("*")|labeli.equals("=") b.setForeground(Color.red); e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论