好文档 - 专业文书写作范文服务资料分享网站

2011年1月广东自考JAVA语言程序设计(一)课后习题答案和源代码(第四章)

天下 分享 时间: 加入收藏 我要投稿 点赞

第四章 .............................................................................................................................................. 1

4.9 声明 MyDate 类......................................................................................................... 1 4.10 求前 n 个质数 .......................................................................................................... 5 4.11 编写实现从两个字符串中找出最长的相同字符列的代码。 .............................. 6 4.12 整理字符串 .............................................................................................................. 7 4.13 编写用数组实现大整数的类,提供大整数的加、减、乘等运算。

..................8

第四章

4.9 声明 MyDate类, 功能:增加 1 天,增减 1 月和增加 1 年的方法; 输出 MyDate 对象日期的方法;求两个 MyDate对象日期差的方法。并提供能用当前日期初始 化 MyDate类对象的构造方法。

程序运行结果:

源文件: MyDate.java

import java.util.Calendar;

/**

* 日历类

* @author 黎明你好 */ public class MyDate {

public static long YEAR_MSEL = 1000*60*60*24*365L; public static long MONTH_MSEL = 1000*60*60*24*30L; public static long DATE_MSEL = 1000*60*60*24L; public static long HOUR_MSEL = 1000*60*60L; public static long MINUTE_MSEL = 1000*60L; private int year ; private int month ; private int date ; private int hour ; private int minute ; private int second ; private Calendar calendar ; /**

* 构造方法 使用当前时间日期初始化对象 */ public MyDate() {

calendar = Calendar. getInstance (); year = calendar .get(Calendar. YEAR); month = calendar .get(Calendar. MONTH) + 1; date = calendar .get(Calendar. DAY_OF_MONTH); hour = calendar .get(Calendar. HOUR_OF_DAY); minute = calendar .get(Calendar. MINUTE );

second = calendar } /**

.get(Calendar. SECOND);

* 构造方法 使用指定年、月、日初始化对象 */ public MyDate( int year, int month, int date)

{

set(year, month, date); } /**

* 构造方法 使用指定年、月、日、时、分、秒初始化对象 */ public MyDate( int year, int month, int date, int hourOfDay, int

second) {

set(year, month, date, hourOfDay, minute, second); }

/**

* 设置日历字段 year 、month 和 date 的值。 * @param year - 用来设置 YEAR 日历字段的值。 * @param month - 用来设置 month 日历字段的值。 * @param date - 用来设置 date 日历字段的值。 */ public void set( int year, int month, int date) {

set(year, month, date,0,0,0); }

/**

* 设置日历字段 year 、month 和 date 的值。 * @param year - 用来设置 YEAR 日历字段的值。 * @param month - 用来设置 month 日历字段的值。 * @param date - 用来设置 date 日历字段的值。 * @param hourOfDay - 用来设置 hour 日历字段的值。

* @param minute - 用来设置 minute 日历字段的值。 * @param second - 用来设置 second 日历字段的值。 */ public void set( int year, int month, int date, int hourOfDay, int second)

{

calendar = Calendar. getInstance ();

calendar .set(year, month-1, date,hourOfDay,minute,second); this . year = calendar .get(Calendar. YEAR);; this . month = calendar .get(Calendar. MONTH) + 1; this . date = calendar .get(Calendar. DAY_OF_MONTH); this . hour = calendar .get(Calendar. HOUR_OF_DAY); this . minute = calendar .get(Calendar. MINUTE ); this . second = calendar .get(Calendar. SECOND); }

/**

* 增加一天 */ public void addOneDay() {

date ++;

calendar .set( year , month , date ); } /**

int minute,

int minute,

* 增减一月 */ public void addOneMonth() {

month ++;

calendar .set( year , month , date ); } /**

* 增加一年 */ public void addOneYear() {

year ++;

calendar .set( year , month , date ); } /**

* 返回此时间值,以毫秒为单位。

* @return - 当前时间,以从历元至现在所经过的 UTC 毫秒数形式。

*/ public long getTimeInMillis() {

return calendar .getTimeInMillis(); } /**

* 两个日期相差的时间

* @param md - 另一个日期对象

* @return - 相差的时间 */ public String apart(MyDate md) {

long msel = this .getTimeInMillis() - md.getTimeInMillis(); msel = Math. abs (msel); boolean boo = msel>0? true : false ; long year = msel/MyDate. YEAR_MSEL ; long date = msel%MyDate. YEAR_MSEL /MyDate. DATE_MSEL ; long hour = msel%MyDate. DATE_MSEL /MyDate. HOUR_MSEL; long minute = msel%MyDate. HOUR_MSEL/MyDate. MINUTE_MSEL ; long second = msel%MyDate. MINUTE_MSEL /1000; String result = \; if ( boo ) result = \已过去 \

result =

\还有\

result += (year +

\年\+ date+

\天\+ hour +

\小时\+ minute +

分钟\+ second + \秒\

return result; }

/**

* 返回此日历的字符串表示形式。 * @return - 此日历的字符串表示形式。 */ public String toString() { return year + \年\+ month + \月\+ date + \日,\+ hour + \+ minute

+ \

+ second ;

\

} }

测试类源文件: TestMyDate.java /**

* MyDate 的测试类 * @author 黎明你好 */ public class TestMyDate {

public static void main(String[] args) {

MyDate md1 = new MyDate(); MyDate md2 = new MyDate(2010,2,13); MyDate md3 = new MyDate(2008,8,8,20,0,0);

System. out .println( \当前时间: \+ md1.toString()); System. out .println( \年除夕: \+ md2.toString());

md2.addOneDay(); System. out .println( \增加一天后,大年初一: \+ md2.toString()); System. out .println( \现在距新年: \+ md1.apart(md2));

System. out .println( \现在距 08 年北京奥运会: \+ md1.apart(md3)); }

}

4.14

求前 n 个质数。要求确定 m是否是质数,用早先求出的质数对 来确定。

/**

* 求前 n 个质数。

* 确定 m 是否是质数,用早先求出的质数对 m 的整除性来确定。

* @author 黎明你好 */ public class Work4_10 {

/** 用来存质数的数组 */ private int arrayInt []; public Work4_10(

int

n)

{

arrayInt = new int [n];

arrayInt [0] = 2; int index = 1; // 保存数组的有效长度 boolean boo = true ; for ( int i = 2; i < arrayInt . length ; i++) {

boo = true ;

for ( int j = 0; j < index; j++) {

if (i % arrayInt [j] == 0) // 用已存入数组中的质数判断boo = false ; }

if (boo) // 如果是 true 则是指数,存入数组,数组有效长度加

{

arrayInt [index] = i; index++; } }

m的整除性 1.

2011年1月广东自考JAVA语言程序设计(一)课后习题答案和源代码(第四章)

第四章..............................................................................................................................................14.9声明MyDate类..........................
推荐度:
点击下载文档文档为doc格式
0ku7f06cys3gznb0gt563y3j84vsq000aai
领取福利

微信扫码领取福利

微信扫码分享