课程设计题目及说明

上传人:ldj****22 文档编号:36288030 上传时间:2018-03-27 格式:PDF 页数:11 大小:373.15KB
返回 下载 相关 举报
课程设计题目及说明_第1页
第1页 / 共11页
课程设计题目及说明_第2页
第2页 / 共11页
课程设计题目及说明_第3页
第3页 / 共11页
课程设计题目及说明_第4页
第4页 / 共11页
课程设计题目及说明_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《课程设计题目及说明》由会员分享,可在线阅读,更多相关《课程设计题目及说明(11页珍藏版)》请在金锄头文库上搜索。

1、1 主要知识点:主要知识点: 数据类型、变量、表达式和流程控制语句 抽象、封装与类、继承与多态 抽象类和接口 UML 类图,类继承、组合、依赖关系,分包 流、文件和输入输出操作 异常处理 图形用户界面的设计和编程实现 事件驱动编程 Applet 和多媒体 程序打包发布 要求:要求: 每人完成指定的两个题目, 每个题目均需实现 3 个不同层次的版本, 实现某一版本取得 对应的分值 代码遵守命名和缩进规则,关键代码需要注释说明 提供相应的说明文档, 如: 题目描述的分析和解决方案, 包括类的主要变量和主要方法, 输入输出方式、使用的存储类型等;解决问题的主要步骤;绘制 UML 类图,标注类继 承、

2、组合和依赖关系 如能根据实际情况,分析题目要求中的不合理因素,设计出更合理、更有效或有创新性 的解决方案并实现,可获得加分 1. 账户类(满分 50 分) 版本版本 1:满分:满分 10 分分 设计 Account1 类,包含: 一个名为 id 的 int 类型的私有数据域(默认值为 0) ,长度为 6 位。 一个名为 balance 的 double 类型的私有数据域(默认值为 0) 。 一个名为annualInterestRate 的double类型的私有数据域存储当前利率 (默认值为0) 。 假设所有的账户都有相同的利率。 一个名为 dateCreated 的 Date 类型的私有数据域

3、存储账户的开户日期。 一个能创建默认账户的无参构造方法。 一个能创建带特定 id 和初始余额的构造方法,初始余额不能为负数。 id、balance 和 annualInterestRate 的访问器和修改器。 dateCreated 的访问器。 一个名为 getMonthlyInterestRate 的方法返回月利率。 一个名为 withDraw 的方法从账户提取特定金额。 一个名为 deposit 的方法向账户存人特定金额。 double 类型的数据域保留 2 位小数。 成员方法和数据域应进行基本的合理性检查。 设计测试类 ATMMachine1: 创建一个有 100 个账户的数组,其 id

4、 为 0,1,2,.99, 并初始化收支为 1000 美元。 主菜单如下(可参考教材中文版 P296 或英文版 P367) : Main menu 1: check balance 2: withdraw 3: deposit 4: exit 2 版本版本 2:满分:满分 20 分分 扩展 Account1 类为 Account2 类: Account2 类继承 Account1 类。 为 Account2 类新增一个名为 password 的 String 类型的私有数据域存储账号密码。 password 只能为字母或数字,长度不能小于 6 且不能大于 10。密码显示时为*。 为 Accou

5、nt2 类新增一个名为 name 的 String 类型的私有数据域存储客户名字。 为 Account2 类新增一个名为 transactions 的 ArrayList 类型的新数据域,其为客户存 储交易记录。这要求新建一个名为 Transaction 的类,类的定义请参照教材中文版 P327 或英 文版 P404。每笔交易都是 Transaction 类的一个实例。 新增一个带初始余额的构造方法,其 id 随机产生,但不能与当前系统的 id 重复。 若初始余额的参数为负数,则抛出一个自定义异常并在当前构造方法中进行处理。 重写方法 withDraw,要求支取的金额为 100 的整数倍,并且

6、当日支取金额不能超过 5000,支取金额不允许透支。每进行一次操作应向 transactions 数组线性表添加一笔交易。 重写方法 deposit,要求每进行一次操作应向 transactions 数组线性表添加一笔交易。 新增一个方法 changePassword,只有旧密码正确,新密码符合要求,且两次输入相 同的情况下才可以成功修改密码 设计测试类 ATMMachine2,其主菜单如下(可参考教材中文版 P296 或英文版 P367) : Main menu 0:create a account 1: check balance 2: withdraw 3: deposit 4:deta

7、ils of the transaction 5: change password 6:exit 若用户选择新建一个账号,则应提示用户输入账号 password、balance 和 annualInterestRate,其中 id 随机产生。新产生的账户应序列化到名为 accounts.dat 的文件中。 所有账户只能通过这种方式产生。 所有用户操作结果应同步到 accounts.dat 文件中相应账户中。 所有用户操作应有友好、简介的提示语。 版本版本 3:满分:满分 20 分分 请参照银行的 ATM 机界面,在 Account2 类的基础上开发一个 GUI 界面的 ATM 系统。 要求界面

8、应模拟小键盘,并且账户信息读、写于文件 accounts.dat。 2. 人员信息(满分 50 分) 版本 1:满分 10 分 设计 Person 类,有姓名、地址、电话号码和电子邮件等属性。其子类为 Student 和 Employee,其中 Employee 类又有教员类 Faculty 和职员类 staff。学生类有班级状态(大一、 大二、大三或大四) ,这些状态为常量。Employee 类有办公室、工资和受聘日期。定义一个 名为 MyDate 的类,包含 year、month 和 day 数据域。Faculty 类有办公时间和级别。Staff 类有职务称号。重写每个类中的 toStri

