×
Samples Blogs Make Payment About Us Reviews 4.9/5 Order Now

Java Program to Create Flashcard Application Assignment Solution

July 03, 2024
Chloe Wong
Chloe Wong
🇨🇦 Canada
Java
Chloe Wong, holding a master's in computer science from the University of British Columbia, has successfully completed over 900 Java assignments. Her proficiency includes array initialization, searching techniques, and exception management. Chloe's meticulous approach and dedication to delivering well-structured solutions make her a trusted expert for students aiming to excel in their programming coursework.
Key Topics
  • Instructions
    • Objective
  • Requirements and Specifications
Tip of the day
Use Python libraries effectively by importing only what you need. For example, if you're working with data, using libraries like pandas and numpy can save time and simplify complex tasks like data manipulation and analysis.
News
In 2024, the Biden-Harris Administration has expanded high-dosage tutoring and extended learning programs to boost academic achievement, helping programming students and others recover from pandemic-related setbacks. These initiatives are funded by federal resources aimed at improving math and literacy skills​

Instructions

Objective

Write a Java assignment program to create a flashcard application in Java. This assignment will involve designing and implementing a program that allows users to create, view, and manage flashcards. The application should provide options for adding new flashcards with questions and answers, as well as the ability to view and revise these flashcards. This assignment will not only test your understanding of Java programming concepts but also your ability to create a user-friendly interface and manage data efficiently. Be sure to consider factors such as user input, data storage, and appropriate error handling in your program.

Requirements and Specifications

program-to-create-flashcard-application-in-java
program-to-create-flashcard-application-in-java 1

Source Code

FLASH CARD

/** * This class represents a FlashCard object. */ import java.util.Random; public class FlashCard { /** * To contain the text of the challenge. */ private String challenge; /** * Contains the response. */ private String response; /** * Variables used to contain the challenge or response. */ private String question; /** * Variables used to contain the challenge or response. */ private String answer; /** * Random variable. */ private Random rnd; /** * Constructor given challenge and response. * @param challenge String * @param response String */ public FlashCard(String challenge, String response) { this.challenge = challenge; this.response = response; this.question = ""; this.answer = ""; this.rnd = new Random(); } /** * Getter for challenge variable. * @return String */ public String getChallenge() { return challenge; } /** * Getter for response variable. * @return String */ public String getResponse() { return response; } /** * Show one face of the card. */ public void show() { if (rnd.nextInt(2) == 0) { this.question = this.challenge; this.answer = this.response; } else { this.question = this.response; this.answer = this.challenge; } } /** * Getter for question variable. * @return String */ public String getQuestion() { return this.question; } /** * Getter for answer variable. * @return String */ public String getAnswer() { return this.answer; } } DRIVER /** * This class represents the Driver of the program. */ import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class Driver { /** * This function displays the menu to user and requests for an input. * @param sc Scanner * @return char */ public static char menu(Scanner sc) { System.out.println("(a) Flip the card"); System.out.println("(b) Indicate answer"); System.out.println("(c) Indicate that you do not know the answer"); System.out.println("(d) Exit"); // Create Scanner // Ask for input char input; while (true) { input = sc.nextLine().toLowerCase().charAt(0); if (input == 'a' || input == 'b' || input == 'c' ||input == 'd') { return input; } else { System.out.println("Please enter a valid option."); } } } /** * This is the main function. * @param args Argumnents * @throws Exception Exception */ public static void main(String[] args) throws Exception { // Create Scanner Scanner sc = new Scanner(System.in); // Create a Random object Random rnd = new Random(); // First, create the 5 boxes Box box1 = new Box(0.5161); Box box2 = new Box(0.2581); Box box3 = new Box(0.1290); Box box4 = new Box(0.0645); Box box5 = new Box(0.0323); // Add two card to each box box1.addCard(new FlashCard("Dog", "Perro")); box1.addCard(new FlashCard("Cat", "Gato")); box2.addCard(new FlashCard("Keyboard", "Teclado")); box2.addCard(new FlashCard("Chair", "Silla")); box3.addCard(new FlashCard("I walk", "Yo camino")); box3.addCard(new FlashCard("I am sleeping", "Yo estoy durmiendo")); box4.addCard(new FlashCard("Monday in the morning", "Lunes por la mañana")); box4.addCard(new FlashCard("Thursday afternoon", "Jueves por la tarde")); box5.addCard(new FlashCard("I went to the school", "Yo fui a la escuela")); box5.addCard(new FlashCard("I ate too much", "Comi demasiado")); // Create an arraylist containing boxes ArrayList boxes = new ArrayList(); boxes.add(box1); boxes.add(box2); boxes.add(box3); boxes.add(box4); boxes.add(box5); // begin program char input; FlashCard picked = null; int pickedFrom = -1; String answer; double prob; while(true) { // First, generate andom number to know from which box we will pick the card while(picked == null) { prob = rnd.nextDouble(); if(prob <= boxes.get(0).getProbability() && boxes.get(0).count() > 0) { picked = boxes.get(0).drawCard(); pickedFrom = 0; } else if(prob <= boxes.get(1).getProbability() && boxes.get(1).count() > 0) { picked = boxes.get(1).drawCard(); pickedFrom = 1; } else if(prob <= boxes.get(2).getProbability() && boxes.get(2).count() > 0) { picked = boxes.get(2).drawCard(); pickedFrom = 2; } else if(prob <= boxes.get(3).getProbability() && boxes.get(3).count() > 0) { picked = boxes.get(3).drawCard(); pickedFrom = 3; } else if(prob <= boxes.get(4).getProbability() && boxes.get(4).count() > 0) { picked = boxes.get(4).drawCard(); pickedFrom = 4; } } // Flip card picked.show(); // DisplayEn esta fu System.out.println("============================"); System.out.println("Picking a new card..."); System.out.println("The card shows: " + picked.getQuestion()); System.out.println("============================"); input = menu(sc); if(input == 'a') { // user decided to flip the card // Display answer System.out.println("You flip the card. The other side displays: " + picked.getAnswer()); // Add to box 1 boxes.get(0).addCard(picked); } else if(input == 'b') { System.out.print("Please enter your answer: "); answer = sc.nextLine(); if(picked.getAnswer().toLowerCase().equals(answer.toLowerCase())) { System.out.println("Correct!"); // Move card to next box (if there is any) if(pickedFrom < 4) { boxes.get(pickedFrom+1).addCard(picked); } } else { System.out.println("Sorry, that's incorrect."); // Move card to box 1 boxes.get(0).addCard(picked); } } else if(input == 'c') { // user do not know the answer // Send to box 1 without showing the answer // Add to box 1 boxes.get(0).addCard(picked); // Clear picked variable picked = null; } else if(input == 'd') { System.out.println("Good bye!"); break; } picked = null; System.out.println(""); } } }

Similar Samples

Explore our comprehensive collection of programming homework samples across Java, Python, C++, and more. Each sample demonstrates our expertise in tackling diverse coding challenges effectively. Whether you need assistance with algorithms, data structures, or software development projects, our samples illustrate our commitment to delivering high-quality solutions tailored to your academic requirements.