Software and Embedded Systems Laboratory 2 (ELEE08022)

Assignment of C language part

Submission due at 4.00pm on Thursday 1st April 2021


1. Preamble

Selecting a suitable mortgage deal from a wide range of available mortgage products on the market is an important decision to make for many property buyers. In this assignment, you are asked to develop a C program to select the suitable mortgage deals from a mortgage.txt database, according to the customer’s requirements. You need to download mortgage.txt database from the Assessment area of the course Learn page, then save it into your assignment project folder. The database file contains many mortgage deals. Each row contains following mortgage information separated by a space:

An example code below gives you an idea of how to read data from a txt file. A data.txt file can be downloaded from the Assessment area in the course Learn page.


2. Assessment Task

Design, construct and test your program to store data of one mortgage deal in a structure. Each structure should be an element of such a structure array. Prompt a single line of text containing the following requirements a customer can accept:

Remember to add an instruction fflush(stdout); after your printf( ); prompt. When running your program, type in a single line of data corresponding to the customer’s mortgage deal requirements. In the requirements line, Minimum duration of deal, Minimum loan to value and Maximum product fees are given as integer values, but Maximum initial interest rate and Maximum rate thereafter are given as float values with two decimal points. Each value is separated from others by a space. An example requirements line is shown here:

  2 2.50 4.50 60 1000

After read in such a line, your program should search through the structure array, to find and print the suitable mortgage deals, which can satisfy customer’s requirements. If more than one mortgage deal can meet customer’s requirements, it is better to print them in the order of increasing Initial interest rate. If the mortgage deals have the same Initial interest rate, sort the deals in the order of increasing Product fees. If you cannot manage sorting, just print them following their default orders in the database.

Having processed one requirements line, your program should then prompt for another and repeat the searching and printing task. For any reason, if no matching deal can be found for a requirements line, your program will simply repeat the prompt for another requirements line. This process should continue until a character ‘q’ is input to terminate your program.

Your program should be able to handle a database of up to 50 mortgage deals, but it should be designed so that this limit can be changed by editing a single line in the program, then re-compiling it.


3. Observations on the Task

Before attempting a solution, you should carefully analyse this problem specification. Record your problem analysis and design process in your lab book.

Proper use of functions, along with testing of each function individually before integration into the complete program, will assist in ensuring correct operation, as well as giving a readable and maintainable program with a clear modular structure. Such an approach will make it possible to create a simplified version of the program early on.

When testing your program, you should identify and test difficult or sensitive parts of the program, by designing test input and comparing the output of your program with the expected correct output. Keep your testing process in your lab book as well. You should comment on your code throughout to explain the meaning of the key instructions. You are expected to use as many knowledge taught in five C language sessions as possible, such as pointer.


4. Submission

If you think your program can satisfy the specific requirements, you can find your C program file in the src folder of your project folder and rename it as sxxxxxxx.c (xxxxxxx is your matriculation number). Finally submit it to the dropbox on Learn.


PLEASE NOTE

Submission must be made before 4.00pm Thursday 1 st April 2021

This is a formal course assessment for individual credit

The program submitted must be your own work, not the result of collaboration or conspiracy with another person.

The similarity of the program will be checked and plagiarism will be reported


A submission on or after the deadline is a late submission and the late penalty will be applied. You may re-submit versions of your program up to the deadline, without penalty. Only the latest version submitted will be retained and assessed. If you have already submitted before the deadline, you are not allowed to re-submit late for any reasons. The time of submission is recorded in the computer timestamp of the received copy file.

You may choose to develop your program on a platform rather than the IDE used in this lab course. In that case, you must check, before submission, that your program behaves as you expect when compiled and executed on the course IDE. The correctness will be assessed on the basis of compilation and execution, in addition to inspection of the source code.