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

Узнай цену своей работы

Формулировка задачи:

Добрый день,уважаемые программисты. Задача: В коллекции «Склада», включающей до 20 объектов класса «Товар», предусмотреть подсчет стоимости и количества объектов «Товар» по из типу, например, «Канцелярский товар», «Хозяйственный товар» или «Продукт» (всего до 6 различных типов). Напечатать исходную коллекцию и результаты статистического учета. Задача выполнена,но результат(статистического учета) нужно показать ввиде графика или диаграммы. Тут я вообщем завис Код формы1
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();
        }

    }
}
График хотелось бы отобразить на второй форме. Хотелось бы увидеть пример. Если не получается - объясните как можно будет отобразить результат. Неадыкваты лесом из темы. Заранее благодарю.

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

textual
Листинг программы
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);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы