java实验报告(实验三).doc
北 京 林 业 大 学2013 学年 2014 学年第 2学期 Java程序设计基础实验报告书专 业: 电子 班 级: 11-2 姓 名: 王云飞 学 号: 实验地点: 计算机中心 任课教师: 黄儒乐 实验题目:自定义异常与异常处理,常用类使用 实验环境: Windows2000/XP;局域网 实验要求:1. 对所有实验内容中涉及到的命令均要亲自实践,对照实验指导书进行。2. 把实验中出现的问题以及最后解决的情况反馈到实验报告中。3. 程序作业的源代码要求反馈到实验报告中。实验内容:1. 自定义异常及使用(1) 自定义一个异常类,命名为AuthException。(2) 设计一个LoginAuthCheck类,其中的verify(String username,String password)方法用于验证用户名和密码是否正确,如果用户名不是admin,密码不是123 ,则抛出AuthException异常,并通过AuthException对象传递错误信息。(3) 设计一个Example类,提示用户依次输入用户名,密码(使用Scanner类来实现),并通过LoginAuthCheck类的verify方法验证是否正确。2. 比较日期的大小按模板要求,将【代码1】【代码8】替换为Java程序代码。DateExampleimport java.util.*;class DateExample public static void main(String args ) Scanner read=new Scanner(System.in); System.out.println("输入第一个日期的年份:"); int yearOne=read.nextInt( ); System.out.println("输入该年的月份:"); int monthOne=read.nextInt( ); System.out.println("输入该月份的日期:"); int dayOne=read.nextInt( ); System.out.println("输入第二个日期的年份:"); int yearTwo=read.nextInt( ); System.out.println("输入该年的月份:"); int monthTwo=read.nextInt( ); System.out.println("输入该月份的日期:"); int dayTwo=read.nextInt( ); Calendar calendar=【代码1】 /初始化日历对象。 【代码2】 / 将calendar的时间设置为yearOne年monthOne月dayOne日 long timeOne=【代码3】 / calendar表示的时间转换成毫秒。 【代码4】 / 将calendar的时间设置为yearTwo年monthTwo月dayTwo日 long timeTwo=【代码5】 / calendar表示的时间转换成毫秒 Date date1=【代码6】 / 用timeOne做参数构造date1 Date date2=【代码7】 / 用timeTwo做参数构造date2 if(date2.equals(date1) System.out.println("两个日期的年、月、日完全相同"); else if(date2.after(date1) System.out.println("您输入的第二个日期大于第一个日期"); else if(date2.before(date1) System.out.println("您输入的第二个日期小于第一个日期"); long diff=【代码8】 / 计算两个日期相隔天数 System.out.println(“相隔天数:” + diff); 实验目的:掌握异常处理的概念和运用掌握Date类等常用类的使用实现方法、实验结果及结论分析等:实验内容1-(1)源代码public class AuthException extends ExceptionString warning;public AuthException(String warning)this.warning = warning;public String toString()return warning;实验内容1-(2)源代码public class LoginAuthCheckpublic void verify(String username,String password)throws AuthExceptionif(username.equals("Auth") && password.equals("123")System.out.println("登陆成功");elsethrow new AuthException("用户名或密码错误"); 实验内容1-(3)源代码import java.util.*;public class Example public static void main(String args)Scanner input = new Scanner(System.in);System.out.print("请输入用户名: ");String username = input.nextLine();System.out.print("请输入密码:");String password = input.nextLine();LoginAuthCheck login = new LoginAuthCheck();trylogin.verify(username, password);catch(AuthException ex)System.out.println(ex);实验结果:实验内容2源代码import java.util.*;class DateExample public static void main(String args ) Scanner read=new Scanner(System.in); System.out.println("输入第一个日期的年份:"); int yearOne=read.nextInt( ); System.out.println("输入该年的月份:"); int monthOne=read.nextInt( ); System.out.println("输入该月份的日期:"); int dayOne=read.nextInt( ); System.out.println("输入第二个日期的年份:"); int yearTwo=read.nextInt( ); System.out.println("输入该年的月份:"); int monthTwo=read.nextInt( ); System.out.println("输入该月份的日期:"); int dayTwo=read.nextInt( ); Calendar calendar1 = Calendar.getInstance(); Calendar calendar2 = Calendar.getInstance();/初始化日历对象。 calendar1.set(yearOne,monthOne,dayOne); / 将calendar1的时间设置为yearOne年monthOne月dayOne日 calendar2.set(yearTwo,monthTwo,dayTwo); / 将calendar2的时间设置为yearOne年monthOne月dayOne日 long timeOne = calendar1.getTimeInMillis(); / calendar1表示的时间转换成毫秒。 long timeTwo = calendar2.getTimeInMillis(); / calendar2表示的时间转换成毫秒。 Date date1 = new Date(timeOne); / 用timeOne做参数构造date1 Date date2 = new Date(timeTwo); / 用timeTwo做参数构造date2 if(date2.equals(date1) System.out.println("两个日期的年、月、日完全相同"); else if(date2.after(date1) System.out.println("您输入的第二个日期大于第一个日期"); else if(date2.before(date1) System.out.println("您输入的第二个日期小于第一个日期"); / 计算两个日期相隔天数 long diff = (timeOne > timeTwo) ? (timeOne - timeTwo) / 1000 / 3600 / 24) : (timeTwo - timeOne) / 1000 / 3600 / 24); System.out.println("相隔天数:" + diff);