联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> CS作业CS作业

日期:2021-03-26 10:07

CS 435/535 Assignment #6 – Spring 2021

Project Overview: In this project, you will use Smalltalk to complete the same shape project done previously. You

will implement one base class (Shape) and four (4) derived classes (Sphere, Cylinder, Cone, and Cuboid).

They need to be saved into five different files, shape.st, sphere.st, cylinder.st, cone.st, and

cuboid.st respectively.

For this project, you also need to write the main.st file that will read the shaper from a file with its filename

furnished as a command line argument. You can download form Blackboard a sample shapes file named

shapes.dat, as shown below. Each shape occupies one line in the file and two attributes of a shape are separated

by one or more spaces. The number of shapes in the file is unknown in advance.

Cube#1 cuboid 1 1 1

Cube#2 cuboid 2 2 2

Cone#1 cone 1 1

Cyl#1 cylinder 1 1

Box#1 cuboid 2 4 6

Box#2 cuboid 10.5 21 10.5

UnitSphere sphere 1

LargeSphere sphere 100

Cone#2 cone 1 2

Cyl#2 cylinder 1 2

The user can execute your program using the following command, assuming shapes.dat is the shapes file.

gst shape.st sphere.st cylinder.st cone.st cuboid.st -f main.st shapes.dat

If the number of arguments is incorrect, please print out a usage message and quit. If the file can’t be opened for

reading, print out an error message to indicate it and quit. If the file can be opened, you can assume it follows the

correct format and it contains correct attributes.

The user can then issue one of the following queries: count, countN, print, printN, min, minN, max,

maxN, total, totalN, avg, avgN. Here N is a positive integer to indicate the number of test conditions to be

imposed with the query. Without N, the query will be unconditional (performed on all the shapes). If N appears, the

user needs to enter N test conditions one by one, and the query will be performed on the shapes that satisfy all the N

test conditions.

Each test condition will be in the <name> <op> <value> format. The <name> string can be “type”, “area” or

“volume” (without the quotation marks). The <op> string can be one of the six relational operators (“==”, “!=”,

“>=”, “<=”, “>”, and “<”). The <value> string is the reference value in the string format to be compared with.

For example, “type” “>” “cyl”, “area” “<=” “1000”, and “volume” “>” “100.5” are three examples of test

conditions.

The user can keep issuing the queries until the user enters the quit command. Please see the sample executions at

the end for details. You can assume the user will enter the queries and the test conditions correctly.

It is not required, but it might be a good idea to define another class in main.st to represent a list of shapes read

from the file and the class can respond to the messages that correspond different quarries issued by the user (i.e.

count print min max total avg).

What You Need To Do

? Create a directory named project6 for this assignment. Download shapes.dat from Blackboard to

the project6 directory.

? Create five classes to be saved in shape.st, sphere.st, cylinder.st, cone.st, and

cuboid.st respectively.

? Create another file named main.st to read the shapes file, and to accept and answer the queries issued by

the user.

? When you are ready to submit your project, compress your project6 directory into a single (compressed)

zip file, project6.zip.

? Once you have a compressed zip file named project6.zip, submit that zip file to Blackboard.

? Your submission will be graded on cs-parallel.ua.edu. Make sure to test it on that machine before

submission.

? Make sure to follow the above instructions exactly. Otherwise we may not be able to grade your submission.

.

Assignment #6 is due at 11:59pm on Monday, March 31. Late projects are not accepted.

This document including its associated files is for your own personal use only.

You may not post this document or a portion of this document to a site

such as chegg.com without prior written authorization.

An assignment shall be completed individually, with no sharing of code or solutions.

All submissions will go through MOSS (Measure Of Software Similarity) for similarity check.

The University of Alabama’s Code of Academic Conduct will be rigorously enforced.

Sample executions of the program

gst shape.st sphere.st cylinder.st cone.st cuboid.st -f main.st

Usage: shape.st sphere.st cylinder.st cone.st cuboid.st -f main.st shape_file

gst shape.st sphere.st cylinder.st cone.st cuboid.st -f main.st xxxx.dat

Unable to open xxxx.dat for reading

gst shape.st sphere.st cylinder.st cone.st cuboid.st -f main.st shapes.dat

Enter a command: print

Cuboid: Cube#1, Length=1.00, Width=1.00, Height=1.00

Surface Area: 6.00, Volume: 1.00

Cuboid: Cube#2, Length=2.00, Width=2.00, Height=2.00

Surface Area: 24.00, Volume: 8.00

Cone: Cone#1, Radius=1.00, Height=1.00

Surface Area: 7.58, Volume: 1.05

Cylinder: Cyl#1, Radius=1.00, Height=1.00

Surface Area: 12.57, Volume: 3.14

Cuboid: Box#1, Length=2.00, Width=4.00, Height=6.00

Surface Area: 88.00, Volume: 48.00

Cuboid: Box#2, Length=10.50, Width=21.00, Height=10.50

Surface Area: 1102.50, Volume: 2315.25

Sphere: UnitSphere, Radius=1.00

Surface Area: 12.57, Volume: 4.19

Sphere: LargeSphere, Radius=100.00

Surface Area: 125663.71, Volume: 4188790.20

Cone: Cone#2, Radius=1.00, Height=2.00

Surface Area: 10.17, Volume: 2.09

Cylinder: Cyl#2, Radius=1.00, Height=2.00

Surface Area: 18.85, Volume: 6.28

Enter a command: print2

Enter test condition #1: type == cuboid

Enter test condition #2: area >= 88

Cuboid: Box#1, Length=2.00, Width=4.00, Height=6.00

Surface Area: 88.00, Volume: 48.00

Cuboid: Box#2, Length=10.50, Width=21.00, Height=10.50

Surface Area: 1102.50, Volume: 2315.25

Enter a command: count1

Enter test condition #1: type > cyl

There are 4 shapes.

Enter a command: count1

Enter test condition #1: type != cuboid

There are 6 shapes.

Enter a command: quit


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp