Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2010, 19:42   #1
Маринка777
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 12
По умолчанию Связные списки

закомментируйте пожалуйста прогу, чтоб она стала понятна для восприятия
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace курсач
{
  public partial class Form1 : Form
  {
    Graphics g;
    Rectangle rect = new Rectangle();
    Font f = new Font("Arial", 10);
    List<string> list = new List<string>();
    List<Rectangle> listp = new List<Rectangle>();
    int m = 0;
    int c = 0;
    int k = -1;
    public Form1()
    {
      InitializeComponent();
      g = this.CreateGraphics();
      rect.Width = 50;
      rect.Height = 20;
      rect.X = rect.Y = 0;      
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void add_Click(object sender, EventArgs e)
    {
      g.FillRectangle(Brushes.Aqua, rect);
      string s = textBox1.Text;
      g.DrawString(s, f, Brushes.Black, rect);
      list.Add(s);
      listp.Add(rect);
      rect.X = rect.X + 60;
      //textBox1.Clear();
    }

    private void Form1_MouseClick(object sender, MouseEventArgs e)
    {
      k = OpredNomVer(e);
      if (k != -1)
      {
        if (m % 2 == 0)
        {
          c = k;
          m++;
          Insert(c, c);
        }
        else
        {
          Insert(c, k);
        }
      }
    }
    public int OpredNomVer(MouseEventArgs e)
    {
      for (int i = 0; i < list.Count; i++)
      {
        if (e.X > listp[i].X && e.X < listp[i].X + 50 && e.Y > listp[i].Y && e.Y                       < listp[i].Y + 20)
        {
          return i;
        }
      }
      return -1;
    }
    public void Insert(int n, int k)
    {
      for (int i = n; i < k + 1; i++)
      {
        rect = listp[i];
        g.FillRectangle(Brushes.Coral, rect);
        string s = list[i];
        g.DrawString(s, f, Brushes.Black, rect);
      }
    }

    private void Delete_Click(object sender, EventArgs e)
    {
      int h = 0;
      for (int i = c; i < list.Count; i++)
      {
        rect = listp[i];
        g.FillRectangle(Brushes.White, rect);
        h++;
      }
      for (int i = k; i > c - 1 && i < listp.Count; i--)
      {
        list.Remove(list[i]);
        listp.Remove(listp[i]);
      }
      for (int i = c; i < list.Count; i++)
      {
        rect.X = 60 * c + 60 * (i-1);
        g.FillRectangle(Brushes.Aqua, rect);
        string s = list[i];
        g.DrawString(s, f, Brushes.Black, rect);
      }
    }    
  }
}
Маринка777 вне форума Ответить с цитированием
Старый 08.06.2010, 21:58   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

А что конкретно Вам не понятно?
dampirik вне форума Ответить с цитированием
Старый 08.06.2010, 22:02   #3
Маринка777
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от dampirik Посмотреть сообщение
А что конкретно Вам не понятно?
какая функция что делает, какие переменные...

а программа вообще работает так: "Создать и отобразить на форме список символьных строк. Выбрать с помощью мыши любую часть этого списка, указав начальную и конечную строку, и выделить ее другим цветом. Создать командную кнопку, вызывающую функцию, удаляющую выбранную часть списка."
Маринка777 вне форума Ответить с цитированием
Старый 08.06.2010, 23:41   #4
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Ну дк... по названию же все понятно: типо Form1_MouseClick add_Click Delete_Click

Вы пробовали самостоятельно разобраться?
ЗЫ кстати это не вся прога если что... тут только функции...
dampirik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Линейные связные списки и файловый ввод-вывод coll3ctor Помощь студентам 0 02.05.2010 14:54
Связные таблицы в Access Fill_Good_Inc БД в Delphi 0 02.04.2010 20:32
Связные списки\строки Khristoshin Помощь студентам 0 27.01.2010 20:44
СВЯЗНЫЕ ТАБЛИЦЫ chekanoff БД в Delphi 6 16.09.2009 13:59