Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2009, 11:49   #1
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию Delphi списки и записи...

Здраствуйте уважаемые форумчанины.
Не могу до конца отладить программу.
Вот мое задание:
На междугородной АТС информация о разговорах содержит дату разговора, код и название города, время разговора, тариф, номер телефона в этом городе и номер телефона абонента. Вывести по каждому городу общее время разговоров с ним и сумму.
Проблема в том что не могу правильно вывести время разговоро по каждому городу и его сумму.
Вложения
Тип файла: rar ЛАБА65~1.RAR (18.1 Кб, 56 просмотров)
world12_tk вне форума Ответить с цитированием
Старый 11.10.2009, 11:49   #2
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

Вот исходный текст:
Код:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm3 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button6: TButton;
    Memo2: TMemo;
    BitBtn1: TBitBtn;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button6Click(Sender: TObject);
private
    { Private declarations }
  public
    { Public declarations }
  end;
 Type
  TATC=record
    data: string[40];			// дата
    numbers: array[1..2] of int64;		//массив номеров
    tariff : extended; 			// тариф
    time:integer;               //время разговора
    cityname:string[40];    //название города
    citycode:word;
  end;
Var
  Fz  : file of  TATC;		// Файл типа запись
  Ft  : TextFile;			// Текстовой файл
  ATC : array[1..100] of TATC;	// Массив записей
  nzap : integer;			// Номер записи
  FileNameZ, FileNameT : string; 	// Имя файла


var
  Form3: TForm3;

implementation

{$R *.dfm}



procedure TForm3.Button1Click(Sender: TObject);
var
  I: integer;
begin
    nzap:=nzap+1;
  with ATC[nzap] do begin
           data:=Edit1.Text;
           numbers[1]:=StrToInt(Edit6.Text);
           numbers[2]:=StrToInt(Edit7.Text);
           citycode:=StrToInt(Edit2.Text);
           cityname:=Edit3.Text;
           time:=StrToInt(Edit4.Text);
           tariff:=StrToFloat(Edit5.Text);
  Memo1.Lines.Add(data+'  '+IntToStr(numbers[1])+'  '+ IntToStr(numbers[2])+'   '+IntToStr(citycode)+'   '+cityname+'     '+IntToStr(time)+'    '+FloatToStr(tariff));

  end;
     Write(fz,ATC[nzap]);					// Запись в файл
   Edit1.Text:='';
   Edit2.Text:='';
   Edit3.Text:='';
   Edit4.Text:='';
   Edit5.Text:='';
   Edit6.Text:='';
   Edit7.Text:='';

end;

procedure TForm3.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 TForm3.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,ATC[nzap]);                // Чтение записи из файла
         with ATC[nzap] do
     Memo1.Lines.Add(data+'  '+IntToStr(numbers[1])+'  '+ IntToStr(numbers[2])+'   '+IntToStr(citycode)+'   '+cityname+'     '+IntToStr(time)+'    '+FloatToStr(tariff));
end;
end;

procedure TForm3.Button4Click(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 ATC[i] do  Writeln(Ft,i:4,'. ',data,numbers[1],numbers[2],citycode,cityname,time,tariff);
                     // Запись в текстовой файл
  CloseFile(Ft);                             // Закрытие текстового файла
end;


procedure TForm3.Button6Click(Sender: TObject); // процедура вывода стоимости разговоров по городам
var
  i,j,k:integer;
  temp,temp2,temp3:extended;
begin

 temp:=0;
 temp2:=0;
 temp3:=0;
 for i:=1 to nzap do
   for j := 2 to nzap do

     with ATC[i] do begin
       if (cityname[i]=cityname[j]) then begin
         temp:=tariff*time;
     with ATC[j] do
        temp2:=tariff*time;
     temp3:=temp+temp2;
       end;
     end;
   Memo2.Lines.Add('стоимость равна '+FloatToStr(temp3));

end;

procedure TForm3.FormCreate(Sender: TObject);
begin
   Button1.Hide;

end;

end.
Заранее спасибо.....
world12_tk вне форума Ответить с цитированием
Старый 11.10.2009, 11:59   #3
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
for i:=1 to nzap do
   for j := 2 to nzap do
begin
     with ATC[i] do begin
       if (cityname[i]=cityname[j]) then begin
         temp:=tariff*time;
     with ATC[j] do
        temp2:=tariff*time;
     temp3:=temp+temp2;
       end;
     end;
   Memo2.Lines.Add('стоимость равна '+FloatToStr(temp3));
end;
end;
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 11.10.2009, 14:49   #4
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

ОДИНОЧЕСТВО В СЕТИ! спасибо вам за помощь... программа начала хоть что то считать. Но она все равно попрежнему не правильно считает... Не могли бы вы повнимательнее посмотреть
world12_tk вне форума Ответить с цитированием
Старый 12.10.2009, 20:14   #5
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

ребята помогите исправить.... я уже третий день бьюсь об отладчик и никакого толко... может я вообще не правильно записал процедуру Button6Click?
world12_tk вне форума Ответить с цитированием
Старый 13.12.2010, 12:40   #6
Alqanor
 
Регистрация: 13.12.2010
Сообщений: 3
По умолчанию

Была необходимость тоже сделать эту лабу.
Что-то мозги поплавились и я не смог сделать Открытие/Сохранение, а все остальное, кажется, работает. Если переделаю - залью снова. А так, может кто разберется?
Вложения
Тип файла: rar lab.rar (213.7 Кб, 99 просмотров)
Alqanor вне форума Ответить с цитированием
Старый 17.01.2012, 19:43   #7
Сербо Кристина
Новичок
Джуниор
 
Регистрация: 17.01.2012
Сообщений: 1
По умолчанию

Помогите пожалуйста доделать эту задачу
Сербо Кристина вне форума Ответить с цитированием
Старый 17.01.2012, 20:42   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

помогаем... кстати, а чем именно помочь? что у Вас не получается?
или Вы в слова "помогите доделать задачу" вкладываете смысл - "ВЫ ДОДЕЛАЙТЕ САМИ" ?!! Ну так не пойдёт! У нас и так всё хорошо, без этой задачи...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление записи в файл (Delphi) VadEr Помощь студентам 2 15.05.2009 10:30
Линейные однонаправленые списки в Delphi Селякова Елена Помощь студентам 0 23.04.2009 21:30
[Delphi] Линенйные списки Блонди Помощь студентам 2 18.02.2008 08:35
Удаление записи из файла(Delphi) студентка Помощь студентам 1 16.12.2007 13:54