|
Настройка компонентов TOpenDialog и TSaveDialog
Для установки компонентов TOpenDialog и TSaveDialog на форму необходимо на странице Dialogs меню компонентов щелкнуть мышью соответственно по пиктограммам ![]() ![]() Для того, чтобы файл автоматически записывался с расширением.dat, в свойстве DefaultExt запишем требуемое расширение -.dat. Аналогичным образом настроим SaveDialog1 для текстового файла (расширение.txt). Работа с программой
Текст программы приведен ниже.
unit tema6;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;
type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Memo1: TMemo; Button1: TButton; Button3: TButton; Splitter1: TSplitter; Button5: TButton; BitBtn1: TBitBtn; SaveDialog1: TSaveDialog; Button2: TButton; OpenDialog1: TOpenDialog; Button4: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end;
Type TStudent = record FIO: string[40]; // Поле ф.и.о. otc: array[1..3] of word; // Поле массива оценок sball: extended; // Поле среднего балла end;
Var Fz: file of Tstudent; // Файл типа запись Ft: TextFile; // Текстовой файл Stud: array[1..100] of Tstudent; // Массив записей nzap: integer; // Номер записи FileNameZ, FileNameT: string; // Имя файла
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; Edit4.Text:=''; Memo1.Clear; Button1.Hide; // Сделать невидимой кнопку "Ввести запись" nzap:=0; end;
procedure TForm1.Button1Click(Sender: TObject); // Ввести новую запись begin nzap:=nzap+1; with stud[nzap] do begin FIO:=Edit1.Text; otc[1]:=StrToInt(Edit2.Text); otc[2]:=StrToInt(Edit3.Text); otc[3]:=StrToInt(Edit4.Text); sball:=(otc[1]+otc[2]+otc[3])/3; Memo1.Lines.Add(fio+' '+IntToStr(otc[1])+' '+ IntToStr(otc[2])+' '+IntToStr(otc[3])); end; Write(fz,Stud[nzap]); // Запись в файл Edit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; Edit4.Text:=''; end;
procedure TForm1.Button2Click(Sender: TObject); // Создание нового файла записей begin OpenDialog1.Title:='Создать новый файл'; // Изменение заголовка окна диалога if OpenDialog1.Execute then // Выполнение стандартного диалога выбора имени файла begin FileNameZ:= OpenDialog1.FileName; // Возвращение имени дискового файла AssignFile(Fz, FileNameZ); // Связывание файловой переменной Fz c именем файла Rewrite(Fz); // Создание нового файла end; Button1.Show; // Сделать видимой кнопку "Ввести запись" end;
procedure TForm1.Button3Click(Sender: TObject); // Открыть существующий файл begin if OpenDialog1.Execute then // Выполнение стандартного диалога выбора имени файла begin FileNameZ:= OpenDialog1.FileName; // Возвращение имени дискового файла AssignFile(Fz, FileNameZ); // Связывание файловой переменной Fz c именем файла Reset(Fz); // Открытие существующего файла end; while not eof(fz) do begin nzap:=nzap+1; Read(fz,stud[nzap]); // Чтение записи из файла with stud[nzap] do Memo1.Lines.Add(fio+' '+IntToStr(otc[1])+' '+IntToStr(otc[2])+' '+IntToStr(otc[3])); end; Button1.Show; // Сделать видимой кнопку "Ввести запись" end;
procedure TForm1.Button4Click(Sender: TObject); // Сортировка записей var i,j: word; st: TStudent; begin for i:=1 to nzap-1 do // Сортировка массива записей for j:=i+1 to nzap do if Stud[i].sball < Stud[j].sball then begin st:=Stud[i]; Stud[i]:=Stud[j]; Stud[j]:=st; end; Memo1.Clear; for i:=1 to nzap do // Вывод в окно Memo1 отсортированных записей with stud[i] do Memo1.Lines.Add(IntToStr(i)+' '+fio+' '+FloatToStrf(sball,fffixed,4,2)); end;
procedure TForm1.Button5Click(Sender: TObject); // Сохранение результатов сортировки // в текстовом файле var i:word; begin if SaveDialog1.Execute then // Выполнение стандартного диалога выбора имени файла begin FileNameT:= SaveDialog1.FileName; // Возвращение имени дискового файла AssignFile(Ft, FileNameT); // Связывание файловой переменной Ft c именем файла Rewrite(Ft); // Открытие нового текстового файла end; for i:=1 to nzap do with stud[i] do Writeln(Ft,i:4,'. ',fio,sball:8:2); // Запись в текстовой файл CloseFile(Ft); // Закрытие текстового файла end;
procedure TForm1.BitBtn1Click(Sender: TObject); begin CloseFile(fz); // Закрытие файла записей при нажатии на кнопку “Сlose” end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin CloseFile(fz); // Закрытие файла записей при нажатии на кнопку end;
end. 6.6.Выполнение индивидуального задания В программе предусмотреть сохранение вводимых данных в файле и возможность чтения из ранее сохраненного файла. Результаты выводить в окно просмотра и в текстовой файл. 1. В магазине формируется список лиц, записавшихся на покупку товара повышенного спроса. Каждая запись этого списка содержит: порядковый номер, Ф.И.О., домашний адрес покупателя и дату постановки на учет. Удалить из списка все повторные записи, проверяя Ф.И.О. и домашний адрес. 2. Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц товара, цену единицы и дату поступления товара на склад. Вывести в алфавитном порядке список товаров, хранящихся больше месяца, стоимость которых превышает 1000000 руб. 3. Для получения места в общежитии формируется список студентов, который включает Ф.И.О. студента, группу, средний балл, доход на члена семьи. Общежитие в первую очередь предоставляется тем, у кого доход на члена семьи меньше двух минимальных зарплат, затем остальным в порядке уменьшения среднего балла. Вывести список очередности предоставления мест в общежитии. 4. В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени. 5. На междугородной АТС информация о разговорах содержит дату разговора, код и название города, время разговора, тариф, номер телефона в этом городе и номер телефона абонента. Вывести по каждому городу общее время разговоров с ним и сумму. 6. Информация о сотрудниках фирмы включает: Ф.И.О., табельный номер, количество проработанных часов за месяц, почасовой тариф. Рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере. Вывести размер заработной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 12% от суммы заработка. 7. Информация об участниках спортивных соревнований содержит: наименование страны, название команды, Ф.И.О. игрока, игровой номер, возраст, рост, вес. Вывести информацию о самой молодой, рослой и легкой команде. 8. Для книг, хранящихся в библиотеке, задаются: регистрационный номер книги, автор, название, год издания, издательство, количество страниц. Вывести список книг с фамилиями авторов в алфавитном порядке, изданных после заданного года. 9. Различные цехи завода выпускают продукцию нескольких наименований. Сведения о выпущенной продукции включают: наименование, количество, номер цеха. Для заданного цеха необходимо вывести количество выпущенных изделий по каждому наименованию в порядке убывания количества. 10. Информация о сотрудниках предприятия содержит: Ф.И.О., номер отдела, должность, дату начала работы. Вывести списки сотрудников по отделам в порядке убывания стажа. 11. Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О., адрес, оценки. Определить количество абитуриентов, проживающих в г.Минске и сдавших экзамены со средним баллом не ниже 4.5, вывести их фамилии в алфавитном порядке. 12. В справочной аэропорта хранится расписание вылета самолетов на следующие сутки. Для каждого рейса указаны: номер рейса, тип самолета, пункт назначения, время вылета. Вывести все номера рейсов, типы самолетов и времена вылета для заданного пункта назначения в порядке возрастания времени вылета. 13. У администратора железнодорожных касс хранится информация о свободных местах в поездах дальнего следования на ближайшую неделю в следующем виде: дата выезда, пункт назначения, время отправления, число свободных мест. Оргкомитет международной конференции обращается к администратору с просьбой зарезервировать m мест до города N на k -й день недели с временем отправления поезда не позднее t часов вечера. Вывести время отправления или сообщение о невозможности выполнить заказ в полном объеме. 14. Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О. абитуриента, оценки. Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего балла по университету. Первыми в списке должны идти студенты, сдавшие все экзамены на 5. 15. В радиоателье хранятся квитанции о сданной в ремонт радиоаппаратуре. Каждая квитанция содержит следующую информацию: наименование группы изделий(телевизор, радиоприемник и т. п.),марку изделия, дату приемки в ремонт, состояние готовности заказа (выполнен, не выполнен). Вывести информацию о состоянии заказов на текущие сутки по группам изделий. 16. Разработать программу формирования ведомости об успеваемости студентов. Каждая запись этой ведомости должна содержать: номер группы, Ф.И.О. студента, оценки за последнюю сессию. Вывести списки студентов по группам. В каждой группе Ф.И.О. студентов должны быть расположены в порядке убывания среднего балла. 17. В исполкоме формируется список учета нуждающихся в улучшении жилищных условий. Каждая запись этого списка содержит: порядковый номер, Ф.И.О., величину жилплощади на одного члена семьи и дату постановки на учет. По заданному количеству квартир, выделяемых по данному списку в течение года, вывести весь список с указанием ожидаемого года получения квартиры. 18. Имеется список женихов и список невест. Каждая запись списка содержит пол, имя, возраст, рост, вес, а также требования к партнеру: наименьший и наибольший возраст, наименьший и наибольший вес, наименьший и наибольший рост. Объединить эти списки в список пар с учетом требований к партнерам без повторений женихов и невест. 19. В библиотеке имеется список книг. Каждая запись этого списка содержит: фамилии авторов, название книги, год издания. Вывести информацию о книгах, в названии которых встречается некоторое ключевое слово (ввести с клавиатуры). 20. В магазине имеется список поступивших в продажу автомобилей. Каждая запись этого списка содержит: марку автомобиля, стоимость, расход топлива на 100 км, надежность (число лет безотказной работы), комфортность (отличная, хорошая, удовлетворительная). Вывести перечень автомобилей, удовлетворяющих требованиям покупателя, которые вводятся с клавиатуры в виде некоторого интервала допустимых значений. 21. Каждая запись списка вакантных рабочих мест содержит: наименование организации, должность, квалификацию (разряд или образование), стаж работы по специальности, заработную плату, наличие социального страхования (да/нет), продолжительность ежегодного оплачиваемого отпуска. Вывести список рабочих мест в соответствии с требованиями клиента. 22. В технической службе аэропорта имеется справочник, содержащий записи следующей структуры: тип самолета, год выпуска, расход горючего на 1000 км. Для определения потребности в горючем техническая служба запрашивает расписание полетов. Каждая запись расписания содержит следующую информацию: номер рейса, пункт назначения, дальность полета. Вывести суммарное количество горючего, необходимое для обеспечения полетов на следующие сутки. 23. Поля шахматной доски характеризуются записью Type Pole=record Ver:(a,b,c,d,e,f,g,h); {вертикальные координаты} Hor:1..8; {горизонтальные координаты} end; Вывести шахматную доску, пометив крестиками все поля, которые «бьет» ферзь, стоящий на поле с координатами Ver 24. Поля шахматной доски характеризуются записью (см. задание 23) Var Figura:Pole; Вывести сообщение, может ли конь за один ход перейти с поля Figurai на поле Figuraj. 25. Type Karta=record m: (piki,trefi,bubni,chervi); {масть} d:(shest,sem,vosem,devjat,desjat,valet,dama,korol,tuz); {достоинство} end; Var k1,k2:Karta; Вывести сообщение, «бьет» ли карта k1 карту k2, с учетом того что масть mi является козырной. 26. Для участия в конкурсе на замещение вакантной должности сотрудника фирмы желающие подают следующую информацию: Ф.И.О., год рождения, образование(среднее, специальное, высшее), знание иностранных языков(английский, немецкий, французский, владею свободно, читаю и перевожу со словарем), владение компьютером (MSDOS,Windows), стаж работы, наличие рекомендаций. Вывести список претендентов в соответствии с требованиями руководства фирмы. 27. При постановке на учет в ГАИ автолюбители указывают следующие данные: марка автомобиля, год выпуска, номер двигателя, номер кузова, цвет, номерной знак, Ф.И.О и адрес владельца. Вывести список автомобилей, проходящих техосмотр в текущем году, сгруппированных по маркам автомобилей. Учесть, что если текущий год четный, техосмотр проходят автомобили с четными номерами двигателей, иначе – с нечетными номерами. 28. Для участия в конкурсе исполнителей необходимо заполнить следующую анкету: Ф.И.О., год рождения, название страны, класс музыкального инструмента(гитара, фортепиано, скрипка, виолончель). Вывести список самых молодых лауреатов конкурса по классам инструментов в порядке занятых мест. 29. Список группы студентов содержит следующую информацию: Ф.И.О., рост и вес. Вывести Ф.И.О. студентов, рост и вес которых чаще всего встречаются в списке. 30. Список группы студентов содержит следующую информацию: Ф.И.О., рост и вес. Вывести Ф.И.О. студентов, рост и вес которых являются в списке уникальными. ![]() ![]() Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычислить, когда этот... ![]() Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам... ![]() ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры... ![]() Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|