JAVA课程设计指导书.doc
Java语言课程设计指导书一、课程设计目的和要求本课程是软件工程专业所开设的一门重要实践课程,主要要求学生掌握Java语言和面向对象在实践中的应用。本课程设计的目的是使学生在理论学习的基础上,动手编写程序,通过应用所学习的知识,来解决一些实际的问题。在此基础上,真正理解和掌握Java面向对象程序设计的相关理论,具备程序设计的能力。二课程设计参考题目任选下列项目进行,查阅相关文献、了解相关的系统,要求完成规定的各项任务。(多做将加分)1. 用菜单和按钮来控制绘图2. 日历记事本 3. 记事本4. 记忆测试系统5. 计算器模拟程序6. 扑克牌7. 小型计算器8学生信息管理系统9模拟购物窗体10手机号码查询系统11. 师生管理12. 自拟题三任务完成形式1 完整的软件系统 最终必须向指导老师提交完整的电子版程序源代码、可执行程序、数据文件以及使用说明文件等。源代码文件要特别注意编程规范、代码风格,关键代码需有合理的注释,不含任何无用代码;数据文件内要求有一定数量的“真实”数据(如对于记录文件,需要有5条以上记录); 使用说明文件的第一行,需要给出设计者的学号、姓名,后面为其它说明。2 课程设计报告参照设计报告模板完成设计报告。四总体要求 根据所给的实验指导书的要求,从中选择项目,应用所学的知识,完成题目所规定的各项要求。总体要求如下:1 程序代码总量不少于500行(其中不包括编译器自动生成的代码),关键代码必须有合理注释。2 课程设计报告正文字数不少于1000汉字,概念清楚、叙述正确、内容完整、书写规范。3 课程设计中必须按指导书要求,综合应用所学的网络安全知识解决实际问题,有必要的理论分析,设计要有合理的依据。独立完成课程设计,不得抄袭他人。4 功能正确、有一定实用性,鼓励创新。5 程序界面友好,便于交互。6 在设计过程中要考虑用户使用的便利,提供一些多样化的选择,比如在算法的安全性和便利方面做出折衷。7 积极交流与讨论(通过同学、网络等途径)、善于查阅资料、分析与借鉴他人编写的软件和源代码。五工作阶段与分组设计安排工作阶段:第一阶段:1.班级分组,选定课题,查阅相关资料 2.划分模块、小组成员分工,编制源程序 第二阶段:上机调试,修改、完善系统 第三阶段:撰写、上交课程设计报告,课程设计作品源程序(每课题组一份),作品答辩。 分组安排:分组选题:最多3人为一组,每组一个课题(可根据课题工作量大小,合理分配人数),每组设组长一名,负责该组设计工作的协调、分工等。设计过程:1) 分析设计准备阶段(按组讨论、对系统功能进行分析,确定算法,并进行明确分工);2) 编程调试阶段(绘制流程图,编制源程序;上机调试,修改程序)3) 总结报告和书写说明书阶段(撰写上交相关资料)六、考核内容和方式1、在设计期间,学生要按时上机,设计结束根据记录的设计材料整理成设计报告。设计报告中应写下设计中的主要收获,要求对问题有一定的分析,文字简短明确流畅。2、通过设计答辩方式,并结合学生的动手能力,独立分析解决问题的能力和创新精神,设计成绩由指导教师根据考勤、设计说明书质量、答辩表现以及学习态度按五级分制综合评定。成绩分优、良、中、及格和不及格五等。3、考核方式:只有程序验收通过后,才能按以下方法核定本次课程设计的总成绩,因未能独立完成设计(尤其是抄袭)或概念不清的同学,总成绩将核定为不及格。总成绩由以下几个部分决定:1 考勤、纪律2 工作量(代码量、功能多少、难度、经历的曲折)3 关键技术4 实用性、创新5 代码书写规范性(包括注释的质量、详尽程度和明晰性)6 程序界面、新技术引用、易用性7 课程设计报告(叙述、书写规范、字数)8 动手能力、分析问题解决问题能力9 答辩的情况(答辩时会问关于系统实现和本作品相关的理论知识的问题)10. 在资源共享和互助协作方面的贡献及其体现的能力七、课程设计报告格式及要求1、封面;2、目录;3、本组课题及组员分工任务;4、程序功能简介;5、主体内容1)设计分析;2)程序结构(画流程图)3)各模块的功能及程序说明;4). 源程序;5)操作方法(流程);6)试验结果(包括输入数据和输出结果)7)设计体会。八任务具体要求1、用菜单和按钮来控制绘图功能要求:实现简单绘图功能,具体要求:画直线,画空心或实心椭圆、画空心或实心矩形、画多边形(图形的位置和大小可在程序中设定)。界面要求:用图形界面实现。可参考图2、图3和图4。图2 初始界面 图3 使用菜单绘图图4 使用按钮绘图2、日历记事本功能要求:设计GUI界面的日历记事本,系统将日历和记事本结合在一起,可以方便地保存、查看日志,即在任何日期记载下有关内容或查看某个日期记载的内容。可参考下图:具体要求如下:1.程序具有选择日历图像功能。2.用户可以设置记事本字体的样式和大小。3程序具有报时音乐功能,即程序在整点时播放简短的一声音乐。4. 发布软件。3、记事本、设计一个JAVA程序模仿记事本(NotePad)的部分功能,界面如下图。 4、课题:记忆测试系统功能要求:记忆测试系统是通过回忆法测试记忆能力,测试分为初级、中级和高级三个级别。1 单击“选择级别”菜单可以选择初级、中级或高级。2 测试区由m*n个方块组成。设定初级级别为m=n=6,中级级别为m=n=7,高级级别为m=n=8。m*n个方块组成的测试区中有m个图标,每个图标重复出现n次,且随机分布在测试区中的m*n个方块上。用户必须用鼠标连续单击出n个图标相同的方块才表示成功,可保持成绩。如果用户已经连续单击出p(p<n)个图标相同的方块,当在单击另一个方块时,如果该方块的图标和前一个相同,则该方块的图标和前p次单击出的方块图标可见,否则前p次单击出的方块图标全部不可见,只有当前单击的方块的图标可见。3 单击“查看排行榜”菜单可以查看初级记忆榜、中级记忆榜或高级记忆榜,通过记忆榜保存每个级别的成绩。4 单击“选择图标”菜单可以重新选择方块的图标样式,即可以重新选择m个图标。要求程序可以选择3种以上类型的图标。5 增加音乐效果。当用户成功翻开相同图标方块后,程序播放简短、动听的一声音乐,当用户翻开不相同图标方块后,程序播放简短、警告的一声音乐。6 发布软件。参考界面如下:5、计算器模拟程序功能要求:Windows2000/XP系统中的“计算器”是一个方便实用的计算工具,但没有提供显示计算过程和保持计算过程的功能。本课题所遵循的计算规则与Windows2000/XP系统中的“计算器”相同,除了具有普通的计算功能外,还具有显示计算过程、保存计算过程之功能。要求保存计算过程和结果到文件的同时,也把当前时间保存到该文件。发布软件。可参考下图:6、扑克牌任务:设计一个Card类代表扑克牌,每张牌都有自己的花色和大小。创建一个DeskOfCards类保存52张扑克牌,设计洗牌、发一张牌、报告剩余牌数的方法。创建main方法测试你的程序。功能要求:7、小型计算器功能要求:(1)实现简单加、减、乘、除的运算。(2)实现除了加、减、乘、除按钮外其他按钮功能。(3)给软件添加一个编辑、查看、帮助的主菜单。(4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。(5)科学型计算器与标准计算器之间的菜单切换。实现要点:界面设计、功能实现。8、学生信息管理系统一、设计要求:设计基于ORACLE数据库的学生成绩管理系统。具体要求如下:1、按照数据库设计方案合理设计student表,并生成SQL代码,包含学生的学号、姓名、性别、出生日期、专业等信息。学号为主码。2、录入学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“录入学生基本信息”功能的界面,通过该界面可以录入学生的学号、姓名、性别、出生日期、专业等信息。3、修改学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“修改学生基本信息”功能的界面,通过该界面可以对已录入的学生信息进行修改。4、查询学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“查询学生基本信息”功能的界面,通过该界面可以对已录入的学生信息进行查询,查询条件按照学号进行查询。5、删除学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“删除学生基本信息”功能的界面,通过该界面可以按照学号删除已录入的学生信息记录。二、设计思路:程序界面采用javax.swing组件进行设计,合理选择JFrame、JPanel或者JDialog窗体进行设计,程序功能模块分为以下几个部分:1、MainFrame.java 主应用程序界面,负责其它功能模块的调用。2、InputStudent.java 负责“录入学生基本信息”功能的界面,要对录入数据进行有效性验证。3、ModifyStudent.java 负责“修改学生基本信息”功能的界面。4、QueryStudent.java 负责“查询学生基本信息”功能的界面,能够按指定学号来查询并显示学生信息内容。5、DeleteStudent.java 负责“删除学生基本信息”功能的界面,能够删除指定学生信息记录。6、Student.java Student创建的对象负责处理和学生有关的数据,按照实体类的方式来定义,有一些private的参数作为对象的属性,然后针对每个参数定义了get和set方法作为访问的接口。对象的所有属性采用String类型来处理。7、JDBCUtil.java 在该类中定义静态方法来访问,包括以下两个方法: /负责获取数据库连接 public static Connection getConnection(); /负责关闭数据库连接资源 public static void release(ResultSet rs, PreparedStatement psmt, Connection conn);9、模拟购物窗体参考创建模拟购物结算窗体界面并实现结算功能。其中使用了内部类和Vector 向量。运行程序后,可输入购买记录,单击“添加”按钮将保存记录到Vector 向量中,并可以显示任意一个记录,或按记录号删除记录,并可给出购买物品总额,并可清空所有记录。如下图:10、手机号码查询系统任务:现在各大手机都有自己的、各种通讯录程序,但是这些公司都有自己的版权,我们也不可能得到这些源代码!而且这些公司的程序也相当复杂,仅从日常应用方面来说,对于初学java的我们也无法理解,就需要我们开发一个简单易懂的电话号码查询系统程序。本程序要构建的敏感词汇分析程序参照了手机通讯录,其功能是:有电话录入,修改,增加,删除,按姓名查询,按电话号码查询,按部门查询,按部门显示,显示所有电话号码信息,打印等功能。11、 师生管理学校中有老师和学生两类人,而在职研究生既是老师又是学生,对学生的管理和对教师的管理在他们身上都有体现。1)设计两个信息管理接口StudentManageInterface和TeacherManageInterface。其中,StudentInterface接口包括setFee()方法和getFee()方法,分别用于设置和获取学生的学费;TeacherInterface接口包括setPay()方法和getPay()方法,分别用于设置和获取教师的工资2) 定义一个研究生类Graduate,实现StudentInterface接口和TeacherInterface接口,它定义的成员变量有name(姓名)、sex(性别)、age(年龄)、fee(每学期学费)、pay(月工资)。3) 创建一个姓名为“zhangsan”的研究生,统计他的年收入和学费,如果收入减去学费不足2000元,则输出“provide a loan”(需要贷款)信息。提示:1)定义两个接口,分别在其中申明两个方法。2)定义主类Graduate,实现这两个接口。3)定义主类的成员变量,和构造方法。 4)给出四个接口方法的实现。5)给出一个计算是否需要贷款的方法,在里面统计年收入和学费,并输出是否需要贷款的信息。6)写main方法。在其中创建一个姓名为“zhangsan”的研究生,调用计算是否需要贷款的方法。12、自拟题任务:1. 利用面向对象的方法对业务进行系统分析;2. 对各个功能模块分析设计抽象并实现对象类,重点是各类的属性和行为,类之间的关系;3在类的设计上,尽量自己设计,并采用继承、多态、重载等概念;附录1:课程设计报告封面西安科技大学课程设计报告课 程 名 题 目 专业班级 学 号 姓 名 日 期