Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/22: Рейтинг темы: голосов - 22, средняя оценка - 4.82
 Аватар для Master-Sergey
3 / 3 / 0
Регистрация: 09.05.2008
Сообщений: 52

рейтинг студентов

10.05.2008, 00:23. Показов 4400. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу программу рейтинг студентов (на основе базы данных), список студентов отображается в сетке DBGrid последнее поле сетки должно быть место (на основе набранных студентом балов). Подскажите, пожалуйста, как реализовать присвоение места на основе набранных студентом балов???

Например:
Иванов Иван - 400 баллов - 1 место
Петров Петр - 230 баллов - 2 место
Пупкин Вася - 100 баллов - 3 место

ОЧЕНЬ НУЖНО!!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.05.2008, 00:23
Ответы с готовыми решениями:

БД рейтинг
Добрый день, программисты. Хочу создать в аксессе БД рейтинг (студентов, клубов, авто или тд)...привязать ее в дэлфи. И можно ли этот...

Рейтинг фоток
Какая должна быть БД что бы вести рейтинг фотографий по трёх бальной системе? Добавлено через 15 минут Фотки будут поступать через...

Как создать рейтинг?
Вопрос собственно в чём. Создаю рейтинг. Есть 2 БД Access 1 - Auth (id_student) и state (id_student , Last_true_sours). Вот как делаю я:...

17
 Аватар для MegaPiha
23 / 23 / 8
Регистрация: 10.03.2008
Сообщений: 125
10.05.2008, 13:24
Отсортировать по убыванию и присвоить места. В зависимости от типа БД сортировка по разному делается.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var mesto, point:integer;
begin
   ... сперва надо отсортировать по убыванию набор данных...
   mesto:=1;
   ADOTable1.First;
   While not ADOTable1.Eof do begin
       ADOTable1.Edit;
       ADOTable1.FieldByName('mesto').AsInteger :=mesto;
       ADOTable1.Post;
       point:=ADOTable1.FieldByName('point').AsInteger;
       ADOTable1.Next;
       if ADOTable1.FieldByName('Point').AsInteger <> point then
           mesto:=mesto+1;
   end;
Для Paradox можно так отсортировать:

Delphi
1
2
3
Table1.IndexFieldNames:='Point';
Table1.IndexDefs[Table1.IndexDefs.IndexOF(Table1.IndexFieldNames)].Options :=
Table1.IndexDefs[Table1.IndexDefs.IndexOF(Table1.IndexFieldNames)].Options - [ixDescending];
Для Access такая вещь не проходит. Как отсортировать в Access по убыванию не знаю.
0
 Аватар для Master-Sergey
3 / 3 / 0
Регистрация: 09.05.2008
Сообщений: 52
10.05.2008, 14:28  [ТС]
MegaPiha,
После того как попробовал, получилось следующие:
1. Выдает Debbugger Exception Notification, после нажатия ОК
2. Смотри картинку 2
3. Смотри картинку 3
Миниатюры
рейтинг студентов   рейтинг студентов  
Изображения
 
0
 Аватар для MegaPiha
23 / 23 / 8
Регистрация: 10.03.2008
Сообщений: 125
10.05.2008, 18:17
Ищите ошибку в другом месте кода. Предположу, что не в той процедуре вызываете.
Вот рабочий образец только для Access.
Вложения
Тип файла: zip Рейтинг студентов.zip (20.0 Кб, 154 просмотров)
1
 Аватар для Master-Sergey
3 / 3 / 0
Регистрация: 09.05.2008
Сообщений: 52
10.05.2008, 18:53  [ТС]
MegaPiha
Огромный тебе РЕСПЕКТ!!!
У меня все получилось!!
0
 Аватар для Master-Sergey
3 / 3 / 0
Регистрация: 09.05.2008
Сообщений: 52
10.05.2008, 21:55  [ТС]
И еще один вопрос:
Возможно, ли организовать сортировку по вычисляемому (виртуальному полю) полю, которого нет в Базе Данных?
0
 Аватар для MegaPiha
