Java Project – Flash Card App

Get Job-ready: Java Course with 45+ Real-time Projects! - Learn Java

Program 1

public class FlashCard {
    private String question;
    private String answer;

    public FlashCard(String question, String answer) {
        this.question = question;
        this.answer = answer;
    }

    public String getQuestion() {
        return question;
    }

    public String getAnswer() {
        return answer;
    }

    @Override
    public String toString() {
        return "Qus: " + question + " | Ans: " + answer;
    }
}

Program 2

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public  class FlashCardApp 
{
    private static final String FILE_NAME = "myflashcards.txt";
    private static List<FlashCard> flashCards = new ArrayList<>();
    private static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        loadFlashCards();
        int choice;

        do {
            System.out.println("\n--------------Flash Card App---------------------");
            System.out.println("1. Add Flash Card");
            System.out.println("2. View Flash Cards");
            System.out.println("3. Quiz Yourself");
            System.out.println("4. Save Flash Cards");
            System.out.println("5. Exit");
            System.out.print("Choose an option: ");
            choice = Integer.parseInt(scanner.nextLine());

            switch (choice) {
                case 1 : addFlashCard();break;
                case 2 : viewFlashCards();break;
                case 3 : quiz();break;
                case 4 : saveFlashCards();break;
                case 5 : System.out.println("Goodbye!");break;
                default : System.out.println("Invalid choice.");break;
            }
        } while (choice != 5);
    }

    private static void addFlashCard() {
        System.out.print("Enter question: ");
        String question = scanner.nextLine();
        System.out.print("Enter answer: ");
        String answer = scanner.nextLine();
        flashCards.add(new FlashCard(question, answer));
        System.out.println("Flash card added!");
    }

    private static void viewFlashCards() {
        if (flashCards.isEmpty()) {
            System.out.println("No flash cards available.");
            return;
        }
        for (int i = 0; i < flashCards.size(); i++) {
            System.out.println((i + 1) + ". " + flashCards.get(i));
        }
    }

    private static void quiz() {
        if (flashCards.isEmpty()) {
            System.out.println("Add some flash cards first.");
            return;
        }

        Collections.shuffle(flashCards);
        int score = 0;

        for (FlashCard card : flashCards) {
            System.out.println("\nQ: " + card.getQuestion());
            System.out.print("Your answer: ");
            String userAnswer = scanner.nextLine();
            if (userAnswer.equalsIgnoreCase(card.getAnswer())) {
                System.out.println("Correct!");
                score++;
            } else {
                System.out.println("Wrong! Correct answer: " + card.getAnswer());
            }
        }

        System.out.println("You got " + score + " out of " + flashCards.size());
    }

    private static void saveFlashCards() {
        try (PrintWriter writer = new PrintWriter(new FileWriter(FILE_NAME))) {
            for (FlashCard card : flashCards) {
                writer.println(card.getQuestion() + "||" + card.getAnswer());
            }
            System.out.println("Flash cards saved to " + FILE_NAME);
        } catch (IOException e) {
            System.out.println("Error saving flash cards.");
        }
    }

    private static void loadFlashCards() {
        File file = new File(FILE_NAME);
        if (!file.exists()) return;

        try (Scanner fileScanner = new Scanner(file)) {
            while (fileScanner.hasNextLine()) {
                String[] parts = fileScanner.nextLine().split("\\|\\|");
                if (parts.length == 2) {
                    flashCards.add(new FlashCard(parts[0], parts[1]));
                }
            }
            System.out.println("Loaded " + flashCards.size() + " flash cards.");
        } catch (FileNotFoundException e) {
            System.out.println("Error loading flash cards.");
        }
    }
}

 

If you are Happy with DataFlair, do not forget to make us happy with your positive feedback on Google

courses

DataFlair Team

DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.

Leave a Reply

Your email address will not be published. Required fields are marked *