Главная » Просмотр файлов » maran program engineering

maran program engineering (830029), страница 16

Файл №830029 maran program engineering (Маран Программная инженерия) 16 страницаmaran program engineering (830029) страница 162021-02-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 16)

В середины формынаходится компонент dataGridView из палитры Data, на котором и будет представлен двумерный массив. В принципе существуют две возможности обработки двумерного массива: считывать его элементы прямо из формы или создать83обычный двумерный массив, записать туда элементы с формы и обрабатыватьего. Последняя возможность предпочтительнее, если массив должен обрабатываться многократно, так можно избежать многократного преобразования данных. Нижнюю часть формы (метка и кнопка Класс, строку редактированиястрока) рассмотрим ниже, в п. 5.6.Реализация:До начала работы программы необходимо задать количество строк истолбцов. Считаем, что начальные их значения даны при проектировании(в нашем случае 3 и 4).

Во время работы программы их можно менять. Начальные значения дадим в конструкторе формы.public partial class Form1 : Form{int n, m;//n-количество строк, m–количество столбцовpublic Form1(){InitializeComponent();// определим количество строк и столбцовn = Convert.ToInt32(RowCnt.Text);m = Convert.ToInt32(ColCnt.Text);dataGridView1.RowCount = n;dataGridView1.ColumnCount = m;/* dataGridView1 имя поля представления двумерного массива RowCount количество строкColumnCount количество столбцов*/}private void Change_Click(object sender, EventArgs e){ // изменение количества строк и столбцов,// считаем, что их минимальное значение равно 2n = Convert.ToInt32(RowCnt.Text);m = Convert.ToInt32(ColCnt.Text);if (n < 2) n = 2;if (m < 2) m = 2;dataGridView1.RowCount = n;dataGridView1.ColumnCount = m;}private void Sum2_Click(object sender, EventArgs e){double x,sum = 0;for(int i=0;i<dataGridView1.Rows.Count;i++)for(int j=0;j<dataGridView1.Columns.Count;j++){84x = Convert.ToDouble(dataGridView1.Rows[i].Cells[j].Value);// чтение значений из формыsum += x;x *= 2.5;// изменения значенийdataGridView1.Rows[i].Cells[j].Value =x.ToString("F1");// вывод значений на форму}Sum1.Text = sum.ToString("F2");}Во втором варианте обработки двумерного массива используем для внутреннего представления массива стандартный класс DataTable.

Это класс в первую очередь предназначен для работы с таблицами баз данных, поэтому в немстолбцы могут иметь разный тип данных. В этом примере у нас все столбцыбудут иметь одинаковый тип данных, поэтому мы можем их задать в цикле.Внешний вид представлен на рис. 5.4, верхняя строка представляет номерастолбцов, первый столбец предназначен для номеров строк.Занесем на форму компонент dataGridView из группы Data и дадим емуимя Gr1. Этот компонент служит для представления таблицы (по сути двумерного массива) на форме. Для внутреннего представления двумерного массиваиспользуем стандартный класс DataTable (объект Tabel).В состав класса Form1 добавим функцию InitGrid с двумя параметрами:количество строк и количество столбцов.

Эта функция определяет свойствасоздаваемой таблицы и связывает ее с представлением на форме. Для начальной инициализации таблицы включим ее вызов в конструктор класса Form1.Рис. 5.485namespace WA1{public partial class Form1 : Form{DataTable Tabel;void InitGrid(int n, int m){Tabel = new DataTable();DataColumn x2 = Tabel.Columns.Add("First ",typeof(Int32));// Создание первого столбца, параметры: заглавие и тип// данных Первый столбец содержит имена строкDataColumn x1;for (int i = 0; i < m; i++){//создание остальных столбцов – для представления данныхx1 = Tabel.Columns.Add("Col " + (i + 1), typeof(Int32));x1.DefaultValue = 0;//Значение по умолчанию}for (int i = 0; i < n; i++){ //создание срокDataRow y = Tabel.NewRow();Tabel.Rows.Add(y);Tabel.Rows[i][0] = i+1;}x2.ReadOnly = true;// первый столбец для номеров, туда// нельзя ввести данныеGr1.DataSource = Tabel;// связывает внутреннее и внешнее представления данных}public Form1(){InitializeComponent();InitGrid(3, 4);//создание начальной таблицы}private void In1_Click(object sender, EventArgs e){ // изменение количества строк, столбцовint k,n;86k = Convert.ToInt32(textBox1.Text);//Количество столбцовn = Convert.ToInt32(textBox2.Text);//Количество строкInitGrid(k, n);}{private void First_Click(object sender, EventArgs e)//обработка данных из таблицыint sum = 0;for (int i = 0; i < Tabel.Rows.Count ; i++)for (int j = 1; j < Tabel.Columns.Count; j++)sum += Convert.ToInt32(Tabel.Rows[i][j]);rezult.Text=Convert.ToString(sum);}private void Second_Click(object sender, EventArgs e){ // изменеие данных в таблицеint y,z = 3;for (int i = 0; i < Tabel.Rows.Count ; i++)for (int j = 1; j < Tabel.Columns.Count; j++){y = Convert.ToInt32(Tabel.Rows[i][j]);y += z;Tabel.Rows[i][j] = Convert.ToString(y);}}Примечания.1.

Нумерация строк и столбцов начинается с нуля. Нулевой столбец мы используем для номеров строк, поэтому при обработке минимальное значение номеров столбцов равно единице, а номеров строк — нулю. Перваястрока считается стандартной, и она в нумерацию не входит.2. На рис. 5.4 форма показана после нажатия кнопки «Сумма».5.2. Создание многооконных приложенийMicrosoft Visual Studio позволяет создавать две разновидности многооконных приложений: SDI- и MDI-приложения. SDI-приложения состоят из нескольких независимых форм (окон). По умолчанию будет создано SDI-приложение.В MDI-приложении имеется одна главная форма, остальные формы находятся впределах главной; из главной формы можно управлять подчиненными формами.Единственное меню MDI-приложения находится в главном окне.87Перед созданием многооконного приложения его необходимо проектировать: продумать вопрос о том, какие окна нужны и что на них будет отображено.Форма — это разновидность класса.

Экземпляры классов, как известно, необходимо создавать. Это правило распространяется и на формы: автоматически создается лишь одна форма — главная. Создание всех остальных форм лежит на программисте. Закрытие формы функцией Close(); или нажатием на кнопку × вызывает уничтожение формы, и в случае необходимости она должна быть создана заново.В принципе, любую задачу можно решить как с помощью SDIприложения, так и с помощью MDI-приложения.

Пожалуй, создание SDIприложения проще. MDI-приложение можно рекомендовать при необходимости создать и работать одновременно с несколькими одинаковыми формами.Microsoft Visual Studio является SDI-приложением.5.2.1. Создание SDI-приложенияПусть наше приложение содержит следующие формы:− главная форма с меню;− форма для определения режимов работы программы;− форма «О программе» (About);− форма для ввода исходных данных и вывода результата.В момент запуска приложения на экране появляются первые две формы,остальные появляются при выборе соответствующего пункта меню.Пусть меню имеет следующую структуру:FileWindowsHelpQuitNewAboutOpen DialogГлавная форма содержит только меню, и поэтому она здесь не приводится.Форма для определения режимов работы (Form2) программы приведена на рис.

5.5.Две радиокнопки имеют имена rB1 и rB2; две кнопки выбора — именаcB1 и cB2; строка редактирования textBox1. Реализация единственной командной кнопки: Hide(); (убрать с экрана, но не уничтожить, в таком случае ее можно позже только открыть, нет необходимости ее заново создавать).Рис. 5.588Занесение на форму перечисленных компонентов ничем не отличается отрассмотренного выше, и мы на этом останавливаться не будем.

В связи с тем,что эта форма участвует в многооконном приложении, требуется выполнитьдополнительные действия.1. Во избежание случайного закрытия этой формы уберем с нее кнопку ×.Для этого дадим ее свойству ControlBox значение False. В нашем приложении мы предусмотрим только открытие этой формы во время работы приложения. Ее создание выполняется автоматически при запуске. Поэтому при случайном ее закрытии (с уничтожением) пользователь лишен возможности ее заново создать.2. Необходимо обеспечить доступ к радиокнопкам, кнопкам выбора истроке редактирования извне. По умолчанию они имеют атрибут доступа private и являются переменными своего класса (в нашем случаеForm2).

Для этого их свойствам Modifiers дадим значение public.3. Желаемое местоположение формы обеспечивается изменением значений двух ее свойств: для StartPosition выберем значение Manual и дляLocation задаем подходящие значения координат X и Y верхнего левогоугла. Таким образом, можем подбирать местоположение любой формы, в том числе и главной.4. Для обеспечения создания и открытия формы при запуске приложенияв класс главной формы внесем следующие дополнения:− Объявление Form2 f2; в раздел переменных.− В конструктор Form1 добавитьpublic Form1(){InitializeComponent();f2 = new Form2();//запуск конструктора классаf2.Show();//Передача сообщения объекту f2}5.

Реализация пункта меню Open Dialog: f2.Show();Для создания формы «О программе» используем заготовку: поставимкурсор мыши на имя нашего приложения, нажмем правую клавишу, из выпадающего меню выберем Add — New Item, затем из списка About Box и нажмемна кнопку Add. На экране появится заготовка формы «О программе».

Характеристики

Тип файла
PDF-файл
Размер
6,76 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6505
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее