0% found this document useful (0 votes)
16 views21 pages

PSTC Report

The document is a course end project report for a Bank Management System developed in C, detailing its objectives, problem statement, software and hardware requirements, and project description. It outlines functionalities such as account creation, deposits, withdrawals, and balance checks, utilizing file handling for data persistence. The report includes acknowledgments, a flowchart, code snippets, results, and conclusions on the system's effectiveness and simplicity.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views21 pages

PSTC Report

The document is a course end project report for a Bank Management System developed in C, detailing its objectives, problem statement, software and hardware requirements, and project description. It outlines functionalities such as account creation, deposits, withdrawals, and balance checks, utilizing file handling for data persistence. The report includes acknowledgments, a flowchart, code snippets, results, and conclusions on the system's effectiveness and simplicity.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Bank Management System

A Course End Project Report – PROBLEM SOLVING THROUGH ‘C’ LABORATORY (A8502)

Submitted in the Partial Fulfilment of the

Requirements

for the Award of the Degree of

Bachelor of Technology

in

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


Submitted

By

S.Shubhakar 24881A0554

Under the Esteemed Guidance of

Dr. Shanthi Makka


Professor
CSE

Department of Computer Science and Engineering

VARDHAMAN COLLEGE OF ENGINEERING, HYDERABAD


(AUTONOMOUS)
Affiliated to JNTUH, Approved by AICTE, Accredited by NAAC with A++ Grade, ISO 9001:2015
Certified

Kacharam, Shamshabad, Hyderabad – 501218, Telangana, India

December, 2024

VARDHAMAN COLLEGE OF ENGINEERING, HYDERABAD


An autonomous institute affiliated to JNTUH

Department of Computer Science and Engineering

CERTIFICATE

This is to certify that the Course End Project titled “Title of the Project” is carried out by Ms.
S.Shubhakar, Roll Number 24881A0554 towards A8502 – Problem Solving Through ‘C’
Laboratory course and submitted to Department of Computer Science and Engineering, in
partial fulfilment of the requirements for the award of degree of Bachelor of Technology in
Department of Computer Science and Engineering during the Academic year 2024-25.
ACKNOWLEDGEMENT

The satisfaction that accompanies the successful completion of the task would be put
incomplete without the mention of the people who made it possible, whose constant guidance
and encouragement crown all the efforts with success.

We wish to express our deep sense of gratitude to Dr. Shanthi Makka, Professor, Department
of Computer Science and Engineering, Vardhaman College of Engineering, for her able
guidance and useful suggestions, which helped us in completing the design part of potential
project in time.

We particularly thankful to Dr. Ramesh Karnati, Associate Professor & Head, Department
of Computer Science and Engineering for his guidance, intense support and encouragement,
which helped us to mould our project into a successful one.

We show gratitude to our honorable Principal Prof. J.V.R.Ravindra, for having provided all
the facilities and support.

We avail this opportunity to express our deep sense of gratitude and heartfelt thanks to
Dr.Teegala Vijender Reddy, Chairman and Sri Teegala Upender Reddy, Secretary of VCE,
for providing a congenial atmosphere to complete this project successfully.

We also thank all the staff members of Computer Science and Engineering for their valuable
support and generous advice. Finally, thanks to all our friends and family members for their
continuous support and enthusiastic help.
S.Shubhakar- 24881A0554

INDEX

• Introduction……………………………………………………………………………
……..1

• Objective of the
Project……………………………………………………………………....2

• Problem statement…………………………………………………………3

• Software and hardware requirements………………………………………4-5

• Project Description…………………………………………………………5.

• Flowchart/Algorithm/Procedure…………………………………….6

• Code……………………………………………………………7-10

• Result(s)………………………………………………………………11.

• Conclusion and Future work…………………………………………………12-13

• References………………………………………………………….....14

*pg.no.-Write Page numbers

1)Introduction
A computer based bank management system is designed to handle all the primary
information required to add new account, deposit money, withdraw money and transfer
money . Separate database is maintained to handle all the details required for the correct
statement calculation and generation.
This project intended to introduce more user friendliness in the various activities such as
record updating, maintenance, and searching and more.

The main aim of Bank Management project is to keep record of customer details in the bank.
We aim to demonstrate the use of create, read and update through the project. To create
customer account in the bank to credit ,debit amount and check balance. Customer can
even use different services like insurance, loan , bill payment etc.

