RBE104TC C/C++ Programming Language
Assignment 1
Contribution to the Overall Marks 30%
Issue Date
Submission Deadline 13th October 2024
Assignment Overview:
This assignment is geared towards assessing fundamental coding concepts in C/C++ and
initiating the process of code development using the software development process (SDP)
discussed in relevant lectures.
In composing the SDP report [in English], we request you to fulfil the following criteria:
• Design: Clearly explain your understanding of the given problem and specify a sequence of
steps necessary to accomplish the task (illustrated through flowcharts).
• Coding Progress: Attach 3-5 screenshots that show the code and running results as evidence,
particularly highlighting any errors or situations you believe are valuable to document. The
corresponding 3-5 versions of the C code should also be saved. All files must clearly
demonstrate the progression of your programming task from the initial stage to the final version.
• Analysis: Describe the files submitted in the Coding Progress section. Discuss the expected
results, any encountered or unexpected errors, and your solutions to those issues.
• Implementation: The C code must be submitted in a separate file. Please specify the file
name and provide instructions for user operation.
• Testing: Describe how you tested and validated your code for required functionalities, as
well as its robustness.
Exercise 1 (50%):
Write ONE C Program to accomplish the following task: Convert a double number to its
hexadecimal form.
Constraints:
1). The double number x is located between 0 and 1000 (0 <= x < =1000), e.g. 678.345;
2). The double number with the hexadecimal form contains 6 significant digits. e.g. The
hexadecimal form of “678.345” is “2A6.5851EB”;
3). The double number with the hexadecimal form is represented by a string (or a character
array), e.g. “2A6.5851EB”.
4). If illegal user input is detected, the software should be capable of informing the user and
enabling re-input to meet the software robustness requirement;
Advice:
It is strongly suggested that you should read the relevant lecture notes on the Learning Mall
before you write down your own codes. The note will help you design a correct program,
especially the design of loop structures and the usage of the arrays.
The possible steps are as follows:
1). Split a double number into the integer part and the fractional part;
2). Convert the integer part into its hexadecimal form;
3). Convert the fractional part into its hexadecimal form;
4). Combine both parts into a string;
Exercise 2 (50%):
Write a C program that can perform the following operations:
• Read the following from the keyboard and store them in appropriate variables:
• A full name (e.g. John Smith);
• A telephone number (e.g. 12345678900) assume all phone numbers are with 11 digits;
• A 2-digit decimal number as the Patient ID (e.g. 45);
• A temperature in degrees Celsius (e.g. 36.5°C), which should be within the range of 34.0°
C to 44.0°C.
• A height in centimeters (e.g. 177cm), which should be within the range of 140cm to
230cm, with an accuracy of 1cm.
• A weight in kilograms (e.g. 85.0kg), which should be within the range of 40.0kg to
140.0kg.
• Print the patient's ID on the screen in decimal, octal, and hexadecimal formats (e.g., 45,
55, 2D);
• Convert the temperature from degrees Celsius to degrees Fahrenheit and degrees Kelvin,
store the values in appropriate variables rounded to the nearest whole number, and print
them on the screen (e.g., 10°C, 50°F, 283K);
• Determine if the patient is sick based on their temperature (temperatures higher than
37.2°C or lower than 36.0°C will be considered sick);
• Calculate the patient's BMI (Body Mass Index) and determine if they are severely
overweight, overweight, normal, underweight, or severely underweight;
• Print a conclusion, for example: "The patient's name is John Smith, his phone number is 12345678900, his patient ID is 45. His current temperature is 36.5°C, not sick. His height
is 177mm, weight is 85.0kg. He is overweight."
If illegal user input is detected, the software should be capable of informing the user and
enabling re-input to meet the software robustness requirement;
Hint:
The BMI formula is:
The BMI Categorization is:
Less than 16 Severely Underweight
Between 16 and 18.5 Underweight
Between 18.5 and 25 Normal
Between 25 and 30 Overweight
Large than 30 Severely Overweight
What should be submitted?
• You should submit the followings two:
1. A concise report (with text spanning a few pages) accompanied by C source codes. This
report should delve into the specifics for each question:
- Detail SDP steps 1 to 3 within the report (Design + Coding Progress + Analysis),
accounting for 30% of the evaluation.
- Encompass SDP step 4 (Implementation + Robustness) with your source code. Your code
should correspond with the final screenshot provided in the Coding Progress section and
include appropriate comments. Implementation contributes 35% while Robustness adds
5%.
- Elaborate on SDP step 5 (Testing), elucidating how you validated the correctness,
robustness, and thoroughness of your codes. Employ screenshots and ample explanations
as verification, encompassing 20% of the evaluation.
- The overall quality of the report accounts for 10% of the evaluation.
2. All C/C++ source code files, including files from different stages corresponding to the
screenshots.
• For a comprehensive grading scheme, please consult the Marking Guidelines available on
the Learning Mall system.
• The report must be saved in PDF format. Place the report in the same folder with source code
files and compress the folder into a single zipped file. Your final submission should include:
- Zipped file containing:
- The report
- The source codes
• The naming convention for the submitted Report and source code files should adhere to the
subsequent format:
- StudentID_LastName_FirstName_AssignmentID.pdf
- StudentID_AssignmentNumber_ExerciseID_SSScreenShotNumber.c/cpp
- StudentID_LastName_FirstName_AssignmentID.zip
As an illustration:
The report and C source files would be placed in the same folder as follows:
The folder would be compressed to the ultimate zipped submission file, and it would be named: • 1234567_Albert_Einstein_1.zip
How the work should be submitted?
Submission should take place electronically through the Learning Mall system, enabling us to
execute your software during the assessment. Additionally, feedback will be provided via the
same Learning Mall system.
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp