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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2015, 08:47   #1
turka86
 
Регистрация: 10.06.2015
Сообщений: 4
По умолчанию БД Выявление лучшей группы колледжа

Привет всем!
У меня есть курсовой БД выявление лучшей группы колледжа.
Начал создать программу. Accesse создал БД kolledj.mdb из трех таблиц: student; sessia; predmet и подкл. к Дельфи ч/з технологии ADO/
Люди добрые помогите пжл. дальше создать программу. Заранее спасибо!
turka86 вне форума Ответить с цитированием
Старый 11.06.2015, 09:45   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от turka86 Посмотреть сообщение
Привет всем!
У меня есть курсовой БД выявление лучшей группы колледжа.
Начал создать программу. Accesse создал БД kolledj.mdb из трех таблиц: student; sessia; predmet и подкл. к Дельфи ч/з технологии ADO/
Люди добрые помогите пжл. дальше создать программу. Заранее спасибо!
Ну, я экстрасенс. Ещё здесь парочка найдётся, например Аватар. Вы думаете, при таких исходных, мы всё бросим и будем Вам в мозги залезать, что-бы понять? Описывайте проблему конкретно. А лучше, читайте "Правила форума". Там всё описано, что, как, когда и где.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 11.06.2015, 10:22   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
помогите пжл.
1) Каков критерий "лучшести"?
2) Как выглядит структура и ее связи?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.06.2015, 11:49   #4
turka86
 
Регистрация: 10.06.2015
Сообщений: 4
По умолчанию

Задание была такая: Определение лучшей группы колледжа путем вычисления среднего арифметического оценок по каждой группе и сравнение полученного результата с результатами остальных групп.

В общем программа выглядеть так: смотреть рис. во вложениях
Там на 4-DBgrid выводится результат "Лучшая группа"

У меня есть код, но с этим кодом не работает
Код:
Часть 1. Вычисление и вывод лучшей группы:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, DBGrids, Db, DBTables;

type
  TForm1 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    Table2: TTable;
    DataSource2: TDataSource;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    Button1: TButton;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
t, i, k, j, f: integer;
tmp: string;
 gr: array of string;
 tt: array [1..5, 1..5] of extended;

begin

table2.moveby(1);
i:=1;
  for   i:=1 to  3 do //3 это кол-во курсов
  begin
  for j:=1 to 2 do //2 кол-во групп на курсе
   begin
     table1.Filtered:=true;
     tmp:tmp+gr[j];
         table1.Filter:='kurs=1 and grup='+ tmp;

         table2.Filtered:=true;
         table2.Filter:='sessia=1';
         k:=table2.RecordCount;
         t:=0;
        table2.moveby(1);
         for f:=1 to k do
            begin
             t:=t+table2.fieldbyname('ocenka').value;
             table2.next;
             end;
         tt[1, 1]:=t/k;
             //table1.Filtered:=false;
       end;
   end;
   label1.caption:=(inttostr(t));
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 i:integer;
 sum:extended;
 begin
  table2.filter:='grup=2';
  for i:=1 to Table2.recordcount do
begin

Table2.moveby(i);

sum:=sum + strtoint(Table2.Fieldbyname('ocenka').value);

end;

sum:=sum/Table2.recordcount;
//abel1.caption:=floattostr(sum)+ label1.caption;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Form2.show;
end;

end.
Как преобразовать этот код, чтобы работало этот код по технологии ADO.
Помогите пжл! Заранее спасибо!
Изображения
Тип файла: jpg Form1.jpg (114.7 Кб, 127 просмотров)

Последний раз редактировалось Stilet; 11.06.2015 в 12:57.
turka86 вне форума Ответить с цитированием
Старый 11.06.2015, 14:13   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

