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

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

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

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

5.14. Его открытие — реализация пункта меню «Создание списка»private void созданиеВпискаToolStripMenuItem_Click(object sender, EventArgs e){Form4 f2;F2 = new Form2();F2.ShowDialog();}Реализация кнопки «Добавить»:private void button1_Click(object sender, EventArgs e){string s1, s2;elem el;string[] temp;int[] arr;s1 = textBox1.Text;s2 = textBox2.Text;temp = s2.Split(';');//разделение строки на элементы массиваtemp = temp.Where(q =>q != "").ToArray();// удаление пустых элементовarr = newint[temp.Length];for (int i = 0; i < arr.Length; i++)arr[i] = Convert.ToInt32(temp[i]);el = new elem(s1, arr);//создание нового элементаForm1.lst1.Add(el); //добавление нового элементаtextBox1.Clear(); //чистка полейtextBox2.Clear();}130Рис.

5.14Реализация кнопки «Чистить поля»:privatevoidbutton2_Click(objectsender, EventArgse){textBox1.Clear();textBox2.Clear(); }Обработка спискаДля реализации пункта меню «Обработка списка» используется окно нарис. 5.15. Его открытие:private void изменениеСпискаToolStripMenuItem_Click(objectsender, EventArgs e){Form4 f4;F4 = new Form4();F4.Show();}Рис. 5.15Нажатие кнопки «Найти количество» выводит на экран максимальное количество положительных чисел в элементах списка и соответствующие им символьные строки. Ее реализация:131private void button1_Click(object sender, EventArgs e){int kol1,kol2;string[] s1;string st = "";kol1 = Form1.lst1.Select(p => p.KolVo()).Max();//реализация через функцию в составе elemkol2 = Form1.lst1.Select(p => p.mas.Where(q => q > 0).Count()).Max();//Реализация только с помощью LINQs1 = Form1.lst1.Where(q =>q.KolVo() == kol2).Select(p => p.s).ToArray();//В массив s1 будут собраны строки всех элементов,// имеющих max количество положительныхlabel3.Text = " "+kol2;foreach (string x in s1)//Подготовка вывода и вывод массива s1st += " " + x;label4.Text = st;}Реализация кнопки «Найти сумму».

Будет найдена сумма чисел первогоэлемента списка с заданной символьной строкой или будет выдано сообщениеоб отсутствии.private void button2_Click(object sender, EventArgs e){string s1 = textBox1.Text;int[] sum1;sum1 = Form1.lst1.Where(p => p.s == s1).select(q => q.mas.Sum()).ToArray();if (sum1.Length == 0)MessageBox.Show("No element");elselabel7.Text = "" + sum1[0];}Изменение спискаДля реализации пункта меню «Обработка списка» используется окно нарис. 5.16. Его открытие:private void изменениеСпискаToolStripMenuItem_Click(object sender, EventArgs e){Form3 f3;132f3 = new Form3();f3.Show();}При нажатии кнопки «Показать» будет показан элемент списка с заданным номером (или выдано сообщение о его отсутствии). Реализация:private void button1_Click(object sender, EventArgs e){elem el;int num = Int32.Parse(textBox1.Text);if (num < Form1.lst1.Count){el = Form1.lst1[num];textBox2.Text = el.s;string[] temp = new string[Form1.lst1[num].mas.Length];string s1 = "";foreach (int x in Form1.lst1[num].mas)s1 += x+";";textBox3.Text = s1;button5.Enabled = true;button6.Enabled = true;}elseMessageBox.Show("Всписке " + Form1.lst1.Count +“элементов");}Рис.

5.16133Кнопки «Назад» и «Вперед» предназначены для передвижения по элементам списка. Их реализации:private void button3_Click(object sender, EventArgs e){ // назадelem el;if (num == 0)MessageBox.Show("Первый элемент");else{num--;textBox1.Text = "" + num;el = Form1.lst1[num];textBox2.Text = el.s;string[] temp = newstring[Form1.lst1[num].mas.Length];string s1 = "";foreach (int x in Form1.lst1[num].mas)s1 += x+";";textBox3.Text = s1;}}private void button2_Click(object sender, EventArgs e){ // впередelem el;if (num>=Form1.lst1.Count-1)MessageBox.Show("Уже последний элемент");else{num++;textBox1.Text = "" + num;el = Form1.lst1[num];textBox2.Text = el.s;string[] temp = newstring[Form1.lst1[num].mas.Length];string s1 = "";foreach (int x in Form1.lst1[num].mas)s1+= x+";";textBox3.Text = s1;}}Кнопка «Изменить» заменит текущий элемент списка элементом, набранным на экране.

Это реализовано путем удаления старого текущего элемента и134добавления нового, потому что при этом может измениться количество чисел вмассиве.private void button5_Click(object sender, EventArgs e){string s1, s2;elem el;string[] temp;int[] arr;Form1.lst1.RemoveAt(num); //Удаление текущего элементаs1 = textBox2.Text;s2 = textBox3.Text;temp = s2.Split(';');temp = temp.Where(q => q != "").ToArray();arr = new int[temp.Length];for (int i = 0; i < arr.Length; i++)arr[i] = Convert.ToInt32(temp[i]);// Добавление нового элементаel = newelem(s1, arr);Form1.lst1.Add(el);}Кнопка «Удалить» удаляет текущий элемент списка:private void button6_Click(object sender, EventArgs e){Form1.lst1.RemoveAt(num);}Кнопка «Сортировка» сортирует элементы списка по одному из двух критериев, заданному радиокнопками.private void button7_Click(object sender, EventArgs e){//sortelem el;string s1, s2;if (radioButton1.Checked)// Сортировка по количеству положительных элементовForm1.lst1 = Form1.lst1.OrderBy(p =>p.mas.Where(q => q > 0).Count()).ToList();if (radioButton2.Checked)// Сортировка по сумме элементовForm1.lst1 = Form1.lst1.OrderBy(p =>p.mas.Sum()).ToList();textBox1.Text = "" + 0;num = 0;el = Form1.lst1[num];textBox2.Text = el.s;135//Покажем на экране первый элемент списка//после сортировкиstring[] temp = new string[Form1.lst1[num].mas.Length];s1 = "";foreach (int x in Form1.lst1[num].mas)s1 += x + ";";textBox3.Text = s1;}5.7.

Дополнительные средства создания интерфейсапользователяРассмотрим некоторые дополнительные возможности создания интерфейса пользователя, не использованные в приведенных примерах.Текстовое поле с маской ввода maskedTextBox. Маска ввода накладывает ограничения на вводимые в такое поле символы и, таким образом, служитсредством для уменьшения ошибок при наборе символов в такое поле. Для определения маски ввода можем использовать свойство mask или, нажав на маленький треугольник в правом верхнем углу поля, выбрать там пункт SetMask.В обоих случаях открывается диалоговое окно, в котором уже задан ряд масок.1.

Выберем короткую дату: тогда в это поле можно вести дату в видедд.мм.гггг. Правда, проверку корректности даты сама маска не выполняет. При использовании приведенного ниже преобразования некорректные даты (например 29.02.2017) вызывают прерывание.DateTime t1;//стандартный класс представления даты и времениt1 = Convert.ToDateTime(maskedTextBox1.Text);label1.Text = t1.ToShortDateString();2.

Маска аааа позволяет ввести до 4 произвольных символов. Таким образом можно обеспечить, чтобы пользователь не ввел больше символов, чем длина строки.3. Маска ###.# позволяет ввести только цифры, перед ними могут бытьпробелы и знак числа. Приведенная маска позволяет ввести числа от-99.9 до 999.9. Маска aa##aaa требует ввода последовательности2 символа, 2 цифры, 3 символа.С возможными символами для масок можете ознакомиться через Help.Маски могут применяться и при выводе информации, но для управления внешнего вида записи при выводе можно использовать и функцию ToString(), которая была уже раньше нами применена.Поле ввода/вывода одной даты DateTimePicker.

Имеет выпадающийсписок, позволяющий выбрать дату из календаря.136{}DateTime t2;t2 = dateTimePicker1.Value;//ввод датыlabel1.Text = t2.ToString();//вывод даты в виде строкиt2 = newDateTime(2000, 03, 21);dateTimePicker1.Value = t2;//вывод датыПоле ввода диапазона дат MonthCalendar. Будет показан календарь, вкотором пользователь может выделить диапазон дат (естественно, диапазонможет состоять из одной даты).{DateTime t1, t2;int delta;t1 = monthCalendar1.SelectionStart;t2 = monthCalendar1.SelectionEnd;//Начало и конец выделенного диапазонаdelta = (t2 - t1).Days;//Длина интервалаlabel1.Text = "" + delta;//Представление дат на формеlabel2.Text = t1.ToLongDateString();label3.Text = t2.ToLongDateString();}При выборе лишь одной даты использование обоих свойств дает одинаковый результат.

Приведем список некоторых свойств этого компонента:• MinDate — допустимая самая ранняя дата при выделении диапазона.• MaxDate — допустимая самая поздняя дата при выделении диапазона.• AnnuallyBoldedDates — содержит набор дат, которые будут отмеченыжирным в календаре для каждого года.• BoldedDates — содержит набор дат, которые будут отмечены жирным(только для текущего года).• MonthlyBoldedDates — содержит набор дат, которые будут отмеченыжирным для каждого месяца.Перечень дат для трех последних свойств может быть легко определен спомощью диалоговых окон.Поле для выбора значения из списка реализуется с помощью инструментов CheckedListBox, ListBox и ComboBox.

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

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

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

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

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