Write a C main() program accompanied by functions that performs the task of acco
ID: 3538075 • Letter: W
Question
Write a C main() program accompanied by functions that performs the task of account
opening and cancellation for clients of a banking system.
Include the following functions in your program:
Function 1: AddClient: This function receives the head address of the linked-list from the calling
program then creates dynamically a new structure, and adds this new
structure to the linked-list. Minimally, this function includes the following
members:
a) Data:
char First name[20], address[200], email[100], phone[11], SIN[10];
int age;
char gender;
double SavingBal, CheckBal;
b) Pointer: A pointer of the same type as the data structure.
Function 2: DeleteClient: This function receives the address of a current client in the banking system
and then deletes this client from the linked-list.
Function 3: PrintList: This function receives the head of the linked-list and then prints all the nodes
in the linked-list with a proper format.
Explanation / Answer
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include<stdlib.h>
// Structure declaration
struct acc_type
{
char bank_name[20];
char bank_branch[20];
char acc_holder_name[30];
int acc_number;
char acc_holder_address[100];
float available_balance;
};
struct acc_type account[20];
/*
printf("The above structure can be declared using
typedef like below");
typedef struct acc_type
{
char bank_name[20];
char bank_branch[20];
char acc_holder_name[30];
int acc_number;
char acc_holder_address[100];
float available_balance;
}Acc_detail;
Acc_detail account[20];
*/
int num_acc;
void Create_new_account();
void Cash_Deposit();
void Cash_withdrawl();
void Account_information();
void Log_out();
void display_options();
/* main program */
int main()
{
char option;
char f2f[50] = "http://fresh2refresh.com/";
num_acc=0;
while(1)
{
printf(" ***** Welcome to Bank Application ***** ");
printf(" This demo program is brought you by %s", f2f);
display_options();
printf("Please enter any options (1/2/3/4/5/6) ");
printf("to continue : ");
option = getch();
printf("%c ", option);
switch(option)
{
case '1': Create_new_account();
break;
case '2': Cash_Deposit();
break;
case '3': Cash_withdrawl();
break;
case '4': Account_information();
break;
case '5': return 0;
case '6': system("cls");
break;
default : system("cls");
printf("Please enter one of the options ");
printf("(1/2/3/4/5/6) to continue ");
break;
}
}
return 0;
}
/* Function to display available options in this application */
void display_options()
{
printf(" 1. Create new account ");
printf("2. Cash Deposit ");
printf("3. Cash withdrawl ");
printf("4. Account information ");
printf("5. Log out ");
printf("6. Clear the screen and display available ");
printf("options ");
}
/* Function to create new account */
void Create_new_account()
{
char bank_name[20];
char bank_branch[20];
char acc_holder_name[30];
int acc_number;
char acc_holder_address[100];
float available_balance = 0;
fflush(stdin);
printf(" Enter the bank name : ");
scanf("%s", &bank_name);
printf(" Enter the bank branch : ");
scanf("%s", &bank_branch);
printf(" Enter the account holder name : ");
scanf("%s", &acc_holder_name);
printf(" Enter the account number(1 to 10): ");
scanf("%d", &acc_number);
printf(" Enter the account holder address : ");
scanf("%s", &acc_holder_address);
strcpy(account[acc_number-1].bank_name,bank_name);
strcpy(account[acc_number-1].bank_branch,bank_branch);
strcpy(account[acc_number-1].acc_holder_name,
acc_holder_name);
account[acc_number-1].acc_number=acc_number;
strcpy(account[acc_number-1].acc_holder_address,
acc_holder_address);
account[acc_number-1].available_balance=available_balance;
printf(" Account has been created successfully ");
printf("Bank name : %s " ,
account[acc_number-1].bank_name);
printf("Bank branch : %s " ,
account[acc_number-1].bank_branch);
printf("Account holder name : %s " ,
account[acc_number-1].acc_holder_name);
printf("Account number : %d " ,
account[acc_number-1].acc_number);
printf("Account holder address : %s " ,
account[acc_number-1].acc_holder_address);
printf("Available balance : %f " ,
account[acc_number-1].available_balance);
//num_acc++;
}
// Displaying account informations
void Account_information()
{
register int num_acc = 0;
//if (!strcmp(customer,account[count].name))
while(strlen(account[num_acc].bank_name)>0)
{
printf(" Bank name : %s " ,
account[num_acc].bank_name);
printf("Bank branch : %s " ,
account[num_acc].bank_branch);
printf("Account holder name : %s " ,
account[num_acc].acc_holder_name);
printf("Account number : %d " ,
account[num_acc].acc_number);
printf("Account holder address : %s " ,
account[num_acc].acc_holder_address);
printf("Available balance : %f " ,
account[num_acc].available_balance);
num_acc++;
}
}
// Function to deposit amount in an account
void Cash_Deposit()
{
auto int acc_no;
float add_money;
printf("Enter account number you want to deposit money : ");
scanf("%d",&acc_no);
printf(" The current balance for account %d is %f ",
acc_no, account[acc_no-1].available_balance);
printf(" Enter money you want to deposit : ");
scanf("%f",&add_money);
while (acc_no=account[acc_no-1].acc_number)
{
account[acc_no-1].available_balance=
account[acc_no-1].available_balance+add_money;
printf(" The New balance for account %d is %f ",
acc_no, account[acc_no-1].available_balance);
break;
}acc_no++;
}
// Function to withdraw amount from an account
void Cash_withdrawl()
{
auto int acc_no;
float withdraw_money;
printf("Enter account number you want to withdraw money : ");
scanf("%d",&acc_no);
printf(" The current balance for account %d is %f ",
acc_no, account[acc_no-1].available_balance);
printf(" Enter money you want to withdraw from account ");
scanf("%f",&withdraw_money);
while (acc_no=account[acc_no-1].acc_number)
{
account[acc_no-1].available_balance=
account[acc_no-1].available_balance-withdraw_money;
printf(" The New balance for account %d is %f ",
acc_no, account[acc_no-1].available_balance);
break;
}acc_no++;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.