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 代写IDEPG001 Programmingburnt 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.
  8. Dynamic allocation of activity data.
  9. Save the user data so it does not require re-input each time.
  10. Save the workout data entered by the user to a file.
  11. 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_data5 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
     workouts100 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
  12. 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.
  13. 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.
  14. 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. 
  15. 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.

    WX:codinghelp


wxdkkcb3
1 声望0 粉丝