Учебный курс Программирование на Delphi. Модуль 12 — различия между версиями

Материал из НГПУ им. К.Минина
Перейти к: навигация, поиск
Строка 67: Строка 67:
 
*'''Форма с результатом работы программы'''
 
*'''Форма с результатом работы программы'''
  
==Задание ==
+
==Задание1 ==
  
 
<CENTER>'''Таблица №12'''</CENTER>
 
<CENTER>'''Таблица №12'''</CENTER>
Строка 118: Строка 118:
  
 
==Пример 2==
 
==Пример 2==
 +
  
 
*'''Условие'''
 
*'''Условие'''
 +
Сформировать файл FM.DAT, содержащий экзаменационную ведомость одной студенческой группы.  Записи файла состоят из следующих элементов: фамилия, имя, отчество; номер зачетной книжки; оценка. После записи файла осуществить поиск студентов, сдавших экзамен на 4 или 5.
 +
 
*'''Использованные компоненты'''
 
*'''Использованные компоненты'''
  
 
*'''Программный код'''
 
*'''Программный код'''
  
 +
unit Unit1;
 +
interface
 +
uses
 +
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 +
  Dialogs, StdCtrls, Buttons;
 +
type
 +
  TForm1 = class(TForm)
 +
    Label1: TLabel;
 +
    Label2: TLabel;
 +
    Label3: TLabel;
 +
    Edit1: TEdit;
 +
    Edit2: TEdit;
 +
    Edit3: TEdit;
 +
    Label4: TLabel;
 +
    Edit4: TEdit;
 +
    BitBtn1: TBitBtn;
 +
    BitBtn2: TBitBtn;
 +
    procedure BitBtn2Click(Sender: TObject);
 +
    procedure BitBtn1Click(Sender: TObject);
 +
  private
 +
  { Private declarations }
 +
  public
 +
  { Public declarations }
 +
  end;
 +
  var
 +
  Form1: TForm1;
 +
  implementation
 +
  {$R *.dfm}
 +
  procedure TForm1.BitBtn2Click(Sender: TObject);
 +
  begin
 +
  close;
 +
  end;
 +
  type stud=record
 +
      fio:string[30];
 +
      nz:string[6];
 +
      mark:2..5;
 +
            end;
 +
var f:file of stud;
 +
s:stud; n,i:integer; was:boolean;
 +
procedure TForm1.BitBtn1Click(Sender: TObject);
 +
begin
 +
assignfile(f,'c:\fm.dat');
 +
rewrite(f);
 +
n:= strtoint(edit4.Text);
 +
  for i:=1 to n do
 +
    begin
 +
      s.fio:=edit1.text;
 +
      s.nz:=edit2.text;
 +
      s.mark:=strtoint(edit3.Text);
 +
      write(f,s);
 +
    end;
 +
  closefile(f);
 +
messagedlg('файл сформирован',mtinformation,[mbok],0);
 +
reset(f);
 +
was:=false;
 +
while not eof(f) do
 +
        begin
 +
          read(f,s);
 +
          if  s.mark  >= 4 then
 +
                      begin
 +
                          write( s.fio);
 +
                          was:=true
 +
                      end
 +
              end;
 +
  if was = false then
 +
  messagedlg('Записи не найдены',mtinformation,[mbok],0) ;
 +
  closefile(f)
 +
end;
 +
end.
 +
 +
*'''Форма с результатом работы программы'''
 +
 +
==Задание2 ==
  
 
==Литература ==
 
==Литература ==

Версия 09:58, 1 марта 2008

Текстовые файлы


Пример 1

  • Условие

В текстовом файле Note.txt определить длину самой большой строки.

  • Использованные компоненты
  • Программный код
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Buttons;
type
 TForm1 = class(TForm)
   BitBtn1: TBitBtn;
   BitBtn2: TBitBtn;
   Label1: TLabel;
   Memo1: TMemo;
   procedure BitBtn1Click(Sender: TObject);
   procedure BitBtn2Click(Sender: TObject);
  private
   { Private declarations }
public
   { Public declarations }
 end;