23 / 23 / 8
Регистрация: 10.03.2008
Сообщений: 125
11.05.2008, 09:53
И еще один вопрос:
Возможно, ли организовать сортировку по вычисляемому (виртуальному полю) полю, которого нет в Базе Данных?
Если вычисляемое поле создается в Query то нет проблем
SQL
1
  SELECT Point, name, (point*10) AS MUL  FROM main  ORDER BY MUL
А вот по Table не знаю. Предпологаю, что надо создать для этого поля индекс, а потом по нему соритровать.
1
 Аватар для Master-Sergey
3 / 3 / 0
Регистрация: 09.05.2008
Сообщений: 52
11.05.2008, 15:45  [ТС]
А можете прислать рабочий образец!? А я не знаю, куда вставлять код:huh::huh::huh:
Буду признателен!
0
 Аватар для MegaPiha
23 / 23 / 8
Регистрация: 10.03.2008
Сообщений: 125
11.05.2008, 22:15
Пожалуйста.
Вложения
Тип файла: zip 4.ZIP (21.9 Кб, 118 просмотров)
1
 Аватар для Master-Sergey
3 / 3 / 0
Регистрация: 09.05.2008
Сообщений: 52
11.05.2008, 22:28  [ТС]
MegaPiha
Извините!

Еще вопрос:

В Базе есть такие поля:
1. Фамилия Имя(FIO)
2. Набранные балы за первую сессию(N_balu_1)
3. Набранные балы за вторую сессию(N_balu_2)
4. Набранные балы за третью сессию(N_balu_3)
5. Общая сумма балов набранных за курс(Suma)

Подскажите, как сделать так чтобы в поле Suma суммировались балы за 1ю, 2ю, 3ю сессию? Это все надо сделать в Access...

Добавлено через 1 минуту
MegaPiha,
Спасибо за 4.zip!!!
0
 Аватар для MegaPiha
23 / 23 / 8
Регистрация: 10.03.2008
Сообщений: 125
11.05.2008, 22:53
В Делфи.
Например так. Если данные баллов уже забиты.

Delphi
1
2
3
4
5
6
7
8
9
10
11
 With ADOTable1 do
  begin
     First;
     While not EOF do
     begin
        Edit;
        FieldByName('Suma').Asinteger:=FieldByName('N_balu_1').AsInteger+FieldByName('N_balu_2').AsInteger+FieldByName('N_balu_3').AsInteger;
        Post;
        Next;
     end;
  end;
При каждом добавлении значений в поля баллов небходимо будет выполнять соответствующую строку
Delphi
1
        FieldByName('Suma').Asinteger:=FieldByName('N_balu_1').AsInteger+FieldByName('N_balu_2').AsInteger+FieldByName('N_balu_3').AsInteger;
1
 Аватар для Master-Sergey
3 / 3 / 0
Регистрация: 09.05.2008
Сообщений: 52
31.05.2008, 21:56  [ТС]
Помогите!!!

Написал программу, думал все....

Но столкнулся с одной проблемой!

В сводной таблице, где суммируются бали присвоение места идет не правильно!

Имя - Балы - Место
Иванов 50 1
Петров 40 2
Сидоров 30 3
Пупкин 20 4

необходимо сделать наоборот: чем меньше баллов тем круче место:

Имя - Балы - Место
Иванов 50 4
Петров 40 3
Сидоров 30 2
Пупкин 20 1

0
 Аватар для MegaPiha
23 / 23 / 8
Регистрация: 10.03.2008
Сообщений: 125
31.05.2008, 23:05
Код в студию.
1
 Аватар для Master-Sergey
