COMP1038 Coursework 02 – Digital MiniBanking SystemIntroductionThis is the COMP1038 Coursework 02. It is worth 40% of the module mark. Thedeadline for this exercise is 16:00 on Saturday 26th of December 2020.Read the entire document before beginning the exercise.If you have any questions about this exercise, please ask in the Q&A forum onMoodle, after a lecture, in a lab, or during the advertised office hours. Do not postyour program or parts of your program to Moodle as you are not allowed to share yourcoursework programs with other students. If any questions require this exercise to beclarified then this document will be updated and everyone will be notified via Moodle.Version History Version 2.0 - 2020-12-04 – version 2.SubmissionYou must submit a single C source code file containing all your code for this exerciseand a text file containing city names, branch names, and their codes. The files must becalled DigitalMiniBank_<Your_Name>_<Your Numeric Id>.c andCityBranchCodes_<Your_Name>_<Your Numeric Id>.txt. The program must notrequires any other files outside of the standard C headers which are always available.The first line of the C source code file should be a comment which contains yourstudent ID number, username, and full name, of the form:// 6512345 zy12345 Joe BlogsThe file must compile without warnings or errors when I use the commandgcc -std=c99 -lm -Wall DigitalMiniBank_<Your_Name>_<Your Numeric Id>.c -oMiniBankAccountThis command will be run on our Linux server cslinux. If it does not compile, for anyreason, then you will lose all the marks for testing (common reasons in the past havebeen submitting a file with the wrong filename, or developing your solution on yourpersonal computer without having tested it on our Linux server). If the file compilesbut has warnings then you will lose some marks for not correcting the warnings.The completed source code file should be uploaded to the Coursework Submissionlink on the COMP1038 Moodle page. You may submit as many times as you wishbefore the deadline (the last submission before the deadline will be used). After thedeadline has passed, if you have already submitted your exercise then you will not beable to submit again. If you have not already submitted then you will be allowed tosubmit once.Late submissions: Late submissions will lose 2 percentage points per hour, roundedup to the next whole hour. This is to better represent the large benefit a small amountof extra time can give at the end of a programming exercise. No late submissions willbe accepted more than 50 hours after the exercise deadline. If you have extenuatingcircumstances you should file them before the deadline.PlagiarismYou should complete this coursework on your own. Anyone suspected of plagiarismwill be investigated and punished in accordance with the university policy onplagiarism (see your student handbook and the University Quality Manual). This mayinclude a mark of zero for this coursework.You should write the source code required for this assignment yourself. If you usecode from other sources (books, web pages, etc), you should use comments toacknowledge this (and marks will be heavily adjusted down accordingly). The onlyexception to this is the dynamic data-structures (linked lists and others) developedduring the lectures and tutorials; you may use these, with or without modification,without penalty as long as you add a comment in your program saying you have takenthem from the lectures or tutorials and saying how you have modified it (or notmodified it). If you do not acknowledge their source in a comment then it will beregarded as potential plagiarism.You must not copy or share source code with other students. You must not worktogether on your solution. You can informally talk about higher-level ideas but not toa level of detail that would allow you all to create the same source code.Remember, it is quite easy for experienced lecturers to spot plagiarism in source code.We also have automated tools that can help us identify shared code, even withmodifications designed to hide copying. If you are having problems you should askquestions rather than plagiarize. If you are not able to complete the exercise then youshould still submit your incomplete program as that will still get you some of themarks for the parts you have done (but make sure your incomplete solution compilesand partially runs!).If I have concerns about a submission, I may ask you to come to my office andexplain your work in your own words.MarkingThe marking scheme will be as follows: Tests (60%): Your program should correctly implement the task requirements.A number of tests will be run against your program with different input datadesigned to test if this is the case for each individual requirement. The teststhemselves are secret but general examples of the tests might be:o Does the program work with the example I/O in the question?o Does the program work with typical valid input?o Does the program correctly deal with input around boundary values?o Does the program correctly deal with invalid input (both invalid files andvalues)?o Does the program handle errors with resources not being available (eg,malloc failing or a filename being wrong)?o Does the program output match the required format?o Does the program output an appropriate table when required?As noted in the submission section, if your program does not compile thenyou will lose all testing marks. Appropriate use of language features (30%): Your program should use theappropriate C language features in your solution. You can use any languagefeatures or techniques that you have seen in the course, or you have learned onyour own, as long as they are appropriate for your solution. Examples of thismight be:o If you have many similar values, are you using arrays (or equivalent)instead of many individual variables?o Have you broken your program down into separate functions?o Are all your function arguments being used?o If your functions return values, are they being used?o If you have complex data, are you using structures?o Are you using loops to avoid repeating many lines of code?o Are your if/switch statements making a difference, or are the conditionsalways true or false making the statement pointless?o Are you closing files when the file is no longer in use? Source code formatting (10%): Your program should be correctly formattedand easy to understand by a competent C programmer. This includes, but is not limited to, indentation, bracketing, variable/function naming, and use ofcomments.TaskNowadays, bank accounts have become an important part of human life for savingmoney easy and safe way. Due to the recent growth of digitization, most of the banksare maintaining the accounts of their customers on a computerized system. As abanking software developer, your task is to develop a computerized banking system.When the program runs, it should display the following main menu to the user andprompt them to enter a menu option:1) Show city code and branch code2) Open an account3) Show account details4) Show list of accounts5) Deposit in an account6) Withdraw from an account7) Transfer money8) Transaction details9) Close an account10)QuitOption:If the user enters the number of an option, the program should perform that optionthen return to the main menu to let the user select another option. If the user enterssomething which is not a valid option then the program should print "Unknownoption." then print "Option: " again for the user to select another option. The usermay enter any input at this, or any other prompt, in the program, terminated bypressing the return key (newline character). Your program must deal with thisappropriately, accepting valid input and rejecting invalid input according to theparticular prompt.If the user selects “Show city code and branch code”, then the program will show thelist of city and city codes, and a prompt “Enter the city code:”. When the userenters a city code from the list, it will display list of branches within that city and theircodes. For doing this, the students need to prepare a text file containing city namesand branch names and their codes. The file shoud contains at least 10 city names, 5branch name from each city, and their respective codes.If the user selects “Open an account”, then the program should ask the user to inputflowing data.Description Type Size RemarksName String 100 charactersId Number String 15 Characters Id can be alphanumericAddress String 200 CharactersDate of Birth String 10 Characters YYYY/MM/DDInitial deposit Integer not less than 1000 RMBAfter inputting these data of an account the account will be created and a numericaccount number will be assigned by the program in the format of xxxxxxxxxx. Thefirst xxx is the city code which is a number within 001-999 from the list of city codes,the second xx is the branch code which is a number within 01-99 from list of branchcodes, and the third xxxxx is the account number which is a number within 00001-
...