Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/65: Рейтинг темы: голосов - 65, средняя оценка - 4.88
0 / 0 / 1
Регистрация: 16.09.2012
Сообщений: 53

Как заполнить табличку и вывести на консоль?

16.09.2012, 12:57. Показов 12445. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть данные, день покупки( число от 1 до 31), наименование продукта, цена, и количество. Я образовала 2 класса
Java
1
2
3
4
5
6
7
8
9
10
class Order {
    Product product;
    int day;
    int count;
}
 
public class Product {
    String nameProduct;
    int price;
}
Как заполнить табличку и вывести на консоль, чтобы типо такого получилось:

день наимпродукта цена количество стоимость
4 масло 12000 3 36000
8 молоко 14000 2 28000

Я так понимаю маccивом нельзя? Нужно обязательно что-то импортировать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.09.2012, 12:57
Ответы с готовыми решениями:

Как заполнить табличку?
Здравствуйте. Подскажите пожалуйста как заполнить данную таблицу правильно

заполнить табличку
Добрый день, Подскажите как заполнить табличку? Есть табличка такого плана товар Имя товара ...

Как вывести табличку в joomla из базы
Здравствуйте на простом php все понятно, но как это реализовать в joomla? <?php include ("blocks/db.php"); // подключение...

20
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 15
16.09.2012, 13:46
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
public class PriceList {
 
    /**
     * @param args
     */
 
    static List<String> pr = new ArrayList<String>();
    static List<Integer> day = new ArrayList<Integer>();
    static List<Integer> count = new ArrayList<Integer>();
    static List<Integer> price = new ArrayList<Integer>();
 
    public static void main(String[] args) {
        pr.add("Хлеб");
        day.add(1);
        count.add(5);
        price.add(50);
 
        pr.add("Чай");
        day.add(2);
        count.add(10);
        price.add(100);
        System.out.println("Наим" + "День" + "Колич" + "Цена");
        for (int i = 0; i < pr.size(); i++) {
            System.out.println(pr.get(i) + " " + day.get(i) + " "
                    + count.get(i) + " " + price.get(i));
 
        }
    }
Только нужно сделать форматированный вывод.
0
0 / 0 / 1
Регистрация: 16.09.2012
Сообщений: 53
16.09.2012, 14:33  [ТС]
А если я сделала так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public class Product {
    String nameProduct;
    int price;
    
    Product(String nameProduct, int price)
    {
        this.nameProduct=nameProduct;
        this.price=price;
    }
    String getNameProduct()
    {return nameProduct;}
    int getPrice()
    {return price;} 
}
 
public class Order {
    Product product;
    int day;
    int count;
    
    Order(int day,Product product, int count)
    {
        this.day=day;
        this.product=product;
        this.count=count;
    }
    int getDay()
    {return day;}
    Product getProduct()
    {return product;}
    int getCount()
    {return count;}
}
 
public class Main {
    public static void main(String[] args) {
    
    Product[] tova = new Product[3];
    tova[0]=new Product("Масло",12000);
    tova[1]=new Product("Молоко",14000);
        
    Order[] tovar = new Order[2];
    tovar[0]=new Order(2,tova[0],5);
    tovar[1]=new Order(7,tova[1],3);
    System.out.println("День\tНаименование товара\tЦена\tКоличество");
    for (int i=0;i<tovar.length;i++)
    {   
        System.out.println(tovar[i].getDay()+"\t"+tova[i].getNameProduct()+"\t\t\t"+ tova[i].getPrice()+"\t"+tovar[i].getCount());
    }       
            
    }
}
Так можно? А то с импортом пока не знакома.
Мне еще с этой табличкой нужно сделать:
– вычислить и вывести стоимость всех покупок;
– отсортировать покупки по возрастанию дня покупки и вывести их на консоль;
– определить, была ли покупка в десятый день месяца
Я с моим кодом могу это сделать?

Добавлено через 12 минут
В частности сортировку.
0
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 15
16.09.2012, 14:53
Да, можно. Наверняка это работа по пройденному материалу. У Вас в задании стоит условие что конкретно нужно использовать для выполнения данной работы?
0
0 / 0 / 1
Регистрация: 16.09.2012
Сообщений: 53
16.09.2012, 15:01  [ТС]
– Использовать объектно-ориентированный подход для описания покупок.
– Массив или коллекцию покупок инициализировать в коде с помощью конструктора или метода. Как следствие, не использовать внешние источники данных: консоль (т.е. ввод с клавиатуры), файлы, СУБД, XML и т.п.
– Приложение должно быть консольным. Не использовать графический интерфейс! Таким образом, приложение ничего не должно вводить, а только выводить результаты на консоль.

Мне только сортировку осталось сделать, подскажите с чего начать.
0
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 15
16.09.2012, 15:29
Если бы вы делали через коллекции, как в моём примере, Вам нужно было бы выбрать поле по которому нужно сделать сортировку. А так как мы использовали список(List) то значит все элементы заносились исключительно с идентичными индексами.Тобиш делаем сортировку и в соотвествии расположению индексов отсортированного поля выводим остальные поля.
В вашем случае такое тоже возможно.

Мне кажется что лучше сделать один класс для заполнения данных ("День, Наименование товара, Цена, Количество").
0
0 / 0 / 1
Регистрация: 16.09.2012
Сообщений: 53
16.09.2012, 16:46  [ТС]
Спасибо, все работает))