9、ng 方法,显示相应的类名和人名。 编写测试类 Test1,要求随机产生不同的对象,并将这些对象存储到数组中,并用方法 printMessages(Person persons)将对象的信息输出。 版本 2:满分 20 分 在上面实现类的基础上,为每个类增加一个将当前对象序列化到指定文件的方法 writeToFile(File f)。为 Student 类创建一个新的子类 Postgraduate,有研究方向和导师姓名 两个新增数据域。编写测试类 Test2,要求随机产生不同的对象,并将这些对象序列化到指 定的文件中,并用方法 printMessages(Person persons)将对象的

10、信息输出。 3 版本 3:满分 20 分 在版本 2 的基础上设计实现一个具有 GUI 界面的人员信息管理系统,要求实现基本的 人员增、删、改、查的功能,人员信息列表应采用 JTable 组件。 3. 几何图形(满分 50 分) 版本 1:满分 10 分 设计抽象类 GeometricObject 及其子类 Triangle 和 Circle。 GeometricObject 类设计要求如下: 一个名为 color 的 Color 类型的私有数据域,表示对象的颜色。 一个名为 filled 的 Boolean 类型的私有数据域,表示对象是否填充颜色。 一个名为 dateCreated 的 Da

11、te 类型的私有数据域,表示对象的创建日期。 一个无参构造方法。 一个能创建特定 color 和 filled 的有参构造方法。 相关数据域的访问器和修改器。 两个个名为 draw 和 erase 的抽象方法。 一个名为 getArea 的抽象方法。 一个名为 getPerimeter 的抽象方法。 重写 toString 方法。 Triangle 类设计要求如下: 三个名为 side1、side2 和 side3 的 double 类型的私有数据域表示三角形的三条边。它 们的默认值是 1.0。要求三个数据域保留 2 位小数。 一个无参的构造方法创建默认三角形。 一个能创建带指定 side1、

12、side2 和 side3 的有参构造方法。 所有三个数据域的访问器和修改器方法。 父类抽象方法的实现。 重写 toString 方法。 Circle 类设计要求如下: 一个名为 radius 的 double 类型的私有数据域,表示圆的半径,数据域保留 2 位小数。 一个名为 PI 的静态常量,其值为 3.14 一个无参的构造方法创建默认三角形。 一个能创建带指定 radius 的有参构造方法。 radius 数据域的访问器和修改器方法。 父类抽象方法的实现。 重写 toString 方法。 测试类 TestGeometricObject1 设计要求如下: 一个能随机生成 Circle 类和

13、 Triangle 类对象的静态方法 GeometricObject RandomCreateGeometricObject() 以随机生成的数组为参数,输出数组中每个对象的基本信息、周长和面积。 类中其它方法的测试 版本 2:满分 20 分 将上面的抽象类 GeometricObject 改为接口,接口只保留其中四个抽象方法,声明类 Circle、Triangle 实现该接口,类的基本要求如上,同时为每个类增加一个将当前对象序列化 到指定文件的方法 writeToFile(File f)。 测试类 TestGeometricObject2 设计要求如下: 一个能随机生成 Circle 类和

14、Triangle 类对象的静态方法, 该方法将随机生成的象序列 化到指定的文件 GeometricObjects.dat 中,序列化成功返回真,否则返回假。 Boolean RandomCreateGeometricObject() 4 将 GeometricObjects.dat 文件中对象全部读出,存储到 GeometricObject 对象数组中, 然后以此数组为参数,输出数组中每个对象的基本信息、周长和面积。 类中其它方法的测试。 新 增 一 个 类Rectangle , 也 实 现 接 口GeometricObject , 同 时 修 改 测 试 类 TestGeometricObj

15、ect2,体会开-闭原则。 版本 3:满分 20 分 在第 2 步的基础上设计实现一个具有 GUI 界面的几何图形绘制系统系统,要求实现根 据选择的几何图形类型来绘制和删除相应的图形, 其中相关参数应通过界面输入, 并可计算 图形的周长和面积。 4. 侩子手游戏(满分 50 分) 版本 1:满分 20 分 随机产生一个单词,提示用户每次猜一个字母。单词中的每个字母以星号显示。当用户 猜对一个字母时,显示实际字母。当用户完成一个单词时,显示猜错的次数,同时询问用户 是否继续下一单词。单词存储使用数组形式,如:String words = “write”,”that”,; 满足上述要求的控制台程序运行示例: 版本 2:满分 10 分 实现画出以下图形界面的程序。 版本 3:满分 20 分 结合以上两个功能, 实现动画方式的侩子手游戏, 当用户猜错 7 次, 绞刑架上的人摆动。 当一个单词完成后,用户使用回车键继续猜下一个单词。 初始状态如下: 5 猜错一次: 猜错 2 次: 猜错 7 次: 完成一个单词: 5. 井字游戏(满分 50 分) 版本 1:满分 20 分 井字游戏是一种在 3*3 格子上进行的连珠游戏, 和五子棋比较类似。 由

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号