




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA面向对象程序设计课 程 设 计 指 导 书姜春艳 编 写适用专业: 软件工程专业 厦门理工学院 计算机 系(部)2011年 6 月一、课程设计的目的 复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握; 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力; 培养学生在项目开发中团队合作精神、创新意识及能力。二、课程设计的基本要求课程设计要求每位学生熟练运用Java语言,按照面向对象程序设计思想,独立编制一个略具规模、中等难度的应用程序。调试通过并写出课程设计报告,课程设计报告包括题目说明、题意分析、设计目的、设计特点、功能说明、主要功能程序段、运行结果及结果分析、编程经验、设计体会、存在问题及解决方法等。 程序代码总量不少于500行(其中不包括编译器自动生成的代码),关键代码必须有合理注释。 课程设计报告正文字数不少于1000汉字,概念清楚、叙述正确、内容完整、书写规范。 独立完成课程设计,不得抄袭他人。 功能正确、有一定实用性,鼓励创新。 程序界面友好,便于交互。 积极交流与讨论(通过同学、网络等途径)、善于查阅资料、分析与借鉴他人编写的软件和源代码。 允许学生在给出可供选择题目之外自己选择题目,但要经教师同意; 每个同学选择一个题目,原则上不允许多名同学选择同一个题目。多名同学选择同样题目时,独立完成,程序代码不可相同; 要求每位学生必须在上机前做好充分准备,每次上机必须目的明确,必须事先编写好程序代码,然后在规定的时间和地点上机调试; 设计要符合选题要求,实现相应功能;可以增加其他功能或修饰,使程序更加完善、合理; 软件设计要实用,编程简练,可用,功能全面,并且所有题目全部要求有GUI界面; 说明书、流程图要清楚; 课程设计结束后需提交的内容:课程设计报告一份(按格式书写)、源程序文件(采用锯齿型书写格式,包含注释,类名、对象名、变量名、方法名等等的命名要符合规范,采用骆驼拼写法)。备注:坚持每天书写设计日志!三、课程设计的主要任务1、JAVA基本设计类选题(独立完成)(1) 设计并实现一个扑捉动物的游戏程序。用一幅图表示一个动物,动物必须先随机出现在任何位置并维持一段随机的时间后消失,然后又以同样的方式出现在另一个随机位置上。游戏的目标是,当鼠标指在表示动物的图片上时点击鼠标捕捉动物。创建一个类代表动物,并定义一个方法检测点击鼠标的位置是否与动物当前位置一致。程序最终显示捕捉到动物的次数。(2) 设计并实现一个应用程序,模拟跑表的功能。该程序随着时间的增加一分钟为单位显示时间,并且提供一个按钮允许用户启动或停止计时功能及讲时间显示归零。注意合理布局各组件以提供一个良好的用户界面。提示:使用Timer类控制跑表的计时。(3) 设计并实现一个和计算机交互的剪刀、石头、布游戏程序。当两个人玩的时候,每个人要同时选择一项(用手势表示),然后决出胜负。规则为石头赢剪刀、剪刀赢不,布赢石头。程序必须随机选取一项但不表示出来,然后提示用户选择。当用户选择后,程序同时显示出计算机和用户的选择并且打印输出游戏结果。游戏一直进行直到用户退出为止,并且打印输出双方输赢次数及局的次数。(4) 编写一个温度转换窗口程序,窗体中有一个JTextField组件,一个JLabel组件和一个“转换”按钮,用于将输入的华氏温度可以转换成摄氏温度,或者将输入的摄氏温度转换成华氏温度。设计要求: 界面需要具有背景图案以及背景音乐 可以进行华氏与摄氏温度的相互转换 根据显示的温度,能自动切换窗口背景的图案,如春夏秋冬等图片。(5) 工资额计算器应用程序 某公司需要一个能计算出每位员工在工作一周后的全部薪水的应用程序。每位员工的周薪是根据员工工作的小时数和每小时的工资额来进行计算的。一个标准工作周应该是40个小时,而一周之内任何超过40个小时的工作时间则被认为是属于“加班”时间,因而员工可获取相当于原工资一半的加班费。开发这样一个应用程序,接收员工工作的小时数和每小时的工资额并最终计算出该员工工作一周后的工资总额。(6) 加密应用程序 某公司利用电话线传输数据,进行传输的数据都是以一个4位int值作为其传输单位的。因担心电话线可能会被窃听,所以,该公司先要求开发一个针对这种数据进行加密的应用程序,使数据能以更为安全的方式进行传输。所谓加密是指,因安全原因对数据执行的一个转换过程。该应用程序将读取用户在JTextField中所输入的一个4为整数,之后,通过点击Encrypt JButton完成整个的加密过程。要求加密每位数字并显示加密后的结果:对进行加密的每一位数字执行以下运算:将每位数加7,然后取10的模。之后,讲1,3位上的数字进行交换,同样,将2,4位上的数字也进行交换。最后,分别在相应的JTextField中显示出加密后的数字。(注意:一旦数字被加密,还需要对它进行解密。能力允许的话可以考虑编写一个用于数字解密工作的应用程序)。(7) 一个简单的计算器应用程序 该计算器允许用户向作为输入的JTextField中输入两个数。另外,有四个分别标记为+,-,/和*的JButton。每当用户点击这些分别标记为+(加法),-(减法),/(除法)和*(乘法)的JButton时,应用程序会使用来自输入Enter first number:JTextField和Enter second number:JTextField中的这两个数,并执行相应的计算,最后将所得到的结果显示在作为输出的result:JTextField中。(8) 门禁系统应用程序 某制药公司希望在配有设备的实验室外安装一套门禁系统。只有得到授权并取得保护密码的人员才允许进入该实验室。以下便是一些有效的保护密码(也成为访问码)及所代表的雇员小组:保护密码 雇员小组1645 技术员8345 管理员9998,10061008 科学家当输入保护密码时,应是该保护密码对任何可能站在门禁系统旁边的人员都是不可见的。而所输入的每一个保护密码,其请求要么是被允许要么是被拒绝。所有试图进入实验室的请求都将显示在位于小键盘下侧的一个屏幕当中。即如果请求被允许,则相应的日期、时间及其所属的小组名称(科学家、管理员、技术员等等)均会显示在屏幕当中;如果请求被拒绝,则相应的日期、时间以及一条信息“Access Denied”也会显示在屏幕当中。此外,任何雇员还可以通过输入访问码7,8或9来寻求安检员的帮助,并且在上述访问码输入完后屏幕中会显示相应的日期、时间以及一条消息“Restricted Access”,表示已收到该请求。提示:通过JPasswordField隐藏用户的输入,通过getPassword方法取得用户在JPasswordField中的输入,利用DateFormat.getDateTimeInstance方法取得一个用以显示日期和时间的DateFormat。将new Date()传递给DateFormat的format方法,可获得包含格式化的日期和时间的String。(9) 掷骰子游戏应用程序 创建一个用于模拟掷骰子游戏的应用程序。此游戏中,游戏者将滚动两个骰子。每一个骰子有六个面,分别代表1,2,3,4,5,6这六个点。当骰子停下以后,计算着两个骰子上表面的点数和。如果第一轮投掷的骰子的点数和等于7或11,则游戏者获胜;如果第一轮投掷的点数和等译2,3,或12,则游戏者失败(庄家胜);而如果点数和等译4,5,6,8,9或10,则该值将算作游戏者的“点数”。游戏者要想最终取胜,必须连续滚动骰子直到再次掷出他的点数,但是若在他滚动到其点数之前掷出7点,则他也将输掉本次游戏。(10) 乘法训练器应用程序 开发一个用以帮助小学生学习乘法运算的应用程序。通过将随机产生的两个1位正整数显示在某个问题当中,如问题:“How much is6 times 7?”(6乘以7等于多少?),然后让学生将此问题的答案输入到一个JTextField中。若答案正确,该应用程序会随机地从3条信息中(“Very Good!”,“Excellent!”,“Great Job!”)选出一条信息并显示在一个JLabel中,然后继续下一道问题;如果答案错误,则在该JLabel中显示信息“No,Please try again!”。(11) 国旗知识测评应用程序 某地理老师想测试一下学生对不同国家国旗知识的了解情况,因此,设想开发一个应用程序显示不同国家的国旗并允许学生从列表中选出与国旗相对应的国家名。之后,应用程序会告知该答案是否正确并继续显示下一面国旗。此应用程序将从澳大利亚、巴西、中国、意大利、俄罗斯、南非、西班牙、美国这8个国家的国旗中随机地挑选出5面国旗来进行显示。当应用程序执行时,所有国旗只能显示一次。(尽量使用数组)。(12) 文本统计 设计并实现一个文本统计工具。该工具是一个多行文本框(JTextArea),设计一个按钮统计多行文本框中的单词数,单词平均长度,每次重新按下按钮则重新统计。统计效果图(13) 打地鼠 打地鼠是一款适合幼儿的游戏,规则如下:一块田地上有些洞,人物控制一把锤子来敲打从洞里冒头出来的地鼠,打够一定数量的地鼠后会计入下一关,且地鼠冒头的速度会随着关数的增加而越来越快。你可能需要用到P319页得Timer类来控制地鼠出现的频率。(14) 愤怒的小鸟 愤怒的小鸟是一款“亿人迷”的游戏,据说大家喜欢它的原因在于大家喜欢抛物线胜过直线。课本中例题8.15-8.16是笑脸图片直线运动的例子,请修改它的运动轨迹,将它改成抛物线运动。(15) 是男人就坚持20秒 是男人就坚持20秒是一款躲避子弹的游戏,你将操控飞机躲避满屏幕的子弹。实验八中的Rebound Revisited实现的是屏幕上有两个物体在运动,请参考它实现这款游戏。注意实现碰撞检测。(16) 条状图 设计实现一个应用程序,创建一个条状图,用于查看一组分数的分布情况。程序初始化一组0-100的整数,根据整数值进行分类,通过调用fillRect方法绘图。(17) 虐待鼠标任务:鼠标是一个易损器件,损坏的原因往往是因为过量的点击。请参考第四章的例题4.10设计一款程序测试在一分钟内你能点击鼠标多少次,找你的同学来试试看看谁的食指更灵活。提示:时间差计算方法Calendar begin=Calendar.getInstance(); /获取起点时间Calendar end = Calendar.getInstance(); /获取终点时间long between=end.getTimeInMillis() - begin.getTimeInMillis()/1000; /除以1000是为了将毫秒转换成秒(18) 手机号码检测器任务:手机号码是由11位数字构成,用户在输入手机号码时经常混乱输入若干位数字或字母,要求你编写一个程序检测用户所输入的手机号码是否符合规则。功能要求:检测所输入的手机号码是否是11位检测每一位是否都为数字。(19) 扑克牌任务:设计一个Card类代表扑克牌,每张牌都有自己的花色和大小。创建一个DeskOfCards类保存52张扑克牌,设计洗牌、发一张牌、报告剩余牌数的方法。创建main方法测试你的程序。(20) 视频播放器任务:参考第十章的例题10.11和9.16用AudioClip类实现一个带滑动条的视频/音频播放器功能要求:(21) 挂钟任务:设计一款如下的挂钟功能要求:提示:Calendar calendar=Calendar.getInstance(); /获取当前时间int year=calendar.get(Calendar.YEAR); /获取年int month=calendar.get(Calendar.MONTH); /获取月int day=calendar.get(Calendar.DATE); /获取日int weekDay=calendar.get(Calendar.DAY_OF_WEEK);int am_pm=calendar.get(Calendar.AM_PM);int hour=calendar.get(Calendar.HOUR_OF_DAY); /获取小时int minute=calendar.get(Calendar.MINUTE); /获取分钟int second=calendar.get(Calendar.SECOND); /获取秒二、JAVA综合编程(可以两人合作完成)(22) 成绩评定应用程序(2人完成) 某教师将对一个有10名学生的班级进行三次测验。其中,测验成绩是一些0100之间的整数。该教师希望能开发一个应用程序,用于计算每位学生的平均分以及班级内全体同学总的平均分。该教师同时还希望能有一个能够按数字分值或者是字母分值来查看成绩的选项。字母分值将根据下面的成绩系统进行转换:90100 A8089 B7079 C6069 D60以下 E应用程序允许用户输入每位学生的姓名以及三次测验的成绩。之后,便可计算出每位学生的平均分和全班总的平均分。在默认情况下,应用程序是按照数字分值来进行显示的。每位学生的平均分,等于该名学生三次测验成绩的总和除以3。班级平均分,等于全体学生的平均分总和除以该班级学生的总人数(本题目中班级总人数为10人)。(23) 微波炉模拟应用程序(2人完成) 某电子设备公司正考虑投产微波炉。该公司现要求开发一个可模拟微波炉工作原理的应用程序。这个微波炉模拟应用 程序将包含一个允许用户设定微波炉烹调时间的小键盘,相应的烹调时间也应显示给用户。一旦输入某个时间,用户便可以通过点击Start JButton来启动整个烹调过程。此时,微波炉上的玻璃窗将改变颜色(从灰色变为黄色),从而模拟食物烹调过程中微波炉内的灯光颜色,相应的定时器也将按每次一秒的速度进行递减。当时间终止时,该微波炉的玻璃窗会再次返回到灰色状态(表示微波炉已停止工作),然后,显示文本“Done!”。客户可在任何时刻通过点击Clear JButton停止微波炉的工作,然后再重新输入一个新的时间。注意,用户所输入的分钟数不能超过59,秒数不能超过59;否则,任何无效的烹调时间都将被重置为零。(24) 图书管理信息系统 分析整理整个管理信息系统的业务流程。 包括的功能: 图书资料; 读者资料; 借阅登记; 归还登记; 借阅查询等(25) 学籍管理信息系统 分析整理整个管理信息系统的业务流程。 包括的功能: 学生资料; 成绩登记; 综合排名; 管理成绩查询等(26) 高校工资管理现高校有五类职工:教师,实验员,行政人员,教师兼职实验员,行政人员兼职教师。为了实现工资发放的自动功能,现要求编写程序来自动完成此功能。同时注意生成的相关数据结果以文件方式存放在硬盘中。程序应具备从键盘录入,文件的可继续录入,任意职工的工资查询(可由职工编号和职工姓名来实现),如若有职工由于工作调动,则可进行相对应的删除动作。 相关信息:每一学期将学校职工的本学期任职情况及上学期工作的相关情况输入计算机,则本学期职工的月工资按程序处理后的结果发放,其中职工的工资计算方法如下:其中工资的基本构成如下:教师: 基本工资+课时费; 实验员: 基本工资+实验室补助;行政人员: 基本工资+行政补贴; 教师兼职实验员: 基本工资+课时费+实验室补助; 行政人员兼职教师:基本工资+行政补贴+课时费; 其中: (1)课时费:教师每一学期的基本工作量为120,实验员每学期基本工作量为70,行政人员没有基本工作量,每节课时费为20元;课时费=(上学期工作量-基本工作量)*20; 注意:如果上学期基本工作量没完成,则其(上学期工作量-基本工作量)*20为负值。 (2)基本工资:教师800元,实验员650元,行政人员750元。(3)行政补贴:250元。 (4)实验室补助:150元。(27) 学生考勤系统考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。试设计考勤管理系统,使之能提供以下功能: 录入学生的缺课记录; 修改某个学生的缺课记录; 查询某个学生的缺课情况; 统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序; 统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序; (28) 自拟题目任务: 利用面向对象的方法对业务进行系统分析; 对各个功能模块分析设计抽象并实现对象类,重点是各类的属性和行为,类之间的关系; 在类的设计上,尽量自己设计,并采用继承、多态、重载等概念;四、主要关键技术的分析、解决、方案比较 本课程设计主要采用JAVA面向对象程序设计编程技术进行选题的设计与实现。主要是灵活运用面向对象编程的设计思想到一些复杂的综合例题中去。五、课程设计考核方式与标准首先检查完成后的程序能否正常运行和得出希望的结果,程序检查通过后再检查所撰写的Java课程设计报告书,时间允许的话,还会设置参加课程设计答辩环节,根据课程设计报告书的质量及面试的结果给出学生课程设计的成绩。成绩分为优、良、中、及格和不及格。1、评阅教师可根据学生选择题目的难度、完成功能的多少、以及完成质量的优劣进行综合评分。完成质量较好,即可评定为优秀;完成质量尚可但有明显不足,可以评为良好;完成质量一般,成绩为中等;完成质量较差,成绩为及格;没有完成,成绩为不及格。成绩评定由指导教师根据学生面试和对设计报告的评审得出。优秀的比例为不超过15%。2、如果发现两名或更多同学的课程设计相同部分过多,特别是程序的源代码相同部分达到或超过80%,则认定为抄袭,成绩评定为不及格。如果发现与现有技术书籍或网上资料相同部分过多,特别是程序的源代码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训沟通能力课程
- 危险的工地课件
- 科学技术试题库及答案
- 交通银行2025白山市秋招笔试价值观测评题专练及答案
- 农业银行2025海南藏族自治州秋招无领导小组面试案例题库
- 2025年3D打印技术的个性化医疗器械
- 农业银行2025九江市秋招半结构化面试题库及参考答案
- 邮储银行2025长沙市笔试英文行测高频题含答案
- 邮储银行2025达州市秋招无领导小组面试案例题库
- 2025行业未来十年发展趋势预测
- 中国心力衰竭基层诊断与治疗指南(2024年)更新解读(完整版)
- 部编语文三年级上册教案教学设计
- 2023年中小学“学宪法 讲宪法”应知应会知识竞赛题库及答案
- 食为天:2024中国食品饮料行业白皮书
- 慢性肾脏病的用药指导
- 2024版《立体构成》全套课件完整版
- 九年级初中语文阅读理解专项训练及答案带解析
- 海外医疗旅游咨询与服务合同
- 智慧监狱大数据信息化系统建设方案
- 电子商务平台用户服务手册
- 家长进课堂-小学生建筑知识课件002230
评论
0/150
提交评论