page no:1

2)Objective of the project

Bank Management System


To develop a software for solving financial applications of a customer in banking
environment in order to nurture th needs of an end banking user by providing various ways
to perform banking task. Also to enable the users workspace to have additional
functionalities which are not provided under a conventional banking software .

In this project we are going to explain about Bank Management System. This project have
facility to opening account, depositing and withdrawing money. The Bank Management
System us an application for maintaining a person's account in a bank. The system provided
are access to the customer to create an account, deposit/withdraw the cash from there
account, also to view reports of all accounts present . The following presentation provides
the specification for the system.

page no :2

3)Problem statement
Design a simple bank system where user can create account, deposit money , withdraw
money and check balance . Use file handling to store account information.

•This project utilizes a simple file handling mechanism to store account information
persistently . Account details are stored in “account.txt” and the program reads from and
writes to the file during runtime.

Please note that this example is intended for educational purposes and in real world
scenario and additionally security measures would be necessary.

4)Software and hardware requirements

Hardware Requirements

• Workstation/Development Machine:

• Processor: Intel i3 or higher / AMD equivalent.


• Memory (RAM): Minimum 4 GB (8 GB recommended for better
performance).
• Storage: Minimum 250 GB HDD or SSD (to store project files and data).
• Display: Standard monitor resolution (1024x768 or higher).
• Peripherals: Keyboard, mouse, and optionally a printer (for testing report
generation).
• Networking (Optional):


If the application will run on multiple systems or require database
connectivity, basic networking components like switches and LAN cables are
needed.
• Backup Storage:

• USB drive or external hard disk for backups.

Page no:3

Software Requirements

• Operating System:

• Windows 7/8/10/11, Linux (Ubuntu, Fedora, etc.), or macOS.


• C Compiler:
• GCC (GNU Compiler Collection) for Linux.
• MinGW or TDM-GCC for Windows.
• Clang or Xcode for macOS.
• Integrated Development Environment (IDE):


Code::Blocks, Dev-C++, Eclipse CDT, or Visual Studio Code (with C extensions).
• Database (Optional):

•If the application requires data persistence, you can use simple file handling
in C or lightweight databases like SQLite.
• Version Control:

• Git (optional, for version management and collaboration).


• Libraries/Frameworks:

• Standard C libraries (stdio.h, stdlib.h, etc.) for input/output, file handling, and
memory management.

Page no 4

Key Considerations for Development in C

• File Handling:


If you don’t use a database, transactions and customer data can be stored in
text files or binary files.
• Modularity:

•Divide the program into modules for better readability and maintainability
(e.g., separate functions for account creation, deposits, withdrawals, etc.).
• Error Handling:

•Include robust error checking for user input and file operations.
• Security:

• Ensure secure handling of sensitive data, like encrypting passwords or


customer details.
• Testing Tools:

• Tools like Valgrind (Linux) to debug memory-related issues.


5)Project description
The Bank Management System is a console-based application designed to handle various
banking operations, such as creating accounts, depositing and withdrawing money, checking
account balances, and viewing account details. This system allows customers to perform
common banking tasks through a menu-driven interface, ensuring an easy-to-use and
efficient tool .

Page no:5

6)Flow chart/Algorithms/Producer

To implement a bank management system in C using files, we need to design


the program such that it handles various functionalities such as account
creation, balance checking, deposit, withdrawal, and transaction history. Here's
a flowchart and the corresponding algorithm for such a system.

Flowchart

• Start
• Display Menu:
• Option 1: Create Account
• Option 2: Deposit Money
• Option 3: Withdraw Money
• Option 4: Check Balance
• Option 5: Exit
• User Input: Based on the user's choice, proceed to the corresponding
functionality.
• Create Account:
• Input account details (name, account number, initial balance).
• Write the account information to a file.
• Deposit Money:
• Input account number and deposit amount.
• Find the account in the file and update the balance.
• Withdraw Money:
• Input account number and withdrawal amount.
• Check balance and update the file.
• Check Balance:
• Input account number.
• Display the balance by reading the file.
• Exit: End the program.
• End

Algorithm

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

// Define a structure for account

struct Account {

int accountNumber;

char name[100];

float balance;

};
Page no:6

// Function prototypes

void createAccount();

void depositMoney();

void withdrawMoney();

void checkBalance();

void displayMenu();

FILE *file;

int main() {
displayMenu();

return 0;

void displayMenu() {

int choice;

do {

printf("\nBank Management System\n");

printf("1. Create Account\n");

printf("2. Deposit Money\n");

printf("3. Withdraw Money\n");

printf("4. Check Balance\n");

printf("5. Exit\n");

printf("Enter your choice: ");

scanf("%d", &choice);

switch (choice) {

case 1:

createAccount();

break;

case 2:

depositMoney();

break;

case 3:
withdrawMoney();

break;

case 4:

checkBalance();

break;

case 5:

printf("Exiting...\n");

break;

default:

printf("Invalid choice. Please try again.\n");

} while (choice != 5);

void createAccount() {

struct Account acc;

file = fopen("accounts.dat", "ab"); // Open file in append mode

if (file == NULL) {

printf("Error opening file!\n");

return;

Page no:7

printf("Enter account number: ");

scanf("%d", &acc.accountNumber);
getchar(); // To consume newline character left by scanf

printf("Enter account holder's name: ");

fgets(acc.name, sizeof(acc.name), stdin);

acc.name[strcspn(acc.name, "\n")] = 0; // Remove the newline character

printf("Enter initial deposit amount: ");

scanf("%f", &acc.balance);

fwrite(&acc, sizeof(acc), 1, file); // Write account to file

fclose(file);

printf("Account created successfully.\n");

void depositMoney() {

int accNum;

float depositAmount;

struct Account acc;

int found = 0;

printf("Enter account number: ");

scanf("%d", &accNum);

file = fopen("accounts.dat", "r+b"); // Open file in read-write mode

if (file == NULL) {

printf("Error opening file!\n");


return;

while (fread(&acc, sizeof(acc), 1, file)) {

if (acc.accountNumber == accNum) {

found = 1;

printf("Enter deposit amount: ");

scanf("%f", &depositAmount);

acc.balance += depositAmount;

fseek(file, -sizeof(acc), SEEK_CUR); // Move file pointer to update the


record

fwrite(&acc, sizeof(acc), 1, file); // Update account balance in file

printf("Deposit successful! New balance: %.2f\n", acc.balance);

break;

if (!found) {

printf("Account not found.\n");

fclose(file);

Page no: 8

void withdrawMoney() {
int accNum;

float withdrawAmount;

struct Account acc;

int found = 0;

printf("Enter account number: ");

scanf("%d", &accNum);

file = fopen("accounts.dat", "r+b"); // Open file in read-write mode

if (file == NULL) {

printf("Error opening file!\n");

return;

while (fread(&acc, sizeof(acc), 1, file)) {

if (acc.accountNumber == accNum) {

found = 1;

printf("Enter withdrawal amount: ");

scanf("%f", &withdrawAmount);

if (withdrawAmount > acc.balance) {

printf("Insufficient balance!\n");

} else {

acc.balance -= withdrawAmount;
fseek(file, -sizeof(acc), SEEK_CUR); // Move file pointer to update the
record

fwrite(&acc, sizeof(acc), 1, file); // Update account balance in file

printf("Withdrawal successful! New balance: %.2f\n", acc.balance);

break;

if (!found) {

printf("Account not found.\n");

fclose(file);

void checkBalance() {

int accNum;

struct Account acc;

int found = 0;

printf("Enter account number: ");

scanf("%d", &accNum);

file = fopen("accounts.dat", "rb"); // Open file in read mode


if (file == NULL) {

printf("Error opening file!\n");

return;

Page no:9

while (fread(&acc, sizeof(acc), 1, file)) {

if (acc.accountNumber == accNum) {

found = 1;

printf("Account holder: %s\n", acc.name);

printf("Account balance: %.2f\n", acc.balance);

break;

if (!found) {

printf("Account not found.\n");

fclose(file);

Explanation of the Program:

• Data Structure:

• A struct Account is used to represent an account. It contains


the account number, holder's name, and balance.
• File Handling:

• The program uses a file named accounts.dat to store the


account information.
• fwrite() is used to write data to the file, while fread() is
used to read data from the file.
• The file is opened in different modes:
• ab (append binary) for creating an account.
• r+b (read and write binary) for deposit and withdrawal
operations.
• rb (read binary) for checking the balance.
• Menu:

• The program presents a menu where the user can choose to


create an account, deposit money, withdraw money, check
balance, or exit.
• Functions:

• createAccount(): Allows the user to create an account and


store the information in a file.
• depositMoney(): Allows the user to deposit money into an
account.
• withdrawMoney(): Allows the user to withdraw money from
an account.
• checkBalance(): Displays the balance of a specified account.

Flowchart Overview:

• Start -> Display Menu -> User selects option.


• Option 1: Create Account -> Input details -> Store in file.
• Option 2: Deposit Money -> Input account and amount -> Update file.
• Option 3: Withdraw Money -> Input account and amount -> Update file.
• Option 4: Check Balance -> Input account -> Display balance.
• Option 5: Exit -> End.

Page no:10

8)Result
Output-1

Enter your account number:1001

Enter amount to deposit:500

Deposited 500 successfully.New balance:500

Output-2

Enter your account number:1001

Enter amount to withdraw:200

Withdrawn 200 successfully.New balance:300

Page no:

9)Conclusions
The bank management system implemented in C using file handling provides a basic, yet
effective, way to manage user accounts, transactions (deposits and withdrawals), and
account balance tracking. By using file handling, the system persists account data between
runs, which is crucial for a bank application where information needs to be retained. Here
are the key conclusions:
• Simplicity and Functionality: The system implements basic banking operations
such as creating accounts, depositing money, withdrawing funds, checking balances,
and listing all accounts. These operations are sufficient for a simple bank
management system.

• Persistence with File Handling: The use of files ensures that account
information is saved across program runs, making the system more realistic by
maintaining user data even after the program exits. File handling makes the system
easy to set up, as no complex database management is required.

• Easy Extension: The current design is simple and modular. Functions like deposit,
withdrawal, and account creation are isolated, making it easy to expand or modify
specific features. Additionally, the system is flexible enough to allow the addition of
new features, such as handling different account types or calculating interest.

• Error Handling: The program includes some error handling, such as checking for
insufficient funds during withdrawal, ensuring valid deposits, and preventing
duplicate account creation. However, more sophisticated error handling could be
added for robustness.

• Limitations:

• The system supports only one type of account with a single balance.
• File handling is done with a text file (accounts.txt), which is suitable for
small systems but not scalable for larger applications.
• No user authentication is implemented, so anyone can modify any account's
details.
• The program does not provide security for sensitive information (such as
account passwords).

Page no:

Future Work
While the current implementation is a basic version of a bank management system, several
improvements can be made in the future to enhance its functionality, security, and
scalability. Here are some suggestions for future work:

• Database Integration:

•Instead of using text files, integrate a relational database management system


(RDBMS) like MySQL or SQLite to handle large amounts of data efficiently.
Databases offer improved performance, data integrity, and advanced
querying capabilities.
• User Authentication:

Implement a secure user authentication system using usernames and
passwords. This would ensure that only authorized users can access their
accounts.
• Add security features like encryption to protect sensitive information (e.g.,
account numbers, balances, and passwords).
• Multiple Account Types:

• Extend the program to support multiple types of accounts (e.g., savings,


checking, business accounts) with different features like interest rates,
minimum balance requirements, and transaction limits.
• Interest Calculation and Transactions:

• Implement an automatic interest calculation feature for savings accounts.


This could be done based on the account type and balance.
• Add transaction fees for certain operations, such as withdrawals and
transfers.
• Transaction History:


Store and display a detailed transaction history for each account, showing
deposits, withdrawals, and other operations with timestamps.
• Improved Error Handling and Validation:

• Add more robust input validation and error handling, including checking for
invalid data types, account numbers, or withdrawal amounts.
• Implement exception handling to manage runtime errors more effectively.

Page no:

Conclusion on Future Work


In the future, this simple bank management system can evolve into a full-fledged banking
application with enhanced functionality, better security, scalability, and user experience. The
use of databases, advanced features like interest calculation and transaction histories, and
the integration of a GUI would make the system more professional and suitable for real-
world applications. With continuous development, this basic system could provide a
valuable foundation for understanding file handling and system design in C, with future
improvements tailored to specific requirements.

10)Reference
• Class notes
• Youtube tutorials
• Sample project on online site

• Information on websites

You might also like