0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 23
1

Создать класс очередь. Графическая реализация очереди на основе класса

08.05.2013, 23:33. Показов 1954. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста, полнейша безысходность в простых прораммах работа с очередью понятно, но с графической реализацией...
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2013, 23:33
Ответы с готовыми решениями:

Создать на базе класса с реализацией очереди клас потомок — кольцевая очередь
Доброго времени суток. Я хотел создать на базе класса с реализацией очереди клас потомок -...

На основе двух экземпляров объектов класса стек (Stack) реализовать класс очередь (Queue)
5. На основі двох екземплярів об’єктів класу стек (Stack) реалізувати клас черга (Queue). ...

Создать базовый класс список и реализовать на его основе стек и очередь
2. Создать базовый класс список. Реализовать на базе списка стек и очередь с виртуальными...

Класс: Создать на основе базового класса Car три класса-автомобиля: Тойота, Феррари, Бугатти.
Всем привет! На днях дали эту задачу, пытался делать по-разному не хоть убей не могу сделать. К...

5
707 / 707 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
09.05.2013, 11:06 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
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
public partial class Form1 : Form
    {
        public class MyQueue 
        {
            List<MyRect> list;
 
            public MyQueue()
            {
                list = new List<MyRect>();
            }
 
            public void Enqueue(MyRect rect)
            {
                rect.Number = list.Count;
                list.Add(rect);
            }
 
            public MyRect Get()
            {
                MyRect tmp = list[0];
                list.RemoveAt(0);
                return tmp;
            }
 
            public void DrawQueue(Graphics g)
            {
                foreach (MyRect r in list)
                {
                    r.Draw(g);
                }
            }
        }
 
        public class MyRect 
        {
            Rectangle rect;
            int number;
 
            public MyRect(int x, int y, int width, int height)
            {
                rect.X = x;
                rect.Y = y;
                rect.Width = width;
                rect.Height = height;
            }
 
            public int Number
            {
                get { return number; }
                set { this.number = value; }
            }
 
            public void Draw(Graphics g)
            {
                g.DrawRectangle(new Pen(new SolidBrush(Color.Black)), rect);
                g.DrawString(number.ToString(), new Font("Arial", 10), new SolidBrush(Color.Black), rect.X + 5, rect.Y + 5);
            }
        }
        
        MyQueue queue;
        Random rand;
        Panel panel1, panel2;
        List<MyRect> l; //список для выборки из очереди
 
        public Form1()
        {
            queue = new MyQueue();
            rand = new Random();
            l = new List<MyRect>();
            Button add, del;
            add = new Button();
            del = new Button();
            add.SetBounds(10, 10, 70, 30);
            del.SetBounds(100, 10, 70, 30);
            add.Text = "Добавить";
            del.Text = "Вытащить";
            this.Controls.Add(add);
            this.Controls.Add(del);
            add.Click += add_Click;
            del.Click += del_Click;
            panel1 = new Panel();
            panel2 = new Panel();
            panel1.SetBounds(10, 50, 200, 200);
            panel2.SetBounds(220, 50, 200, 200);
            panel1.BorderStyle = BorderStyle.FixedSingle;
            panel2.BorderStyle = BorderStyle.FixedSingle;
            this.Controls.Add(panel1);
            this.Controls.Add(panel2);
            panel1.Paint += panel1_Paint;
            panel2.Paint += panel2_Paint;
            InitializeComponent();
            this.Width = 440;
            this.Height = 300;
        }
 
        void panel2_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = Graphics.FromHwnd(panel2.Handle);
            foreach (MyRect r in l)
            {
                r.Draw(g);
            }
        }
 
        void panel1_Paint(object sender, PaintEventArgs e)
        {
            queue.DrawQueue(Graphics.FromHwnd(panel1.Handle));
        }
 
        void del_Click(object sender, EventArgs e)
        {
            try
            {
                l.Add(queue.Get());
            }
            catch (ArgumentOutOfRangeException)
            { MessageBox.Show("Очередь пуста"); return; }
            panel1.Refresh();
            panel2.Refresh();
        }
 
        void add_Click(object sender, EventArgs e)
        {
            queue.Enqueue(new MyRect(rand.Next(0, panel1.Width-30), rand.Next(panel2.Height-30), 20, 20));
            panel1.Refresh();
        }
    }

Не по теме:

Те кто не поленился посмотреть код. Если нашли явные быдлокодерские косяки, укажите на них, окажите услугу:)

1
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 23
15.05.2013, 16:13  [ТС] 3
Огоромное спасибо, а как это все сделать в формах
0
707 / 707 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
15.05.2013, 16:27 4
Создайте пустую форму и вставьте код из класса что я написал в нее.
1
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 23
15.05.2013, 17:21  [ТС] 5
Ага спасибо
0
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 23
03.06.2013, 20:37  [ТС] 6
Помогите пожалуйста графически это надо реализовать так...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2013, 20:37

Я хочу создать пользовательский класс в C#, на основе класса button
Обращаюсь к профессионалам, имеющим опыт разработки приложений на C#, связанных с базами данных....

Создать очередь из целых чисел. Определить среднее значение элементов очереди. Организовать просмотр данных очереди
Создать очередь из целых чисел. Определить среднее значение элементов очереди. Организовать...

На основе класса User создать класс Employee, описывающий сотрудника фирмы
Наследование и полиморфизм 1)На основе класса User создать класс Employee, описывающий...

Реализация стека и очереди на основе списка
1. Создать базовый класс CList (линейный однонаправленный cписок) с полями: указате-ли на...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.