1.(二次方程式)为二次方程式ax2+bx+c=0设计一个名为QuadraticEquation的类。这类包括:
(1)代表三个系数的私有数据域a、b、c
(2)一个参数为a、b和c的构造方法
(3)a、b、c的三个get方法
(4)一个名为getDiscriminant()的方法返回判别式,b2-4ac
(5)一个名为getRoot1()和getRoot2()的方法返回等式的两个根
这些方法只有在判别式为非负数时才有用。如果判别式为负,这些方法返回0.
画出该类的UML图。实现这个类。编写一个测试程序,提示用户输入a、b和c的值,然后显示判别式的结果。如果判别式为正数,显示两个根;如果判别式为0,显示一个根;否则,显示“The equation has no roots.”。示例如下所示:
Enter a, b, c:1.0 3 1
The roots are 1.0 and -4.0
Enter a, b, c:1 2.0 1
The root is -1.0
Enter a, b, c:1 2 3
The equation has no roots
2.(Person、Student、Employee、Faculty和Staff类)设计一个名为Person的类和它的两个名为Student和Employee的子类。Employee类又有子类:教员类Faculty和职员类Staff。每个人都有姓名,地址,电话号码和电子邮件地址。学生有班级状态(大一、大二、大三和大四)。将这些状态定义为常量。一个雇员有办公室,工资和受聘日期。定义一个名为MyDate的类,包含数据域:year、month、day。教员有办公时间和级别。职员有职务称号。覆盖每个类中的toString()方法,显示相应的类名和人名。
画出这些类的UML图。实现这些类。编写一个测试程序,创建Person、Student、Employee、Faculty和Staff对象,并调用它们的toString()方法。
3.(BMI类)根据以下类图,编写BMI类,实现类图中所要求的功能。
其中,BMI的状态的计算方法为:
BMI
说明
16以下
严重偏轻
16~18
偏轻
18~24
正常体重
24~29
超重
20~35
严重超重
35以上
非常严重超重
再新建一个UseBMIClass类,在其中编写一个主方法,分别建立四个对象(同宿舍中同学),然后输出每名室友的BMI的值及状态。
4.(StackOfIntegers类)编写一个存储整型数据的栈类,其类图如下所示。编写测试程序,对该栈类进行入栈、出栈、取栈顶、判栈空等操作进行测试。
5.(MyStack类),利用ArrayList实现一个栈,其类图如下所示。编写测试程序,对该栈类进行入栈、出栈、取栈顶、判栈空等操作进行测试。
其中,ArrayList类的原型如下:
6.(统计字符串中字母的个数)使用下面的方法头编写一个方法,统计字母在字符串中出现的个数。
public static int countLetters(String s)
编写一个测试程序,提示用户输入一个字符串,然后显示这个字符串中字母的个数。
7.(检验密码)一些网站设定了一些密码设定的规则,要求编写如下方法检验用户输入的密码字符串是否为合法的密码:
public int validatePassword(String password)
检测的规则如下:
(1)密码至少有8个字符,不满足则返回-1;
(2)密码只能包含字母和数字,不满足则返回-2;
(3)密码必须至少有2个数字,不满足则返回-3;
(4)以上规则都满足,则返回0.
注:以上作业的上交时间为4月13日前(含),其上交格式参考前面作业