📄 第4-5周作业.txt
字号:
第4周作业
1、如果类X的静态初始化中调用了类Y的静态方法,而类Y的静态初始化块中由调用了类X的静态方法,这种情况叫循环静态初始化,请分析这种情况下类X和类Y的初始化过程。
2、编写一个类Stack(文件名为Stack.java),实现简单的栈(FILO)操作。
(1)成员函数有:
void put(int item);
int get();
boolean isEmpty();
boolean isFull();
(2)数据成员:
一个指出栈顶的指针top,及其他所需成员自定。
(3)同时写出测试程序TestStack.java,测试该类。
3、创建一个执行复数运算的Complex类。复数具有如下格式:
realPart+imaginary*j
其中j为虚数。该类分别提供一个构造函数无参的默认构造函数,以防没有提供初始化值,及一个有参构造函数。同时提供为执行如下操作的公有方法:
(1)两个复数相加:实部与实部相加,虚部与虚部相加。
(2)两个复数相减:实部与实部相减(-号左侧实部减-号右侧实部),虚部与虚部相减(-号左侧虚部减-号右侧虚部)。
(3)两个复数相乘。(a+b*j)(x+y*j)=(ax-by)+(ay+bx)*j
(4)两个复数相除。(a+b*j)/(x+y*j)=(a+b*j)(x-y*j)/(x*x+y*y)
(5)以(a,b)的格式打印复数,其中a 是实部,b是虚部。
提供测试程序,测试该类。
第5周作业
5.1、修改第3周作业Date类,使其能正确完成1天的功能(考虑当前月份、是否是润年),另外增加构造函数,实现实例变量的初始化,并验证数据是否有效(如checkMonth()验证月份是否有效,checkDay()验证日是否有效);设计测试程序,在测试程序中通过循环测试,输出增加一天的nextDate方法是否有效。
5.2、设计Time类,具有日期和时间处理的功能:
(1) incrementHour()方法,增加1小时;
(2) incrementMinute()方法,增加1分钟;
(3) tick()方法,增加1秒;
(4)输出时间
相应地设计一个测试程序,测试上述方法,使时间增加到下一分钟、下一小时、下一天。
5.3、在作业5.1与5.2的基础上,设计DateAndTime类,修改incrementHour()方法,使其在时间增加到下一天时,调用nextDate方法。设计toStandardString方法,输出日期和时间(格式:yyyy-mm-dd hh:mm:ss)
5.4、用面向对象程序设计方法解决Josephus问题。(文件名Josephus.java)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -