综合应用实践项目(4)
项目1:综合类
问题描述:
复数是形式的一个数,其中a和b是实数,i是。数字A和B分别称为复数的实部和虚部。可以使用以下公式对复数执行加法、减法、乘法和除法:
还可以使用以下公式获得复数的绝对值:
(通过将值标识为点的坐标,可以将复数解释为平面上的点。复数的绝对值对应于点到原点的距离,如图13.12b所示。)
设计一个名为复数的类来表示复数,以及执行复数运算的加法、减法、乘法、除法、abs和重写toString方法来返回复数的字符串表示。ToString方法以字符串形式返回+bi。如果b为0,则返回a。
提供三个构造器complex(a,b)、complex(a)和complex()。complex()为数字0创建一个complex对象,complex(a)为b创建一个带有0的复杂对象。还提供getrealpart()和getimaginarypart()方法,分别返回复数的实部和虚部。
你的complex类还应该实现可克隆接口。
编写一个测试程序,提示用户输入两个复数,并显示加法、减法、乘法和除法的结果。以下是运行示例:
Enter the first complex number: 3.5 5.5
Enter the second complex number: -3.5 1
(3.5 + 5.5i) + (-3.5 + 1.0i) = 0.0 + 6.5i
(3.5 + 5.5i) – (-3.5 + 1.0i) = 7.0 + 4.5i
(3.5 + 5.5i) * (-3.5 + 1.0i) = -17.75 + -15.75i
(3.5 + 5.5i) / (-3.5 + 1.0i) = -0.5094 + -1.7i
|3.5 + 5.5i| = 6.519202405202649
项目3:人员信息管理系统
版本1的问题描述:
设计一个名为person的类及其两个子类student和employee。制定员工的教职员工子类。一个人有名字、地址、电话号码和电子邮件地址。学生具有班级地位(一年级、二年级、三年级或四年级)。将状态定义为常量。一个雇员有一个办公室、薪水和雇用日期。定义一个名为MyDate的类,该类包含字段Year、Month和Day。教员有办公时间和等级。职员有头衔。重写每个类中的ToString方法以显示类名和人名。
设计了测试类test1,它要求随机生成不同的对象并将这些对象存储在一个数组中,并使用printmessage(person[]person)输出对象的信息。
版本2的问题描述:
在上述实现类的基础上,为每个类添加一个方法writetofile(file f),将当前对象序列化到指定的文件中。为学生班创建一个新的子类研究生,有两个新的数据字段:研究方向和导师姓名。编写测试类test2,它要求随机生成不同的对象并将这些对象序列化到指定的文件中,并使用方法printmessages(person[]person)输出对象的信息。