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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2017, 16:29   #1
JackGFG
Пользователь
 
Регистрация: 20.08.2017
Сообщений: 12
По умолчанию БД о продажах содержит сведения: наименование товара, месяц продажи, кол-во проданного. Вывести данные о продажах заданного товара и товаре c максимальным кол-во продаж за 1 раз

Есть такое задание:
База данных о продажах содержит следующие сведения: наименование товара (столы, стулья и т.д), месяц продажи, кол-во проданного за раз товара. Вывести данные о продажах заданного товара и товаре имеющем максимальное кол-во проданных за один раз экземпляров.
Сперва делал его одним путем, но оно оказалось не верным. Сейчас начал делать иным, но вот в голову не приходит мысль как доделать
Вот сам код:
Код:
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids,
  StdCtrls, Spin;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    SpinEdit1: TSpinEdit;
    S_SG: TStringGrid;
    L_SG: TStringGrid;
    F_SG: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
  type
    TTovar = record
      NT:ShortString;
      MP,KP : Integer;
    end;
 
{ TForm1 }
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  S_SG.Cells[0,0] := 'Наимен. товара';
  S_SG.Cells[1,0] := 'месяц Продажи';
  S_SG.Cells[2,0] := 'Кол-во Прод. за раз';
  L_SG.Cells[0,0] := 'Наимен. товара';
  L_SG.Cells[1,0] := 'месяц Продажи';
  L_SG.Cells[2,0] := 'Кол-во Прод. за раз';
  F_SG.Cells[0,0] := 'Наимен. товара';
  F_SG.Cells[1,0] := 'месяц Продажи';
  F_SG.Cells[2,0] := 'Кол-во Прод. за раз';
end;
 
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
  S_SG.RowCount:=SpinEdit1.value+1;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 Tovar : TTovar;
 f : file;
 i : Integer;
begin
 AssignFile(f,'data.dat');
 Rewrite(f,1);
 for i := 1 to S_SG.RowCount-1 do
 begin
   Tovar.NT:=S_SG.Cells[0,i];
   Tovar.MP := StrToInt(S_SG.Cells[1,i]);
   Tovar.KP := StrToInt(S_SG.Cells[2,i]);
   BlockWrite(f,Tovar.NT,SizeOf(Tovar.NT));
   BlockWrite(f,Tovar.MP,SizeOf(Tovar.MP));
   BlockWrite(f,Tovar.KP,SizeOf(Tovar.KP));
 end;
 CloseFile(f);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
   Tovar : Array[1..100] of TTovar;
  f :file;
  i,count,m_i,max : Integer;
begin
 AssignFile(f,'data.dat');
 Reset(f,1);
 count:=0;
 while not Eof(f) do
begin
  inc(count);
  BlockRead(f,Tovar[count].NT,SizeOf(Tovar[count].NT));
  BlockRead(f,Tovar[count].MP,SizeOf(Tovar[count].MP));
  BlockRead(f,Tovar[count].KP,SizeOf(Tovar[count].KP));
 
 
end;
 CloseFile(f);
 L_SG.RowCount:=count+1;
 for i:=1 to count do
 begin
  L_SG.Cells[0,i]:=Tovar[i].NT;
  L_SG.Cells[1,i]:=IntToStr(Tovar[i].MP);
  L_SG.Cells[2,i]:=IntToStr(Tovar[i].KP);
   end;
 max:=i;
 for i:=1 to count do
 if Tovar[i].KP>Tovar[max].KP then
  max:=max+1;
 begin
  F_SG.Cells[0,i]:=Tovar[max].NT;
  F_SG.Cells[1,i]:=IntToStr(Tovar[max].MP);
  F_SG.Cells[2,i]:=IntToStr(Tovar[max].KP);
 end;
end;

___________________________________ ____________________

1) Название темы не соответствует правилам форума
Название темы должно адекватно отражать суть решаемой задачи/проблемы!

На первый раз я исправил название темы,
но в следующий раз тема с подобным названием может быть закрыта или удалена,
а Вы получите штрафные баллы.

2) Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)


Учтите это на будущее.

Модератор

Последний раз редактировалось Serge_Bliznykov; 28.09.2017 в 16:46.
JackGFG вне форума Ответить с цитированием
Старый 28.09.2017, 16:48   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

в чём именно запутались?
зачем Вам три грида?
почему не используете типизированные файлы?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.09.2017, 18:14   #3
JackGFG
Пользователь
 
Регистрация: 20.08.2017
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
в чём именно запутались?
зачем Вам три грида?
почему не используете типизированные файлы?
Ну запутался, потому что идей, что делать дальше нету. 3 грида, это данные которые я вбиваю, данные которые сохраняются и сам ответ это еще один грид.
На скрине показано как это выглядит.
А типизированные файлы не использую, так как в методичках этого нету, а значит и в задании использовать нельзя
Изображения
Тип файла: jpg MMSl28hgKUk.jpg (116.5 Кб, 133 просмотров)
JackGFG вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменения шага кол-ва товара (в карточке) с целого числа на десятичное Tagir93 Помощь студентам 7 10.07.2017 13:31
Задача на типы (Сведения об экспорте товара состоят из наименования товара, страны и количества экспорта. Дан набор сведений.) sckarlett Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2015 10:19
Работа с циклами, Не обнавляется кол-во товара в корзине bboyb-rock PHP 4 08.04.2011 19:14
Сформировать массив содержащий сведения об ассортименте товара супермаркета .Структурный тип содержит пол gomer88 Общие вопросы C/C++ 5 17.06.2010 12:37
Даны сведения о товарах на складе: наименование, цена, количество единиц товара. Найти товар, стоимость н Evidence Паскаль, Turbo Pascal, PascalABC.NET 1 03.06.2009 00:09