2016-04-04 15 views
0

İşte Gradebook (dizinin) içine sınıflarda (elemanlarını) depolayan programım enter image description hereJAVA programında tek boyutlu dizide seçilmiş elemanın değerlerini değiştirme

Temelde kullanıcıya izin vermek için çalışıyorum olduğunu Gradebook (dizi) 'de istedikleri dereceyi (eleman) istedikleri sayıda (temel olarak) döngüsel olarak değiştirebilir. Kullanıcıya indeksi (kullanıcı için karışıklıktan kaçınmak için 1 yerine 0'dan başlamalıdır) girme seçeneğini verdim ama bu adımdan sonra sıkıştım. Herhangi bir yardım mutluluk duyacağız

import java.lang.reflect.Array; 
import java.util.Scanner; 

public class NewGradeBook { 

    public static void main(String[] args) { 

     Scanner input = new Scanner(System.in); 

     //Ask user to enter the amount of grades 
     int grades = NumberReader.readPositiveInt(input, "Please enter the number of grades: ", 
       "Error: Invalid data entered"); 

     int numOfGrades = grades; 

     double[] mogrades = new double[numOfGrades]; 

     for (int i = 0; i < mogrades.length; i++) { 

      //Allows user to enter each individual grade 
      System.out.println("Enter grade (limit to two decimal places)" + (i + 1) + ": "); 

      //Stores grades in array 
      mogrades[i] = NumberReader.readPositiveDouble(input, "Enter grade " + (i+1) + " :", "Invalid data entered"); 

     } 

     System.out.println("The Grade book contains: "); 

     printArray(mogrades); 

     System.out.println("___________________________"); 

     //Ask user if what grade they would like to change 
     int index = NumberReader.readPositiveInt(input, 
       "Enter the index of the grade to be changed: (1 to " + grades + ") : ", "Invalid index input"); 

    } 

    public static void printArray(double[] mogrades) { 

     for (int i = 0; i < mogrades.length; i++) { 

      System.out.print("Grade " + (i + 1) + " is: " + mogrades[i] + ", "); 

     } 

    } 

} 

: Ben

İşte şimdiye kadar benim kodu ... dizideki eleman aramak ve daha sonra değiştirmek için ricada bulunmak nasıl emin değilim.

+0

Ugh. Tüm programınızı açıklamak gerekli mi? Elbette belirli bir şey üzerinde sıkışmış ve bunu daraltabilirsiniz. – Gendarme

+0

Hmmm Sanırım biraz daha beklemeliyim ve belki bu soruyu silip çok fazla ayrıntıya girmeden repert yapmaya çalışmalıyım. – Coco

+1

Düzenleme gayet iyi. Belki de beklemeye alınacak ve kapatılmadan önce düzenleme şansınız olacak. Silmeyi ve repertlemeyi tavsiye etmem. Eğer repost önce – Gendarme

cevap

0

yapısı buna benzer olmalıdır:

System.out.println("___________________________"); 

System.out.println("Make changes? Enter Y or N"); 
String makeChanges = System.console().readLine(); 
while (makeChanges.equals("Y")) { 
    //Ask user if what grade they would like to change 
    int index = NumberReader.readPositiveInt(input, 
    "Enter the index of the grade to be changed: (1 to " + grades + ") : ", "Invalid index input"); 

    System.out.println("Enter grade (limit to two decimal places)" + index + ": "); 
    //offset the index by one 
    mogrades[index - 1] = NumberReader.readPositiveDouble(input, "Enter grade " + index + " :", "Invalid data entered"); 

    System.out.println("Make changes? Enter Y or N"); 
    makeChanges = System.console().readLine(); 
} 
} 

Sen hala değişiklik yapmak isterken döngü devam etmek istiyorum.

+0

Kodunuzu uygulamaya çalıştım ama 'i' (i + 1) 'deki değişkeni ifade eden bir hata var mı? Bunu ilan etmeli miyim? Bi şans tanıcam. – Coco

+0

- düzenlenmiş dizin olmalı – nhouser9

+0

Ne demek istediğinizden emin değilim ama ben int i; hatadan kurtulduktan sonra, başarısızlıktan kurtulmuş, program çalıştırdıktan sonra, "Değişiklikler yap? Y veya N girin" ama hata "0" ana hata "java.lang" .NullPointerException \t, NewGradeBook.main (NewGradeBook.java:37) – Coco

İlgili konular