Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 26.12.2010
Сообщений: 65

Организовать 2 класса - склад и товар. Работа с массивом класса

24.05.2012, 00:15. Показов 1557. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: нужно организовать 2 класса(склад и товар), класс "товар" должны содержать информацию о товаре, а "склад" должен содержать поля: закрытый массив товаров, вывода товара по его номеру, отсортированный массив товаров по цене и по названию товара.
класс товары я сделал
C#
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Товары
    {
        private string nameTovars;
        private Int32 Kolich,Cena;
        private Boolean Rab; //в задании было сказано, что бы придусмотреть состояние вот создали переменную которая будит указывать это
 
        public void SetnameTovars(string nameTovars)
        {
            this.nameTovars = nameTovars;
        }
 
        public void SetKolich(Int32 Kolich)
        {
            this.Kolich = Kolich;
        }
 
        public void SetCena(Int32 Cena)
        {
            this.Cena = Cena;
        }
 
        public void SetRab(Boolean Rab)
        {
            this.Rab = Rab;
        }
 
        public string GetnameTovars()
        {
            return nameTovars;
        }
        public Int32 GetKolich()
        {
            return Kolich;
        }
        public Int32 GetCena()
        {
            return Cena;
        }
        public Boolean GetRab()
        {
            return Rab;
        }
 
    }
}
а вот как сделать класс Склад я запутался вот что смог сделать..
C#
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Склад
    {
        private Товары[] a = new Товары[30];
 
        public void SetElementMassiva(int nomer,string nameTovars,Int32 Kolich,Int32 Cena,Boolean Rab)
        {
            this.a[nomer].SetnameTovars(nameTovars);
            this.a[nomer].SetKolich(Kolich);
            this.a[nomer].SetCena(Cena);
            this.a[nomer].SetRab(Rab);
        }
 
        public string GetElementMassiva(int nomer)
        {
            string s= a[nomer].GetnameTovars;
            return s;
        }
 
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.05.2012, 00:15
Ответы с готовыми решениями:

Коллекция "Склад", включающий до 20 объектов класса "Товар": нарисовать график статистического учета
Добрый день,уважаемые программисты. Задача: В коллекции «Склада», включающей до 20 объектов класса «Товар», предусмотреть подсчет...

XmlJava. Сериализация класса с полем - массивом объектов другого класса
Есть 2 класса Студент и Академ.группа(с полем - массивом студентов). Необходимо выполнить сериализацию и десереализацию в XML. Для этого...

Работа с массивом, как член-свойством класса
Здравствуйте, снова обращаюсь к вам за советом. Итак пишу на с++/cli. Есть класс. Член-свойство класса - массив. Есть методы которые...

8
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
24.05.2012, 00:20
1.
Цитата Сообщение от Shaitan63 Посмотреть сообщение
public void SetnameTovars(string nameTovars) { this.nameTovars = nameTovars; }
Так нельзя делать!
Можно вот так:
C#
1
public kol { get; set; }
2. Я сейчас сделаю все как по добру и скину.
1
1 / 1 / 0
Регистрация: 26.12.2010
Сообщений: 65
24.05.2012, 00:25  [ТС]
хорошо, а препад нас таким образом заставлял писать))
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
24.05.2012, 00:30
Вот так будет нормально:
C#
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Товары
    {
        public string nameTovars { get; set; }
        public int Kolich { get; set; }
        public int Cena { get; set; }
        public Boolean Rab { get; set; }
    }
 
    class Склад
    {
        private Товары[] a = new Товары[30];
 
        public void SetElementMassiva( int nomer, string nameTovars, int Kolich, int Cena, bool Rab )
        {
            this.a[nomer].nameTovars = nameTovars;
            this.a[nomer].Kolich = Kolich;
            this.a[nomer].Cena = Cena;
            this.a[nomer].Rab = Rab;
        }
 
        public string GetElementMassiva( int nomer )
        {
            return a[nomer].nameTovars;
        }
 
        public Товары[] SortByCena()
        {
            return a.OrderBy( q => q.Cena ).ToArray();
        }
 
        public Товары[] SortByName()
        {
            return a.OrderBy( q => q.nameTovars ).ToArray();
        }
    }
}
1
1 / 1 / 0
Регистрация: 26.12.2010
Сообщений: 65
24.05.2012, 00:37  [ТС]
сейчас посмотрю

