तो मुझे निम्नलिखित ग्रेडेड एक्टिविटी क्लास दी गई:

 public class GradedActivity   
 {   
private double score;  // Numeric score   

public void setScore(double s)
{
    if (s < 0)
    score = 0.0;
else if (s > 100)
    score = 100.0;
    else
        score = s;
 }

public double getScore()
{
   return score;
}


   public char getGrade()
  {   
     char letterGrade;  

  if (score >= 90)
     letterGrade = 'A';
  else if (score >= 80)
     letterGrade = 'B';
  else if (score >= 70)
     letterGrade = 'C';
  else if (score >= 60)
     letterGrade = 'D';
  else
     letterGrade = 'F';

  return letterGrade;
} } 

और मुझे एक कंस्ट्रक्टर बनाने का काम सौंपा गया था जो अंक प्राप्त करने के लिए मूल्यों को स्वीकार करता है और तर्क के रूप में कुल अंक स्वीकार करता है, उन्हें प्रारंभ करता है, और संबंधित स्कोर सेट करता है (कुल अंक से विभाजित अंक), एक्सेसर्स और म्यूटेटर अंक प्राप्त और कुल के लिए।

तो यहाँ मैं क्या लेकर आया हूँ:

public class ProgrammingAssignment extends GradedActivity 
{
   public int pointsObtained;
   public int pointsTotal;

   public ProgrammingAssignment(int p, int t)
   {

      pointsObtained = p;
      pointsTotal = t;
   } 

   public int getPointsObtained()
   {
      return pointsObtained;
   }

   public int getPointsTotal()
   {
      return pointsTotal;
   }

   public double getScore()
   {
     return pointsObtained / pointsTotal;
   }

   public void setPointsObtained(int p)
   {
  pointsObtained = p;
}

 public void setPointsTotal(int t)
 {
    pointsTotal = t;
 }     
 }  

सब कुछ त्रुटि के बिना संकलित करता है, लेकिन getScore मेरे परीक्षण वर्ग में प्राप्त/कुल (यह वापस आता है 0) की गणना नहीं कर रहा है:

 public class PADemo
 {
   public static void main(String[] args)
   {
        ProgrammingAssignment p1 = new ProgrammingAssignment(28,30);
            GradedActivity p2 = new ProgrammingAssignment(0,30);

      System.out.println (p1.getPointsObtained());
      System.out.println (p1.getPointsTotal());
      System.out.println (p1.getScore());  
      System.out.println (p1.getGrade());  

      System.out.println (p2.getScore());  
      System.out.println (p2.getGrade());  

      p1.setPointsObtained(25);
      p1.setPointsTotal(40);
      System.out.println (p1.getScore());  
      System.out.println (p1.getGrade() == 'F');  
 }
 }  

मैं getScore () के साथ स्कोर (प्राप्त अंक/कुल अंक) कैसे प्राप्त करूं?

टेस्ट क्लास रिटर्न:

२८ ३० ०.० एफ ०.० एफ ०.० सत्य

-1
Scuba Sam 25 अक्टूबर 2020, 05:10

4 जवाब

सबसे बढ़िया उत्तर

हाय शायद यह आपको कुछ विचार देगा बा .... सबसे पहले मैं txt फ़ाइल में सभी पंक्तियों को पढ़ने के लिए लूप का उपयोग करता हूं और उसके बाद मैं "ए" या "डी" जांचने के लिए उपयोग करता हूं, फिर मैं ए और डी को प्रतिस्थापित करता हूं केवल प्लेट नंबर के साथ बचा है और मैं उन्हें स्टैक या कतार में जोड़ता हूं शायद यह वह नहीं है जो आप चाहते हैं ... लेकिन मुझे बताएं कि क्या मैं गलत हूं धन्यवाद: डी

import java.util.*;
import java.util.List;
import java.util.ArrayList;
import java.io.FileNotFoundException; 
import java.util.Scanner;
import java.io.File;

