期末个人作业:JAVA实验报告手册.docx

上传人:h**** 文档编号:124606 上传时间:2018-07-09 格式:DOCX 页数:58 大小:475.82KB
下载 相关 举报
期末个人作业:JAVA实验报告手册.docx_第1页
第1页 / 共58页
期末个人作业:JAVA实验报告手册.docx_第2页
第2页 / 共58页
期末个人作业:JAVA实验报告手册.docx_第3页
第3页 / 共58页
期末个人作业:JAVA实验报告手册.docx_第4页
第4页 / 共58页
期末个人作业:JAVA实验报告手册.docx_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、 JAVA 实验手册教育技术学院 10 级 XXX 面向对象的程序设计之 JAVA实验报告手册 目录 作业 1: Java 基本语法 . 1 作业 2:类与对象 . 7 作业 3:继承、抽象类与接口 . 11 作业 4:异常处理 . 19 作业 5:基础类库 . 21 作业 6:实现简易计算器 . 37 作业 7:多线程模拟五个哲学家问题 . 51 说明: 每个作业下分“所属章节”“实验题”“相关知识点扩展”“实验代码及相关思路”“反思体悟”几个小模块。面向对象的程序设计之 JAVA实验报告手册 1 / 55 作业 1: Java基本语法 1) 所属章节:第二章 Java 语言基础 2) 实验

2、 题: 编写下列程序中的至少 3 个: 1) 判断闰年,年份通过键盘输入; 2) 求 1-n 间的所有素数, n 为输入的一整数; 3) 输入年月日,计算是一年中的第几天; 4) 如果矩阵 A中存在这样的一个元素 Aij满足条件: Aij是第 i 行中值最小的元素,且又是第 j 列中值最大的元素,则称之为该矩阵的一个马鞍点。编写一个函数计算出 m n 的矩阵 A的所有马鞍点。提示:依题意,先求出每行的最小值元素,放入 minm之中,再求出每列的最大值元素,放入 maxn之中,若某元素既在 mini中,又在 maxj中,则该元素 Aij便是马鞍点,找出所有这样的元素 ,即找到了所有马鞍点。 5)

3、 计算 e=1+1/1!+1/2!+1/3!+ +1/n! +的近似值,要求误差小于 0.001。 3) 相关 知识点扩展 : 整数的输入方法有很多,用 System.in.read()实现起来不是很方便 ,这里介绍一用应用 Scanner 类的方法。具体查看 Java DOC 文档。 int a; Scanner s=new Scanner(System.in); System.out.println(“请输入你想要算的数字 : “); a=s.nextInt(); 另外,如果使用 System.in.read(),还需要做异常处理。 我们可以直接抛弃异常:public static voi

4、d main(String args) throws java.io.IOException 4) 实验代码及相关思路: 1) 判断闰年,年份通过键盘输入import java.util.Scanner; 1 2 public class LeapYear 3 public static void main(String args) 4 Scanner s = new Scanner(System.in); 5 2 / 57 System.out.println(“请输入你想要算的年份 : “); 6 7 int year = s.nextInt(); 8 if(year%4=0 10 els

5、e 11 System.out.println(year + “年不是闰年 “); 12 13 14 15 16 反思体悟:该实验的难点在于 “闰年”的概念和算法的实现。闰年是指:普通年能整除 4 且不能整除 100 的 为闰年(如 2004 年就是闰年 ,1900 年不是闰年);世纪年能整除 400 的是闰年(如 2000 年是闰年, 1900 年不是闰年) ,明确了这个概念后,不难写出 if 判断语句。 2) 求 1-n 间的所有素数, n 为输入的一整数 import java.util.Scanner; 1 2 public class PrimeNumber 3 public sta

6、tic void main(String args) 4 int i,m = -1,number,n; 5 Scanner s = new Scanner(System.in); 6 System.out.println(“此程序用于求 1n之间的所有素数。请输入7 您想要的 n 值: “); 8 n = s.nextInt(); 9 10 int a = new intn; 11 for(number=2;number=number) 17 面向对象的程序设计之 JAVA实验报告手册 3 / 55 m+; 18 am = number; 19 20 21 System.out.println

7、(“1n 之间的所有素数有: “); 22 for(i=0;iaij) 28 mini = aij; 29 30 31 /存入每列的最大值 32 for(j=0;jn;j+) 33 maxj = a0j; 34 for(i=1;im;i+) 35 if(maxjaij) 36 maxj = aij; 37 38 39 System.out.println(“您输入的矩阵的马鞍点是: “); 40 for(i=0;im;i+) 41 42 for(j=0;jn;j+) 43 if(mini=maxj) 44 System.out.println(mini); 45 46 47 48 49 50

8、反思体悟:该实验中,理解马鞍点是重点,而迅速将一个陌生的数学概念转化为程序思维是难点。我的思路是用两个一维数组分别储存二维数组行、列的相关值,再对两个数组中的值进行相等判断,得出马鞍点。 6 / 57 5) 计算 e=1+1/1!+1/2!+1/3!+ +1/n! +的近似值,要求误差小于 0.001import java.util.Scanner; 1 2 public class E 3 public static void main(String args) 4 double sum = 0,t = 1; 5 int i = 1,n = 10; 6 7 while(i=n) 8 sum

9、= sum + t; 9 t = t*(1.0/i); 10 i+; 11 12 System.out.println(“在 0.001的误差范围内 e的近似值为 “ + sum); 13 14 15 反思体悟:该实验容易被限制条件“误差小于 0.001”困住思维。其实用整数10 粗略估算便知 1/10!精确位数远远超过 0.001。刚开始写这个实验程序时,我 总想着用条件语句限制循环,让算出的 e 值正好卡在 0.001 的关口上。其实对于计算机的运算速度, n 值取大一点 便好,计算机为此多出的计算时间,与我们在 n 的具体值上纠结的时间相比,划算得多 面向对象的程序设计之 JAVA实验报

10、告手册 7 / 55 作业 2: 类与对象 1. 所属章节:第三章 类与对象 2. 实验题: 编写一个复数累,具有实部、虚部两个成员变量,可以完成加减乘除,获取实部和虚部等方法,并编写一个主类对其进 行测试。 3. 实验代码及相关思路: 复数类:public class Fushu 1 private double shibu; / 实部 2 private double xubu; / 虚部 3 4 /构造方法 5 public Fushu() 6 7 8 9 /传参的构造方法 10 public Fushu(double a, double b) 11 shibu = a; 12 xubu

11、 = b; 13 14 15 Override 16 public String toString() 17 /*重写 toString 方法,同时排除复数运算中的特殊情况,包括:实18 部为 0、虚部为 0、 19 * 虚部为负数、虚部小于 0,以及实部、虚部为整数则将浮点数输20 出为整数 */ 21 if (shibu = 0) 22 if (xubu = 0) 23 return (“/b“ + 0); 24 else if (xubu 0) 25 if (xubu % 1 = 0) 26 return (shibu + (int) xubu + “i“); 27 8 / 57 els

12、e 28 return (shibu + xubu + “i“); 29 30 else if (xubu = 1) 31 return (shibu + “+“ + “i“); 32 else if (xubu = -1) 33 return (shibu + “-“ + “i“); 34 else if (xubu % 1 = 0) 35 return (shibu + “+“ + (int) xubu + “i“); 36 else 37 return (shibu + “+“ + xubu + “i“); 38 39 else if(shibu % 1 = 0) 40 if (xubu

13、 = 0) 41 return (“/b“ + (int) shibu); 42 else if (xubu 0) 43 if (xubu % 1 = 0) 44 return (int)shibu + (int) xubu + “i“); 45 else 46 return (int)shibu + xubu + “i“); 47 48 else if (xubu = 1) 49 return (int)shibu + “+“ + “i“); 50 else if (xubu = -1) 51 return (int)shibu + “-“ + “i“); 52 else if (xubu % 1 = 0) 53 return (int)shibu + “+“ + (int) xubu + “i“); 54 else 55 return (shibu + “+“ + xubu + “i“); 56 57 else 58 return(shibu + “+“ + xubu + “i“); 59 60 61

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 复习参考

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。