首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
辅导CSSE2310程序、讲解c/c++编程设计、辅导program程序 讲解Database|讲解SPSS
项目预算:
开发周期:
发布时间:
要求地区:
The University of Queensland
School of Information Technology and Electrical Engineering
CSSE2310/CSSE7231 — Semester 1, 2021
Assignment 2 (v1.0)
Marks: 50
Weighting: 10%
Due: 3:59pm 1 April, 2021
Introduction
The goal of this assignment is to ensure you have gained familiarity and skills with both the C programming
language and using a debugger (such as gdb(1)) to examine various characteristics of running programs. These
will be essential skills in later assignments for this course. For this assignment you will be given an executable
program (the “bomb”) which you have to “defuse” by entering the correct defusing phrases into the program
for each of the 10 bomb phases.
Student conduct
This is an individual assignment. You should work on defusing your own bomb by yourself. You should feel
free to discuss aspects of C programming and the use of debuggers with your fellow students, but you shouldn’t
actively help (or seek help from) anyone with the defusing of particular phases. Do not share your approaches
to solving the bomb phases - even after the assignment deadline (as extensions may be given to other students).
You should note that each student will receive a different bomb and the strings that defuse your bomb will
be different to the strings that defuse another student’s bomb.
In short - don’t risk it! If you’re having trouble, seek help early from a member of the teaching staff. Don’t
be tempted to cheat. You should read and understand the statements on student misconduct in the course profile
and on the school website: https://www.itee.uq.edu.au/itee-student-misconduct-including-plagiarism
Obtaining the “Bomb”
Whilst logged in to moss.labs.eait.uq.edu.au, you should type the following command:
getbomb
This will create a subdirectory within your current directory named csse2310a2 and place the bomb files into
that directory. The files will include an executable called bomb and a number of source files (.h and .c files).
Your bomb (executable and source) will be different to the bombs for all other students. You will not receive
all of the source files – just some of them. There is enough information contained within the bomb executable
and the supplied source files in order for you to successfully defuse all phases (although some of them are more
difficult than others). You should note that some of the bomb’s modules have been compiled with debugging
support (-g flag to gcc) and some haven’t.
Running the “Bomb”
The bomb program will only run on moss.labs.eait.uq.edu.au and you are the only user who can run your bomb
program. Any attempt to run the program on another host or to run another user’s bomb will cause the bomb
to exit immediately. Whilst in your csse2310a2 directory, you can execute the bomb by typing
./bomb
You may not want to do this until you are ready to try defusing the bomb. When you start the bomb program,
it will print out details of any phases you have already defused and it will print your current mark (out of 50)
and the maximum mark you can obtain based on your attempts to date.
The bomb will then prompt you to enter the number of the phase to defuse next, followed by the string that
you believe defuses that phase (or a test string). You will be prompted for confirmation before that string is
1
tested. If you confirm your attempt and the string is incorrect then the bomb will “explode” and exit. If the
string is correct, then that phase is defused and you will not be able to solve it again. You will lose marks for
every time the bomb “explodes”.
You should note that the bomb is booby trapped. You are warned against modifying the internal data
structures of the bomb – you never know what might happen and any loss of marks you incur will not be
reversed.
Hints
There are two demo phases that do not count for marks. You may attempt these as many times as you like by
entering either “demo1” or “demo2” when prompted for a phase to defuse. There is no mark penalty if either
of these demo phases “explodes.”
You should carefully read the supplied source code and be familiar with the use of gdb before attempting
to run the bomb. It is suggested you run the bomb from within a debugger rather than standalone. Note that
you may get a warning message about “Missing separate debuginfos...” – you can safely ignore this message.
All phases have associated code and some debugging information and you will need to use a debugger to set
breakpoints, examine various variables etc in order to determine the defusing strings. You may need to learn
about and use a number of features of gdb including watchpoints, automatic display, conditional breakpoints,
and/or breakpoint command lists to solve the phases more efficiently.
You should note that the code that determines each defusing string is not executed until AFTER the defusing
text is read from the user so you may need to enter some arbitrary text, debug the code to determine the defusing
string, quit the program and then run it again to enter the defusing string for that phase.
The bomb is deterministic – the same sequence of inputs will result in the same operation each time, so the
defusing string for each phase will not vary over time. However, many of the functions within the bomb are not
deterministic – they may return something different each time they are called.
Submission
Every time you run the bomb, a record is kept of your interactions with it and your success/failure at defusing
each phase. Your submission time for the assignment will be considered to be the time of your last attempt
to defuse any phase of the bomb. You must make at least one attempt in order to be considered to have
made a submission. An attempt means either that the bomb explodes or a phase is defused.
Late penalties will apply as described in the CSSE2310/CSSE7231 course profile. Any attempt to defuse
the bomb after the deadline will result in a late penalty being applied to your whole assignment mark.
Marks
There are 10 phases, each worth 5 marks. The mark you achieve for each phase is determined by the number
of attempts taken before you successfully defuse that phase. If you do not defuse a phase you will receive zero
marks for that phase. If you defuse a phase on the first attempt, you will receive 5 marks for that phase. If it
takes you longer than one attempt, your mark for that phase will be
5 × 0.8
(number of attempts−1)
i.e. if it takes you 2 attempts, your mark for that phase will be 4 out of 5, 3 attempts gives you 3.2 out of 5, 4
attempts gives you 2.56 out of 5, etc. There is no limit on the number of attempts you can make at any phase
before succeeding. You should note that although each phase is worth the same number of marks, they are
not of equal difficulty. All marks are subject to an audit of our logs to ensure that you have correctly entered
the defusing strings and haven’t tampered with the bomb to defuse it in some other way. Tampering with the
bomb to make it appear as though you have defused a phase when you have not correctly defused it will result
in zero marks for that phase.
2
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代写infosys 110 digital syst...
2024-12-28
代写fbe 506 quantitative met...
2024-12-28
代做part i: (crazy eddie htm...
2024-12-28
代写infosys 110 digital syst...
2024-12-28
代做stats 769 statistics sec...
2024-12-28
代写ece3700j introduction to...
2024-12-28
代做tcm2301 biochemistry代做...
2024-12-28
代做ece5550: applied kalman ...
2024-12-28
代写mth205 introduction to s...
2024-12-28
代写scicomp project 3 week 4...
2024-12-28
代做business operations anal...
2024-12-28
代写mth205 introduction to s...
2024-12-28
代写socs0100 computational t...
2024-12-28
热点标签
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
软件定制开发网!