Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Размещение компонентов по ФормеСодержание книги
Поиск на нашем сайте
Один из возможных вариантов панели интерфейса создаваемого приложением показан на рис. 8.1. При работе с записями ввод и вывод информации на экране удобно организовать с помощью компонента StringGrid, который находится на странице Additional. Как видно, на форме размещены три компонента StringGrid: первый (StringGrid1) предназначен для ввода исходной ведомости, второй (StringGrid2) – для вывода ведомости, содержащей средний балл в порядке убывания среднего балла, третий (StringGrid3) – для вывода списка неуспевающих студентов. В задании для соответствующих заголовков колонок и номеров строк используется фиксированная зона компонента StringGrid, поэтому в Инспекторе Объектов значение FixedCols и FixedRows установите равными 1 для всех компонентов StringGrid. Рис. 8.1. Размещение компонентов на форме В соответствии с заданием установите значение свойства ColCoun t =6 (количество столбцов) для StringGrid2 и ColCount =7 для StringGrid1 и StringGrid3, а значение свойства RowСount =10 (количество строк) для всех компонентов StringGrid. Для наличия вертикальной или горизонтальной или обеих линеек прокрутки в компоненте StringGrid установите свойство ScrollBars в состояние ssVertical, ssGorizontal или ssBoth соответственно. Но старайтесь устанавливать такой размер поля компонента StringGrid, чтобы вся таблица умещалась в поле. Откройте список опций свойства +Options и установите значение goEditing в True– это даст возможность вводить и редактировать информацию в компоненте StringGrid с помощью клавиатуры и “мыши’’. На форме также размешены три кнопки (Batton). Каждая из них выполняет функцию задания соответственно надписи. Компонент Memo предназначен для вывода фамилий студентов с максимальным и минимальным номерами зачетных книжек. Три компонента Label (Метка) служат для вывода пояснительных надписей. Создание процедур обработки событий FormCreate и ButtonClick Двойным нажатием клавиши «мыши» на Форме и на кнопках Button1, Button2, Button3 создайте соответствующие процедуры обработки событий. Используя текст модуля UnZap, внимательно наберите операторы этих процедур. 8.2.4. Работа с приложением Закончив создание приложения, сохраните его с помощью пунктов меню File | Save All... Выполните приложение. Проанализируйте результаты. В случае необходимости откорректируйте приложение, снова сохраните его аналогичным образом. Выполните приложение и проанализируйте результаты. После каждой корректировки следует выполнять сохранение приложения с помощью пунктов File | Save All… Текст модуля UnZap Unit UnZap; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; Type TForm1 = class (TForm) StringGrid1: TStringGrid; StringGrid2: TStringGrid; Memo1: TMemo; Button1: TButton; Button2: TButton; Button3: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; StringGrid3: TStringGrid; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); Private { Private declarations } Public { Public declarations } end; Var Form1: TForm1; Implementation {$R *.dfm} type // Создание типа данных "запись"(record), имя типа - zap zap= record nzach:integer; fio: string [20]; mat,fiz,inf:integer; srb:extended; end; Var MZap: array[ 1..9] of zap; // объявление массива записей procedure TForm1.FormCreate(Sender: TObject); Var i:integer; Begin with StringGrid1 do begin // занесение информации в ячейки StringGrid1 Cells[0,0]:='№ п/п'; Cells[1,0]:='№ зачетной книжки'; Cells[2,0]:='Фамилия'; Cells[3,0]:='Математика'; Cells[4,0]:='Физика'; Cells[5,0]:='Информатика'; for i:=1 to 9 do Cells[0,i]:=IntToStr(i); Cells[1,1]:='223254';Cells[2,1]:='Первый Н.П.'; Cells[3,1]:='3'; Cells[4,1]:='4'; Cells[5,1]:='4'; Cells[1,2]:='233254';Cells[2,2]:='Второй А.Н.'; Cells[3,2]:='5'; Cells[4,2]:='5'; Cells[5,2]:='5'; Cells[1,3]:='123754'; Cells[2,3]:='Третий Н.П.'; Cells[3,3]:='4'; Cells[4,3]:='5'; Cells[5,3]:='4'; Cells[1,4]:='216254';Cells[2,4]:='Четвертый Н.П.';Cells[3,4]:='3'; Cells[4,4]:='3'; Cells[5,4]:='2'; Cells[1,5]:='329270';Cells[2,5]:='Пятый Н.П.';Cells[3,5]:='5'; Cells[4,5]:='4'; Cells[5,5]:='5'; Cells[1,6]:='290176';Cells[2,6]:='Шестой Н.П.'; Cells[3,6]:='5'; Cells[4,6]:='3'; Cells[5,6]:='4'; Cells[1,7]:='218425';Cells[2,7]:='Седьмой Н.П.';Cells[3,7]:='3';Cells[4,7]:='2'; Cells[5,7]:='4'; Cells[1,8]:='223054';Cells[2,8]:='Восьмой Н.П.';Cells[3,8]:='2';Cells[4,8]:='2'; Cells[5,8]:='4'; Cells[1,9]:='219325';Cells[2,9]:='Девятый Н.П.';Cells[3,9]:='5';Cells[4,9]:='5'; Cells[5,9]:='4'; for i:=1 to 9 do with MZap[i] do begin // формирование полей массива записей nzach:=StrToInt(Cells[1,i]); fio:=Cells[2,i]; mat:=StrToInt(Cells[3,i]); fiz:=StrToInt(Cells[4,i]); inf:=StrToInt(Cells[5,i]); end; end; end; { Сортировка записей в порядке убывания среднего балла} procedure TForm1.Button1Click(Sender: TObject); var i,j: integer; rab: zap; // Рабочая переменная для обмена значениями двух элементов // массива при сортировке Begin for i:=1 to 9 do with StringGrid1,MZap[i] do begin // формирование полей массива записей при нажатии Button1 nzach:=StrToInt(Cells[1,i]); fio:=Cells[2,i]; mat:=StrToInt(Cells[3,i]); fiz:=StrToInt(Cells[4,i]); inf:=StrToInt(Cells[5,i]); srb:=(mat+fiz+inf)/3 // Расчет среднего балла end; for i:=2 to 9 do // Сортировка массива записей по убыванию среднего //балла for j:=9 downto i do // методом пузырька if MZap[j-1].srb<MZap[j].srb then Begin rab:=MZap[j-1]; MZap[j-1]:=MZap[j]; MZap[j]:=rab; end; with StringGrid2 do // Очистка ячеек StringGrid2 for i:=0 to 9 do for j:=0 to 9 do Cells[j,i]:=' '; with StringGrid2 do begin // Пересылка заголовков столбцов в первую строку //StringGrid2 Cells[0,0]:='№ п/п'; Cells[1,0]:='№ зачетной книжки'; Cells[2,0]:='Фамилия'; Cells[3,0]:='Математика'; Cells[4,0]:='Физика'; Cells[5,0]:='Информатика'; Cells[6,0]:='Средний балл'; for i:=1 to 9 do with MZap[i] do begin // Занесение информации в остальные ячейки //StringGrid2 Cells[0,i]:=IntToStr(i); // из рассортированного массива Mzap Cells[1,i]:=IntToStr(nzach); Cells[2,i]:=fio; Cells[3,i]:=IntToStr(mat); Cells[4,i]:=IntToStr(fiz); Cells[5,i]:=IntToStr(inf); Cells[6,i]:=floatToStrF(srb,ffFixed,5,2); end; end; end; { Вывод списка неуспевающих студентов} procedure TForm1.Button2Click(Sender: TObject); var i,j:integer; Begin for i:=1 to 9 do with StringGrid1,MZap[i] do begin // Занесение данных в массив записей nzach:=StrToInt(Cells[1,i]); fio:=Cells[2,i]; mat:=StrToInt(Cells[3,i]); fiz:=StrToInt(Cells[4,i]); inf:=StrToInt(Cells[5,i]); srb:=(mat+fiz+inf)/3 end; with StringGrid3 do // Очистка ячеек StringGrid3 for i:=0 to 9 do for j:=0 to 9 do Cells[j,i]:=' '; with StringGrid3 do begin // Занесение заголовков столбцов в первую строку StringGrid3 Cells[0,0]:='№ п/п'; Cells[1,0]:='№ зачетной книжки'; Cells[2,0]:='Фамилия'; Cells[3,0]:='Математика'; Cells[4,0]:='Физика'; Cells[5,0]:='Информатика'; Cells[6,0]:='Средний балл'; j:=0; for i:=1 to 9 do // Занесение только данных о неуспевающих студентах в // StringGrid3 with MZap[i] do if (mat=2) or (fiz=2) or (inf=2) then Begin j:=j+1; Cells[0,j]:=IntToStr(j); Cells[1,j]:=IntToStr(nzach); Cells[2,j]:=fio; Cells[3,j]:=IntToStr(mat); Cells[4,j]:=IntToStr(fiz); Cells[5,j]:=IntToStr(inf); Cells[6,j]:=floatToStrF(srb,ffFixed,5,2); end; end; end; { Определение наибольшего и наименьшего номеров зачетных книжек} procedure TForm1.Button3Click(Sender: TObject); Var i, min, max, k, l: integer; Begin for i:=1 to 9 do with StringGrid1,MZap[i] do begin // Занесение данных в массив записей при нажатии кнопки Batton3 nzach:=StrToInt(Cells[1,i]); fio:=Cells[2,i]; mat:=StrToInt(Cells[3,i]); fiz:=StrToInt(Cells[4,i]); inf:=StrToInt(Cells[5,i]); srb:=(mat+fiz+inf)/3 end; max:=MZap[1].nzach; k:=1; // занесение № первой зачетки в ячейку max min:=MZap[1].nzach; l:=1; // занесение № первой зачетки в ячейку min for i:=1 to 9 do // Поиск максимального и минимального № зачеток with MZap[i] do // и номеров в массиве их обладателей Begin if MZap[i].nzach>max then Begin max:=nzach; k:=i; end; if MZap[i].nzach<min then Begin min:=nzach; l:=i; end; end; Memo1.Lines.Add('РЕЗУЛЬТАТ'); // Занесение результатов в Memo поле Memo1.Lines.Add(#13#10+'Наибольший № зачетки '+IntToStr(max)+' имеет '+MZap[k].fio); Memo1.Lines.Add(#13#10+'Наименьший № зачетки '+IntToStr(min)+' имеет '+MZap[l].fio); end; End. 8.3. Выполнение индивидуального задания По указанию преподавателя выберете свое индивидуальное задание. Создайте приложения и протестируйте его работу Индивидуальные задания 1. В магазине формируется список лиц, записавшихся на покупку товара повышенного спроса. Каждая запись этого списка содержит: порядковый номер, Ф.И.О., домашний адрес покупателя и дату постановки на очередь, дату выполнения заказа. Вывести список в порядке возрастания даты постановки на очередь и список выполненных заказов. 2. Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц товара, цену единицы и дату поступления товара на склад. Вывести список товаров, хранящихся больше месяца, стоимость которых превышает 10 000 руб., а также общую стоимость всех таких товаров, 3. Для получения места в общежитии формируется список студентов, который включает Ф.И.О. студента, группу, средний балл, доход на каждого члена семьи. Общежитие в первую очередь предоставляется тем, у кого доход на каждого члена семьи меньше двух минимальных зарплат, и у кого средний балл не меньше 6. Вывести список первоочередников, претендующих на места в общежитии в порядке возрастания дохода на члена семьи. 4. Сведения о наличии лекарственных средств в аптеках города содержат следующие данные: наименование лекарства, фирма-изготовитель, номер аптеки, количество упаковок, стоимость одной упаковки. Получить список аптек, в которых можно купить N упаковок заданного лекарства, включив все имеющиеся сведения о лекарстве. Список вывести в порядке возрастания цены за упаковку. 5. Фирма реализует изделия клиентам. Имеются следующие данные о продажах: изделие, цена, клиент, количество, дата продажи. Для заданного изделия вывести сведения о продажах его клиентам в порядке убывания количества проданных изделий. 6. В библиотеке хранится информация о наличии книг. Имеются следующие данные о каждой книге: инвентарный номер, фамилии авторов, название книги, год издания, количество страниц, цена. Вывести список книг самого раннего года издания в алфавитном порядке авторов и определить общую стоимость этих книг. 7. В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в заданный пункт назначения раньше заданного времени в порядке убывания времени прибытия. 8. На междугородней АТС информация о разговорах содержит дату разговора, код и название города, время разговора, тариф, номер телефона в этом городе и номер телефона абонента. Вывести все данные с расчетом стоимости разговора в порядке возрастания даты разговора и общую стоимость всех разговоров, а так же вывести сведения о самом коротком разговоре. 9. Информация о сотрудниках фирмы включает: Ф.И.О., табельный номер, количество отработанных часов за месяц, почасовый тариф. Рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере. Подсчитать размер заработной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 12% от суммы заработка. Вывести ведомость в алфавитном порядке фамилий сотрудников. 10. Информация об участниках спортивных соревнований содержит: наименование страны, название команды, Ф.И.О. игрока, игровой номер, возраст, рост, вес. Вывести информацию о самом молодом участнике, а так же список участников, рост которых больше двух метров. 11. Для книг, хранящихся в библиотеке, задаются: регистрационный номер книги, автор, название, год издания, издательство, количество страниц. Сформировать указанный список и вывести в алфавитном порядке названий, а также вывести список книг, изданных за последние 4 года. 12. Различные цеха завода выпускают продукцию нескольких наименований. Сведения о выпушенной продукции включают: наименование, количество, номер цеха. Вывести информацию по всем цехам в порядке возрастания номера цеха, а также вывести информацию об изделиях, выпуск которых составил 1 000 и более единиц. 13. Информация о сотрудниках предприятия содержит: Ф.И.О., номер отдела, должность, дату начала работы. Вывести списки сотрудников по отделам, а также список сотрудников, поступивших на работу в текущем году. 14. Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О., адрес, оценки по 4-м дисциплинам. Определить количество абитуриентов; проживающих в г. Минске и сдавших экзамены со средним баллом не ниже 7,5, вывести всю информацию об этих студентах. 15. В справочной аэропорта хранится расписание вылета самолетов на следующие сутки. Для каждого рейса указаны: номер рейса, тип самолета, пункт назначения, время вылета. Вывести все номера рейсов, типы самолетов и времена вылета для заданного пункта назначения в порядке возрастания времени вылета. 16. У администратора железнодорожных касс хранится информация о свободных местах в поездах дальнего следования на ближайшую неделю в следующем виде: номер поезда, дата выезда, время отправления, пункт назначения, число свободных мест. Оргкомитет международной конференции обращается к администратору с просьбой зарезервировать 12мест до города N на к-й день недели. Вывести список вариантов или сообщение о невозможности выполнить заказ в полном объеме. 17. Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит Ф.И.О. абитуриента, оценки по трем дисциплинам. Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего балла по университету в порядке убывания среднего балла. 18. В радиоателье хранятся квитанции о сданной в ремонт радиоаппаратуре. Каждая квитанция содержит следующую информацию: наименование группы изделий (телевизор, радиоприемник и т. п.), марка изделия, дата приемки в ремонт, состояние готовности заказа (выполнен, не выполнен). Вывести информацию о состоянии заказов по группам изделий. Вывести список выполненных заказов. 19. Разработать программу формирования ведомости об успеваемости студентов. Каждая запись этой ведомости должна содержать: номер группы, Ф.И.О. студента, оценки за последнюю сессию (4 дисциплины) средний балл. Вывести списки по группам. Подсчитать средний балл по университету. 20. В исполкоме формируется список учета нуждающихся в улучшении жилищных условий. Каждая запись этого списка содержит: порядковый номер, Ф.И.О., величину жилплощади на одного члена семьи и дату постановки на очередь. Вывести список очередников, ставших на очередь раньше всех остальных (в самом первом году) по возрастанию величины жилплощади на каждого члена семьи. 21. Имеется список женихов и список невест. Каждая запись списка содержит пол, имя, возраст, рост, вес, а также требования к партнеру: наименьший и наибольший возраст, наименьший и наибольший вес, наименьший и наибольший рост. Для первого в списке (по алфавиту имени) жениха составить список возможных невест. 22. В библиотеке имеется список книг. Каждая запись этого списка содержит: фамилии авторов, название книги, год издания. Вывести информацию о книгах, заданного автора, изданных в текущем году в алфавитном порядке наименований. 23. В магазине имеется список поступивших в продажу автомобилей. Каждая запись этого списка содержит: марку автомобиля, стоимость, расход топлива на 100 км, надежность (число лет безотказной работы), комфортность (отличная, хорошая, удовлетворительная). Вывести перечень автомобилей, удовлетворяющих требованиям покупателя, которые вводятся с клавиатуры в виде некоторого интервала допустимых значений. 24. Каждая запись списка вакантных рабочих мест содержит: наименование организации, расстояние (в км. от центра города), должность, квалификацию (разряд или образование), стаж работы по специальности, заработную плату, наличие социального страхования (да/нет), продолжительность ежегодного оплачиваемого отпуска. Вынести список рабочих мест в соответствии с требованиями клиента. 25. Для определения потребности в горючем техническая служба запрашивает расписание полетов. Каждая запись расписания содержит следующую информацию: Дату вылета, номер рейса, пункт назначения, дальность полета, расход горючего на 1 000 км пути. Вывести суммарное количество горючего, необходимое дли обеспечения полетов на следующие сутки. 26. Для участия в конкурсе на замещение вакантной должности сотрудника фирмы желающие подают следующую информацию: Ф.И.О., год рождения, образование (среднее, специальное, высшее), знание иностранных языков (английский, немецкий, французский), владение компьютером (MSDOS, Windows), стаж работы, наличие рекомендаций. Вывести список претендентов в соответствии с требованиями руководства фирмы. 27. При постановке на учет в ГАИ автолюбители указывают следующие данные: марка автомобиля, год выпуска, номер двигателя, номер кузова, цвет, номерной знак, Ф.И.О и адрес владельца. Вывести список автомобилей, проходящих техосмотр в текущем году, сгруппированных по маркам автомобилей. Учесть, что если текущий год четный, техосмотр проходят автомобили с четными номерами двигателей, иначе – с нечетными номерами. 28. Для участия в конкурсе исполнителей необходимо заполнить следующую анкету: Ф.И.О., год рождения, название страны, класс музыкального инструмента (гитара, фортепиано, скрипка, виолончель). Вывести список самых молодых лауреатов конкурса по классам инструментов в порядке занятых мест. 29. Список группы студентов содержит следующую информацию: Ф.И.О., рост и вес. Вывести Ф.И.О. студентов, рост и вес которых совпадает с наименьшим. 30. Список группы студентов содержит следующую информацию: Ф.И.О., рост и вес. Вывести Ф.И.О. студентов в алфавитном порядке фамилий, рост и вес которых превышает заданные величины.
|
||||
Последнее изменение этой страницы: 2016-12-16; просмотров: 401; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.28.31 (0.013 с.) |