Program for implementation of a data storage system, C/C++ Programming

Assignment Help:

Introduction: 

This assignment requires a knowledge of variables (integers, char types), loops, conditionals, switch, functions, char arrays, string arrays, number arrays, structs, character input and output, file I/O, string functions, static and function calls.   

The assignment:

Develop and submit an original implementation of a Data Storage System. The user will be presented with a login screen based on the solution to assignment 2. Once logged in, the user will be presented with a menu offering the following options:

New Application

View Applications

Delete Application

New User

New Application added functionality of data storage in a loan file. Assume that all data fields are compulsory. View Applications will present a numbered list of 1-line summaries of each stored application. Only the name and application date will be displayed. The user can select an application (by typing its number) to see the entire application.

Delete will display the same numbered list, but the application data will be deleted from the loan file if the user selects an entry.  New User will prompt for a user name and password.  The user name must not already be in use.  The new user name and password hash will be written to the passwd file.      

  • This assignment must be written in C and must compile and run on BA computer lab PCs using Quincy 2005 v1.3. Build options must include Strict ANSI/ISO compliance, C99 support and must compile with no warnings when the All Warnings option is selected.
  • Your code must have appropriate comments including your names and student numbers, the name of the .c file, the purpose of the program, brief explanations of variables and explanations of any code which is not obvious to another programmer.
  • All code can be placed in user-defined functions. The main function should only contain the opening menu system and relevant function calls.
  • Bonus marks (5% of the total mark for the assignment) will be awarded if the arrays of loan and applicant structs are allocated dynamically (using malloc(). The alternative (without the bonus marks) is to use conventional arrays of structs.

Hints:  

1. Adapt the code from assignment 2 to either give access to or deny access to the menu

2. Write a simple switch-based menu routine which calls functions (see the lecture on switch)

3. Store the sample loan information in a text file.  

4. Define a struct to hold the applicant information

5. Define a struct to hold the loan information

6. Create two arrays of structs - one of type Applicant, and one of type Loan

7. Create an int which holds the number of applications in the arrays (int no_elements = 0)

8. To read in the applications from file, 

  • declare a Loan and an Applicant variable
  • write a function which reads the first loan information into the Applicant and Loan structs
  • Add these structs to the relevant arrays (at index no_elements) and increment the no_elements variable for the arrays by 1
  • repeat until all of the test data has been read into the arrays.

9. Write a function to display the list of applications. 

  • Use a for loop to change the index from 0 to the number of elements.:
  • Use the . syntax to access each member of each array element
  • i.e. printf(.... , applicant[i].firstName, applicant[i].surname...)
  • Each application should be numbered

10. Write a function to display the contents of a pair of loan and applicant structs (after prompting for the index).   

11. Write a delete function which 

  • calls the display function
  • prompts for the element to be deleted
  • deletes it (see slide on deleting things from an array - array lecture)

12. Write a function to create a new application - this should use code from assignment to populate a pair of empty Applicant and Loan structs

13. Write a function to write the contents of the two struct arrays back to the file in the same format they were read. 

14. Write a function which changes a password - prompts for a user name and password, and writes the name and hashed password to the end of the password file (use "a" in fopen).


Related Discussions:- Program for implementation of a data storage system

Friendly function and rules of friend function, F r i e n dly Function...

F r i e n dly Function: A class can have public members and private members.   The public member can be used through the class using dot operator.   Where as private me

Minimum Shelf , At a shop of marbles, packs of marbles are prepared. Packet...

At a shop of marbles, packs of marbles are prepared. Packets are named A, B, C, D, E …….. All packets are kept in a VERTICAL SHELF in random order. Any numbers

Define dangling pointer?, A: A dangling pointer arises while you use the ad...

A: A dangling pointer arises while you use the address of an object after its lifetime is end. It may occur in situations such as returning addresses of automatic variables from a

Write a recursive function to generate anagrams, An anagram is a type of wo...

An anagram is a type of word play, the result of rearranging the letters of a word or phrase to produce a new word or phrase. For example the anagram of tea is tea, tae, eat, eta,

C#, 1. write a program named InputMethodDemo2 that eliminates the repetitiv...

1. write a program named InputMethodDemo2 that eliminates the repetitive code in the InputMethod() in the InputMethodDemo program. Rewrite the program so the InputMethod()contains

Computes the ackermann-peter a m-n function, (a) Write a procedure that com...

(a) Write a procedure that computes the Ackermann-Peter a(m,n) function. (b) Write a helper procedure that only allows the calculation of the Ackermann-Peter function for 0≤m

Area, find area uder the curve y=f(x) between x=a and x=b   #incl...

find area uder the curve y=f(x) between x=a and x=b   #include float start_point, /* GLOBAL VARIABLES */ end_point, total_area; in

Decompression of files compressed with LZW, The files are meteorological ra...

The files are meteorological radar data whose decompression is badly needed for relative study. Please contact Kathy Lee (Email: ; Cell phone: 0086 15701799056) or Mr. Zhu (Email:

Member dereferencing operators, M em b e r d e r e f e r e n c ...

M em b e r d e r e f e r e n c i ng o p e r a t o r s: T h e s e op e r a t o r s w i l l b e d i s c u s s e d l a t

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd