《实验报告(实验三)》由会员分享,可在线阅读,更多相关《实验报告(实验三)(5页珍藏版)》请在金锄头文库上搜索。
1、北 京 林 业 大 学2013 学年 2014 学年第 2 学期 Java 程序设计基础实验报告书专 业: 电子 班 级: 姓 名: 学 号: 实验地点: 任课教师: 黄儒乐 实验题目:自定义异常与异常处理,常用类使用 实验环境: Windows2000/XP;局域网 实验要求:1. 对所有实验内容中涉及到的命令均要亲自实践,对照实验指导书进行。2. 把实验中出现的问题以及最后解决的情况反馈到实验报告中。3. 程序作业的源代码要求反馈到实验报告中。实验内容:1. 自定义异常及使用(1) 自定义一个异常类,命名为 AuthException。(2) 设计一个 LoginAuthCheck 类,其
2、中的 verify(String username,String password)方法用于验证用户名和密码是否正确,如果用户名不是 admin,密码不是 123 ,则抛出AuthException 异常,并通过 AuthException 对象传递错误信息。(3) 设计一个 Example 类,提示用户依次输入用户名,密码(使用 Scanner 类来实现) ,并通过 LoginAuthCheck 类的 verify 方法验证是否正确。2. 比较日期的大小按模板要求,将【代码 1】【代码 8】替换为 Java 程序代码。DateExampleimport java.util.*;class D
3、ateExample 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 year
4、Two=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 的时间设置为 yearTw
5、o 年 monthTwo 月 dayTwo 日long timeTwo=【代码 5】 / calendar 表示的时间转换成毫秒Date date1=【代码 6】 / 用 timeOne 做参数构造 date1Date date2=【代码 7】 / 用 timeTwo 做参数构造 date2if(date2.equals(date1)System.out.println(两个日期的年、月、日完全相同);else if(date2.after(date1)System.out.println(您输入的第二个日期大于第一个日期);else if(date2.before(date1)System.
6、out.println(您输入的第二个日期小于第一个日期);long diff=【代码 8】 / 计算两个日期相隔天数System.out.println(“相隔天数:” + diff); 实验目的:掌握异常处理的概念和运用掌握 Date 类等常用类的使用实现方法:1. 自定义异常及使用实现AuthException 为 Exception 的一个子类实现报错,LoginAuthCheck 类实现对输入信息匹配并决定是否通过,主函数实现调用报错和匹配的方法。代码如下:package System.out;import java.util.Scanner;class AuthException
7、extends Exception String message;public AuthException()message=您输入的用户名或密码错误,请重新输入;public String toString()return message; class LoginAuthCheck public void verify(String username,String password)throws AuthExceptionif(!(username.equals(admin)&password.equals(123)throw(new AuthException();elseSystem.o
8、ut.print(主人欢迎回来);public class Example public static void main(String args)Scanner in=new Scanner(System.in);System.out.print(请输入用户名);String username=in.nextLine();System.out.print(请输入密码);String password=in.nextLine();LoginAuthCheck login=new LoginAuthCheck();trylogin.verify(username, password);catch
9、(AuthException e)System.out.println(e.toString();2比较日期的大小参照Java 面向对象程序设计 例 915 完成程序。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=rea
10、d.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=Calendar.getInstance(); /初始化日历对象。cale
11、ndar.set(yearOne,monthOne,dayOne); / 将 calendar 的时间设置为 yearOne 年 monthOne 月 dayOne 日long timeOne=calendar.getTimeInMillis(); / calendar 表示的时间转换成毫秒。calendar.set(yearTwo,monthTwo,dayTwo); / 将 calendar的时间设置为 yearTwo 年 monthTwo 月 dayTwo 日long timeTwo=calendar.getTimeInMillis(); / calendar 表示的时间转换成毫秒Date
12、 date1=new Date(timeOne); / 用 timeOne 做参数构造 date1Date date2=new Date(timeTwo); / 用 timeTwo 做参数构造 date2if(date2.equals(date1)System.out.println(两个日期的年、月、日完全相同);else if(date2.after(date1)System.out.println(您输入的第二个日期大于第一个日期);else if(date2.before(date1)System.out.println(您输入的第二个日期小于第一个日期);long diff=Math.abs(timeTwo-timeOne)/(1000*60*60*24);/ 计算两个日期相隔天数System.out.println(相隔天数: + diff); 实验结果:12.结论分析等: