PSTC Report
PSTC Report
A Course End Project Report – PROBLEM SOLVING THROUGH ‘C’ LABORATORY (A8502)
Requirements
Bachelor of Technology
in
By
S.Shubhakar 24881A0554
December, 2024
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
• Project Description…………………………………………………………5.
• Flowchart/Algorithm/Procedure…………………………………….6
• Code……………………………………………………………7-10
• Result(s)………………………………………………………………11.
• References………………………………………………………….....14
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
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.
Hardware Requirements
• Workstation/Development Machine:
•
If the application will run on multiple systems or require database
connectivity, basic networking components like switches and LAN cables are
needed.
• Backup Storage:
Page no:3
Software Requirements
• Operating System:
•
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:
• Standard C libraries (stdio.h, stdlib.h, etc.) for input/output, file handling, and
memory management.
Page no 4
• 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:
Page no:5
6)Flow chart/Algorithms/Producer
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>
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("5. Exit\n");
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:
void createAccount() {
if (file == NULL) {
return;
Page no:7
scanf("%d", &acc.accountNumber);
getchar(); // To consume newline character left by scanf
scanf("%f", &acc.balance);
fclose(file);
void depositMoney() {
int accNum;
float depositAmount;
int found = 0;
scanf("%d", &accNum);
if (file == NULL) {
if (acc.accountNumber == accNum) {
found = 1;
scanf("%f", &depositAmount);
acc.balance += depositAmount;
break;
if (!found) {
fclose(file);
Page no: 8
void withdrawMoney() {
int accNum;
float withdrawAmount;
int found = 0;
scanf("%d", &accNum);
if (file == NULL) {
return;
if (acc.accountNumber == accNum) {
found = 1;
scanf("%f", &withdrawAmount);
printf("Insufficient balance!\n");
} else {
acc.balance -= withdrawAmount;
fseek(file, -sizeof(acc), SEEK_CUR); // Move file pointer to update the
record
break;
if (!found) {
fclose(file);
void checkBalance() {
int accNum;
int found = 0;
scanf("%d", &accNum);
return;
Page no:9
if (acc.accountNumber == accNum) {
found = 1;
break;
if (!found) {
fclose(file);
• Data Structure:
Flowchart Overview:
Page no:10
8)Result
Output-1
Output-2
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:
•
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:
10)Reference
• Class notes
• Youtube tutorials
• Sample project on online site
• Information on websites