2019级Java面向对象程序设计大作业题目及要求
一、作业目的
1、 掌握用Java实现面向对象程序设计的基本方法 。 2、 熟练掌握Java程序开发环境的使用。
3、 完成一个GUI应用程序的设计、编码、调试,了解程序设计过程,锻炼实际应用能力,为后续课程打
下基础。
二、作业题目
编写的代码需要体现面向对象的思想,需要根据题意分析创建几个类。所有的题目都建议实现GUI应用程序,即具有图形用户界面。建议批量信息的存储使用集合类对象来存储,例如ArrayList,HashMap等,不要用数组。具体要求可详细阅读题目。
若不想做以上题目的,可以自拟题目,请把题目和详细功能描述发到指导老师邮箱或和指导老师电话联系,由指导老师确认后,可以做自拟的题目。
(一) 餐厅点餐系统
1、 采用图形用户界面,可参考下图设计,需要有餐厅名称、菜式类别导航页面、菜式展示选择页面、点
菜单显示区域、操作按钮、菜单栏(添加“系统设置”菜单项,可设置餐厅名称的字体样式)等。 2、 系统至少包括以下信息:
菜式信息:菜的编号、菜名、菜的类型、菜价、(菜的简介)等
客户点菜单信息:本单编号、餐桌编号、用餐人数、日期、点菜列表(菜名、数量、价格)、账单总额等 3、 系统基本功能要求:
(1) 点击菜式类别,可展示该分类下的所有菜品(系统中不少于5个菜品分类,每个菜品类别,不少
于6个菜)。
(2) 选择餐桌编号、用餐人数、菜式等,点击【取消】按钮,取消所有菜式的选择,点击【下单】按
钮生成点菜单,计算总金额(需要根据用餐人数计算茶位费),并在界面中显示。
(3) 每桌的点菜单同时需要使用文件存储。
(4) 点击【加单】按钮,可以在点菜单中追加菜式,更新总金额,更新界面和文件中信息。 (5) 点击【结账】按钮,完成结账,清空本餐桌点菜单。 4、 扩展功能要求:
(1) 为菜品添加数量按钮,可选择点菜数量。
(2) 计算餐厅的销售总额,添加管理员角色,设置登录功能,能查看所有桌子的点菜单,可计算销售
总额等。
(3) 根据现实中餐厅点餐系统的需求,自行增加功能。
(二) 关系和相关计算
需求描述:《离散数学》中的关系和映射应用非常广泛。从面向对象的角度来看,关系和映射都是对象;并且映射是一种特殊的关系。关系和映射也有很多运算,关系的运算有:交集运算、并集运算、逆关系运算、复合运算,自反性、反自反性、对称性、反对称性、传递性五大性质的判断,自反闭包、对称闭包、传递闭包的求取;映射的判断,单射、满射和双射的判断。另外,等价关系、相容关系、偏序关系也都是关系的一种,这三种关系的判定以及如何通过等价关系对集合进行划分,偏序关系中极值的计算。 设计实现要求:
1、 设计合适的类来描述关系、相容关系、等价关系、偏序关系、映射;
2、 将需求描述中的各种运算以实例方法的形式设计到对应的类中,尽量避免使用静态方法;如果一定要
使用静态方法,请在设计说明文档中说明原因; 3、 设计中要体现继承和多态;
4、 选择使用集合类或者关系矩阵二者之一完成类的属性、对象的初始化以及各种运算方法的设计与实现; 5、 偏序关系中极值的计算可以作为选作内容。
(三) 小学生数学考试自动系统
1、采用图形用户界面,界面标题为“广州市X小学数学考试自动系统”,主要功能为:自动生成50道数学题,每题为随机生成的3个100以内整数的加减混合运算,每道题为2分,共100分,考试时间为90分钟。
2、系统基本功能要求:
1)开始界面上需要填写姓名、专业、和班级信息;
2)点击开始考试按钮后,自动生成50道数学题,计时开始; 3)考试计时功能,在界面上显示考试花费时间,90分钟后自动交卷;
4)交卷功能按钮:点击该按钮提前交卷或90分钟时间后自动交卷,均弹出对话框,并显示统计后的考试得分;
5)试卷显示部分采用卡式布局管理器(CardLayout),每页显示5道题,共25页,通过“首页”、“上一页”、“下一页”和“尾页”四个按钮控制翻页功能,其他功能部分可自行合理布局;
6)每道题100以内的整数随机生成,加法和减法也是随机,但3个数的混合运算结果不能为负数; 7)考试的成绩累加写入“成绩.txt”文件,格式为“姓名 年级 班级 成绩”,如:“张三 **年级 *班 98”。 3、扩展功能要求:
增加考试平均分按钮,实现对进行过考试的人员平均分统计,即对文件“成绩.txt”进行平均分统计可额外加分10-20分。
(四) JAVA画图板 设计内容:
模拟windows画图板程序,实现对图形图像的绘制、修改、保存等功能; 基本要求:
(1) 使用GUI图形用户界面实现编程;
(2) 软件界面进行功能划分,需包括菜单栏、工具栏、绘图区等; (3) 菜单栏实现空白图形的创建、打开、保存、修改等功能;
(4) 工具栏包含一些基本的画图工具组件,如直线、直角矩形、圆角矩形、椭圆、空心/实心圆、橡皮擦等; (5) 能设置图形组件的背景颜色;
(五) 学生获奖信息收集与管理系统 能够实现: 1、 学生角色登录:
1) 查看个人信息(包括:学院、专业、年级、学号、姓名); 2) 修改个人密码;
3) 添加个人获奖信息(获奖信息包括:获奖时间(年、月、日)、奖项名称、获奖等级(如:国家级一
等奖;省级二等奖)、指导老师、授奖部门);
4) 查看个人所有获奖信息(不能查看别人的),可按获奖时间、奖项名称、获奖等级、指导老师、授奖
部门等进行排序;
5) 按获奖时间、奖项名称、获奖等级、指导老师、授奖部门等查看个人的某个获奖信息; 6) 删除个人获奖信息; 7) 修改个人获奖信息。 2、 辅导员角色登录:
1) 查看个人信息(包括:学院、工号、姓名); 2) 修改个人密码; 3) 添加学生获奖信息;
4) 查看所有学生的获奖信息,可按获奖时间、奖项名称、获奖等级、指导老师、授奖部门等进行排序; 5) 按获奖时间、奖项名称、获奖等级、指导老师、授奖部门等查看的获奖信息; 6) 删除学生获奖信息; 7) 修改学生获奖信息;
8) 按专业、年级、获奖时间、奖项名称、获奖等级、指导老师、授奖部门等统计获奖信息。
三、作业提交及其他要求
1、 开发工具:Eclipse、Netbeans、IntelliJ IDEA或者其他java开发平台都可以。
2、 时间安排及提交方式:将程序代码+电子版说明书文档放在以“学号-姓名”命名的文件夹中,如
“201710089001-张三”,按指导导师规定的提交时间,上交到指导老师的FTP上(FTP地址为,用户名和密码见下表),文档打印出来交给学习委员,学习委员收齐后,按序号排序,交到指导老师办公室。
3、 指导老师 班级 老师姓名 联系电话 邮箱 办公室 FTP用户名、密码 作业提交时间 四、 文档及其它要求
a) 程序代码要求:程序要求能够正常运行,并完成题目要求的功能。
b) 程序设计说明书要求:(要求使用另外一个文件提供的封面,正文不超过15页纸,要有相关的分析设计
说明和截图,程序和电子版说明书在19周之前均要保留好备查!)
i. 格式:正文内容分章节。一级标题:小三宋体,1.5倍行间距;二级标题:四号宋体,1.2倍行间距;
正文为5号宋体,单倍行间距。中文段落首行缩进2个字符等。格式混乱会影响最终成绩。 ii. 内容:
(1). 概述:选题原因、对题目的理解和分析,进而功能模块进行了怎样的设计和划分、开发环境的
选择。
(2). 程序概要设计:程序(系统)的总功能模块(建议画出功能模块图);程序(系统)的总流程图
和部分重点子功能的流程图,并配有对应的文字说明;程序的文件结构设计、类以及方法的设计及列表。
(3). 程序详细设计:按功能模块或程序流程对关键代码进行分析(要用文字详细描述,不要黏贴大
段代码),并分析在设计中的疑难问题和解决方法。
(4). 程序测试:使用与所选题目内容相符的数据对各个功能进行测试,要求既包括输入合理的正确
的数据的测试结果、截图及分析,也要有对不合理或者错误数据的测试结果和分析 (5). 小结:分析程序的优点和不足,遇到的困难及解决的问题,总结自己的收获。 (6). 参考目录:写出自己编写该程序时阅读的书籍和出处。
。