turka86 Вы не поняли что вас спрашивают на #3 Как выглядит структура и ее связи? на ваши БД покажите структура таблици , какой там связь ? или нету связь между таблицами?
Цитата:
for i:=1 to 3 do //3 это кол-во курсов
begin
for j:=1 to 2 do //2 кол-во групп на курсе
Не , так вы не получите не какой резултат .......... задача решается SQL -е , в SELECT -е если БД проектировал нормально

Последний раз редактировалось xxbesoxx; 11.06.2015 в 14:27.
xxbesoxx вне форума Ответить с цитированием
Старый 11.06.2015, 14:23   #6
turka86
 
Регистрация: 10.06.2015
Сообщений: 4
По умолчанию структура табл.

структура табл. показано на рисунке
Изображения
Тип файла: jpg структура табл..JPG (20.8 Кб, 54 просмотров)
turka86 вне форума Ответить с цитированием
Старый 11.06.2015, 14:56   #7
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

А почему между " sesia и stud " связь один к одному ?
xxbesoxx вне форума Ответить с цитированием
Старый 12.06.2015, 18:45   #8
turka86
 
Регистрация: 10.06.2015
Сообщений: 4
По умолчанию Выявление лучшей группы колледжа

Здрасти! Добрый вечер!
Добрые программисты! Помогите пжл. сделать эту задание:
Определение лучшей группы колледжа путем вычисления среднего арифметического оценок по каждой группе и сравнение полученного результата с результатами остальных групп.
Связывал таблицы. Внешний вид прог. во вложенном рис.
Я написал след. код но неполучается определить лучшую группу.
Кто нибудь помогите пжл. исправить этот код. Заранее спс!
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
dm.ADOQuery1.SQL.Clear;
dm.ADOQuery1.SQL.Text:=
select * from sessia where ocenka like '5';
dm.ADOQuery1.Active:=True;

{var
t, i, k, j, f: integer;
tmp: string;
 gr: array of string;
 tt: array [1..5, 1..5] of extended;
begin
   dm.ADOTable2.moveby(1);
i:=1;
  for   i:=1 to  3 do //3 это кол-во курсов
  begin
  for j:=1 to 2 do //2 кол-во групп на курсе
   begin
     dm.ADOTable1.Filtered:=true;
     tmp:=tmp+gr[j];
         dm.ADOTable1.Filter:='kurs=1 and grup='+ tmp;

         dm.ADOTable2.Filtered:=true;
         dm.ADOTable2.Filter:='sessia=1';
         k:=dm.ADOTable2.RecordCount;
         t:=0;
        dm.ADOTable2.moveby(1);
         for f:=1 to k do
            begin
             t:=t+dm.ADOTable2.fieldbyname('ocenka').value;
             dm.ADOTable2.next;
             end;
         tt[1, 1]:=t/k;
             //table1.Filtered:=false;
       end;
   end;
   label1.caption:=(inttostr(t));  }
end;





procedure TForm1.BitBtn1Click(Sender: TObject);
var
 i:integer;
 sum:extended;
begin
    dm.ADOTable2.filter:='grup=2';
  for i:=1 to dm.ADOTable2.recordcount do
begin

dm.ADOTable2.moveby(i);

sum:=sum + strtoint(dm.ADOTable2.Fieldbyname('ocenka').value);

end;

sum:=sum/dm.ADOTable2.recordcount;
label1.caption:=floattostr(sum)+ label1.caption;
end;
Изображения
Тип файла: jpg form.JPG (52.7 Кб, 120 просмотров)

Последний раз редактировалось Stilet; 12.06.2015 в 19:00.
turka86 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Билиотека для работников колледжа Фаризочка БД в Delphi 1 06.06.2011 23:52
Выбор лучшей(надежной) фирмы-прозводителя ноутбуков :) Lemo Компьютерное железо 22 10.04.2010 22:12
Строки(группы букв и группы знаков), Pascal Mrs Smith Помощь студентам 1 10.12.2009 16:31
Примеры использования и выбор лучшей DB BOBAH13 БД в Delphi 4 03.05.2008 22:32