AQA GCSE Computer Science Paper 1 (1A), June 2025: Question 3
8 marks · Hard difficulty · Programming
Write a C# program to calculate and output the total cost of a netball coaching session based on tiered pricing rules depending on the number of students.
Practise this questionQuestion
Question text
03 Write a C# program that calculates the total cost of a netball coaching session for a
group of students.
The total cost is calculated as follows:
• A booking fee of £20 plus:
o £5 per student if there are 15 students or fewer
o £3 per student if there are more than 15 students
• If there are more than 25 students, a booking fee of £100 and no other charges.
Your program should:
• get the user to enter the number of students
• output the total cost of the session.
You should use meaningful variable name(s) and C# syntax in your answer.
The answer grid below contains vertical lines to help you indent your code.
[8 marks]
Mark scheme
Show the mark scheme
Total
Question Part Marking guidance
marks
03 2 marks for AO3 (design) and 6 marks for AO3 (program) 8
Program Design
Note that AO3 (design) marks are for selecting appropriate techniques to
use to solve the problem, so should be credited whether the syntax of
programming language statements is correct or not and regardless of
whether the solution works.
Mark A for using meaningful variable names throughout;
Mark B for the use of a selection construct using the number of students;
Program Logic
Mark C for using user input and storing the result in a variable correctly for
the number of students;
Mark D for one correct Boolean condition to check number of students;
A. if the only error is quotes included around numeric values;
Mark E for correctly checking the number of students under all required
conditions; R. if any quotes included around numeric values;
Mark F for one expression that calculates total correctly, linked to the
condition for the intended pathway;
Mark G for expressions that calculate total correctly for each of the three
pathways;
Mark H for outputting only one total in an appropriate location that covers
all included pathways;
A. if 100 is output appropriately as part of a literal string under the correct
condition;
DPT use of £ sign in calculation or value assigned to variable
DPT for quotes around numbers
I. Case
I. Messages or no messages with input and output statements
I. Gaps/spaces throughout the code, except where to do so would explicitly
alter the logic of the code in a way that makes it incorrect.
Maximum 7 marks if any errors in code
Note to examiners
In C#/VB.NET examples, explicit variable declarations are not shown. Refer
to the specific language type issues section of the appropriate Marking
Guidance document. Any correct variable declarations in student answers
should be accepted.
C# Example 1 (fully correct)
All design marks are achieved (Marks A and B)
students = Convert.ToInt32(Console.ReadLine()); C
if (students > 25) { D
total = 100; F
}
else if (students > 15) { E
total = 20 + (3 * students); Part G
}
else {
total = 20 + (5 * students); Part G
}
Console.WriteLine(total); H
A. Write in place of WriteLine
I. missing Console.
Python Example 1 (fully correct)
All design marks are achieved (Marks A and B)
students = int(input()) C
if students > 25: D
total = 100 F
elif students > 15: E
total = 20 + (3 * students) Part G
else:
total = 20 + (5 * students) Part G
print(total) H
Python Example 2 (fully correct)
All design marks are achieved (Marks A and B)
students = int(input()) C
if students <= 15: D
print(20 + 5 * students) F
elif students > 15 and students <= 25: E
print(20 + 3 * students) Part G
else:
print(100) Part G
Python Example 3 (7 marks)
All design marks are achieved (Marks A and B)
No Mark E because > 25 is caught by students > 15 condition.
students = int(input()) C
if students <= 15: D
total = 20 + (5 * students) F
elif students > 15: Part E
total = 20 + (3 * students) Part G
elif students > 25: Part E
total = 100 Part G
print(total) H
VB.NET Example 1 (fully correct)
All design marks are achieved (Marks A and B)
students = Console.ReadLine() C
If students > 25 Then D
total = 100 F
ElseIf students > 15 Then Part E
total = 20 + (3 * students) Part G
Else Part E
total = 20 + (5 * students) Part G
End If
Console.WriteLine(total) H
A. Write in place of WriteLine
I. missing Console.
VB.NET Example 2 (7 Marks)
All design marks are achieved (Marks A and B)
No Mark E because > 25 is caught by students > 15 condition.
total = 0
students = Console.ReadLine() C
If students <= 15 Then D
total = 20 + (5 * students) F
ElseIf students > 15 Then Part E
total = 20 + (3 * students) Part G
ElseIf students > 25 Then Part E
total = 100 Part G
End If
Console.WriteLine(total) H
A. Write in place of WriteLine
I. missing Console.
How to answer it
Netball Coaching Cost Calculator (C#)
What this question tests
This question assesses your ability to design and write an algorithm in C# involving:
- User Input & Casting: Reading input and converting it to an integer ( Convert.ToInt32() ).
- Selection Constructs: Nested or chained conditional logic ( if / else if / else ).
- Relational & Boolean Logic: Correctly ordering boundary comparisons (> 25, > 15, ≤ 15).
- Arithmetic Expressions: Computing variable totals involving flat fees and per-student rates.
- Output & Naming Conventions: Printing the final result and using self-documenting variable names.
Question 03: Full Coding Solution
8 Marks • 2 Design (AO3) + 6 Implementation (AO3)
📐 Fee Breakdown & Decision Boundary Analysis
| Condition | Student Range | Cost Formula | Example (Students = 10, 20, 30) |
|---|---|---|---|
| Over 25 | > 25 | Flat fee: 100 | 30 students → £100 |
| 16 to 25 | > 15 and ≤ 25 | 20 + (3 × students) | 20 students → 20 + (3 × 20) = £80 |
| 15 or fewer | ≤ 15 | 20 + (5 × students) | 10 students → 20 + (5 × 10) = £70 |
✅ Model Answer (C#)
// 1. User input and casting // (Variable declaration can be explicit or implicit) int students = Convert.ToInt32(Console.ReadLine()); int total = 0; // 2. Selection logic (highest threshold first) if (students > 25) { total = 100; } else if (students > 15) { total = 20 + (3 * students); } else { total = 20 + (5 * students); } // 3. Single output covering all branches Console.WriteLine(total); 💡 Mark Scheme Breakdown (8 Marks)
Design Marks (AO3 - awardable even if syntax is imperfect):
- Mark A: Meaningful variable names throughout (e.g. students , totalCost ).
- Mark B: Use of a selection construct testing the number of students.
Logic Marks (AO3 - code correctness):
- Mark C: Getting user input and storing it as an integer in a variable.
- Mark D: One correct Boolean condition checking the number of students.
- Mark E: All boundary conditions correctly tested across all pathways.
- Mark F: One correct cost calculation expression linked to its branch.
- Mark G: All three pathway calculations completely correct.
- Mark H: Outputting only one final total in an appropriate location.
🧠 Top Exam Techniques
- Order Matters in if / else if : When chaining greater-than operators, test the largest number first ( > 25 then > 15 ). If you test > 15 first, any input like 30 will trigger the wrong branch!
- Alternative: Compound Conditions: If checking bottom-up, use logical AND ( && ):
if (students <= 15)
else if (students > 15 && students <= 25)
else - One Output Statement: Assign total to a variable inside each branch, then write Console.WriteLine(total); once at the bottom. This guarantees Mark H.
❌ Common Mistakes to Avoid
- Including '£' signs in maths: Never assign total = "£100" or 20 + "£3" * students . Arithmetic requires pure numbers (DPT penalty applied).
- Quotes around numbers: Writing if (students > "25") will cause Mark E to be refused.
- The "Greedy Condition" trap:
else if (students > 15) // catches 26, 30, 100! else if (students > 25) // DEAD CODE - NEVER REACHEDThis instantly loses Mark E. - Syntax Errors Limit Score: Under AQA rules, any syntax error caps your overall mark at 7/8. Remember semicolons and correct capitalization ( Console.WriteLine , not console.writeline ).
Topics
3.2 Programming · 3.2.1 Data types · 3.2.2 Programming concepts · 3.2.3 Arithmetic operations in a programming language · 3.2.4 Relational operations in a programming language · 3.2.7 Input/output
Question and mark scheme from the AQA GCSE Computer Science examination, Paper 1 (1A), June 2025. QuestionVault is an independent revision resource; questions remain the copyright of the awarding body.