3 / 3 / 0
Регистрация: 09.05.2008
Сообщений: 52
03.06.2008, 14:42  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DataModule1.ADOTable6.Sort:='SumZv';
MestoZv:=1;
DataModule1.ADOTable6.last;
for k:=DataModule1.ADOtable6.recordcount downto 1 do
begin
DataModule1.ADOTable6.Edit;
DataModule1.ADOTable6.FieldByName('MestoZv').AsInteger:=MestoZv;
DataModule1.ADOTable6.Post;
 SumZv:=DataModule1.ADOTable6.FieldByName('SumZv').AsInteger;
DataModule1.ADOTable6.Prior;
 if DataModule1.ADOTable6.FieldByName('SumZv').AsInteger <> SumZv then
    MestoZv:=MestoZv+1;
 end;
 DataModule1.ADOTable6.Sort:= 'MestoZv';
0
 Аватар для MegaPiha
23 / 23 / 8
Регистрация: 10.03.2008
Сообщений: 125
03.06.2008, 20:36
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
With datamodule1.ADOTable6 do begin
      Sort:='sumZv';
      MestoZv:=1;
      First;
      for k:=1 to RecordCount do
      begin
            Edit;
            FieldByName('MestoZv').AsInteger:=MestoZv;
            Post;
            SumZv:=FieldByName('SumZv').AsInteger;
            Next;
            if FieldByName('SumZv').AsInteger <> SumZv then
              MestoZv:=MestoZv+1;
     end;
     Sort:= 'Mesto';
end;
1
 Аватар для Master-Sergey
3 / 3 / 0
Регистрация: 09.05.2008
Сообщений: 52
04.06.2008, 18:00  [ТС]
Огромный тебе респект!

Благодаря тебе я закончил работу над своей программой!
0
 Аватар для Master-Sergey
3 / 3 / 0
Регистрация: 09.05.2008
Сообщений: 52
08.06.2008, 22:20  [ТС]
Обнаружилась еще одна проблемка:

Имеются группы
2-ИНФ (2 курс; Специальность - Информатика)
1-КМС
3-ФИЗ
2-МАТ
3-МЕН
необходимо сделать так чтобы 1-го сентября у каждой группы курс возрастал:
3-ИНФ
2-КМС
4-ФИЗ
3-МАТ
4-МЕН
Примечание!
Если в списке появляется 5 курс (ГРУППА НЕ ДОЛЖНА ОТОБРАЖАТСЯ В СПИСКЕ!)!

Помогите очень надо решить эту проблемку!
0
 Аватар для Master-Sergey
3 / 3 / 0
Регистрация: 09.05.2008
Сообщений: 52
08.12.2008, 19:00  [ТС]
Модернизация программы!!!

Имеется файлы:
\ Base.xls
\ Base.mdb
Содержимое файла:

-------------------------------------
| Фамилия | Имя | Отчество |
-------------------------------------
| Иванов | Иван | Иванович |
| Петров | Петр | Петрович |
| Сидоров | Андрей | Андреевич |
--------------------------------------

Подскажите как с помошью Делфи отправить Фамилию, Имя, Отчество в базу MS Access
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.12.2008, 19:00
Помогаю со студенческими работами здесь

Программа на рейтинг продавцов
Помогите пожалуйста. Разработать программу на вход которой подается текстовый файл со списком продавцов-консультантов, через пробел будет...

Составить рейтинг куратора, который вычисляется по формуле
Вообщем, имеется база данных студентов, наверное многие её делали. Три таблицы: Студенты, Группа, Кураторы - сделаны в Access, связаны в...

Схема данных бд Рейтинг студентов
Делаю Базу данных можете подсказать как правильно связать таблицы в этой базе данных?

Рейтинг студентов - проблема с базой данных!!!
Помогите !!!:help: Создаю проект, который подсчитывает рейтинг студентов на основе базы данных! В Базе есть такие поля: 1. Фамилия...

Работа с файлами: вывести студентов 1 и 2 курса, у которых рейтинг меньше 3
Ребята, помогите пожалуйста, задания вроде не сложные, но я ничерта не могу понять в работе с файлами. Хоть на примере гляну. 1....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru