Giter Site home page Giter Site logo

bankingsystem's Introduction

💫 CCPRGG1L FUNDAMENTALS PROGRAMMING      

Group Name: Artificial Ledger 🇵🇭

Group Member:

  • 😎 Jay Arre Talosig

  • 😃 Gabriel Angelo Viñas

  • 🥰 Anilove Tiquio

  • 🤗 Kristine Vine Navarro

  • 😌 Joshua Maquilan

  • 😋 Vince Erol Pangilinan  

Subject & Section: 🧚‍♂️ CCPRGG1L COM23P 🧚‍♀️  

Professor: 👦 Jay D. Abaleta         

📊 Table of Contents

This repository contains source code for a Java project that focuses on fundamental concepts and exercises. The code includes examples of input/output operations, arithmetic calculations, and basic Java syntax.

CCPRGG1L Table lecture

Topic Description
Part 1 - Introduce Basic Programming Introduction to Basic programming Variables and Type
Part 2 - Java Programming Problem-solving phases
Part 3a - Understand the basic concepts of Object-Oriented Programming (OOP) Compare Procedural and OOP
Part 3b - Learn how to declare and use classes and objects in Java Introduction to objects and classes
Part 4 - Learn how to implement user-defined methods Primitive types and String Class, Basic Operators (Arithmetic, Relational, and Logical)
Part 5 - Identify the types of variables and its scope Class Methods, Variables Scoping
Part 6 - Sequential, conditional, and iteration structure Sequential Structure
Part 7 - Learn the difference between sequential, conditional, and iteration structure Conditional Structure
Part 8 - Learn how to use various conditional structures Sequential vs Conditional Structure
Part 9 - Learn the difference between sequential, conditional, and iteration structure Sequential vs Conditional Structure
Part 10 - Learn how to use various iteration structures Sequential vs Conditional Structure
Part 11 - Learn built-in mathematical function in the Java Math Class Library String and char operations
Part 12 - Learn built-in mathematical function in the Java Math Class Library Arrays and Array list

Banking System

Table of Contents

Introduction

Welcome to the Banking System! This system allows users to perform various banking activities such as creating accounts, depositing/withdrawing money, checking balances, and displaying account details. A banking program in Java, that the users can do the following banking activities like creating accounts, depositing/withdrawing money, checking balance, and displaying account details.

Features

  • Create new bank accounts with unique account numbers and account holder names.
  • Deposit money into existing accounts.
  • Withdraw money from existing accounts, with checks for sufficient balance.
  • Check the current balance of an account.
  • Display detailed information about an account.

Tree Diagram Details 

Banking System

├── Account 
│   ├── AccountNumber
│   ├── AccountHolderName 
│   ├── Balance
│   ├── createAccount() 
│   ├── deposit()
│   ├── withdraw()
│   └── displayAccountDetails() 
└── BankingProgram 
    ├── accounts[]
    ├── createAccount()
    ├── deposit()
    ├── withdraw()
    ├── checkBalance()
    └── displayAccountDetails()

Tree Diagram Simple Structure

BankingSystem 
├── Account
└── BankingProgram 

Tree Diagram 

BankingSystem.java  
├── Account.java  
└── BankingProgram.java  

In this structure, BankingSystem is the parent class that contains an array of Account objects and methods to manage those accounts. Account is a separate class that represents a bank account and contains methods to perform operations on the account. BankingProgram is the main class that includes the main() method and handles user interaction.

The BankingSystem class is the central component that connects the Account class and the BankingProgram class. It manages the accounts using the array and provides methods to perform operations on those accounts.

Program Structure

  • Control Structures: The BankingProgram class includes a do-while loop with a switch statement that allows users to make choices and perform different actions based on their input. This demonstrates the use of control structures to control the flow of the program.

  • Methods: All three classes (Account, BankingProgram, and BankingSystem) contain multiple methods that perform specific actions. For example, the Account class has methods like deposit(), withdraw(), checkBalance(), and displayAccountDetails(). The BankingSystem class has methods like createAccount(), deposit(), withdraw(), checkBalance(), and displayAccountDetails(). The BankingProgram class has the main() method. These methods encapsulate specific functionalities and promote code reusability.

  • Array: The BankingSystem class includes an array called accounts[] to store instances of the Account class. The array is used to manage multiple accounts, such as creating new accounts, accessing specific accounts, and performing operations on them.

✍️ Code Structure Explanation  

🌐 Banking System 🌐

`BankingSystem.java` <------- This Part :) 
├── Account.java   
└── BankingProgram.java   

The BankingSystem class manages the array of Account objects and provides methods to create accounts, deposit/withdraw money, check balances, and display account details.

It includes the following methods:

  • createAccount(int accountNumber, String accountHolderName, double balance): Creates a new account with the given account number, account holder name, and initial balance. The account is added to the accounts array.

  • deposit(int accountNumber, double amount): Deposits the specified amount into the account with the given account number. If the account is found, the deposit() method of the Account class is called.

  • withdraw(int accountNumber, double amount): Withdraws the specified amount from the account with the given account number. If the account is found, the withdraw() method of the Account class is called.

  • checkBalance(int accountNumber): Checks and displays the balance of the account with the given account number. If the account is found, the checkBalance() method of the Account class is called.

  • displayAccountDetails(int accountNumber): Displays the details of the account with the given account number. If the account is found, the displayAccountDetails() method of the Account class is called.

  • findAccount(int accountNumber): Searches for an account with the given account number in the accounts array. Returns the account if found, or null if not found.

🕵️ Account 🕵️   

BankingSystem.java  
├── Account.java   <------- This Part :) 
└── BankingProgram.java  

// Need some documentation here //

💱 Banking Program 💱  

BankingSystem.java 
├── Account.java     
└── BankingProgram.java  <------- This Part :)

// Need some documentation here //

🧊 Installation 

Installation ✍️      

  1. Clone the repository to your local machine.
  2. Open the project in your preferred programming environment.
  3. Build the project to compile the source code.

Usage ✍️

  1. Run the BankingProgram class to start the program.  
  2. Follow the on-screen menu options to perform various banking activities.
  3. Enter the required information when prompted, such as account numbers, account holder names, deposit/withdrawal amounts, etc.
  4. View the program's output to see the results of each operation.

🏆 Contributing   

Contributing  

If you would like to contribute to the Banking System, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them.
  4. Push your changes to your forked repository.
  5. Submit a pull request to the main repository.
  6. REMINDER DON'T COMMIT IN THE MAIN BRANCH!!!~ just pull request only and we will review it first.

🧠 Submitting Changes

🧠 Contributions are welcome! If you have ideas for improvements or want to add more exercises, follow these steps:

  1. Fork the repository.
  2. Create a new branch.
  3. Make your changes and commit them.
  4. Push to your fork and submit a pull request.

🛸 Reporting Issues

🤖 If you encounter any issues or have suggestions, please open an issue to let us know.

🔑 License 

License

The Banking System is licensed under the MIT License and ALT Licence. This project is licensed under the MIT License and Artificial Ledger Technology.

📫 Changelogs     

[1.0.0] - 2024-02-25     

Added

  • 📫 Uploaded the Project Requirements
  • 📫 Created the Project Documentation
  • 📫 Added breakdown and documentation
  • 📫 Added a function for default Bank Account profile.

Changed

  • 📫 Revised all java source code file
  • 📫 Changed some variable and array
  • 📫 Changed the value and function for class method in the BankingProgram.java

Fixed

  • 📫 Fixed some error in java methods and classes
  • 📫 Fixed the name of the Main Branch for debugging and run the code. BankingProgram will be the main branch while BankingSystem will be the sub-branch.

Problem

  • 📫 There's an overall issue from this code

bankingsystem's People

Contributors

flexycode avatar

Stargazers

Joshua D.R. Maquilan avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

bankingsystem's Issues

Update project structure and code organization

Description:

We are making major changes to the code structure and organization of the Banking System project. Previously, the project consisted of three components, but we have decided to simplify it by using a single Java file.

Objective:

  • Streamline the codebase and improve maintainability.
  • Reduce complexity by consolidating the project into a single file.
  • Enhance code readability and understandability.

Proposed Changes:

  • Merge the existing components into a single Java file.
  • Refactor the code to ensure proper encapsulation and modularity.
  • Update the project documentation to reflect the new structure.

Benefits:

  • Simplified project structure for easier development and maintenance.
  • Improved code organization and readability.
  • Reduced complexity and dependencies between components.

Timeline: We aim to complete these changes within the next two weeks. This timeline includes code refactoring, testing and documentation updates.

Please feel free to provide any feedback or suggestions regarding these changes. Let's work together to make the Banking System project more efficient and manageable.

Bug in BankingSystem, Account, and BankingProgram classes

Description:

I have encountered a bug in the BankingSystem project that needs to be resolved within the given timeframe (one week). The bug is affecting the functionality of the BankingSystem, Account, and BankingProgram classes. Here are the details of the issue:

Steps to Reproduce:

  1. Clone the repository to your local machine.
  2. Compile and run the project.
  3. Perform various banking activities, such as creating an account, depositing/withdrawing money, and checking the balance.

Expected Behavior:

The BankingSystem should accurately handle account creation, depositing/withdrawing funds, and displaying account details without any errors.

Actual Behavior:

When running the project, I encountered the following issues:

  • The createAccount() method in the Account class is not properly creating new accounts.
  • The deposit() and withdraw() methods in the Account class are not updating the account balance correctly.
  • The checkBalance() method in the BankingProgram class is displaying incorrect balance information.
  • The displayAccountDetails() method in both the Account and BankingProgram classes is not showing the correct account details.

Error Messages: I received the following error messages while testing the project:

  • /usr/bin/env /usr/lib/jvm/jdk-21-oracle-x64/bin/java -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:36623 --enable-preview -XX:+ShowCodeDetailsInExceptionMessages

-cp /home/flexycode/.config/Code/User/workspaceStorage/28a6c9cd683b12922a50f841cc609d3a/redhat.java/jdt_ws/BankingSystem_5ee14f52/bin Account.BankingProgram

Error: Could not find or load main class Account.BankingProgram
Caused by: java.lang.ClassNotFoundException: Account.BankingProgram

  • function error for both Account and BankingProgram

Additional Information:

  • I have checked the code and verified that the logic for account creation, depositing/withdrawing funds, and displaying account details appears to be correct.

  • I have reviewed the documentation and followed the instructions for running the project.

Expected Resolution Timeframe: I kindly request that this bug be resolved within the given timeframe of one week to ensure the project progresses smoothly.

Please let me know if you need any additional information or if there's anything else I can assist with.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.