首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
program编程代做、代写Java程序语言
项目预算:
开发周期:
发布时间:
要求地区:
AP(IT), Assessed Exercise 1
Jan 2024
Description
• Title: Composite Pattern File System
• Deadline: 4:30pm on February 8th 2024
• Contribution to final course mark: 25%
• Solo or Group: Solo work
Specifcation
You are to build a simplified file management system (only the meta-data) using the composite design pattern.
Within your system, you can store files and directories. Directories can include other directories and/or files. All
files and directories are within one top directory. The file system needs to be able to do the following:
• Add a file/directory to a given directory, using method void add(Component).
• Remove a file/directory from a given directory’s direct children, using method void remove(Component).
• Display a directory and all of its contents: name and size of each of its contents, whether file or directory.
• Get the size of a directory as the total size of the files within it.
• Search for a directory containing a file with a certain name. If more than one is found, only the first directory
is to be returned. File name is to be matched exactly and is case-sensitive. You can only search for file names
and not directory names.
You are required to use the following interface:
public interface Component {
public String getName();
public int getSize();
public int getCount();
public String display(String prefix);
public Component search(String name);
}
Example:
root: (count=5, size=886)
Settings (10)
music: (count=1, size=120)
ringtone (120)
pictures: (count=3, size=756)
personal: (count=2, size=335)
family-holiday (201)
portrait (134)
misc: (count=1, size=421)
wallpaper (421)
In the above example, there are 5 directories (root, music, pictures, personal and misc) and various files. Please
carefully note the format of the output including spacing and punctuation: the filesize in brackets next to each file,
the directory summary in count of files and total size, and that directory contents are indented with the prefix
(e.g. “\t”). Note that directories do not count towards the count or size; only files do.
Using the previous example, the following search parameters and their results are given:
1
• search("Settings") -> return: reference to the root directory
• search("portrait") -> return: reference to the personal directory
• search("new-photo") -> return: null reference
• search("settings") -> return: null reference
Tasks
Note that your code will be automatically marked so you need to carefully follow the instructions below.
• Start by understanding the given interface as you will need to implement it.
• Sketch out the two concrete classes that you will need to build.
• Create the components. These should be named exactly as follows: File and Directory (case-sensitive).
Remember to ensure that directories should be able to include other directories.
• Create a driver class: i.e. another class with a main method to test your system. This class will not be marked.
We provide an example of this for your own testing purposes, but different drivers with unseen input will be
used for marking. They will use similar method calls, so make sure the provided driver without editing runs
with your code. If the provided driver class fails, this means that you will be marked down so make sure
you know what’s wrong.
• Make sure that the output from your display method matches the specification above and similar to the
given example. Otherwise, the automated marker might not identify your output as correct. The marker
will identify changes in whitespace, but will deduct marks accordingly. This is the part where most
students drop marks, so please make sure you match the expected format: punctuation and
spaces (including line breaks).
• Add all your classes to a package called file1234567, where 1234567 is your student ID, ignoring the letter
at the end. If you include the letter, you will be deducted 10%.
Note that you are only allowed to import from java.util. Other imports will penalised by 30% of the total marks.
To be clear, you DO NOT need to import from java.io or any other namespace.
Submission Steps
Please follow these steps exactly or YOU WILL BE MARKED DOWN.
• We expect from you 3 files as described next (note that Java class names are case-sensitive): File.java,
Directory.java, and the given interface unedited except for adding your package name. Any other change
will be penalised. Do not submit your test driver class.
• Place your Java source files (i.e., .java NOT compiled .class) in a folder called the name of your package.
If you submit .class files, you will receive no marks.
• Any file structure different from the one described above (e.g. /bin /src . . . ) will NOT be accepted.
• For example, if your GUID is 1234567, then your folder will be of the same name, as illustrated below.
• Name the components as “File” and “Directory” exactly. Make sure that components are named starting with
a capital letter.
• Compress the whole folder into a ZIP file of the same name (i.e. file1234567.zip). No letters, numbers
or any other symbols should follow the GUID in the filename (penalty 30%). RAR, 7-zip or
any other format will be marked down by 30%.
• If the file is called anything else (such as “CW1-file1234567.zip” or “file1234567(3).zip”) you will be deducted
marks
• Submit your ZIP file through Moodle.
2
Marking Scheme
Your submission will be marked on a 100 point scale, broken down as indicated below. Note that there is substantial
emphasis on working submissions, as reflected by the large fraction of the points reserved for this aspect. It is to
your advantage to ensure that whatever you submit compiles and runs correctly.
• 25: Compilation
– 5: Submitted files do not compile but due to a simple error
– 10: Submitted files compile successfully on their own
– 10: Submitted files compile successfully with unseen test drivers (i.e. interface and public methods match
the specification)
• 40: Functionality (using unseen input)
– 10: Add files/directories
– 10: Remove files/directories
– 10: Correct display of file system
– 10: Search for directory containing a filename
• 15: Definitions (use of given interface)
– 10: Implementation of interface
– 5: Encapsulation
• 20: Design pattern
– 20: Designing the appropriate concrete components
Multiple penalties for not following the specification laid here will be accumulated.
3
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代写dts207tc、sql编程语言代做
2024-12-25
cs209a代做、java程序设计代写
2024-12-25
cs305程序代做、代写python程序...
2024-12-25
代写csc1001、代做python设计程...
2024-12-24
代写practice test preparatio...
2024-12-24
代写bre2031 – environmental...
2024-12-24
代写ece5550: applied kalman ...
2024-12-24
代做conmgnt 7049 – measurem...
2024-12-24
代写ece3700j introduction to...
2024-12-24
代做adad9311 designing the e...
2024-12-24
代做comp5618 - applied cyber...
2024-12-24
代做ece5550: applied kalman ...
2024-12-24
代做cp1402 assignment - netw...
2024-12-24
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!