public class grages{
   
   public String line;
   public String status; 
   public String license;
   Queue Arrivals = new LinkedList();
   Stack Departures = new Stack();

   public grages(){
   }
   
   public grages(String fileName){
      try{
         File file = new File(fileName);
         Scanner scan = new Scanner(file);
         while(scan.hasNextLine()) {
             line = scan.nextLine();
             if(line.contains("a")) {
                 //if you wan just the number plate 
                 line = line.substring(2,7);
                 Arrivals.add(line); // add in the queue
             }
             else {
                 line = line.substring(2,7);
                 Departures.add(line); // add in the stack  
             }
         }
            
            
      }
      catch(FileNotFoundException fnfe) {
         System.out.println("File not found");
      }
    }
    
   //adds the car to the garage if it is not full   
   public boolean arrival(String license){
      return true;
   }
   
   //removes the car and returns number of cars moved out
   //When room is available, the car at the beginning of the line enters
   public int departure(String license){
      return 0;
   }
      
   //Called to get the number of cars parked in garage
   public int numberParked(){
         return 0;
   }
   
   //called to get the number of cars waiting
   public int numberWaiting(){
      return 0;
   }
   
   public String toString(){
      return null;
   }
}
0
avoidToxicMuted 25 अक्टूबर 2020, 05:47

ऐसा करने का एक तरीका (सुनिश्चित नहीं है कि सबसे अच्छा है):

String[] splitted = line.split(" ")
if(splitted[0].equals("a")) {
  Departures.push(line)
} else if (splitted[0].equals("d")) {
  Arrivals.add(line)
}
0
Wasif Hasan 25 अक्टूबर 2020, 05:25

आप कुछ इस तरह बात कर रहे हैं:

public Garage(String fileName) {
    try {
        File file = new File("parking.txt");
        Scanner scan = new Scanner(file);
        while (scan.hasNext()) {
            line = scan.nextLine();
            String[] parts = line.split("\\s+");
            if (parts[0].equals("a"))
                arrivals.add(parts[1]);
            else if (parts[0].equals("d"))
                departures.push(parts[1]);
        }

    }
    catch (FileNotFoundException fnfe) {
        System.out.println("File not found");
    }
}

यह मानता है कि आपकी फ़ाइल हमेशा अच्छी तरह से बनाई गई है। यदि ऐसा नहीं हो सकता है, तो आप उन पंक्तियों के लिए और जाँच जोड़ना चाहेंगे जो आपके द्वारा दिए गए दो उदाहरणों में से किसी एक से मेल नहीं खाती हैं। वैसे भी, खराब इनपुट इस पिल्ला को अपवाद के साथ दुर्घटनाग्रस्त कर देगा।

ध्यान दें कि मैंने आपके arrivals और departures वेरिएबल का नाम बदलकर लोअरकेस कर दिया है। आपको वेरिएबल्स को अपरकेस नाम कभी नहीं देना चाहिए। बहुत अधिक सर्वसम्मत सम्मेलन द्वारा, अपरकेस नाम पायथन में वर्ग के नामों के लिए आरक्षित हैं। जब आप मानक सम्मेलनों से चिपके नहीं रहते हैं तो आपका कोड पढ़ना कठिन होता है।

0
Steve 25 अक्टूबर 2020, 05:33

यदि आप उपयोग करने से लूप के दौरान उपयोग कर सकते हैं :)

String s = "d JFJ542 \n a F498EE";
Scanner scan = new Scanner(s);
while(scan.hasNext()){
String line = scan.nextLine();
String[] strArray = line.split(" ");
if (strArray[1].equals("a")){
     //push it in a stack
System.out.println("pushed to stack");
    }
if (strArray[1].equals("a")){
System.out.println("pushed to queue");
//push it in a queue
}
}
-2
Vaibhav Patil 25 अक्टूबर 2020, 05:25