Добавлено через 50 минут
Не совсем
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Main {
    public static void main(String[] args) {
    
    Product[] tovar = new Product[10];
    tovar[0]=new Product("Масло",12000);
    tovar[1]=new Product("Молоко",14000);
    tovar[2]=new Product("Сметана",8000);
    tovar[3]=new Product("Хлеб",4500);
    tovar[4]=new Product("Мороженое",4000);
    
        
    Order[] pocupka = new Order[10];
    pocupka[0]=new Order(3,tovar[0],5);
    pocupka[1]=new Order(7,tovar[1],4);
    pocupka[2]=new Order(2,tovar[4],2);
    pocupka[3]=new Order(10,tovar[3],3);
    pocupka[4]=new Order(25,tovar[3],1);
    pocupka[5]=new Order(13,tovar[1],1);
    pocupka[6]=new Order(2,tovar[1],3);
    pocupka[7]=new Order(2,tovar[3],2);
    pocupka[8]=new Order(8,tovar[0],1);
    pocupka[9]=new Order(7,tovar[2],3);
    System.out.println("День\tНаименование товара\tЦена\tКоличество");
    for (int i=0;i<pocupka.length;i++)
    {
        sum=sum+tovar[j].getPrice()*pocupka[i].getCount();
        System.out.println(pocupka[i].getDay()+"\t"+tovar[j].getNameProduct()+"\t\t\t"+ tovar[j].getPrice()+"\t"+pocupka[i].getCount());
    }
Как эту j объявить, чтобы при выводе он по индексу покупки i находил и выводил товар j?
0
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 15
16.09.2012, 17:24
Добавте в классе Order метод
Java
1
2
3
public String toString (){
        return day+" "+product+" "+count;
    }
в классе Product
Java
1
2
3
4
 public String toString(){
        return nameProduct+" "+price;
        
    }
Теперь при вызове
Java
1
 System.out.println(pocupka[1]);
у вас будет вывод:

День Наименование товара Цена Количество
7 Молоко 14000 4

Соответственно если поиграться то можно вывести любое значение.
0
0 / 0 / 1
Регистрация: 16.09.2012
Сообщений: 53
16.09.2012, 17:52  [ТС]
А вот описание массивов tovar и pocupka может лучше прописать в классах Order и Product соответственно? И еще такой вопросик, обязательно чтобы количество строк в этих массивах были одинаковы?

Добавлено через 3 минуты
Опять же как теперь посчитать стоимость всех покупок?
0
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 15
16.09.2012, 17:58
Без разницы.Не обязательно. Проходите циклом по количеству товаров и накапливаете их в сумму.
0
0 / 0 / 1
Регистрация: 16.09.2012
Сообщений: 53
16.09.2012, 18:06  [ТС]
Дак надо же сумму количество*цену, у меня было
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sum=sum+tovar[i].getPrice()*pocupka[i].getCount(); - это когда массивы одинаковые, а если
Product[] tovar = new Product[5];
    tovar[0]=new Product("Масло",12000);
    tovar[1]=new Product("Пицца",60000);
    tovar[2]=new Product("Сметана",8000);
    tovar[3]=new Product("Хлеб",4500);
    tovar[4]=new Product("Шоколад",11000);
    
        
    Order[] pocupka = new Order[10];
    pocupka[0]=new Order(3,tovar[3],5);
    pocupka[1]=new Order(7,tovar[1],4);
    pocupka[2]=new Order(2,tovar[0],2);
    pocupka[3]=new Order(10,tovar[2],3);
    pocupka[4]=new Order(25,tovar[2],1);
    pocupka[5]=new Order(13,tovar[1],1);
    pocupka[6]=new Order(2,tovar[2],3);
    pocupka[7]=new Order(2,tovar[4],2);
    pocupka[8]=new Order(8,tovar[3],1);
    pocupka[9]=new Order(7,tovar[0],3);
5товаров и 10 покупок то как?
0
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 15
16.09.2012, 18:47
Java
1
2
3
4
5
for(i=0, pokupka.lenth, i++){
 for(j=0, tovar.lenth, j++){
//а здесь высчитываете вашу сумму
}
}
Добавлено через 12 минут
Выше глупость написал.
Java
1
2
3
4
5
6
7
8
for(int i=0; i<pocupka.length; i++){
        
        
             summ =pocupka[i].getCount()*pocupka[i].product.getPrice(); 
             System.out.println("Сумма по товарам:"+pocupka[i].product.getNameProduct()+" "+summ);
        osumm = summ + osumm;
    }
    System.out.println("Ощая сумма"+osumm);
0
0 / 0 / 1
Регистрация: 16.09.2012
Сообщений: 53
16.09.2012, 18:49  [ТС]
Так не подходит, он тогда по каждому продукту количество умножает на все товары и складывает, а у меня 1 конкретный товар - 1 продукт...
0
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 15
16.09.2012, 18:56
Вы сами уже запутались. В одной покупке содержится несколько товаров, для получения общей суммы товаров нужно количество товаров умножить на цену за ед.
Смотрите прошлое сообщение, я его отредактировал.
0
0 / 0 / 1
Регистрация: 16.09.2012
Сообщений: 53
16.09.2012, 18:58  [ТС]
Здорово, работает))) Спасибо
А вот еще такой вопросик, в задаче еще дано:

Допускаются еще три варианта покупок:
1. со скидкой, задаваемой процентом от стоимости;
2. со скидкой в цене (например, цена товара 5000 руб., скидка 300 руб.);
3. с надбавкой за транспортные расходы на доставку товара.

я не могу понять что мне с ними делать. Может надо самой придумать, допустим, 2% скидка, если сумма покупки больше 1000000 и надбавка 1% если куплен телевизор? Тогда нужно 3 отдельных класса создавать, или можно в Order полями сделать и с помощью if выяснять стоимость?
0
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 15
16.09.2012, 19:06
Создайте класс скида и создайте Ваши три метода - три вариации скидок. Далее при вычислении вашей суммы будете просто вызывать необходимую Вам скидку. Ну а если Вам необходимо сделать автоматический подбор скидки, то ко всему этому нужно будет создать дополнительное условие.
0
0 / 0 / 1
Регистрация: 16.09.2012
Сообщений: 53
16.09.2012, 19:45  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Skidka {
 
    private int sumSkidka=1000;
    private double prSkidka=0.1;
    private double prNadb=0.1;
    
    int getSumSkidka()
    {return sumSkidka;}
    
    double getPrSkidka()
    {return prSkidka;}
    
    double getPrNadb()
    {return prNadb;}
 
}
так правильно?
0
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 15
16.09.2012, 21:50
да, всё верно
0
0 / 0 / 1
Регистрация: 16.09.2012
Сообщений: 53
16.09.2012, 21:58  [ТС]
Спасибо, очень помогли))
0
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 15
18.09.2012, 16:32
Для ""Спасибо" есть специальная кнопка Всегда пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.09.2012, 16:32
Помогаю со студенческими работами здесь

Заполнить табличку по Операционным Системам
Добрый вечер. Нужно заполнить табличку, слева: характеристики ОС, сверху названия ОС, в ячейках пересечения поставить галочку если...

Как вывести новую табличку в которой автоматически будет выводиться название столбца и ниже список?
Есть табличка Строки: Месяцы Столбцы: Имена На пересечении значения Как вывести новую табличку, в которой автоматически будет...

Создать массив из 30 элементов. Заполнить случайными числами от 0 до 50. Вывести массив на консоль
Создать массив из 30 элементов. Заполнить случайными числами от 0 до 50. Вывести массив на консоль. Заменить все элементы, чьи значения...

вывести json в табличку
нужно вывести следующий json но в удобоваримом виде {&quot;news&quot;:} то есть нужно сделать табличку где все это красиво по ячейкам...

Как заполнить одномерный массив строкой со множеством значение через консоль?
например создаю массив и заполняю его к примеру 30ю значениями. int repeat = 30; int array = new int; for (int i =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru