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 smallobjects and functions.LO2 Design scalable object-oriented software with an appreciation of a largerenvironment encompassing code recycling, maintenance, expansion and issues ofrobustness.Main ObjectiveYour main objective is to develop a smart recycling machine software according to the givenrequirements below. A typical recycle machine is shown in Figure 1.Figure 1: A Typical Recycle MachineTasks or Requirements (What should this machine do?)
- On the starting menu:
- Menu for User Registration and login.
- Menu for Maintenance login.
- After login:
- Display name, phone number and current points.
- Display item name and points per kg as shown in Table 1.
- 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
- 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.
string2weightWeight of the item to be deposited in kg.intNo. Function
Description
Type
1Member functionsRelevant assessors and mutators functions. Don’tforget constructors and destructor.functionTable 4: Members of RecycleItemStatus classNo. Variable Description Type 1itemNameName of the item in the machine e.g. paper,plastic, glass, etc.string2maxCapacityMaximum capacity.
int3urrentLoadCurrent load of item in the machine. E.g. howmany kg of paper in total in the machine.int4pointsPerKgNumber of points per kg of item deposited.
intNo. Function Description Type 1functionTable 5: Members of RecyclingMachine classNo. Variable Description Type
1paperStat,glassStat, …Machine will contain RecycleItemStatusfor the recycled items.RecycleItemStatus2locationLocation of the machine. E.g. UNNC, Jintianfu,Manor, …
string3usr1, usr2, …Machine will contain User objects to represent
users who are registered.UserEEEE 2067 - Design and Implementation of Engineering Software Department of Electrical and Electronic EngineeringNo. Function/Variable
Description Type
1RecyclingMachine
Constructor which initializes the recycling
machine based on the data provided in Table 1and 2 by reading item_point.txt and capacity.txt.function2startupMenuA function that allows the machine to display thestartup menu as stated in Task1 .function3depositMenuA function that allows the machine to display thedeposit menu as stated in Task2.3registerUserA function that allows machine to register user.The new user should be added to the fileaccount.txt.functionuserLogout function that allows the user to log out of the
machine. Upon logout, the system should returnto the login menu, allowing another user to logfunction6depositItemA function that allows user to deposit items to theachine after login. The user is allowed todeposit 代写EEEE 2067 - Design and Implementation of Engineering more than one type of item per time.Provide the right condition to handle the casewhen reaching the maximum capacity. The user
is also allowed to cancel at any point and go backto the starting menu. Upon successful depositperation, the function will update the currentload in capacity.txt and don’t forget to add pointsto the user.function7emptyLoadA function in the maintenance mode that allowsoperator to empty a particular type of item or thewhole machine. Take note of the maximumcapacity. This menu is only accessible by themachine operator.function
8printTransactionA function in the maintenance mode that allowsthe machine to display the past transactions onscreen also save the record with the filename“Transaction-YYYY-MM-DD.txt”. This menu isonly accessible by the machine operator.function9Member functionsRelevant assessors and mutators functions. Don’tforget destructor.functions10Advanced function(s)Create at least one special function which is otstated in the requirements.Suggestion: increase the number of locations forthe recycling machine. Even if the resident’sinformation is linked, if you are not in theapartment where the current recycling machineis located, they can only dispose of items as afunctionEEEE 2067 - Design and Implementation of Engineering Software Department of Electrical and ElectronicEngineeringguest, meaning they are still limited to fivedisposal attempts. You should also demonstratethis feature according to demo step in the nextsection. Note: match the “location” variable
he accumulated reward points of the accountholder.double4residenceThe residence name of the user e.g. “Block215”.f the user is unlinked to this residence, thisNo. Function
Description Type 1Member functionsRelevant assessors and mutators functions suchas addPoints, setResidence, etc. Don’tforget constructors and destructor.
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 1Demonstrate initialization of the recycling machine with itemslisted in item_point.txt.Proof that you can change the category’ name, points per kg of an item during thedemo by changing the item_point.txt.2Startup Menu -> Create an account with your name and phone number. Store theaccount info in account.txt file and read the file every time someone is trying toregister to make sure the person has not registered. When you login, you need tomatchthe account with your phone number. After login, it will go into Deposit Menuwhich displays how many points you already have which is zero when first registered.3and also total point accumulated. After 5 seconds, it will go back to thedepositmenu automatically.4Deposit Menu -> select any item -> cancel -> select another item -> enter weight ->machine opens compartment doors of that item -> user deposit -> success -> displaypoints you have earned and also total point accumulated. After 5 seconds, it will go
back to the deposit menu automatically.5Deposit Menu -> select item1 -> enter weight -> select item2 -> enter weight ->machine open compartment door of the 2 items -> user deposit -> success -> displaypoints you have earned and also total point accumulated. After 5 seconds, it will goback to the deposit menu automatically.6Deposit Menu -> select an item -> enter weight more than capacity -> display“Exceeded capacity, door will not open”. After 5 seconds, it will go back to thedepositmenu automatically.7The points earned can be withdrawn once the total number points reach 100. Every100 points is equivalent to one yuan, and the corresponding points will be deductedfrom the user's account. Create a menu to perform this transaction. Assume moneyhas been received by Alipay or Weixin.8In Maintenance Mode -> show current capacity and load -> empty a particular item ->show current capacity and load.9In Maintenance Mode -> show current capacity and load -> empty the item that havereached maximum capacity -> show current capacity and load.
10In Maintenance Mode -> show current capacity and load -> empty all item -> showcurrent capacity and load.11Print all past transactions on the screen.12These transactions should have already been saved in a text file with “TransactionYYYYMMDD.txt” format, E.g. Transaction-20241010, which records all transactionsEEEE 2067 - Design and Implementation of Engineering Software Department of Electrical and Electronic Engineeringperformed on that day. Do not clear the records when the program is restarted. In your video demo, just show the transactions for that day. 13User needs to link his or her resident’s details. If the resident is linked, there will be nolimit on the number of times he or she can deposit. Otherwise, he or she will be limitedto five times. If the user is not linked to the resident number and has already depositedfive times -> a “deposit limit is reached” message will be displayed. To testthisfeature,
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 deductedper day of late submission.
(4) The following items are to be submitted to Moodle
- 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.
- UML design. A report containing your design and brief description (max 2 pages, onepage for diagram and another page for description. Remember to describe your advancefeatures here).
- Video demo. Share it using OneDrive and put the link together with the UML design.EEEE 2067 - Design and Implementation of Engineering SoftwareDepartment of Electrical and Electronic Engineering
Assessment Rubrics
This project comprises of 4 parts and each part can be an independent assignment according to
标签:machine,capacity,item,Implementation,EEEE,will,Engineering,user From: https://www.cnblogs.com/CSE2425/p/18609886