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

Коллекция "Склад", включающий до 20 объектов класса "Товар": нарисовать график статистического учета

04.05.2012, 16:34. Показов 2897. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,уважаемые программисты.

Задача:
В коллекции «Склада», включающей до 20 объектов класса «Товар», предусмотреть подсчет стоимости и количества объектов «Товар» по из типу, например, «Канцелярский товар», «Хозяйственный товар» или «Продукт» (всего до 6 различных типов). Напечатать исходную коллекцию и результаты статистического учета.

Задача выполнена,но результат(статистического учета) нужно показать ввиде графика или диаграммы.
Тут я вообщем завис

Код формы1
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Collections;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
 
namespace WindowsFormsApplication10
{
    public partial class Form1 : Form
    {
        [Serializable]
      public  class Tovar
        {            
           public string tip;
           public int stoim;
           public int kolvo;
           public static int erunda;
           public Tovar(int kolvo,int stoim)
           {
               this.stoim = stoim;
               this.kolvo = kolvo;
           }
        }
 
       public ArrayList tovar = new ArrayList();
       public bool flag;
        public void zapf()
        {
            // Form2 f2 = new Form2();
            // Создаем поток для сериализации:
            FileStream StreamOut = new FileStream("tovar.dat",
                      FileMode.Create, FileAccess.Write);
            // Используем двоичный формат:
            BinaryFormatter fmt = new BinaryFormatter();
            fmt.Serialize(StreamOut, tovar);   // Сериализуем объекты
            StreamOut.Close();                 // Закрываем поток
 
        }
       public void vvod()
        {
            int i = 0;
            // Создаем поток для десериализации:
            FileStream StreamIn = new FileStream("tovar.dat",
                       FileMode.Open, FileAccess.Read);
            // Используем двоичный формат:
            BinaryFormatter fmt = new BinaryFormatter();
            tovar = (ArrayList)fmt.Deserialize(StreamIn);//Десериализуем
           Tovar.erunda = 0;
            foreach (Tovar t in tovar)
            { Tovar.erunda++; i++; }
            Tovar.erunda--;
            StreamIn.Close();
        }
      
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int a, b;
            if (radioButton1.Checked == true)
            {
                a = Convert.ToInt32(textBox1.Text);
                b = Convert.ToInt32(textBox2.Text);
                Tovar tv0 = new Tovar(a, b);
                tv0.tip = "Канцелярский товар,";
                tovar.Add(tv0);
                richTextBox1.AppendText("ТИП:" + tv0.tip + "   С Количеством:" + tv0.kolvo + ",  Стоимостью:" + tv0.stoim + "\r\n");
            }
            if (radioButton2.Checked == true)
            {
                a = Convert.ToInt32(textBox1.Text);
                b = Convert.ToInt32(textBox2.Text);
                Tovar tv1 = new Tovar(a, b);
                tv1.tip = "Хозяйственный товар,";
                tovar.Add(tv1);
                richTextBox1.AppendText("ТИП:" + tv1.tip + "   С Количеством:" + tv1.kolvo + ",  Стоимостью:" + tv1.stoim + "\r\n");
            }
            if (radioButton3.Checked == true)
            {
                a = Convert.ToInt32(textBox1.Text);
                b = Convert.ToInt32(textBox2.Text);
                Tovar tv2 = new Tovar(a, b);
                tv2.tip = "Продукт,";
                tovar.Add(tv2);
                richTextBox1.AppendText("ТИП:" + tv2.tip + "   С Количеством:" + tv2.kolvo + ",  Стоимостью:" + tv2.stoim +  "\r\n");
            }
            if (radioButton4.Checked == true)
            {
                a = Convert.ToInt32(textBox1.Text);
                b = Convert.ToInt32(textBox2.Text);
                Tovar tv3 = new Tovar(a, b);
                tv3.tip = "Строительный товар,";
                tovar.Add(tv3);
                richTextBox1.AppendText("ТИП:" + tv3.tip + "   С Количеством:" + tv3.kolvo + ",  Стоимостью:" + tv3.stoim + "\r\n");
            }
            if (radioButton5.Checked == true)
            {
                a = Convert.ToInt32(textBox1.Text);
                b = Convert.ToInt32(textBox2.Text);
                Tovar tv4 = new Tovar(a, b);
                tv4.tip = "Запчасти,";
                tovar.Add(tv4);
                richTextBox1.AppendText("ТИП:" + tv4.tip + "   С Количеством:" + tv4.kolvo + ",  Стоимостью:" + tv4.stoim + "\r\n");
            }
            if (radioButton6.Checked == true)
            {
                a = Convert.ToInt32(textBox1.Text);
                b = Convert.ToInt32(textBox2.Text);
                Tovar tv5 = new Tovar(a, b);
                tv5.tip = "Промышленный товар,";
                tovar.Add(tv5);
                richTextBox1.AppendText("ТИП:" + tv5.tip + "   С Количеством:" + tv5.kolvo + ",  Стоимостью:" + tv5.stoim + "\r\n");
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            zapf();
            MessageBox.Show("Запись произведена успешно =)");
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            vvod();
            MessageBox.Show("Чтение прозведено успешно =)");
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            flag = true;
            foreach (Tovar T1 in tovar)
            {
                richTextBox1.AppendText("ТИП:" + T1.tip + "   С Количеством:" + T1.kolvo + ",  Стоимостью:" + T1.stoim + "\r\n");
            }
        }
 
        private void button5_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.ShowDialog();
        }
 
 
    }
}
График хотелось бы отобразить на второй форме. Хотелось бы увидеть пример. Если не получается - объясните как можно будет отобразить результат.
Неадыкваты лесом из темы.
Заранее благодарю.
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.05.2012, 16:34
Ответы с готовыми решениями:

Организовать 2 класса - склад и товар. Работа с массивом класса
Задание: нужно организовать 2 класса(склад и товар), класс "товар" должны содержать информацию о товаре, а "склад" должен...

Коллекция объектов одного класса в экземпляре другого класса
Извиняюсь, если написал не совсем адекватный заголовок. В общем, у меня есть такая модель: public class AssetsFlowsViewModel { ...

Коллекция объектов класса
В чем ошибка и как исправить? Lab5.ccp: #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <string.h> ...

1
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
04.05.2012, 17:14
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Slevya Посмотреть сообщение
нужно показать ввиде графика или диаграммы
C#
1
2
3
4
5
6
7
8
9
10
var list = new List<Tovar>(tovar.Count);
list.AddRange(tovar.Cast<Tovar>());
var types = list.GroupBy(x => x.tip);
chart1.Series.Clear();
foreach (var type in types)
{
    chart1.Series.Add(type.Key);
    foreach (var good in type)
        chart1.Series[type.Key].Points.Add(good.stoim);
}
Остальное сам.

Не по теме:

Цитата Сообщение от Slevya Посмотреть сообщение
Неадыкваты лесом из темы.
Код написан отвратно... И показать надо было только строчки с 18 по 31 включительно - остальное мусор. И лучше впредь не использовать эту убогую коллекцию ArrayList. И еще, коллекцию элементов надо было назвать не "товар", а "товары".

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.05.2012, 17:14
Помогаю со студенческими работами здесь

Коллекция объектов моего класса
Привет :) Я только начал изучение PHP, поэтому просьба не кидаться в меня камнями. Я создал свой класс, и теперь мне надо...

Коллекция объектов базового класса
Доброго дня! У меня есть несколько классов одинаковых по предметной области(это фигуры круги и треугольники), просто рисуются они по...

Коллекция объектов класса «Одежда»
Создать класс «Одежда» и класс «Шкаф для одежды», как коллекцию объектов класса «Одежда». Число объектов класса «Одежда» и их категорию...

Типизированная коллекция объектов (List<>) для класса Банк
У меня есть класс банк, и мне надо модифицировать таким образом, чтобы программа вместо массива объектов использовала список объектов...

Программа для ведения статистического учета успеваемости учащихся
Программа учета успеваемости учащихся. Помогите написать простенькую базу данных или скиньте ,если есть у кого заготовку (шаблон) можно на...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru