首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
代写EEEE 2067、代做C++设计编程
项目预算:
开发周期:
发布时间:
要求地区:
EEEE 2067 - Design and Implementation of Engineering Software
Department of Electrical and Electronic Engineering
Coursework Autumn 2024/25
“Intelligent Recycling Machine”
This coursework constitutes 40% of your total assessment in this module.
LO Addressed
• LO1 Demonstrate critical judgment in decomposing large tasks into collections of small
objects and functions.
• LO2 Design scalable object-oriented software with an appreciation of a larger
environment encompassing code recycling, maintenance, expansion and issues of
robustness.
Main Objective
Your main objective is to develop a smart recycling machine software according to the given
requirements below. A typical recycle machine is shown in Figure 1.
Figure 1: A Typical Recycle Machine
Tasks or Requirements (What should this machine do?)
1. On the starting menu:
a. Menu for User Registration and login.
b. Menu for Maintenance login.
2. After login:
a. Display name, phone number and current points.
b. Display item name and points per kg as shown in Table 1.
c. Display maximum capacity and current load as shown in Table 2.
You can be creative on how to display the menu above.
EEEE 2067 - Design and Implementation of Engineering Software
Department of Electrical and Electronic Engineering
3. When the machine is first powered on (when you run the program), it will read a text file
(item_point.txt), which contains the information listed in Table 1.
Table 1: Recycle Item Initial Data
Item Name Points Per Kg
Paper 10
Plastic 20
Glass 12
Metal 25
Cardboard 15
Hazardous Waste 30
Organic Waste 8
General Waste 2
4. The machine will then read another text file (capacity.txt) which contains the info listed in
Table 2.
Table 2: Machine Capacity Initial Data
Item Name Maximum Capacity (kg) Current Load (kg)
Paper 50 0
Plastic 50 0
Cardboard 50 0
Glass 80 0
Metal 100 0
Hazardous Waste 60 0
Organic Waste 100 0
General Waste 90 0
If a particular item has reached its maximum capacity, it will not accept anymore and the
deposit door will refuse to open.
5. Point Collection System: The system should provide a menu for user to register or login. For
the first time, you need to register. It should use your name and phone number. Upon
successful registration, you can login and the machine will display your name and total point
collected so far. The system should also provide login for other users. Therefore, a logout
function is also required. The system should also retain the account info after you program
restarts.
6. Maintenance mode: Implement a maintenance mode for the machine operator. The
operator should be able to reset a particular load to zero, or all those items which have
reached the maximum load, or all loads to zero. It should be able to create a report of all
past transactions. A menu option for selecting the maintenance mode should be provided in
the startup menu.
EEEE 2067 - Design and Implementation of Engineering Software
Department of Electrical and Electronic Engineering
Software Design
1. Design at least 4 classes:
a. RecycleItem class to represent the object to be deposited by the user.
b. RecycleItemStatus class to represent the status of a recycle item contained in
the machine.
c. RecyclingMachine class to represent the recycle machine.
d. User class to represent the end user or person using the machine.
2. Provide a UML class diagram to illustrate the relationships between these classes. The basic
members of each class are listed in Table 3, 4, 5 and 6 respectively. Note: Your classes can
have more variables and functions than what are listed in these tables.
Table 3: Members of RecycleItem class
No. Variable Description Type
1 itemName Name of the item to be deposited e.g. paper,
plastic, glass, etc.
string
2 weight Weight of the item to be deposited in kg. int
No. Function Description Type
1 Member functions Relevant assessors and mutators functions. Don’t
forget constructors and destructor.
function
Table 4: Members of RecycleItemStatus class
No. Variable Description Type
1 itemName Name of the item in the machine e.g. paper,
plastic, glass, etc.
string
2 maxCapacity Maximum capacity. int
3 currentLoad Current load of item in the machine. E.g. how
many kg of paper in total in the machine.
int
4 pointsPerKg Number of points per kg of item deposited. int
No. Function Description Type
1 addToCurrentLoad() Function to add load to current item. function
2 Member functions Relevant assessors and mutators functions.
Don’t forget constructors and destructor.
function
Table 5: Members of RecyclingMachine class
No. Variable Description Type
1 paperStat,
glassStat, …
Machine will contain RecycleItemStatus
for the recycled items.
RecycleIte
mStatus
2 location Location of the machine. E.g. UNNC, Jintianfu,
Manor, …
string
3 usr1, usr2, … Machine will contain User objects to represent
users who are registered.
User
EEEE 2067 - Design and Implementation of Engineering Software
Department of Electrical and Electronic Engineering
No. Function/Variable Description Type
1 RecyclingMachine Constructor which initializes the recycling
machine based on the data provided in Table 1
and 2 by reading item_point.txt and capacity.txt.
function
2 startupMenu A function that allows the machine to display the
startup menu as stated in Task1 .
function
3 depositMenu A function that allows the machine to display the
deposit menu as stated in Task2.
3 registerUser A function that allows machine to register user.
The new user should be added to the file
account.txt.
function
4 userLogin A function that allows user to login into the
machine. It should match the login with the
existing account in account.txt.
function
5 userLogout A function that allows the user to log out of the
machine. Upon logout, the system should return
to the login menu, allowing another user to log
in.
function
6 depositItem A function that allows user to deposit items to the
machine after login. The user is allowed to
deposit more than one type of item per time.
Provide the right condition to handle the case
when reaching the maximum capacity. The user
is also allowed to cancel at any point and go back
to the starting menu. Upon successful deposit
operation, the function will update the current
load in capacity.txt and don’t forget to add points
to the user.
function
7 emptyLoad A function in the maintenance mode that allows
operator to empty a particular type of item or the
whole machine. Take note of the maximum
capacity. This menu is only accessible by the
machine operator.
function
8 printTransaction A function in the maintenance mode that allows
the machine to display the past transactions on
screen also save the record with the filename
“Transaction-YYYY-MM-DD.txt”. This menu is
only accessible by the machine operator.
function
9 Member functions Relevant assessors and mutators functions. Don’t
forget destructor.
functions
10 Advanced function(s) Create at least one special function which is not
stated in the requirements.
Suggestion: increase the number of locations for
the recycling machine. Even if the resident’s
information is linked, if you are not in the
apartment where the current recycling machine
is located, they can only dispose of items as a
function EEEE 2067 - Design and Implementation of Engineering Software
Department of Electrical and Electronic Engineering
guest, meaning they are still limited to five
disposal attempts. You should also demonstrate
this feature according to demo step in the next
section. Note: match the “location” variable
in RecyclingMachine class with
“residence” variable in User class as follows.
Table 6: Members of User class
No. Variable Description Type
1 name The account holder’s name. string
2 number The account holder phone number. string
3 points The accumulated reward points of the account
holder.
double
4 residence The residence name of the user e.g. “Block215”.
If the user is unlinked to this residence, this
variable should be “None”.
string
No. Function Description Type
1 Member functions Relevant assessors and mutators functions such
as addPoints, setResidence, etc. Don’t
forget constructors and destructor.
functions
EEEE 2067 - Design and Implementation of Engineering Software
Department of Electrical and Electronic Engineering
Demo Step
Create a video with voice narrative to demonstrate the following tasks:
Initial conditions:
• The load of recycle items in the machine should be zero, meaning the machine is empty.
• No user has been registered.
Table 7: Task List
Task list Task Description
1 Demonstrate initialization of the recycling machine with items listed in item_point.txt.
Proof that you can change the category’ name, points per kg of an item during the
demo by changing the item_point.txt.
2 Startup Menu -> Create an account with your name and phone number. Store the
account info in account.txt file and read the file every time someone is trying to
register to make sure the person has not registered. When you login, you need to
match the account with your phone number. After login, it will go into Deposit Menu
which displays how many points you already have which is zero when first registered.
3 Deposit Menu -> select an item to deposit -> enter weight -> machine opens
compartment door of that item -> user deposit -> success -> display points you have
earned and also total point accumulated. After 5 seconds, it will go back to the deposit
menu automatically.
4 Deposit Menu -> select any item -> cancel -> select another item -> enter weight ->
machine opens compartment doors of that item -> user deposit -> success -> display
points you have earned and also total point accumulated. After 5 seconds, it will go
back to the deposit menu automatically.
5 Deposit Menu -> select item1 -> enter weight -> select item2 -> enter weight ->
machine open compartment door of the 2 items -> user deposit -> success -> display
points you have earned and also total point accumulated. After 5 seconds, it will go
back to the deposit menu automatically.
6 Deposit Menu -> select an item -> enter weight more than capacity -> display
“Exceeded capacity, door will not open”. After 5 seconds, it will go back to the
deposit menu automatically.
7 The points earned can be withdrawn once the total number points reach 100. Every
100 points is equivalent to one yuan, and the corresponding points will be deducted
from the user's account. Create a menu to perform this transaction. Assume money
has been received by Alipay or Weixin.
8 In Maintenance Mode -> show current capacity and load -> empty a particular item ->
show current capacity and load.
9 In Maintenance Mode -> show current capacity and load -> empty the item that have
reached maximum capacity -> show current capacity and load.
10 In Maintenance Mode -> show current capacity and load -> empty all item -> show
current capacity and load.
11 Print all past transactions on the screen.
12 These transactions should have already been saved in a text file with “TransactionYYYYMMDD.txt”
format, E.g. Transaction-20241010, which records all transactions EEEE 2067 - Design and Implementation of Engineering Software
Department of Electrical and Electronic Engineering
performed on that day. Do not clear the records when the program is restarted. In
your video demo, just show the transactions for that day.
13 User needs to link his or her resident’s details. If the resident is linked, there will be no
limit on the number of times he or she can deposit. Otherwise, he or she will be limited
to five times. If the user is not linked to the resident number and has already deposited
five times -> a “deposit limit is reached” message will be displayed. To test this feature,
one user (account) should not be linked to the residence number.
14++ Show your special feature(s).
IMPORTANT NOTE: Each run result should be saved in the corresponding file, and restarting
the program should not overwrite the historical records.
Reminders:
(1) Provide adequate comments to enhance the readability of your codes.
(2) The Recycling machine program should comprise of multiple files e.g. headers,
implementation and main driver (e.g. *.h, *.cpp and main.cpp).
(3) Submission deadline is 5PM, 19 December 2024. 5% (out of 100% of this CW) will be deducted
per day of late submission.
(4) The following items are to be submitted to Moodle
a. Code package. A zip file EEEE2067CW-Name (E.g. EEEE2067CW-DavidChieng.zip)
containing your code, compiled binaries and project file in one folder. Please check if you
.exe file can run in a different machine.
b. UML design. A report containing your design and brief description (max 2 pages, one
page for diagram and another page for description. Remember to describe your advance
features here).
c. Video demo. Share it using OneDrive and put the link together with the UML design.
EEEE 2067 - Design and Implementation of Engineering Software
Department of Electrical and Electronic Engineering
Assessment Rubrics
This project comprises of 4 parts and each part can be an independent assignment according to
a typical software engineering process.
Category Marks (%) Description (What is excellent?) What to submit?
1. Design 20 Design a UML class diagram which captures
all the main requirements of the project
specification including special features. Also
clearly illustrates the relationship between
the classes.
3 page-PDF file
2. Coding 30 Correct implementation of classes and main
driver. Usage of pointers, arrays, DMA,
constructor and destructor. Clear and
concise remarks which explain the code.
Separation of header, implementation and
driver files in support of code recycling, and
maintenance.
Zip file
3. Video Demo 20 Clearly demonstrate the basic features as
required by the task list. Also demonstrate
advanced features.
OneDrive link
containing the
video demo. Put
the link in the 3-
page PDF file in
1.
4. Testing 30 • Functionality Test – demonstrate the
required and advanced features.
• User Interface Test - Nice and intuitive
user interface, easy to operate.
• Robustness Test - Able to handle wrong
inputs with input verifications. The
program doesn’t crash. Using exception
handing is highly recommended.
Nothing to
submit here.
Total 100
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代做 program、代写 c++设计程...
2024-12-23
comp2012j 代写、代做 java 设...
2024-12-23
代做 data 编程、代写 python/...
2024-12-23
代做en.553.413-613 applied s...
2024-12-23
代做steady-state analvsis代做...
2024-12-23
代写photo essay of a deciduo...
2024-12-23
代写gpa analyzer调试c/c++语言
2024-12-23
代做comp 330 (fall 2024): as...
2024-12-23
代写pstat 160a fall 2024 - a...
2024-12-23
代做pstat 160a: stochastic p...
2024-12-23
代做7ssgn110 environmental d...
2024-12-23
代做compsci 4039 programming...
2024-12-23
代做lab exercise 8: dictiona...
2024-12-23
热点标签
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
软件定制开发网!