var
 Form1: TForm1;
  implementation
   {$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
 begin
  close;
 end;
var 
     note:text;
     max,k,i:integer;
     c:char;
procedure TForm1.BitBtn2Click(Sender: TObject);
 begin
 assignfile(note,'c:\note.txt');
 append(note);
 for i:=0 to memo1.Lines.Count do
 writeln(note,memo1.lines[i]);
 closefile(note);
 max:=0;
   while not eof(note) do      
      begin
         k:=0;                       
         while not eoln (note) do
             begin
               read (note, c); k := k + 1;
             end;
         if k > max then max := k;
             readln (note)
       end;
 label1.Caption:='Наибольшая строка имеет '+ inttostr(max)+' знаков';
 closefile (note);
end;
end.
  • Форма с результатом работы программы

Задание1

Таблица №12
Номер варианта Условие
1
Создать файл, содержащий сведения о пациентах поликлиники. Структура записи: ФИО пациента, год рождения, адрес, диагноз. Выбрать информацию о пациентах, обратившихся с диагнозом "грипп".
2
Создать файл, содержащий сведения о книгах, находящихся в читальном зале библиотеки. Каждая запись должна содержать: фамилию и инициалы автора, название книги, место издания, наименование издательства, год издания, количество страниц. Выбрать записи о книгах издательства "Высшая школа", выпущенных после 2000 года.
3
Создать файл, содержащий информацию о свободных местах в поездах. Запись содержит: дату выезда, номер поезда, конечный пункт назначения, время отправления, число свободных купейных мест, число свободных плацкартных мест. Выдать информацию об имеющихся свободных местах на определенное число.
4
Разработать программу ("электронную сваху") для поиска женихов и невест. Создать два файла: список женихов и список невест. В каждом списке кандидат (жених или невеста) характеризуется записью, содержащей порядковый номер кандидата; данные о кандидате (возраст, рост, вес); требования к партнеру (минимальное и максимальное значение соответствующего параметра). Сформировать списки пар с учетом требований кандидата.
5
Создать файл, содержащий сведения о студентах. Каждая запись должна содержать: номер по списку, фамилию, имя, отчество; год рождения; адрес. Выбрать сведения о студентах, проживающих в Нижнем Новгороде.
6
Создать файл, содержащий сведения о предметах, изучаемых на первом курсе. Запись должна содержать: название предмета, общее количество часов в семестре, количество часов в неделю. Выбрать информацию о предметах, количество часов в неделю для которых не меньше 4.
7
Создать файл, содержащий сведения о компьютерах. Структура записи: тип ПК, тактовая частота, объем ОП, объем винчестера, стоимость. Выбрать информацию о компьютерах, имеющих объем ОП более 128 Мбайт.
8
Создать файл, содержащий сведения о рейсах самолетов. Для каждого рейса указаны: номер рейса, тип самолета, пункт назначения, время вылета, дни вылета. Выбрать информацию о рейсах на Санкт- Петербург.
9
Создать файл, содержащий сведения об игрушках. Структура записи: название игрушки, ее стоимость, возрастные границы. Выбрать информацию об игрушках, цена которых не превышает 250 руб. и которые подходят детям 5 лет.
10
Создать файл, содержащий номера телефонов сотрудников. Структура записи: ФИО, номер телефона. Найти номер телефона сотрудника по его фамилии и инициалам.
11
Создать файл, содержащий сведения о результатах чемпионата по хоккею. Структура записи: название команды, результаты игры. Выбрать информацию о результатах игр команды "Торпедо".
12
Протокол лыжных гонок записать в файл. Для каждого участника указывается фамилия, время старта (чч: мм: сс), время финиша. Выбрать сведения об участниках, выполнивших норму заданного (1, 2, 3) разряда.
13
Сформировать файл, содержащий сведения о магазинах района. Структура записи: название магазина, адрес, фамилия директора. Выбрать информацию о магазинах, расположенных на проспекте Октября.
14
Сформировать файл, содержащий сведения о владельцах автомобилей: фамилия владельца, марка автомобиля, номер. Выбрать информацию о владельцах автомобилей, имеющих заданную марку автомобиля.
Типизированные файлы

Пример 2

  • Условие

Сформировать файл FM.DAT, содержащий экзаменационную ведомость одной студенческой группы. Записи файла состоят из следующих элементов: фамилия, имя, отчество; номер зачетной книжки; оценка. После записи файла осуществить поиск студентов, сдавших экзамен на 4 или 5.

  • Использованные компоненты
  • Программный код
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Buttons;
type
 TForm1 = class(TForm)
   Label1: TLabel;
   Label2: TLabel;
   Label3: TLabel;
   Edit1: TEdit;
   Edit2: TEdit;
   Edit3: TEdit;
   Label4: TLabel;
   Edit4: TEdit;
   BitBtn1: TBitBtn;
   BitBtn2: TBitBtn;
   procedure BitBtn2Click(Sender: TObject);
   procedure BitBtn1Click(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
 var
 Form1: TForm1;
 implementation
 {$R *.dfm}
 procedure TForm1.BitBtn2Click(Sender: TObject);
 begin
 close;
 end;
 type stud=record
     fio:string[30];
     nz:string[6];
     mark:2..5;
           end;
var f:file of stud;
s:stud; n,i:integer; was:boolean;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
assignfile(f,'c:\fm.dat');
rewrite(f);
n:= strtoint(edit4.Text);
 for i:=1 to n do
   begin
     s.fio:=edit1.text;
     s.nz:=edit2.text;
     s.mark:=strtoint(edit3.Text);
     write(f,s);
   end;
  closefile(f);
messagedlg('файл сформирован',mtinformation,[mbok],0);
reset(f);
was:=false;
while not eof(f) do
       begin
         read(f,s);
         if  s.mark  >= 4 then
                     begin
                          write( s.fio);
                          was:=true
                     end
             end;
 if was = false then
 messagedlg('Записи не найдены',mtinformation,[mbok],0) ;
 closefile(f)
end;
end.
  • Форма с результатом работы программы

Задание2

Литература

  1. Архангельский. Программирование на Delphi 6. – М: БИНОМ, 2002
  2. Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003
  3. Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005.

Ссылки

Учебный курс Программирование на Delphi

Учебный план курса Программирование на Delphi