Department of Electrical & Electronic Engineering
University of Nottingham Ningbo China
Introduction to Software Engineering and
Programming
EEEE1044
COURSEWORK 2
Submission Deadline: 3:00pm, Wednesday, 6 December, 2023
Submission Type: Moodle
Submission Document: ONE .c file OR ONE zipped folder
2023/2024
1. Design a user friendly welcome screen based on the requirements in 2 ~ 5, in order to make clear the
following aspects:
What does this program accomplish?
What kind of information the user need to input?
What are the requirements for the inputs?
Figure 1 Resources of edge lengths for the triangle
2. In function main(), prompt the user to input 2 numbers as the 2 edge lengths of a triangle, e.g. 50cm, 10
dm, corresponding to Input 1 and Input 2 shown in Figure 1, respectively. The units that are supported by
the program include:
Meter, the unit for user input is m
Decimeter, the unit for user input is dm
Centimeter, the unit for user input is cm
The inputs should meet the following conditions:
The values should be greater than zero;
The unit for each length should be one of the units supported by the program;
The units for the 2 lengths entered by the user can be different;
If any of the conditions above is not satisfied, display one of the error messages below whichever
appropriate, and prompt the user to input again until valid inputs are obtained.
Error!! The value entered is less than 0!
or
Error!! The unit entered is not supported by the program!
3. Use the first external function to convert the input units into centimeters, then return the lengths in
centimeters back to main().
Note: Think about the argument list for the first external function, and global variable is NOT allowed.
Input 1
(a)
Input 2
(b)
Random length from program
(c)
4. In function main(), check if both lengths are ≥ 10 cm, if not, display the following error message and
prompt the user to input again until valid inputs are obtained. The lengths in centimeters will be used for
all the following calculations.
Error!! The length is less than 10 cm!
5. In function main(), if one length is less than 10% of the other length, display the following error message
and prompt the user to input again until valid inputs are obtained. For example, if the two inputs are
500cm and 100mm, 100mm is less than 50cm (500cm × 10% = 50cm), so the user need to input again.
Repeat step 2 ~ 5, until the valid inputs are obtained.
Error!! One length is less than 10% of the other!
6. In the second external function, use rand() to generate a random number as the third edge length for
the triangle, the unit of which is presumed to be centimeter by default and no need to convert unit for the
third edge length. The random number should meet the following requirements:
The third length, c, should be less than the sum of the 2 input lengths, i.e. c < (a + b)
The third length, c, should be greater than the absolute value of the difference between the 2
input lengths, i.e. c > |a – b|
In the second external function, display the 3 edge lengths for the triangle in the following format. The
third edge length need to be returned back to function main() for later calculation.
Display 1:
Edge length 1 (input 1): 50 cm
Edge length 2 (input 2): 100 cm
Edge length 3 (rand): 75 cm
Note: Characters in yellow are examples, and the actual numbers should be the numbers calculated or
generated in your program. Global variable is NOT allowed.
7. In function main(), use Heron’s Formula to calculate the area of this triangle (Equation 1). Find the
maximum length from the 3 edges, and calculate the height of this triangle using Equation 2. Display both
results following the format shown in the image below.
𝑆 =
1
4
√(𝑎 + 𝑏 + 𝑐)(𝑎 + 𝑏 − 𝑐)(𝑎 + 𝑐 − 𝑏)(𝑏 + 𝑐 − 𝑎) Equation 1
𝐻𝑒𝑖𝑔ℎ𝑡 =
2𝑆
𝑀𝑎𝑥𝐿𝑒𝑛𝑔𝑡ℎ
Equation 2
Display 2:
The area of triangle is 1815.46 cm2
The height of triangle is 36.31 cm
Note: Characters in yellow are examples, and the actual numbers should be the numbers calculated or
generated in your program.
8. In the third external function, complete the following tasks:
1) Find the maximum edge length from the 3 edge lengths passed from function main().
2) Calculate the half value of the maximum edge length, and scale the half value within the range of
1 ~ 10 (both inclusive), and the scaled number will be used as the row number. For example, the
maximum edge length in the example is 100 cm (50cm, 100cm, 75cm), and its half value is 50 cm,
then it is scaled to 5, and 5 will be the row number.
3) The height of the triangle should also be scaled within the range of 1 ~ 10 (both inclusive) and this
value will be used as the column number. For example, the height of the example triangle is
36.31cm, then it is scaled to 3.63 cm, and 3 will be the column number.
4) Use the row number from step 8.2 and the column number from step 8.3 to draw a triangle pattern
use the symble ‘*’. The number of ‘*’ to be printed on each row follows Equation 3. Note: only the
integer part of the result calculated by Equation 3 is kept for pattern printing.
𝑁𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 ∗ 𝑜𝑛 𝑖
𝑡ℎ
𝑟𝑜𝑤 = (𝑖𝑛𝑡)
𝐶𝑜𝑙𝑢𝑚𝑛𝑁𝑢𝑚𝑏𝑒𝑟
𝑅𝑜𝑤𝑁𝑢𝑚𝑏𝑒𝑟
× 𝑖 Equation 3
Figure 2 The printed patter is half of the yellow triangle in this figure.
Note: there should be only 3 external functions in this program, and no additional functions are allowed.
Maximum edge length
Height
Assessment Criteria
Based on the principles of effective and efficient software engineering practice, this coursework
will be assessed using the criteria as shown below.
Component Weighting
Completion of the Task 50%
Data Type Usage and Memory Efficiency 10%
Program Structure (Algorithm) 10%
User-Friendly Interface 10%
Satisfaction of System Requirement 10%
Comments 10%
Total 100%
Assessment Platform
All the submissions will be assessed by the CodeBlocks installed on University computers. Any
programs that cannot be executed successfully on University computers will not be assessed by
any other ways, e.g. by using a different IDE on your own laptop.