当前位置:文档之家› 《面向对象程序设计课程设计》题目

《面向对象程序设计课程设计》题目

面向对象程序设计课程设计题目设计说明1. 每人一组,每组选择一个题目;如果列出多个版本,只需要完成其中一个版本即可。

2. 由学习委员负责统计各组员及其题目,以电子档模式提交题目列表名单。

3. 每组必须给出相应的UML类图,可用Visio或者其他类似的工具完成。

设计要求1.编码规范要求遵循Java编码规范,参见附录。

2.知识点要求项目应至少覆盖以下知识点:封装、继承与多态等基本概念;方法和数组;输入输出流;使用抽象类、接口;对象组合;异常处理;包的使用。

3.文档打包及提交要求文档打包:以“班级-学号-姓名-题目-设计报告.rar”形式将相关文档打包。

提交要求:统一交至教学平台。

压缩包的内容:1)运行正确的源代码(包括文件夹结构)。

2)设计报告:描述软件功能、和设计方案的UML类图;设计中涉及的主要知识点;运行结果截图;使用帮助文档。

题目列表及说明:1. 打字游戏GUI本地版可根据一片文章自动导入单词整个单词下落或者淡入淡出同时多个单词出现对输入错误的单词分析记忆功能积分2. 文件加密和解密要求:采用图形用户界面1)给定任意一个文本文件,进行加密,生成另一个文件。

2)对加密后的文件还原。

3. 5子棋游戏设计程序,完成下述功能:在大于9条线的方形网格棋盘上,放置黑白两色棋子;两人各执一色,通过网络对弈;可以在任何两条线的交点上放置棋子;同色棋子先同行、同列或者同队角线上5颗连成一条线者获胜。

4. 俄罗斯方块(网络版)设计程序,完成下述功能:完成一个可以两个人通过网络对战的俄罗斯方块游戏,每一方都可以在自己的屏幕上看到对方的当前游戏状况,游戏先结束的一方为失败者。

5. 音乐播放器(JavaGUI本地版)设计程序,完成下述功能:选择各类声音文件进行播放。

完成前进、后退、暂停、回放等控制功能。

6. 电子相册(JavaGUI本地版)设计程序,完成下述功能:选择图形的显示。

完成图形的放大、缩小、剪切、旋转等控制功能。

图片的自动播放功能。

7. 多人聊天室((JavaGUI本地版/WEB版)多人同时上网聊天。

8.扑克游戏(JavaGUI本地版/WEB版)开发具有“升级”功能的4人对战游戏。

“升级”又叫拖拉机。

要求采用Java 网络编程技术。

9.编写一个记事本程序要求:用图形用户界面实现。

能实现编辑、保存、另存为、查找替换等功能。

提示:使用文件输入输出流。

10.模拟龟兔赛跑要求:用图形用户界面实现。

能设置比赛时间,马匹的数量等等。

在任意时间段内马匹的速度是随机的。

开始比赛之后以动画显示赛马过程。

提示:使用多线程11.ATM柜员机模拟程序要求:使用图形用户界面。

当输入给定的卡号和密码(初始卡号和密码为)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:1)查询余额:初始余额为10000元2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

3)ATM存款:不能出现负存款。

4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

12.超市收银系统要求:使用图形用户界面。

由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。

从数据库中取出有关价格信息,再把这些信息返回给收银台。

同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。

另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。

如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。

13.扩充的万年历多功能计时功能:当前时间显示;按年月显示日历;调整时间。

备忘录功能:备忘录设置,备忘录删除。

14.网络监听程序使用图形用户界面。

有服务器和客户端,服务器监听客户端的登陆。

即:如果A客户端登陆服务器,则服务器界面上的A字母对应的红灯变成绿色。

绿灯表示连接,红灯表示断线。

提示:socket的监听方法15.全球通计费程序使用图形用户界面。

使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。

能根据输入实现各种用户的话费的计算并显示月实时帐单。

提示:使用接口和多个子类实现分别表示金卡、银卡等各种套餐的话费计算。

16.日历记事本要求:带有日程提醒功能的日历。

1)显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。

2)定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。

3)查询信息:用户可以查询到某个月的所有的提示信息。

17.电子英汉词典能够编辑词典库中的信息能够实现英译汉,汉译英。

(要考虑一词多义)18.小游戏要求:程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜。

(使用图形界面)19.敏感词汇分析要求:任意选择一个文本文件,分析该文件,如果存在敏感词汇(这些词汇保存在sentive.txt文件中,每个词占一行),报告每个词出现的次数。

20. 一个简单的学生成绩管理信息系统数据要求:1)建立的数据库中包含如下信息:学生学号、姓名、班级,语文、数学、英语成绩。

