Programming
Coursework 2425 © NCUK Ltd. 2023 Page 1 of 10
NCUK INTERNATIONAL YEAR ONE ENGINEERING
IDEPG001 Programming
Coursework
2024-2025
Coursework
The marks for each element are clearly indicated in the attached marking
scheme.
This assignment constitutes 70% of the total marks for this subject.
Programming
Coursework 2425 © NCUK Ltd. 2023 Page 2 of 10
The brief
A new leisure and sports club “Sports for You” want to interact with their members through
a new app. Part of this app is to allow the members to keep a history of activities they
have completed, and calories burnt.
You should write a program to demonstrate this part of the app, the program can read
data on available activities and calories burnt per hour from a file. (Please note: these
figures are not accurate; they are for the purpose of the coursework only). For this
demonstration, the app will enter details for one person only, the person can then enter
which activities they have completed and the duration of each activity, this information
can then be displayed back to the user with details of how much calories were burnt.
For your version of the app there are 5 fixed activities with data on calories burnt
depending on 4 fixed weight categories as follows:
Activity
Name
Calories burnt per hour in weight category
<50kg <70kg <90kg >=90kg
swim 300 400 450 500
boxing 450 500 580 620
yoga 100 110 120 130
weights 200 240 260 300
badminton 300 350 380 400
The data should be read from a file, example txt file as follows:
In this file each row represents an activity, and the calories burnt for that activity
dependent on weight category.
Column 1 stores the activity number, 1 = swim, 2 = boxing etc (these are fixed values).
Columns 2 – 5 represent the calories burnt per weight category.
Programming
Coursework 2425 © NCUK Ltd. 2023 Page 3 of 10
Application Requirements:
1. Read in the person’s name and weight in kilograms – store this in a struct. This
struct should also be used to store a list of workouts for the person, each workout
will hold information on activity number and calories burnt. Validate the weight
entered is within the range 30kg to 200kg.
2. Read the data from the file and store this.
3. Display the following menu options:
4. Option 1 display calories burnt by activity per hour.
It should show each activity name, and calories burnt per weight category. There
should be headings for each weight category. (see table on page 2)
5. Option 2 should allow the user to enter one or more than one workout. For each
workout they should select the activity they have completed and enter the
duration of the workout in minutes.
For each workout the program should calculate the number of calories burnt and
store the activity number and calories burnt.
6. Option 3 should display the persons name and weight and a list of each workout
they have entered. For each workout it should display the activity name and
calories burnt. Total calories burnt should be displayed at the end of the list. All
workouts entered should be visible throughout the duration of the program
execution.
7. Validation of inputs should be included as follows:
a. Menu choices should be limited to integers in the range of options.
b. Workouts should be a minimum of 10 minutes long and no longer than 2
hours.
c. The weight of the person should be within the range of 30 to 200kg.
d. You can assume there will be no more than 100 workouts entered for this
demonstration.
Programming
Coursework 2425 © NCUK Ltd. 2023 Page 4 of 10
Additional Functionality
The following list shows further suggested functionality you may implement to show further
knowledge and understanding within your assessment (see grading rubric). It is not expected that
you implement any or all of this.
1. Dynamic allocation of activity data.
2. Save the user data so it does not require re-input each time.
3. Save the workout data entered by the user to a file.
4. Any other suitable.
Suggested Data Dictionary for main components:
activity_no integer Number of the activity
chosen (1 for swim, 2 for
boxing etc)
activities[5] string array Name of each activity
(swim, boxing, yoga,
weights,badmington)
activity_data[5][5] integer array each row represents an
activity, (row 0 = swim)
col 0: activityNo
col 1: activity calories
burnt<50kg
col 2: activity calories
burnt<70kg
col 3: activity calories
burnt < 90kg
col 4: activity calories
burnt >=90kg
Person:
name
(Struct)
Char (20) Name of person
weight integer Weight to nearest kg
workouts[100][2] integer array each row represents a
workout for the person
col 0: activityNo
col 1: activity calories
burnt.
workoutNo integer Total number of workouts
completed for the person
Programming
Coursework 2425 © NCUK Ltd. 2023 Page 5 of 10
Guidance
1. Your program should be well structured and commented, with meaningful variable
names. Constants and user-defined functions should be used in appropriate places
for clarity and to reduce duplication.
2. The program should be developed in an incremental way, we recommend that you
start by creating the menus, and validation of the menu choices before moving
onto the more complex elements. Take note of any issues you have come across
and how you have resolved these – this will help you to demonstrate your
knowledge and understanding of the coursework.
3. Look carefully at the Coursework Instructions and grading rubric to ensure you
meet the requirements of the assignment in full. Ask your tutor if there are any
aspects that you do not understand.
4. At the end, it is recommended that you put your program through a pretty printer
to ensure it is consistently formatted.
Programming
Coursework 2425 © NCUK Ltd. 2023 Page 6 of 10
Coursework Instructions
Your coursework should be handed in as a report. The report should include each area below. To
demonstrate knowledge and understanding you should document all areas fully as instructed in each
part below. Refer also to Grading Rubric for each part.
請加QQ:99515681 郵箱:99515681@qq.com WX:codinghelp