2015-03-12 2 views
0

Это моя проблема с домашней работой, но я наклоняю, похоже, получаю ее прямо. Эта программа предложит пользователю ввести количество учеников, а затем предложит пользователю ввести процент оценки (0-100) для каждого учащегося. Единственное, что я не могу понять, это то, что я не могу нарисовать столбцы в правильных положениях. Столбцы будут располагаться на расстоянии 0,5 пробега. Обратите внимание, что число учеников будет горизонтальной осью, а класс будет вертикальными. Комментарии, которые я включил в код, - вот что мне нужно для помощи. СпасибоКак сделать диаграмму класса в java

import java.util.*; 
import javax.swing.JOptionPane; 


public class GradesChart{ 
    public static void main (String [] args) { 

    drawAxes(); //Call method to draw the axes intersecting at (0.1,0.1) 

    String input = JOptionPane.showInputDialog(null,"Please enter the number of students."); 
    int input2 = Integer.parseInt(input); 

    double columnnWidth = 0.5; // *** HOW TO CALCULATE THE COLUMN WIDTH???**** 

    for (int grade = 0; grade < input2; grade++){ 
     JOptionPane.showInputDialog(null, "Please enter the grade of student. "); 
    drawColumn(columnnWidth, input2 , grade); 
    /**IN THIS FOR LOOP I WANT TO PROMPT USER TO ENTER THE GRADE OF EACH STUDENT (0-100) 
    AND DRAW A COLUMN THAT REPRESENTS THE GRADE **/ 
    } 
    } 

    public static void drawAxes() { 
    StdDraw.setPenColor(StdDraw.BLACK); 
    StdDraw.line(0.0,1.0,0.0,0.0); 
    StdDraw.line(0.0,0.0,1.0,0.0); 
    } 

    public static void drawColumn(double width, int studentIndex, int grade) { 
    StdDraw.setPenColor(StdDraw.BLUE); 
    StdDraw.filledRectangle(studentIndex, grade, width, 1.0); 
    } 

} 
+0

Разрешено ли вам использовать любые библиотеки? то вы могли бы легко выполнить это, используя библиотеки JFreeCharts. – cjcroix

+0

Да, мне разрешено использовать библиотеки, мы еще не рассматривали эту тему, но профессор сказал, пока он выводит правильные данные, не имеет значения, какой метод или библиотека я использую. –

ответ

0

Используйте библиотеку JFreeCharts. Дополнительную информацию см. В этом примере: http://www.tutorialspoint.com/jfreechart/jfreechart_bar_chart.htm

+0

Большое спасибо! Я буду следить за этим примером. Просто для любопытства, как бы это было сделано, просто используя StdDraw и циклы? –

+0

Если вы использовали StdDraw в своем коде, вам нужно будет указать пробел достаточных пикселей между последовательными прямоугольниками. Вы должны использовать аргументы функции, подобные этому заполненномуRectangle (double x, double y, double halfWidth, double halfHeight), поэтому прямоугольник будет центрироваться по x, y. Если координата x должна измениться на несколько пикселей после каждого бара , Если у вас есть этот ответ helphul, вы можете проголосовать за него http://stackoverflow.com/help/why-vote :) – cjcroix

Смежные вопросы