2016-02-22 1 views
-3

J'ai besoin d'utiliser un lecteur tamponné et un lecteur de fichiers et de le formater sous des colonnes comme celle-ci.lire un fichier texte avec des virgules et des espaces pour calculer GPA

System.out.println(" Name    GPA Classes  Hours/Grades" 
System.out.println(" ------------------ ---- -------- ------------------------ "); 

Voici comment je veux calculer la GPA. Multipliez la valeur en points de la lettre par le nombre d'heures-crédits. Le résultat est les points de qualité gagnés. Total des heures de crédit pour la durée; totalisez les points de qualité pour le terme. Diviser les points de la qualité totale des heures de crédit total

Voici les informations contenues dans le fichier texte:

Anagram,Anna,3/A,4/A,3/A,3/A,3/A 
Boop,Betty,3/B,3/B,4/B,3/B,3/B,1/B 
Chitwilly,Cindy,4/C,3/C,3/C,3/C,3/C 
Downer,Debbie,3/D,4/D,4/D,3/D,1/D 
Everhappy,Eva,4/B,3/B,3/D 
Froghat,Freda,3/F,4/F,4/F,3/F 
Getterdone,Gina,4/B,4/B,3/B,3/B,3/C 
Hotentott,Heidi,3/D,4/D,4/C,3/C,1/B 
Imagooden,Inga,4/B,4/B 
Jitterbug,Jeannie,3/B,3/C,4/C,3/F,3/C,1/C 
Keeper,Kendra,3/A,3/B,3/C 
Lovermore,Lynda,4/A,4/B,4/C,4/D 
Moocher,Minnie,3/B,3/C,3/D 
Nussbaum,Nancy,4/C,4/D,4/F 
Oglethorpe,Olga,3/B 
Poppledooper,Penny,3/D,3/F 
Qutie,Quinn,2/A,4/C,2/F 

Voici ma première tentative. Je suis nouveau à ce sujet, mais je voudrais vraiment comprendre cela parce que mon professeur ne l'a pas expliqué assez bien pour ma compréhension.

import java.io.*; 
import java.util.StringTokenizer; 
    public class p02gpa { 

     public static void main(String[] args) throws IOException { 
      // TODO Auto-generated method stub 

       String   file = "p02-grades.txt"; 
       BufferedReader br = new BufferedReader(new  FileReader(file)); 
       String   rec; 

       String   fmt = "%2d: %-12s %3d %-8s %-20 %n"; 

       System.out.println(" Name    GPA Classes  Hours/Grades"); 
       System.out.println(" ------------------ ---- -------- ------------------------ "); 

       while((rec=br.readLine())!= null) 
        calcDisp(rec); 

       br.close(); 

        } 
        //---------------------------------------------------------------------------- 
        public static void calcDisp(String rec) 
        { 
         StringTokenizer tok; 
         String   name; 
         String   fname; 
         String   lname; 
         double   ptValue; 
         double   classes; 
         double   qualtyPts; 
         double   hours; 
         double   gpa; 
         int    ctr=0; 

         tok  = new StringTokenizer(rec,",|/|"); 
         lname = tok.nextToken(); 
         fname = tok.nextToken(); 
         name = fname+ " "+lname; 
         System.out.println(name); 
         ctr++; 

         while(tok.hasMoreTokens()) 
         { 
          String nameS =tok.nextToken(); 
          String letterGrade =tok.nextToken(); 
          System.out.println(letterGrade); 
          String hrsStr = tok.nextToken(); 
          hours =Integer.parseInt(hrsStr); 

          System.out.println(hours); 


          if(letterGrade == "A") 
           ptValue = 4.0; 

          if(letterGrade == "B") 
           ptValue = 3.0; 

          if(letterGrade == "C") 
           ptValue = 2.0; 

          if(letterGrade == "D") 
           ptValue = 1.0; 

          if(letterGrade == "F") 
           ptValue = 0.0; 



           qualtyPts = ptValue * hours; 
           gpa = qualtyPts/hours; 
+0

Et vous aviez l'intention de nous montrer votre propre tentative de code pour résoudre avec votre question et demander à un responsable d'une question spécifique, non? –

+2

Je suis en train de voter pour fermer cette question hors-sujet parce que, comme écrit, c'est un peu plus d'un dépotoir sans vergogne. –

+0

Je l'ai édité avec ma tentative et l'explication de mon scénario. Ceci est un effort pour une meilleure compréhension avant ma pratique pour venir dans quelques jours. –

Répondre

-1
import java.io.*; 
import java.util.StringTokenizer; 
public class p02gpa 
{ 
public static void main(String[] args) throws IOException 
{ 
String file = "p02-grades.txt"; 
BufferedReader br = new BufferedReader(new  FileReader(file)); 
String   rec; 
String   fmt = "%2d: %-12s %3d %-8s %-20 %n"; 
System.out.println(" Name    GPA Classes  Hours/Grades"); 
System.out.println(" ------------------ ---- -------- ------------------------ "); 
while((rec=br.readLine())!= null) 
calcDisp(rec); 
br.close(); 
} 
public static void calcDisp(String rec) 
{ 
StringTokenizer tok; 
String   name; 
String   fname; 
String   lname; 
double   ptValue=0; 
double   classes; 
double   qualtyPts; 
double   hours; 
double   gpa; 
int    ctr=0; 
tok  = new StringTokenizer(rec,",|/|"); 
lname = tok.nextToken(); 
fname = tok.nextToken(); 
name = fname+ " "+lname; 
System.out.print(name); 
ctr++; 
while(tok.hasMoreTokens()) 
{ 
String nameS =tok.nextToken(); 
String letterGrade =tok.nextToken(); 
System.out.print(letterGrade); 
hours =Integer.parseInt(nameS); 
System.out.print(hours); 
if(letterGrade == "A") 
ptValue = 4.0; 
if(letterGrade == "B") 
ptValue = 3.0; 
if(letterGrade == "C") 
ptValue = 2.0; 
if(letterGrade == "D") 
ptValue = 1.0; 
if(letterGrade == "F") 
ptValue = 0.0; 
qualtyPts = ptValue * hours; 
gpa = qualtyPts/hours; 
} 
System.out.println(""); 
} 
} 
+1

S'il vous plaît essayer d'inclure des commentaires/explication avec votre réponse pour aider les autres à comprendre. – user2004685