Добавлено через 4 минуты
Цитата Сообщение от Shaitan63 Посмотреть сообщение
вывода товара по его номеру,
C#
1
2
3
4
        public string GetElementMassiva( int nomer )
        {
            return a[nomer].nameTovars;
        }
в задачи имелось в виду вывести все данные этого товара
return a[nomer].nameTovars+a[nomer].Kolich+a[nomer].Cena +a[nomer].Rab;
компилятор не позволяет
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
24.05.2012, 01:02
Цитата Сообщение от Shaitan63 Посмотреть сообщение
в задачи имелось в виду вывести все данные этого товара
return a[nomer].nameTovars+a[nomer].Kolich+a[nomer].Cena +a[nomer].Rab;
компилятор не позволяет
Все он позволяет
C#
1
2
return string.Format( "Наименование: {0}, кол-во: {1}, цена: {2}, раб: {3}", 
    a[nomer].nameTovars, a[nomer].Kolich, a[nomer].Cena, a[nomer].Rab );
1
1 / 1 / 0
Регистрация: 26.12.2010
Сообщений: 65
24.05.2012, 01:20  [ТС]
всё понял спс))
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
24.05.2012, 01:25
Цитата Сообщение от Shaitan63 Посмотреть сообщение
всё понял спс))
Пожалуйста.
0
1 / 1 / 0
Регистрация: 26.12.2010
Сообщений: 65
24.05.2012, 21:24  [ТС]
я начал делать саму программу
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        static void Main(string[] args)
        {
            Склад p = new Склад();
            for (int i = 0; i < 5; i++)
            {
                int n = int.Parse(Console.ReadLine());
                string s = Console.ReadLine();
                int k = int.Parse(Console.ReadLine());
                int c = int.Parse(Console.ReadLine());
                Boolean t = Boolean.Parse(Console.ReadLine());
                p.SetElementMassiva(n, s, k, c, t);
            }
 
        }
и на 2 шаге выдаёт ошибку "Ссылка на объект не указывает на экземпляр объекта."

Добавлено через 26 минут
и так тоже ругается
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Склад[] p = new Склад[5];
          
      
            for (int i = 0; i < 5; i++)
            {
                p[i] = new Склад();
                p[i].SetElementMassiva(int.Parse(Console.ReadLine()), Console.ReadLine(), int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()), Boolean.Parse(Console.ReadLine()));
            }
 
        }
    }
}
Добавлено через 3 часа 58 минут
всё разобрался, осталось только правильно вызвать сортировку))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2012, 21:24
Помогаю со студенческими работами здесь

Опишите класса товара. Поля класса: имя товара, цена товара, количество товара на склад
Опишите класса товара. Поля класса: имя товара, цена товара, количество товара на складе. Выполнить следующими методами: 1) класс с...

Проверка создания объекта класса BBB из класса AAA и работа с ним
#define @param2; // объявили для выяснения случая: нужен новый или использовать существующий. Class AAA { private: void...

Работа с массивом элементов класса TextBox. Окрашивание textBox при нажатии мыши на него
Доброго времени суток. До запуска программы не известно, какое количество элементов класса TextBox потребуется, поэтому по ходу создается...

Как связать сигнал одного класса со слотом другого класса, содержащего указатель на объект этого класса?
Подскажите, пожалуйста, как связать сигнал одного класса со слотом другого класса, содержащего указатель на объект этого класса. Буду очень...

Инициализация шаблонного класса(В конструкторе класса после двоеточия вновь имя класса)
Всем доброго времени суток! Пытаюсь разобраться как работает приведенный мной код. Конкретно, пытаюсь разобраться что происходит в...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru