大型编程(CSSE2002)
课业1 - 学期1,2024EEC学校昆士兰州大学
必须通过做事来学习; 因为你认为您知道,直到尝试之前,您都无法确定。- Sophocles不要打扰。 修订1.1.0
概述此任务提供了基于一个基于一个Java项目的实用经验
提供的规格。 该规范以Javadocs的形式提供,该规范描述了
您的课业必须实现的类和界面。 此外,您必须写Junit
测试这些类的子集。1
您将对您的能力进行评估;
❼实施一个符合规范的程序,
❼编写可以识别类实现中的错误的JUNIT测试,
❼并制定符合课程样式惯例的代码。
任务电子表格应用程序是功能强大的工具,可以结合数据和公式以执行
计算。 在此课业中,您将实施绵羊(表处理器),这是一个范围的申请。 绵羊类似于Google表或Microsoft Excel,它由一个网格组成
单元格每个包含数据或公式。 公式可以参考其他单元
网格使用其值。 评估公式以产生细胞值。 单元已更新
每当任何单元格中的数据或公式都会改变。
常见错误请仔细阅读附录A。概述了常见和关键错误
您必须避免防止丢失分数。 如果在任何时候您甚至都不确定,
请尽快检查课程人员。
1尽管我们鼓励您为所有课程编写考试。
➞昆士兰大学2024 1 0011110001
pla窃所有关于这项任务的工作都是成为您自己的个人工作。 提供的代码
课程人员(从这个学期开始)是可以接受的,但必须清楚地承认。 生成的代码
第三方工具也可以接受,但也必须清楚地承认,请参阅生成下面的人工智能。 您必须熟悉窃的学校政策:
https://uq.mu/rl553如果您对可以接受的内容有疑问,请询问课程人员。
强烈鼓励您不使用生成人造的生成人工智能智能(AI)工具来开发您的课业。 这是一个学习练习,您会伤害
如果您不适当地使用AI工具,您的学习。 请记住,您将需要编写代码,
在期末考试中。 如果您确实使用了AI工具,则必须清楚地在您的
提交。 有关如何确认使用生成AI工具的详细信息,请参见附录C。
即使被确认,您也需要能够解释您提交的任何代码。访谈以维持评估完整性并根据第5.4节的规定
课程资料,课程协调员可能会通过电子邮件询问您参加面试评估真正的作者的课业。 请参阅课程资料以获取更多详细信息。
规格
规格文档以Javadocs的形式提供。
◦按照Javadocs中所述,完全实现类和接口。
◦仔细阅读Javadocs,并在编程前了解规范。
◦不要以任何方式更改公共规范,包括更改或添加的名称
其他公共类,接口,方法或字段。
◦建议您在合适的情况下添加其他私人会员,课程或接口。
要查看Javadoc规范,请访问Web浏览器中的下面URL:
https://csse2002.uqcloud.net/assessment/ass1/docs/
入门
要开始,请从黑板下载提供的代码。 此邮政编码包括
GUI组件。 在目录中提取存档,然后使用Intellij打开它。
任务
1.完全实现Javadoc规范中描述的每个类和接口。
2.为以下类的所有公共行为编写JUNIT 4测试:
❼细胞结实(在一个称为CellLocation Test的类中)
❼参考
(在称为referenceTest的课程中)➞昆士兰州大学2024 2 0011110001
图1:分配规范的类图1。项目概况
绵羊。此软件包提供了电子表格模型与用户之间的接口
界面。
SheetView接口的实现告诉接口如何呈现份额表并通过ViewElement对象传达此信息。
SheetUpdate接口的实现处理用户更新电子表格和
通过更新对象提供更新的结果。
Sheep.Sheets此软件包包含SheetView和SheetUpdate inter Face和其他支持类的实现。 它主要实现了三种不同类型的扩展床单:固定网格,显示屏和工作表。
绵羊。在电子表格中的表达,特定单元格的值由sion表示 项目概况
绵羊。此软件包提供了电子表格模型与用户之间的接口
界面。
SheetView接口的实现告诉接口如何呈现份额表并通过ViewElement对象传达此信息。
SheetUpdate接口的实现处理用户更新电子表格和
通过更新对象提供更新的结果。
Sheep.Sheets此软件包包含SheetView和SheetUpdate inter Face和其他支持类的实现。 它主要实现了三种不同类型的扩展床单:固定网格,显示屏和工作表。
绵羊。在电子表格中的表达,特定单元格的值由sion表示。 该软件包存储所有表达式必须扩展的表达式抽象类。
表达式通过实现表达方式的表达工厂构建
接口,例如 核心。
该软件包还存储相关的例外。
sheep.expression.basic此软件包存储核心表达实现,即空的
单元格,没有,恒定数值,常数和对另一个单元格的引用。
Sheep.Expression.Arithmetic算术表达式包含在此软件包中。 所有Arith Metic表达式都是基本抽象类算术的子类。
绵羊。解析器接受字符串输入并构造适当的表达式。 对于ex ample,鉴于字符串“ 4”,解析器将构建一个常数表达式的实例
代表4。
所有解析器都必须实现解析器接口。 如果解析器无法解析字符串,则
parseexception被抛出。
绵羊。提供的课程可以预先使用测试数据的电子表格,例如fibonacci
使用斐波那契类的序列。
Sheep.ui提供了用户界面的实现。
阶段
该任务分解为阶段,以鼓励增量发展。 你应该
完成每个阶段,然后再进入下一个阶段。 提供的主班允许您运行
每个阶段通过在主要方法中删除适当的线来分别分别。 图1
突出显示您将在每个阶段实现的类代 写CSSE2002绿色的第0阶段,蓝色,blue for Stage 1,
黄色为第2阶段,紫色用于提供的代码。 在每个阶段,确保您彻底测试
您的实施。
阶段0创建一个简单的电子表格固定网站的实现。 固定网格
课程应在绵羊包中,并实现绵羊。
和sheep.core.core.sheepupdate界面。 在实现固定表格类并在主方法中评论适当的行后,该程序应如下运行。
➞昆士兰大学2024 4 0011110001
阶段1仅实现电子表格中的基本表达式类型:常数
值,对其他细胞的引用和空细胞。 创建一个表达式工厂来创建这些
表达式和解析字符串表达式的解析器。 最终将显示屏创建为
显示这些表达式的结果。 当主要方法中的适当行是
评论说,该程序应如下进行。
第2阶段完成表达式的实施,以包括算术操作。 你的
解析器和表达工厂应该能够解析并创建这些表达式。 创造
完整的工作表实现,此表应在其他单元格时适当更新单元格
改变。 当评论主方法中的适当行时,该程序
应按照下面的方式运行。
➞昆士兰州大学2024 5 0011110001
第3阶段,如果您尚未这样做,请确保您编写所需的Junit测试课。
标记
任务将在100中标记。标记将分为三类:
功能(F),JUNIT测试(T)和样式。
体重描述
F 65该程序相对于
规格。
t 25 Junit测试可以区分正确和
不正确的实现。
S 10代码样式符合课程样式指南。
总体任务标记定义为
A1 =(65×F) +(10×S) +(25×T)
功能每个类都有许多与之相关的单元测试。 您的功能标记基于您通过的单位测试的百分比。 假设您有10个单位
测试一堂课,如果您通过了其中的8个测试,那么您将获得该课程的80%分数。 课程
根据其复杂性,可以将加权加权不同。 您对功能的标记F是
然后每个班级的加权平均值,是I级的重量,pi是通过的测试数量
第一级和ti是I类测试的总数。
Junit测试您在Celllocation Test和ReferenceTest中提供的JUNIT测试将
用于测试细胞结实的正确和不正确的(错误)实现
参考类。 标记将被授予