2)至少要有5个班级,每个班级要有10名以上学生。

3)使用.txt格式文本表示各种表。

功能需求:1)能够实现根据以下关键字查询:学生姓名、学号、班级、课程名称。

2)能够实现按照单科成绩、总成绩、平均成绩、学号排序。

3)能够实现学生信息的插入、删除和修改。

4)能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。

5)能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。

界面要求:1)尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。

2)如果无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。

附录:Java编码规范一、Java 命名约定采用适用于相关领域的术语采用大小写混合使名字可读尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一避免使用长的名字(一般小于15个字母)避免使用类似的名字,或者仅仅是大小写不同的名字避免使用下划线(除静态常量等)包(Package)采用完整的英文描述符,应该都是由小写字母组成。

对于全局包,将你的Internet 域名反转并接上包名。

例如:java.awt,com.ambysoft.www.persistence类(Class)采用完整的英文描述符,所有单词的第一个字母大写(一些专有的缩写词,比如:AWTException等则除外)。

Class的名字建议使用名词或者名词短语。

例如:Customer, SavingsAccount,LayoutManager等接口(Interface)接口的名字取决于接口的主要功能和用途。

如果接口是使对象具有某种特定的功能,则接口的名字建议使用可以描述这种功能的形容词(加上-able或者-ible 后缀)例如:Searchable,Sortable,NetworkAccessible等如果接口不是使对象具有某种特定的功能则建议使用名词或者名词短语(同类的命名规则)。

组件/部件(Component)使用完整的英文描述来说明组件的用途,末端应接上组件类型。

okButton, customerList,fileMenu异常(Exception)通常采用字母 e 表示异常。

类变量字段采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写。

firstName, lastName静态常量字段(static final)全部采用大写字母,单词之间用下划线分隔。

MIN_BALANCE, DEFAULT_DATE方法方法命名采用大小写混合的形式。

以小写字母开头,名字中其他单词的首字母以大写字母开头,所有其它的单词都为小写字母,不要使用下划线分隔单词。

方法的命名应该能描绘出方法的作用和功能,方法的名字建议使用祈使动词或者动词短语。

例如:showStatus(),drawCircle(),addLayoutComponent()成员函数被访问字段名的前面加上前缀get。

getFirstName(), getLastName()布尔型的获取成员函数所有的布尔型获取函数必须用单词is 做前缀。

isPersistent(), isString() ;设置成员函数被访问字段名的前面加上前缀set。

setFirstName(), setLastName(),setWarpSpeed()二、空白的使用相关空行规范空行的使用有益于将代码按照逻辑分段,提高代码的可读性。

在下列情况下建议使用一个空行:●在版权声明块、包声明块、引用声明块之后;●在类的声明之间;●在方法的声明之间;●在类中声明最后一个属性之后,声明第一个方法之前。

空格规范下列情况建议使用单个空格(不是Tab):在一个关键字和它所修饰的块之间。

可用于如下的关键字:catch,for,if,switch,synchronized,while 。

下列关键字的后面不要跟随空格:super ,this 。

在一个参数列表中逗号之后。

空格不应该置于方法名与其左括号之间左括号和后一个字符之间不应该出现空格右括号和前一个字符之间也不应该出现空格例如:public setMethod(int i, String j)缩进规范行的缩进要求是四个空格。

由于在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度,所以请不要使用Tab键。

建议修改各管理工具的设置将Tab字符扩展成4个空格。

三、循环计数器通常采用字母i,j,k 或者counter 都可以接受。

i, j, k, counter四、Java 注释约定一个很好的可遵循的有关注释的经验法则是:问问你自己,你如果从未见过这段代码,要在合理的时间内有效地明白这段代码,你需要哪些信息。

·一般概念注释应该增加代码的清晰度保持注释的简洁在写代码之前写注释(建议)对于复杂点的逻辑,注释出为什么做了一些事,而不仅仅是做了什么·示范文档注释在紧靠接口、类、成员函数和字段声明的前面注释它们。

单行在成员函数内采用单行注释,来说明业务逻辑、代码段和暂时变量的声明。

注释符"//"后必须紧跟一个空格,然后才是注释信息。

·注释哪些部分类类的目的、即类所完成的功能,注释出采用的不变量。

接口设置接口的目的、它应如何被使用以及如何不被使用。

成员函数注释对于设置与获取成员函数,在成员变量已有说明的情况下,可以不加注释;普通成员函数要求说明完成什么功能,参数含义是什么返回什么;普通成员函数内部注释控制结构,代码做了些什么以及为什么这样做,处理顺序等。

相关主题