King Hussein Faculty of Computing Sciences
Department of Computer Science
Structured Programming Lab – Section 15
Lab Assignment #3 – Conditional operators
Thursday 20/3/2025 @ 2:00 to 5:00 pm
Spring 2024/2025
Total Mark / 10
Lab #3 Objectives
● equality and relational operators
● logical operators (AND, OR, NOT)
● Equality (==) and assignment (=) Operators.
● precedence of operators
● if selection statement
● if ...else selection statement
● The conditional operator ( ?:)
● nested if ... else statements
● switch multiple-selection statement
●
Page 1 of 6
Part I: Lab Example
Example – Student Grade Evaluator
The student will implement a simple grade evaluation system where:
A random score between -10 and 110 is generated.
The program assigns a letter grade based on the score.
The program prints a message based on the assigned grade.
Introduction:
The student will implement a simple grade evaluation system where:
A random score between -10 and 110 is generated.
The program assigns a letter grade based on the score.
The program prints a message based on the assigned grade.
Steps to Follow:
Define a function getGrade() that:
o Takes the score as a parameter.
o Returns the letter grade based on standard grading criteria.
If the score is out of range (less than 0 or more than 100), return '0'.
If the score between 90 and 100 return A
If the score between 80 and 90 return B
If the score between 70 and 80 return C
If the score between 60 and 70 return D
If the score between 50 and 60 return E
If the score less than 50 return F
Define another function printMessage() that:
o Takes the letter grade as a parameter.
o Uses a switch statement to print feedback based on the grade (See code below).
Inside the main () function:
o Declare an integer variable to store the randomly generated score.
o Use rand () to generate a random score between -10 and 110.
o Call getGrade() to determine the letter grade.
o Display the generated score and letter grade using printf().
Call printMessage() to display an appropriate message.
Sample Output
Your grade as number is: 85
Your grade as char is: B
Good job! Keep it up.
Page 2 of 6
Solution
Page 3 of 6
PART II: Lab Exercise
On the desktop, create a folder named Lab3 followed by your id inside it Create project named
Lab3Ex1.
Exercise 1 –Determine Queue State
Exercise Objectives
Code reuse.
Switch multiple-selection statement
Using if else statements.
Problem Description
Create a program that determines the state of a queue based on its current size compared to its
maximum capacity. The user will enter the current queue size and the maximum queue capacity,
and the program will return whether the queue is empty, half-full, or full.
Steps to Follow:
1. Declare integer variables for queue size and maximum capacity.
2. Define a function getQueueState() that:
o Takes the current queue size and maximum capacity as input.
o Returns -1 if the queue is empty.
o Returns 1 if the queue is full.
o Returns 0 otherwise.
3. Inside the main() function:
o Ask the user to enter the current queue size and maximum queue capacity.
o Call getQueueState() to determine the queue state.
o Use a switch statement to print:
"Queue is empty" if the function returns -1.
"Queue is half-full" if the function returns 0.
"Queue is full" if the function returns 1.
o If the user enters invalid values (negative queue size or zero/negative capacity),
print "Invalid input!".
Sample Output
Example 1 (queue is empty)
Enter current queue size: 0
Enter maximum queue capacity: 10
Queue is Empty
Example 2 (queue is half full)
Enter current queue size: 5
Enter maximum queue capacity: 10
Queue is Half Full
Page 4 of 6
Example 3 (queue is full)
Enter current queue size: 10
Enter maximum queue capacity: 10
Queue is Full
Example 4 (invalid input)
Enter current queue size: -2
Enter maximum queue capacity: 10
Invalid input!
Page 5 of 6
PART III: Extra Lab Exercises
Exercise 1 –Character Classification: Check if a Character is a Letter
Write a C program that do the following:
Write a function named is_Letter that takes as argument a single char and returns 1 if the
character is a letter or 0 otherwise.
Write a main function that test the previous functions
Note:
Capital letter Alphabets (A-Z) lie in the range 65-91 of the ASCII value
Small letter Alphabets (a-z) lie in the range 97-122 of the ASCII value
Any other ASCII value is a non-alphabetic character.
Sample Output
Enter Character
A
A is letter
Enter Character
5
5 is not letter
Exercise 2 –Modify Even Digits with Random Even Numbers
Write a C program that does the following:
Write a function named modifyNumber that takes a 4-digit integer as an argument.
o The function should modify the number such that:
If a digit is even, replace it with a random even number (between 0 and 8).
If a digit is odd, leave it unchanged.
o The function should return the modified number.
In the main function:
o Prompt the user to enter a 4-digit number.
o If the entered number is not a valid 4-digit number, display an error message and
exit.
o Call the modifyNumber function and display both the original and modified
numbers.
Sample Output
Enter a 4-digit number: 2486
Original number: 2486
Modified number: 2266
Page 6 of 6