沈阳师范---Java程序设计---实验题
- 格式:docx
- 大小:26.59 KB
- 文档页数:7
Java程序设计实验二实验目的:熟悉java控制结构语句。
实验内容:1、排序算法实现(过程实现方式、对象实现方式, 多态性)import java.applet.Applet;import java.awt.Graphics;class IntSort {public String sort(int a, int b) {if (a>b)return a+" "+b;elsereturn b+" "+a;}public String sort(int a, int b, int c) {int swap;if (a<b) {swap=a; a=b; b=swap;}if (a<c) {swap=a; a=c; c=swap;}if (b<c) {swap=b; b=c; c=swap;}return a+" "+b+" "+c;}public String sort(int arr[ ]) {String s=" ";int swap;for (int i=0; i<arr.length; i++)for (int j=0; j<arr.length-1; j++)if (arr[j]>arr[j+1]) {swap=arr[j];arr[j]=arr[j+1];arr[j+1]=swap;}for (int i=0; i<arr.length; i++)s=s+arr[i]+" ";return s;} } public class SortDemo extends Applet {IntSort s =new IntSort();public void paint(Graphics g) {int a=30, b=12, c=40;int arr[]={34,8,12,67,44,98,52,23,16,16};g.drawString("两个数排序结果:"+s .sort(a,b),30,30);g.drawString("三个数排序结果:"+s .sort(a,b,c),30,60);g.drawString("数组的排序结果:"+s .sort(arr),30,90);} }2、判断一个数是否为素数?public class Prime {public static void main(String[] args) {final int n =4;int i = 2;for ( i=2; i<Math.sqrt (n); i++) {if (n%i==0) break ;}if (i>Math.sqrt (n)) {System.out .println(n+" is a prime!");} else {System.out .println(n+" is not a prime");}} }3、计算下列表达式值。
好的,以下是一个关于Java实验题目的回答,约1500字:实验题目:设计一个简单的计算器应用程序一、实验目的:1. 掌握Java语言的基本语法和面向对象编程思想。
2. 掌握控制流语句(如if-else、for、while等)的使用。
3. 理解面向对象编程的基本概念,如类、对象、方法、继承等。
二、实验环境:1. 操作系统:Windows 10。
2. Java开发环境:JDK 1.8。
3. 开发工具:Eclipse IDE。
三、实验步骤:1. 创建一个新的Java项目,命名为Calculator。
2. 在项目中创建一个名为Calculator的类,作为主类,包含main()方法作为程序的入口点。
3. 在Calculator类中添加一个构造函数,用于初始化变量和设置初始状态。
4. 添加两个私有变量:运算符(operator)和数字(num)。
运算符用于存储运算符符号(+, -, *, /等),数字用于存储要计算的数值。
5. 添加一个公共方法add(),用于实现加法运算。
在该方法中,使用控制流语句(如if-else)根据运算符进行加法运算,并返回结果。
6. 添加一个公共方法subtract(),实现减法运算的逻辑与add()方法类似。
7. 添加一个公共方法multiply(),实现乘法运算的逻辑与add()方法类似。
8. 添加一个公共方法divide(),实现除法运算的逻辑与add()方法类似。
注意,在除法运算中需要处理除数为零的情况。
9. 在main()方法中编写测试代码,调用add()、subtract()、multiply()和divide()方法进行运算,并输出结果。
10. 运行程序,观察结果是否符合预期。
四、实验代码示例:```javapublic class Calculator {private char operator; // 运算符private int num; // 数字public Calculator(char operator, int num) { // 构造函数this.operator = operator;this.num = num;}public int add(Calculator num) { // 加法运算方法int result = this.num + num.num;return result;}public int subtract(Calculator num) { // 减法运算方法int result = this.num - num.num;return result;}public int multiply(Calculator num) { // 乘法运算方法int result = this.num * num.num;return result;}public int divide(Calculator num, int divisor) { // 除法运算方法(处理除数为零的情况)if (divisor == 0) { // 除数为零时抛出异常或返回特殊值throw new IllegalArgumentException("除数不能为零");} else {int result = this.num / divisor;return result;}}}```五、实验总结:通过本次实验,我们掌握了Java语言的基本语法和面向对象编程思想,了解了控制流语句的使用,并实现了简单的计算器应用程序。
第Ⅰ部分:实验指导实验1:Java开发环境J2SE一、实验目的(1)学习从网络上下载并安装J2SE开发工具。
(2)学习编写简单的Java Application程序.(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。
二、实验任务从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。
三、实验内容1.安装J2SE开发工具Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从上进行下载。
安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。
教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。
2.安装J2SE源代码编辑工具Edit Plus教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java 原程序的常用命令的用法。
3.编写并编译、运行一个Java Application程序。
创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。
public class HelloWorldApp{public static void main(String[] args){System.out.println("老师,你好!");}}4.编译并运行下面的Java Application程序,写出运行结果。
1:public class MyClass {2:private int day;3:private int month;4:private int year;5:public MyClass() {6:day = 1;7:month = 1;8:year = 1900;9:}10:public MyClass(int d,int m,int y) {11:day = d;12:month = m;13:year = y;14:}15:public void display(){16:System.out.println(day + "-" + month + "-" + year);17:}18:public static void main(String args[ ]) {19:MyClass m1 = new MyClass();20:MyClass m2 = new MyClass(25,12,2001);21:m1.display();22:m2.display();23:}24:}运行结果:1-1-190025-12-2001实验2:Java基本数据类型一、实验目的(1)掌握javadoc文档化工具的使用方法。
复习
考试题型
一、选择题(共10道题,每道题2分,共20分)
二、完善程序题(共3小题,每空3分,共计30分)
JavaScript、数据库、内置对象
三、程序分析题(共4小题,每题5分,共20分)
JavaScript、C#、验证控件、内置对象
四、编写程序(共3小题,每题10分,共30分)
DIV+CSS、C#、内置对象
CHAP01 平台
NET框架
平台
CHAP02 HTML&JavaScript
案例:实现表单验证
CHAP03 cSS
CHAP06c#
课后题:程序设计题1~6
Chap08 内置对象
使用Form、QueryString、Session三种方式实现用户的登录验证。
方法一:不使用数据库,参看教材
方法二:使用数据库
完成相应程序:login.aspx页面用于接收用户的输入(账号、密码);check.aspx页面用于校验用户数据,从数据库中检索相应记录,若数据库中存在此人,将用户名信息写入session 对象,并跳转到welcome.aspx页面,在welcome页面验证用户是否已登录(通过判断session 对象是否为空),若数据库中查无此人,返回login页面进行重新登录。
Chap09 控件
验证控件
Chap10 数据库
P298 三个程序
完成程序:使用Command对象向数据库中添加记录
要求:设计两个页面,user.aspx用于接收用户的输入(包括学号、姓名、年龄);在register.aspx 页面完成记录的添加。
java语言程序设计例题解析与实验指导一、Java语言程序设计例题解析1.1 题目一:计算圆的面积和周长该题目要求根据输入的圆的半径,计算并输出圆的面积和周长。
解析如下:1.1.1 圆的面积计算公式为:S = π * r^2,其中π为常数3.14,r为圆的半径。
1.1.2 圆的周长计算公式为:C = 2 * π * r,其中π为常数3.14,r为圆的半径。
1.1.3 根据以上公式,可以编写如下Java代码:import java.util.Scanner;public class Circle {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入圆的半径:");double radius = input.nextDouble();double area = Math.PI * radius * radius;double perimeter = 2 * Math.PI * radius;System.out.println("圆的面积为:" + area);System.out.println("圆的周长为:" + perimeter);}}1.2 题目二:判断一个数是否是素数该题目要求根据输入的整数n,判断其是否是素数。
解析如下:1.2.1 素数是指只能被1和本身整除的正整数。
1.2.2 判断一个数是否是素数有多种方法,其中一种较简单有效的方法是从2到该数的平方根范围内逐一判断是否能被整除。
1.2.3 根据以上方法,可以编写如下Java代码:import java.util.Scanner;public class PrimeNumber {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入一个正整数:");int n = input.nextInt();boolean isPrime = true;for (int i = 2; i <= Math.sqrt(n); i++) {if (n % i == 0) {isPrime = false;break;}}if (isPrime && n != 1) {System.out.println(n + "是素数。
Java程序设计22秋在线作业2答案2试卷总分:100 得分:100一、单选题 (共 10 道试题,共 30 分)1.在Java语言中,那一个是最基本的元素?()【A.项】方法【B.项】包【C.项】对象【D.项】接口【此题正确选项是】:C2.while循环和do……while循环的区别是:()【A.项】没有区别,这两个结构任何情况下效果一样【B.项】while循环比do……while循环执行效率高【C.项】while循环是先循环后判断,所以循环体至少被执行一次【D.项】do……while循环是先循环后判断,所以循环体至少被执行一次【此题正确选项是】:B3.下列程序段的输出结果是() public class operatorsandExpressions{ void stringPlus(){ int a=3,b=4,c=5; System.out.println("abc"+3); } }【A.项】15【B.项】abc3【C.项】256【D.项】63【此题正确选项是】:B4.布局管理器中的按钮位置有可能会根据Frame的大小改变而改变。
()【A.项】BorderLayout【B.项】CardLayout【C.项】GridLayout【D.项】FlowLayout【此题正确选项是】:D5.类是对象的抽象,它的定义包括()部分【A.项】一部分【B.项】两部分【C.项】三部分【D.项】四部分【此题正确选项是】:B6.下面代码的结果是什么?()<html><body> <% int i = 10 ;%> <% while(--i>=0) { %> out.print(i); <% } %> </body></html>【A.项】9876543210【B.项】9C【C.项】0【D.项】None of the above【此题正确选项是】:D7.现有负无限值双精度浮点数x和负有限值单精度浮点数y,以下关于x%y的说法中.哪一个选项地正确的?()。
参考答案第1章一、判断题1. ×2. ×3. √4. √5. √6. ×7. ×8. ×二、选择题1. A、B、C、D、E2. B3. C4. A5. B6. B7. E三、填空题1. 面向对象的、解释的、结构中立的、可移植的、多线程的2. 一种与平台无关的二进制字节码(Byte code)3. 可移植性4. JVM5. Applet、Java Application6. 动态7. 命令行8. 慢9. 大大提高Java字节码的执行效率10. java、class四、问答题1. Java 是一种简单的、面向对象的、分布式的、解释的、健壮的、安全的、结构中立的、可移植的、性能优异的、多线程的、动态的语言,它还支持垃圾自动回收。
Java语言的“动态性”和C++语言相比,Java语言允许在运行时动态地装入所需要的类,这些类既可以位于本地,也可以是从Internet上下载的,这一特性是C++等其他编译型语言所无法实现的。
2.用户应用程序Java APIJVM硬件平台3. (见课本中设置Path一节)五、编程题1,2都是利用集成化开发环境实际动手操作。
第2章一、判断题1. √2. √3. √4. √5. √6. ×7. ×8. √二、选择题1. A、B2. A、C、D3. C4. C5. A、D6. C7. A8. A三、填空题1. 02. –128 ~ 1273. 位运算、关系运算4. 32,645. 保护变量6. 807. 在前面加个‘0’,0128. while四、问答题1. 十进制常数记法就是我们日常生活用的整数的写法:如365,0,-29456。
八进制常数记法只需要在前面加个‘0’即可。
如012表示八进制数12。
它转化为十进制的值是1×81 + 2×80=10,-012则和十进制数-10相等。
十六进制数记法是开头加上‘0x’ 或者‘0X’,如0x12表示十六进制数18。
【沈师PTA】JAVA程序设计-第2章习题集⼀、判断题( T )语句 System.out.println(4+8+“Hello,world!”); 的输出结果是12Hello,world!。
( T )Java的字符类型采⽤的是Unicode编码,每个Unicode码占16个⽐特。
( T )boolean done = true; is a valid assignment statement.( F )The following answers is the correct way to declare a Boolean variable named truth: boolean truth == true;( T )Java的各种数据类型占⽤固定长度,与具体的软硬件平台环境⽆关。
( T )boolean型数据的值只有true和false。
( F )char of Java is 8-bit.( F )[ ] use to delineate a block of statements in Java.( F )Java的字符类型采⽤的是ASCII编码。
⼆、单选题1. What will be printed out if you attempt to compile and run the following code ( C )。
int i=1;switch(i){case0:System.out.println("zero");break;case1:System.out.println("one");case2:System.out.println("two");default:System.out.println("default");}A. oneB. one, defaultC. one, two, defaultD. default2. For the code below: What is the output( B )。
Java程序设计22秋在线作业1答案3试卷总分:100 得分:100一、单选题 (共 10 道试题,共 30 分)1.jav【A.项】awt包的Panel类是()的子类。
【A.项】Frame【B.项】Container【C.项】Canvas【D.项】Component【此题正确选项是】:B2.对于catch 子句的排列,下列哪种是正确的?()【A.项】父类在先,子类在后【B.项】子类在先,父类在后【C.项】有继承关系的异常不能在同一个 try 程序段内【D.项】先有子类,其他如何排列都无关【此题正确选项是】:A3.下列关于Java程序结构的描述中,不正确的一项是()。
【A.项】一个Java源文件中可以包括一个package语句【B.项】一个Java源文件中可以包括多个类定义,但是只能有一个public类【C.项】一个Java源文件中可以有多个public类【D.项】源文件名与程序类名必须一致【此题正确选项是】:C4.下列说法中错误的一项是()。
【A.项】Java语言提供了检测与避免死锁的机制【B.项】在Java语言中,要避免死锁,只能通过程序进行控制【C.项】释放锁的时候,应该按照死锁顺序的逆序进行【D.项】在编写程序的时候,可以对所有共享数据设汁一个统一的加锁顺序【此题正确选项是】:A5.类是对象的抽象,它的定义包括()部分【A.项】一部分【B.项】两部分【C.项】三部分【D.项】四部分【此题正确选项是】:B6.以下哪项可能包含菜单条()【A.项】Panel【B.项】Frame【C.项】Applet【D.项】Dialog【此题正确选项是】:B7.下列哪一项不属于Applet中的显示方法?()【A.项】update()【B.项】repaint()【C.项】drawLine()。
Java程序设计课程实验上机实践1 初识JA V A (3)实验1一个简单的应用程序 (3)实验2一个简单的J A V A A PPLET程序 (3)实验3联合编译 (4)上机实践2 基本数据类型与控制语句 (5)实验1输出希腊字母表 (5)实验2回文数 (6)实验3猜数字游戏 (8)上机实践3 类与对象 (9)实验1三角形、梯形和圆形的类封装 (9)实验2实例成员与类成员 (12)实验3使用PACKAGE语句与IMPORT语句 (14)上机实践4 继承与接口 (16)实验1继承 (16)实验2上转型对象 (19)实验3接口回调 (21)上机实践5 字符串、时间与数字 (23)实验1S TRING类的常用方法 (23)实验2比较日期的大小 (24)实验3处理大整数 (25)上机实践6 组件及事件处理 (26)实验1算术测试 (26)实验2信号灯 (29)实验3布局与日历 (31)上机实践7 组件及事件处理2 (35)实验1方程求根 (35)实验2字体对话框 (38)实验3英语单词拼写训练 (41)上机实践8 多线程 (45)实验1汉字打字练习 (45)实验2旋转的行星 (47)实验3双线程接力 (51)上机实践9 输入输出流 (54)实验1学读汉字 (54)实验2统计英文单词字 (57)实验2读取Z IP文件 (61)上机实践10 JAV A 中的网络编程 (62)实验1读取服务器端文件 (62)实验2使用套接字读取服务器端对象 (64)实验3基于UDP的图像传输 (67)上机实践11 数据结构 (71)实验1扫雷小游戏 (71)实验2排序与查找 (76)实验3使用T REE S ET排序 (77)上机实践12 JAV A SWING (79)实验1JL AYERED P ANE分层窗格 (79)实验2使用表格显示日历 (80)实验3多文档界面(MDI) (83)上机实践1 初识Java实验1 一个简单的应用程序1.答案:【代码1】:System.out.println("你好,很高兴学习Java") ;【代码2】:System.out.println("We are students") ;2.模板代码Hello.javapublic class Hello{public static void main (String args[ ]){【代码1】//命令行窗口输出"你好,很高兴学习Java"A a=new A();a.fA();}}class A{void fA(){【代码2】//命令行窗口输出"We are students"}}实验2 一个简单的Java Applet程序1.答案:【代码1】:g.drawString("这是一个Java Applet 程序",10,30);【代码2】:g.drawString("我改变了字体",20,50);2.模板代码FirstApplet.javaimport java.applet.*;import java.awt.*;public class FirstApplet extends Applet{public void paint(Graphics g){g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序”g.setColor(Color.red);g.setFont(new Font("宋体",Font.BOLD,36));【代码2】//在Java Applet中绘制一行文字:“我改变了字体”}}实验3 联合编译1.答案:【代码1】:System.out.println("你好,只需编译我");【代码2】:System.out.println("I am A");【代码3】:System.out.println("I am B");【代码4】:System.out.println("I am C");2.模板代码模板1:Hello.javapublic class MainClass{public static void main (String args[ ]){【代码1】 //命令行窗口输出"你好,只需编译我"A a=new A();a.fA();B b=new B();b.fB();}}模板2 :A.javapublic class A{void fA(){【代码2】 //命令行窗口输出"I am A"}}模板3 :B.javapublic class B{void fB(){【代码3】 //命令行窗口输出"I am B"}}模板4 :C.javapublic class C{void fC(){【代码4】 //命令行窗口输出"I am C"}}上机实践2 基本数据类型与控制语句实验1 输出希腊字母表1.答案:【代码1】:startPosition=(int)cStart;【代码2】:endPosition=(int)cEnd ;【代码3】:c=(char)i;2.模板代码GreekAlphabet.javapublic class GreekAlphabet{public static void main (String args[ ]){int startPosition=0,endPosition=0;char cStart='α',cEnd='ω';【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition【代码2】//cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)c);System.out.println("希腊字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';【代码3】//i做char型转换运算,并将结果赋值给cSystem.out.print(" "+c);if((i-startPosition+1)%10==0)System.out.println("");}}}实验2 回文数1.答案:【代码1】:number<=99999&&number>=1【代码2】:d5=number/10000;【代码3】:d4=number%10000/1000;【代码4】:d3=number%1000/100;【代码5】:d5!=0【代码6】:d1==d5&&d2==d4【代码7】:d4!=0【代码8】:d1==d4&&d2==d3【代码9】:d3!=0【代码10】:d1==d32.模板代码Number.javaimport javax.swing.JOptionPane;public class Number{public static void main(String args[]){int number=0,d5,d4,d3,d2,d1;String str=JOptionPane.showInputDialog("输入一个1至99999之间的数");number=Integer.parseInt(str);if(【代码1】) //判断number在1至99999之间的条件{【代码2】//计算number的最高位(万位)d5【代码3】//计算number的千位d4【代码4】//计算number的百位d3d2=number%100/10;d1=number%10;if(【代码5】) //判断number是5位数的条件{System.out.println(number+"是5位数");if(【代码6】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码7】) //判断number是4位数的条件{System.out.println(number+"是4位数");if(【代码8】) //判断number是回文数的条件码{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码9】) //判断number是3位数的条件{System.out.println(number+"是3位数");if(【代码10】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d2!=0){System.out.println(number+"是2位数");if(d1==d2){System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d1!=0){System.out.println(number+"是1位数");System.out.println(number+"是回文数");}}else{System.out.printf("\n%d不在1至99999之间",number);}}}实验3 猜数字游戏1.答案:【代码1】:yourGuess!=realNumber【代码2】:yourGuess>realNumber【代码3】:yourGuess<realNumber2.模板代码GuessNumber.javaimport javax.swing.JOptionPane;public class GuessNumber{public static void main (String args[ ]){System.out.println("给你一个1至100之间的整数,请猜测这个数");int realNumber=(int)(Math.random()*100)+1;int yourGuess=0;String str=JOptionPane.showInputDialog("输入您的猜测:");yourGuess=Integer.parseInt(str);while(【代码1】) //循环条件{if(【代码2】) //条件代码{str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}else if(【代码3】) //条件代码{str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}}System.out.println("猜对了!");}}上机实践3 类与对象实验1 三角形、梯形和圆形的类封装1.答案:【代码1】:sideA=a;sideB=b;sideC=c;【代码2】:a+b>c&&a+c>b&&c+b>a【代码3】:boo=true;【代码4】:boo=false;【代码5】:if(boo){length=sideA+sideB+sideC;return length;}else{System.out.println("不是一个三角形,不能计算周长");return 0;}【代码6】:sideA=a;sideB=b;sideC=c;【代码7】:a+b>c&&a+c>b&&c+b>a【代码8】:boo=true;【代码9】:boo=false;【代码10】:above=a;bottom=b;height=h;【代码11】:area=(above+bottom)/2*height;return area;【代码12】:radius=r;【代码13】:return 3.14*radius*radius;【代码14】:return 3.14*2*radius;【代码15】:circle=new Circle(10);【代码16】:trangle=new Trangle(3,4,5);【代码17】:lader=new Lader(3,4,10);【代码18】:length=circle.getLength();【代码19】:area=circle.getArea();【代码20】:length=trangle.getLength();【代码21】:area=trangle.getArea();【代码22】:area=lader.getArea();【代码23】:trangle.setABC(12,34,1);【代码24】:area=trangle.getArea();【代码25】:length=trangle.getLength();2.模板代码AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】) //a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。
1.假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均超过80分才能够通过。
根据上述要求,请完成以下Java类的设计:class Student{private String name;private int classA,classB,classC;public Student(String name,int classA,int classB,int classC){=name;this.classA=classA; this.classB=classB; this.classC=classC;}public String getName(){return name;}public int getAverage(){return (classA+classB+classC)/3;}}class UnderGraduate extends Student{public UnderGraduate(String name,int classA,int classB,int classC){super(name,classA,classB,classC);}public void isPass(){if(getAverage()>=60)System.out.println("本科生"+getName()+"的三科平均分为:"+getAverage()+",可以拿到学士学位。
");elseSystem.out.println("本科生"+getName()+"的三科平均分为:"+getAverage()+",不能拿到学士学位。
");}}class Graduate extends Student{public Graduate(String name,int classA,int classB,int classC){super(name,classA,classB,classC);}public void isPass(){if(getAverage()>=80)System.out.println("研究生"+getName()+"的三科平均分为:"+getAverage()+",可以拿到硕士学位。
");elseSystem.out.println("研究生"+getName()+"的三科平均分为:"+getAverage()+",不能拿到硕士学位。
");}}public class StudentDemo{public static void main(String[] args){UnderGraduate s1=new UnderGraduate("Tom",55,75,81);Graduate s2=new Graduate("Mary",72,81,68);s1.isPass();s2.isPass();}}运行结果:本科生Tom的三科平均分为:70,可以拿到学士学位。
研究生Mary的三科平均分为:73,不能拿到硕士学位。
2. 假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:abstract class Employee{private String name;public Employee(String name){=name;}public String getName(){return name;}public abstract double computeSalary();}class Manager extends Employee{double monthSalary;public Manager(String name,double monthSalary){super(name);this.monthSalary=monthSalary;}public double computeSalary(){return monthSalary;}}class Salesman extends Employee{double baseSalary;double commision;int quantity;public Salesman(String name,double baseSalary,double commision,int quantity){super(name);this.baseSalary=baseSalary;mision=commision;this.quantity=quantity;}public double computeSalary(){return baseSalary+commision*quantity;}}class Worker extends Employee{double dailySalary;int days;public Worker(String name,double dailySalary,int days){super(name);this.dailySalary=dailySalary;this.days=days;}public double computeSalary(){return days*dailySalary;}}public class EmployeeDemo{public static void main(String args[]){Manager m=new Manager("Tom",10000);Salesman s=new Salesman("Mary",2000,45,60);Worker w=new Worker("John",60,28);System.out.println("经理"+m.getName()+"的月工资为:"+puteSalary());System.out.println("销售人员"+s.getName()+"的月工资为:"+puteSalary());System.out.println("工人"+w.getName()+"的月工资为:"+puteSalary());}}运行结果:经理Tom的月工资为:10000.0销售人员Mary的月工资为:4700.0工人John的月工资为:1680.03.输入给定的Java Application程序,其中文件Rectangle.java和Point.java放入C:\javaexam中;文件TestPackage.java 包含main( )方法的测试程序放在目录C:\javaexam\test下,写出运行结果,并简述打包过程。
(1)文件Rectangle.java。
package graphics.twoD;public class Rectangle {public int width = 0;public int height = 0;public Point origin;public Rectangle(Point p, int w, int h) {origin = p;width = w;height = h;}public void move(int x, int y) { origin.x = x; origin.y = y;}public int area( ) {return width*height;}}(2) 文件Point.java。
package graphics.twoD;public class Point {public int x = 0;public int y = 0;public Point(int x, int y) {this.x = x;this.y = y;}(3)文件TestPackage.java。
import graphics.twoD.*;;public class TestPackage{public static void main(Stringargs[]){Point p=new Point(2,3);Rectangle r=newRectangle(p,10,10);System.out.println("Thearea of the rectangle is: "+r.area());}}打包过程:(1)将C:\mypkg添加到classpath变量中,使该路径作为一个包的根路径。
(2)在命令行窗口中将C:\javaexam作为当前目录,输入编译指令javac –d C:\mypkg Point.java Circle.java。
(3)在命令行窗口中改变当前目录为C:\javaexam\ test,输入编译指令javac TestPackage.java,再输入解释指令java TestPackage,那么就可得到TestPackage.java的执行结果。
运行结果:The area of the rectangle is:1004. 在类A中有两个默认的方法a、b,一个私有方法c。
在A的派生类B中有3个公共的方法b、c、d。
写出定义这两个类的Java源代码,并说明哪些方法是多态的?(选择)class A {void a( ){ }void b( ) { }private void c ( ) { }}class B extends A{public void b( ){ }public void c( ){ }public void d( ){ }}只有方法b是多态的。
注意:父类A中的方法c是私有的private,因此不能被子类B重写,不属于多态。
5. 输入如下所示的Java Application程序,写出运行结果public class TestException {public static void main (String args[]) {int i=0;double num=0;double d[]={2.1, 3.0, 5.6};try {while(i<4) {num+=d[i];i++;}System.out.println(“Test1”);}catch(ArrayIndexOutOfBoundsException e) {System.out.println(“Test2”);}finally {System.out.println(“Test3”);}System.out.println(“Test4”);}}运行结果:Test2Test3Test46. 编写程序,要求程序功能:首先输出“这是一个异常处理的例子”,然后在你程序中主动地产生一个ArithmeticException 类型被0 除而产生的异常,并用catch 语句捕获这个异常。