![面向对象程序设计课程设计题目_第1页](http://file4.renrendoc.com/view/e3b16aaff6ee72ca09c13eb482b80065/e3b16aaff6ee72ca09c13eb482b800651.gif)
![面向对象程序设计课程设计题目_第2页](http://file4.renrendoc.com/view/e3b16aaff6ee72ca09c13eb482b80065/e3b16aaff6ee72ca09c13eb482b800652.gif)
![面向对象程序设计课程设计题目_第3页](http://file4.renrendoc.com/view/e3b16aaff6ee72ca09c13eb482b80065/e3b16aaff6ee72ca09c13eb482b800653.gif)
![面向对象程序设计课程设计题目_第4页](http://file4.renrendoc.com/view/e3b16aaff6ee72ca09c13eb482b80065/e3b16aaff6ee72ca09c13eb482b800654.gif)
![面向对象程序设计课程设计题目_第5页](http://file4.renrendoc.com/view/e3b16aaff6ee72ca09c13eb482b80065/e3b16aaff6ee72ca09c13eb482b800655.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计课程设计题目设计说明.五人一组,每组选择一个题目。.由学习委员负责统计各组员及其题目,以电子档模式提交题目列表名单.每组必须给出相应的UML类图,可用Visio或者其他类似的工具完成。设计要求.编码规范要求遵循Java编码规范,参见附录。.知识点要求项目应至少覆盖以下知识点:封装、继承与多态等基本概念;方法和数组; 输入输出流;使用抽象类、接口;对象组合;异常处理;包的使用。.文档打包及提交要求文档打包:以“题目-设计报告(姓名).rar”形式将相关文档打包。压缩包的内容:1)运行正确的源代码(包括文件夹结构)。2)设计报告:描述软件功能、和设计方案的 UML类图;设计中涉及的
2、主要 知识点;运行结果截图;使用帮助文档。题目列表及说明:.打字游戏GUI本地版练习背单词和打字速度可根据一片文章自动导入单词整个单词下落或者淡入淡出同时多个单词出现对输入错误的单词分析记忆功能积分.文件加密和解密要求:采用图形用户界面1)给定任意一个文本文件,进行加密,生成另一个文件。2)对加密后的文件还原。. 5子棋游戏设计程序,完成下述功能:在大于9条线的方形网格棋盘上,放置黑白两色棋子;两人各执一色,通过网络对弈;可以在任何两条线的交点上放置棋子;同色棋子先同行、同列或者同队角线上 5颗连成一条线者获胜。.俄罗斯方块(网络版)设计程序,完成下述功能:完成一个可以两个人通过网络对战的俄罗
3、斯方块 游戏,每一方都可以在自己的屏幕上看到对方的当前游戏状况,游戏先结束的一方为失败者。.音乐播放器(JavaGUI本地版)设计程序,完成下述功能:选择各类声音文件进行播放。完成前进、后退、暂停、回放等控制功能。.电子相册(JavaGUI本地版)设计程序,完成下述功能:选择图形的显示。完成图形的放大、缩小、剪切、旋转等控制功能。图片的自动播放功能。.多人聊天室(JavaGUI本地版/WEB版)多人同时上网聊天。.扑克游戏(JavaGUI本地版/WEB版)开发具有“升级”功能的4人对战游戏。“升级”又叫拖拉机。要求采用Java 网络编程技术。.编写一个记事本程序要求:用图形用户界面实现。能实现
4、编辑、保存、另存为、查找替换等功能。提示:使用文件输入输出流。.模拟龟兔赛跑要求:用图形用户界面实现。能设置比赛时间,马匹的数量等等。在任意时间段内马匹的速度是随机的。开始比赛之后以动画显示赛马过程。提示:使用多线程.ATM柜员机模拟程序要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM 柜员机系统,用户可以按照以下规则进行:1)查询余额:初始余额为10000元ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额 不允许透支。ATM存款:不能出现负存款。4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只 有旧密
5、码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 12.超市收银系统要求:使用图形用户界面。由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。从数据库中 取出有关价格信息,再把这些信息返回给收银台。同时把该收银台的销售总量和 有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。另 外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优 惠。.扩充的万年历多功能计时功能:当前时间显示;按年月显示日历;调整时间。备忘录功能:备忘录设置,备忘录删除。.网络监听程序使用图形用
6、户界面。有服务器和客户端,服务器监听客户端的登陆。即:如果 A客户端登陆服务 器,则服务器界面上的A字母对应的红灯变成绿色。 绿灯表示连接,红灯表示 断线。提示:socket的监听方法.全球通计费程序使用图形用户界面。使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。能根据输入实现各种用户的话费的计算并显示月实时帐单。提示:使用接口和多个子类实现分别表示金卡、 银卡等各种套餐的话费计算。 16.日历记事本要求:带有日程提醒功能的日历1)显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。2)定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提
7、醒信 息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。3)查询信息:用户可以查询到某个月的所有的提示信息。.电子英汉词典能够编辑词典库中的信息能够实现英译汉,汉译英。(要考虑一词多义).小游戏要求:程序随机产生20-50根火柴,由人与计算机轮流拿,每次拿的数量不 超过3根,拿到最后一根为胜。(使用图形界面) 19.敏感词汇分析要求:任意选择一个文本文件,分析该文件,如果存在敏感词汇(这些词汇 保存在sentive.txt文件中,每个词占一行),报告每个词出现的次数。20. 一个简单的学生成绩管理信息系统数据要求:1)建立的数据库中包含如下信息:学生学号、姓名、班级,语 文、数学、英
8、语成绩。 2)至少要有5个班级,每个班级要有10名以上学生。 3)使用.txt格式文本表示各种表。功能需求:1)能够实现根据以下关键字查询:学生姓名 、学号、班级、 课程名称。2)能够实现按照单科成绩、总成绩、平均成绩、学号排序。3)能够实现学生信息的插入、删除和修改。4)能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。5)能够查询每个班级某门课程的优秀率 (90分及以上)、不及格率,并进行排序。界面要求:1)尽量使用图形界面实现,要符合日常软件使用规范来设计 菜单和界面。2)如果无法实现图形界面,则在命令行方式下也需要提供菜单, 方便用户操作。附录:Java编码规范、Java命名
9、约定 采用适用于相关领域的术语采用大小写混合使名字可读尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统避免使用长的名字(一般小于15个字母)避免使用类似的名字,或者仅仅是大小写不同的名字避免使用下划线(除静态常量等)包(Package )采用完整的英文描述符,应该都是由小写字母组成。类(Class )采用完整的英文描述符,所有单词的第一个字母大写(一些专有的缩写词,比如:AWTException等则除外)。Class的名字建议使用名词或者名词短语。例如:Customer,SavingsAccount , LayoutManager 等接口( Interface )接口的名字取决于接口的
10、主要功能和用途。如果接口是使对象具有某种特定的功能,则接口的名字建议使用可以描述这种功能的形容词(加上-able或者-ible后缀)例如:Searchable , Sortable , NetworkAccessible 等如果接口不是使对象具有某种特定的功能则建议使用名词或者名词短语(同类的命名规则)。组件/部件(Component )使用完整的英文描述来说明组件的用途,末端应接上组件类型。okButton,customerList,fileMenu异常(Exception )通常采用字母e表示异常类变量字段采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写firstName, l
11、astName静态常量字段(static final )全部采用大写字母,单词之间用下划线分隔。MIN_BALANCE,DEFAULT_DATE方法方法命名采用大小写混合的形式。以小写字母开头,名字中其他单词的首字母以大写字母开头,所有其它的单词都为小写字母,不要使用下划线分隔单词。方法的命名应该能描绘出方法的作用和功能,方法的名字建议使用祈使动词或者动词短语。例如: showStatus () , drawCircle () , addLayoutComponent ()成员函数被访问字段名的前面加上前缀get。getFirstName(), getLastName()布尔型的获取成员函数
12、所有的布尔型获取函数必须用单词is做前缀。isPersistent(), isString();设置成员函数被访问字段名的前面加上前缀 set setFirstName(), setLastName(),setWarpSpeed()二、空白的使用相关空行规范空行的使用有益于将代码按照逻辑分段,提高代码的可读性。在下列情况下建议使 用一个空行:在版权声明块、包声明块、引用声明块之后;在类的声明之间;在方法的声明之间;在类中声明最后一个属性之后,声明第一个方法之前。空格规范下列情况建议使用单个空格(不是Tab):在一个关键字和它所修饰的块之间。可用于如下的关键字:catch , for , if
13、, switch ,synchronized , while 。下列关键字的后面不要跟随空格:super , this 。在一个参数列表中逗号之后。空格不应该置于方法名与其左括号之间左括号和后一个字符之间不应该出现空格右括号和前一个字符之间也不应该出现空格例如:public setMethod(int i, String j)缩进规范行的缩进要求是四个空格。由于在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度,所以请不要使用Tab键。建议修改各管理工具的设置将Tab字符扩展成4个空格。三、循环计数器通常采用字母i, j, k或者counter都可以接受。i, j,
14、k, counter四、Java注释约定一个很好的可遵循的有关注释的经验法则是:问问你自己,你如果从未见过这段代码, 要在合理的时间内有效地明白这段代码,你需要哪些信息。 一般概念注释应该增加代码的清晰度保持注释的简洁在写代码之前写注释(建议)对于复杂点的逻辑,注释出为什么做了一些事,而不仅仅是做了什么示范文档注释 在紧靠接口、类、成员函数和字段声明的前面注释它们。单行 在成员函数内采用单行注释,来说明业务逻辑、 代码段和暂时变量的声明。注释符后必须紧跟一个空格,然后才是注释信息。注释哪些部分类 类的目的、即类所完成的功能,注释出采用的不变量。接口设置接口的目的、它应如何被使用以及如何不被使用
15、。成员函数注释 对于设置与获取成员函数,在成员变量已有说明的情况下,可以不加注释;普通成员函数要求说明完成什么功能,参数含义是什么返回什么;普通成员函数内部注释控制结构,代码做了些什么以及为什么这样做,处理顺序等。实参/参数参数含义、及其它任何约束或前提条件字段/属性字段描述局部变量无特别意义的情况下不加注释五、Java文件样式约定所有的Java(*.java)文件都必须遵守如下的样式规则:1)版权信息版权信息必须在java文件的开头,比如:/* * Copyright ? 2000 Shanghai XXX Co. Ltd. * All right reserved. */其他不需要出现在j
16、avadoc的信息也可以包含在这里。Package/Importspackage行要在import行之前,import中标准的包名要在本地的包名之前, 而且按照 字母顺序排列。如果import行中包含了同一个包中的不同子目录,则应该用*来处理。(如果有特殊要求,可以不采用*来处理,有时候那样更加明确使用了那些类)package .stats;import java.io.*;import java.util.Observable;import hotlava.util.Application;这里 java.io.* 是用来代替 InputStream and OutputStream 的。C
17、lass接下来的是类的注释,一般是用来解释类的。接下来是类定义,包含了在不同的行的extends和implementspublic class CounterSet extends Observable implements CloneableClass Fields接下来是类的成员变量:public的成员变量必须生成文档(JavaDoc )。proceted、private和package定义的成员变量如果名字含义明确的话,可以没有注释。(建议都加注释,以便更明确,一目了然)5)存取方法(类的设置与获取成员函数)接下来是类变量的存取的方法。6)构造函数接下来是构造函数,它应该用递增的方式写(
18、比如:参数多的写在后面)。public CounterSet(int size)this.size = size;7)类方法(类的普通成员函数)下面开始写类的方法:toString 方法一般情况下,每一个类都应该定义toString方法:public String toString() main 方法普通类,考虑置入一个 main()方法,其中包含用于测试那个类的代码,如果包含了 main()方法,那么它应该写在类的底部。六、Java编码其它约定文档化必须用javadoc来为类生成文档。不仅因为它是标准,这也是被各种java编译器都认可 的方法。缩进缩进应该是每行2个(或4个)空格。尽量不要在
19、源文件中保存Tab字符,在使用不同的源代码管理工具时 Tab字符将因为用户设置的不同而扩展为不同的宽度。如果你使用 UltrEdit作为你的Java源代码编辑器的话,你可以通过如下操作来禁止保存Tab字符,方法是通过 UltrEdit中先设定Tab使用的长度室2个空格,然后用Format|Tabs to Spaces 菜单将 Tab转换为空格。页宽换行页宽应该设置为80字符。 源代码一般不会超过这个宽度,并导致无法完整显示,但这一设置也可以灵活调整。在任何情况下,一条语句折行后, 应该比原来的语句再缩进 2个字符。可以依据如下一般规则断开:在一个逗号后面断开在一个操作符前面断开宁可选择较高级别
20、(higher-level)的断开,而非较低级别(lower-level)的断开新的一行应该与上一行同一级别表达式的开头处对齐如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格。对中的语句应该单独作为一行。例如,下面的第1行是错误的,第2行是正确的:if (i0) i + ; / 错误,和在同一行/下面写法正确,单独作为一行if (i0) i +;括号左括号和后一个字符之间不应该出现空格;同样,右括号和前一个字符之间也不应该出现空格。下面的例子说明括号和空格的错误及正确使用:CallProc( AParameter ); / 错误CallProc(AParamete
21、r); / 正确 不要在语句中使用无意义的括号,括号只应该为达到某种目的而出现在源代码中。JSP文件命名采用完整的英文描述说明JSP所完成的功能,尽可能包括一个生动的动词,第一个字母小写, 如: viewMessage.jsp 、 editUser.jsp 或者 forumChooser.jsp 等。Servlet类命名一般对应于所服务的对象加后缀Service来命名,如:UserService , TradeService 等。七、一些编程建议使用StringBuffer 对象在处理String的时候要尽量使用StringBuffer类,StringBuffer类是构成 String类的基础。String类将St
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023九年级化学下册 第六章 金属6.4 珍惜和保护金属资源教案 科粤版
- Lesson 8 Lingling went to the US(教学设计)-2024-2025学年接力版英语六年级上册
- Unit 5 Do you have a soccer ball Section A (1a-1c) 教学设计2023-2024学年人教版英语七年级上册
- 2023七年级数学上册 第二章 有理数及其运算4 有理数的加法第1课时 有理数的加法法则教案 (新版)北师大版
- 管道应急预案
- 小学语文二年级上册《称赞》教学设计三
- 2022年四川发展控股有限责任公司校园招聘考试试题及答案解析
- 统编版《道德与法治》六年级下册第2课《学会宽容》精美课件(第1课时)
- 土石坝建设中需要注意的几个问题
- 2023年菏泽市选聘市属事业单位工作人员考试真题
- 化学专业书籍大全2366
- 连锁经营与管理
- 电厂安康杯竞赛活动方案
- 内蒙古专业技术职务任职资格评审表
- 提高患者吸氧依从性品管圈课件2
- 小学音乐-《打字机》教学设计学情分析教材分析课后反思
- 环境设计概论PPT完整全套教学课件
- 新学期-新初三新目标-新状态-九年级开学主题班会课件
- 初中语文人教七年级上册第二单元群文阅读《金色花》《荷叶母亲》
- 《人文地理学》4 文化与人文地理学
- 初中数学整式乘法与因式分解500题(含解析)
评论
0/150
提交评论