辅导 IDEPG001、Java/c++程序设计讲解 
            
                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.
Part 1 – Design (30%)
You should produce the following design documentation:
Design 
Documentation
Instructions Total Marks
Pseudocode Pseudocode should be provided for 
Application Requirement 5 (page 3):
Enter one or more than one workout. 
You can assume the person details 
have already been entered and all data 
for activities is already read from the 
file. You may expand on the provided 
data dictionary for the pseudocode.
10
Flow Chart A Flow chart should be provided for 
Application Requirement 6 (page 3)
Menu Option 3: Display completed 
workouts.
10
State Transition 
Diagram (STD
A State Transition Diagram should be 
provided for the menu and submenu
system. 
10
Programming
Coursework 2425 © NCUK Ltd. 2023 Page 7 of 10
Part 2 – Test plan and Test Results (20%)
Details of what is to be tested, why, what was the expected outcome, remedial 
action if required. All tests should be supported by a screen shot proving the test 
was completed. 
You should produce the following as part of your testing documentation:
Test
Documentation
Instructions Total Marks
Test Plan You should produce a plan of what is to 
be tested and what is the expected 
outcome. All functionality should be 
tested with pre-determined inputs and 
expected outcomes.
8
Test Results Your test results should clearly show 
the outputs of the tests and any 
remedial action which was taken. 
6
Automated Unit 
Tests
You should demonstrate the use of 
automated unit tests, these can be 
used as part of the documentation for 
your test results.
** If this is not possible (please state) 
you can undertake and demonstrate 
different types of tests such as user 
experience tests(observations), 
accessibility testing; more detailed 
testing of requirements and additional 
requirements AND/OR use of a model 
program with command line 
arguments.
6
Programming
Coursework 2425 © NCUK Ltd. 2023 Page 8 of 10
Part 3 – Application (40%)
Application: 
The code must be suitably demonstrated for the marks to be awarded for this element. 
You should demonstrate knowledge within your report of the code you have created, 
this can be done by screenshots and explanations of the code. 
You should provide a full listing of your code in an appendix to your coursework and 
upload the c file.
Application
Documentation
Instructions Total Marks
Execution You should provide a fully working 
program written in the c language, 
covering all the application 
requirements listed on page 3.
You can exceed the application 
requirements, suggested additional 
functionality is listed on page 4, or you 
may choose to use some of your own 
ideas to show further knowledge and 
understanding.
20
Usability Screenshots of your code executing to 
demonstrate how the user interacts
with the application.
4
Quality Code listing and explanations, evidence 
through tests that the code produces 
the correct outputs.
8
Evidence of 
Comprehension
Documentation should show evidence 
of your refinement of code, errors or 
issues you came across and how these 
were resolved and explanations of 
areas of your code.
8
Part 4 – Review (10%)
Review: A suitably written reflective report communicating your learning through the 
assignment, the skills you have developed and areas that need further improvement.
Reflection of assignment You should reflect on your 
work throughout the 
coursework.
4
Skills Developed Where did you develop 
skills – what did you do 
well?
3
Areas Requiring further 
improvement.
Moving into the future 
what would you require to 
improve?
3
Programming
Coursework 2425 © NCUK Ltd. 2023 Page 9 of 10
Grading Rubric
Criteria Assessed
Element
Acquisition and application of requisite knowledge
Novice [0 –
39%]
Beginner [40 
–49%]
Competent
[50 – 59%]
Proficient
[60 – 69%]
Expert [70 
– 100%]
Quality of 
models.
30%
Pseudo code 
(10%) Flow 
chart (10%) 
STD (10%)
Very poorly 
presented 
models 
inappropriat
e or wholly 
ineffective.
Issues with 
models which 
undermines 
the 
appropriatenes
s and efficacy. 
But there is 
clear evidence 
of effort in the 
attempt and 
techniques are 
identifiable. 
Acceptable 
models though 
there are 
minor issues 
with 
appropriatenes
s and efficacy
and/or 
notational 
errors.
No noticeable 
limitations in 
the models.
Techniques 
have been used 
to an 
appropriate 
standard 
though there 
may be some 
minor 
omissions or 
errors that 
reduce the 
completeness 
of the models.
Models are 
extremely 
effective and 
professionally 
presented, 
notations 
have been 
used 
appropriately 
and the 
models wholly 
map to the 
provided 
solution.
Test 
documentatio
n
20%
Plan including 
reason for 
testing, 
expected 
result, actual 
result and 
evidence of 
remedial 
action and 
test execution
Very poor 
testing, 
major 
functionality 
untested 
and/or lack 
of any real 
plan, 
evidence of 
execution or 
management
.
Basic level of 
testing evident 
though errors 
and omissions 
evident and 
the plan has 
evidence of 
test executions 
though it is not 
convincing in 
its application 
or 
management.
Satisfactory 
plan testing 
the major 
executable 
functions of 
the system 
and evidence 
of tests being 
executed and 
managed but 
not 
compelling.
Good plan with 
significant 
majority of the 
system tested 
as required 
with minor 
omissions. 
Clear evidence 
of execution 
and 
management.
Excellent and 
comprehensiv
e plan; 
comprehensiv
e evidence of 
the tests 
being 
executed and 
managed.
Application
40%
Execution 
(50%)
Application is 
limited in 
features, 
poorly 
engineered 
lacking 
robustness 
and 
extensibility 
and rigour.
Application has 
most of the 
required 
features 
evident though 
lacks thorough 
engineering 
leading to 
insufficient 
extensibility 
and/or 
robustness 
with limited 
rigour evident.
Acceptable 
solution 
thorough not
convincingly
engineered 
which may 
limit 
extensibility 
and/or 
robustness, 
rigour is 
deficient.
Solution is well 
engineered 
with evidence 
of extensibility. 
There may be 
some minor 
lack of 
robustness 
and/or 
features, or 
rigour
Wholly 
professional 
approach with 
solution well engineered, 
robust and 
extensible.
Usability 
(10%)
No 
interaction 
and very 
limited 
output.
System 
functions but 
there is no 
interaction and 
only minimum 
output.
Acceptable 
usability 
though no user 
interaction to 
load data 
and/or very 
basic output.
Good, usable 
application with 
basic user 
interface 
provide, loads 
data as 
required and 
has the 
minimum 
output well 
displayed.
Excellent, 
near 
professional 
quality 
interface and 
interactivity. 
User has 
freedom to 
load data and 
the outputs 
are extensive 
with excellent 
presentation.
Quality (20%) Program 
does not 
produce 
correct 
results; the 
standard of 
coding is 
poor with no 
real attempt 
to meet a 
Code executes 
and results are 
produced but 
they are not 
validated 
and/or the 
standard of 
the code is 
basic.
Acceptable 
quality with 
clear evidence 
the correct 
result is 
produced, the 
standard of 
coding is 
acceptable 
though there 
are clearly 
Good quality 
throughout, the 
application 
executes as 
required and 
results are valid 
code quality 
has some 
issues such as 
pretty printing 
or naming 
Excellent 
quality, 
executes as 
required, 
results are 
valid and 
code is 
professionally 
presented.
Programming
Coursework 2425 © NCUK Ltd. 2023 Page 10 of 10
quality 
threshold.
issues with 
consistency.
convention not 
consistent.
Evidence of 
comprehensio
n (20%)
Lacking, 
student 
appears 
unable to 
explain the 
code and 
features 
used and 
had very 
little 
evidence of 
skills being 
acquired and 
applied.
Basic evidence 
of 
comprehension
, can explain 
the major 
parts of the 
program 
though lacking 
evidence of 
understanding 
the more 
complex 
language 
features 
applied. Skill 
level was 
sufficient to 
complete the 
basic tasks but 
not more 
advanced 
work.
Acceptable 
though there 
are some more 
fundamental 
areas that the 
student is not 
so confident 
explaining or 
has 
misunderstood
. They display 
the skill level 
expected to 
succeed with 
the 
assignment.
Good 
knowledge of 
the code 
though not 
comprehensive 
or compelling 
they are able to 
explain the 
main features 
of the program 
and how it 
executes and 
display an 
above average 
skill in their 
work.
Excellent, 
student fully 
understood all 
the work 
submitted, 
could explain 
the 
relationship 
between the 
model and 
the code, the 
how the 
program 
executes and 
showed well 
above 
average and 
skill in the 
production of 
the work.
Review
10%
Degree to 
which you 
have reflected 
appropriately 
on the work 
you have 
produced, the 
lessons learnt, 
strengths and 
weaknesses 
etc.
Not a 
reflective 
account, 
details are 
presented 
as is rather 
than 
considering 
the impact 
upon the 
learner.
Evidence of 
some 
reflection 
rather than 
just a 
narrative of 
the process 
though not 
consistent.
Clear 
evidence of 
reflection 
though 
lacking depth 
and some 
objectivity.
Reflection is 
evident 
throughout 
identifying 
areas of 
development 
and skill 
acquisition 
though minor 
inconsistencie
s present.
Deeply 
reflective 
account with 
clear 
evidence of 
developmen
t and skill 
acquisition 
along with 
evaluation 
of previous 
skill and 
knowledge 
deployment.