Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача 
:(
    Опции темы
Yanochka
  Дата 22.12.2004, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fallen Angel
***


Профиль
Группа: Участник Клуба
Сообщений: 1256
Регистрация: 7.10.2004
Где: Москва

Репутация: нет
Всего: 79



Не могу решить, помогите.
Задача.
Цитата
Условие задачи. Дана последовательность сведений об успе-ваемости студентов. Сохранить сведения в файле. Прочитать из файла по запросу и определить средний балл успеваемости и список успевающих студентов. Формат сведений: Фамилия, од-на оценка.



--------------------
user posted image 
PM MAIL ICQ   Вверх
Alex
Дата 22.12.2004, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Что именно не можешь решить?


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Vit
Дата 22.12.2004, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Формат файла оговаривается? Можно использовать наприммер CSV или хотя бы типизированные файлы?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Yanochka
Дата 22.12.2004, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fallen Angel
***


Профиль
Группа: Участник Клуба
Сообщений: 1256
Регистрация: 7.10.2004
Где: Москва

Репутация: нет
Всего: 79



Нужно типизированный файл для данных следующего формата: Фамилия студента, оценка:
Type Studwnt=record
Добавлено @ 17:52
Цитата
функции и процедуры для работы с типизированными файлами:
1. Для определения размера файла ______________________
2. Для поиска записи в файле по ее номеру _______________
3. Для добавления записи в файл ________________________




--------------------
user posted image 
PM MAIL ICQ   Вверх
Alex
Дата 22.12.2004, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Работа с типизированными файлами http://vingrad.ru/ART-DP-002029
Добавлено @ 18:00
А вообще я бы использовал dbf.

Это сообщение отредактировал(а) Alex - 22.12.2004, 17:59


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Yanochka
Дата 22.12.2004, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fallen Angel
***


Профиль
Группа: Участник Клуба
Сообщений: 1256
Регистрация: 7.10.2004
Где: Москва

Репутация: нет
Всего: 79



Alex
Спасибо.


--------------------
user posted image 
PM MAIL ICQ   Вверх
Alex
Дата 22.12.2004, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



не за что


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Yanochka
Дата 22.12.2004, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fallen Angel
***


Профиль
Группа: Участник Клуба
Сообщений: 1256
Регистрация: 7.10.2004
Где: Москва

Репутация: нет
Всего: 79



Alex
все равно ни чего не пойму.. smile


--------------------
user posted image 
PM MAIL ICQ   Вверх
Alex
Дата 22.12.2004, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Что именно не можешь понять? Давай объясню.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Yanochka
Дата 22.12.2004, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fallen Angel
***


Профиль
Группа: Участник Клуба
Сообщений: 1256
Регистрация: 7.10.2004
Где: Москва

Репутация: нет
Всего: 79



Цитата
Запишите функции и процедуры для работы с типизированными файлами:
1. Для определения размера файла ______________________
2. Для поиска записи в файле по ее номеру _______________
3. Для добавления записи в файл ________________________

procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.cells[____]:= _________________ ;
StringGrid1.cells[____]:= _________________ ;
edit1.text:= ________ ;
setlength ______________________________
ListBox1 ______________________________
Filename:='Primer.dat';
end;



Я только создала все компаненты, еще не писала процедуры.

Это сообщение отредактировал(а) Yanochka - 22.12.2004, 18:36


--------------------
user posted image 
PM MAIL ICQ   Вверх
Alex
Дата 22.12.2004, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Новички кто сделает задание в точности, до пятницы ставлю плюсик, если ни кто не сделает, то я в пятницу сделаю.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Alex
Дата 22.12.2004, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Текст задания http://yahol.narod.ru/Delphi.doc


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Flibustier
Дата 23.12.2004, 03:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 21.11.2003
Где: Казань

Репутация: -1
Всего: нет



М
 
Обсуждение других участников производится в разделе обсуждения форума а не здесь. Пока только устное предупреждение
Vit


Это сообщение отредактировал(а) Vit - 23.12.2004, 09:13
PM MAIL WWW ICQ   Вверх
SlaUr
Дата 23.12.2004, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 18.9.2003

Репутация: 3
Всего: 5



М
 
del by Vit. Обсуждать других можно в разделе обсуждения форума. Это общее правило для всех.

p.s. Сейчас некогда , может вечером если никто не напишет - попробую написать решение я.

Это сообщение отредактировал(а) Vit - 23.12.2004, 09:15
PM MAIL   Вверх
SoWa
Дата 23.12.2004, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



А можно ли перед оценкой ставит "^"? Так ведь легче будет:
-Читаешь строчку из файла
-Проходишься по ней циклом while до условия s='^' (s: string & в цикле s становится текущей буквой)
-Заносишь отметку в массив
-СРЕДНЕЕ АРИФМЕТИЧЕСКОЕ

ИЛИ:
если отметка<10 then прочитать последний символ из строчки.
У нас в школе пока пятибальная система, как в институте-не знаю(не дорос еще) smile


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Yanochka
Дата 23.12.2004, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fallen Angel
***


Профиль
Группа: Участник Клуба
Сообщений: 1256
Регистрация: 7.10.2004
Где: Москва

Репутация: нет
Всего: 79



Делаем по 5-и бальной системе. Не надо как легче, надо в точности по заданию.


--------------------
user posted image 
PM MAIL ICQ   Вверх
SlaUr
Дата 23.12.2004, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 18.9.2003

Репутация: 3
Всего: 5



Цитата
p.s. Сейчас некогда , может вечером если никто не напишет - попробую написать решение я.

Задание не сложное но трудоемкое я пока делать не хочу к тому же Alex написал:
Цитата
если ни кто не сделает, то я в пятницу сделаю.


p.s.Просто мне не понятно как заносить новые данные (вроде бы в stringGrid,присутствующий на форме писать нельзя или я ошибаюсь?),
к тому же мне не хочется это делать из-за перспективы получить плюс
:-) (ощущение корыстности выполнения задания)

Это сообщение отредактировал(а) SlaUr - 23.12.2004, 14:14
PM MAIL   Вверх
SoWa
Дата 23.12.2004, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



Извини, а у тебя DRKB есть? Если да-то можно работать с BDE(в DRKB много об этом), а если нету-скачай!


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Alex
Дата 23.12.2004, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



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


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Alex
Дата 24.12.2004, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Вот:
Код

type
 Student = record
   Name:       String[254]; // Фамилия студента
   Estimation: Integer;     // Оценка студента
 end;

type
 Students = array of Student;


type
 TfrmStud = class(TForm)
   StringGrid1: TStringGrid;
   ListBox1: TListBox;
   MainMenu1: TMainMenu;
   N1: TMenuItem;
   N2: TMenuItem;
   N3: TMenuItem;
   N4: TMenuItem;
   N5: TMenuItem;
   N6: TMenuItem;
   N7: TMenuItem;
   OpenDialog1: TOpenDialog;
   Edit1: TEdit;
   procedure FormCreate(Sender: TObject);
   procedure N7Click(Sender: TObject);
   procedure N3Click(Sender: TObject);
   procedure N2Click(Sender: TObject);
   procedure N5Click(Sender: TObject);
   procedure N6Click(Sender: TObject);
 private
   
   function GetSizeF: Integer;
   procedure AddStud(stud: Student);
   function GetStud(Ind: Integer): Student;
   { Private declarations }
 public
   { Public declarations }
 end;

var
 frmStud: TfrmStud;
 f: File of Student;
 Stud: Student;
 Studs: Students;
 FileName: String;

implementation

uses StrUtils;

{$R *.dfm}

function TfrmStud.GetSizeF: Integer;
// Определение размера файла
begin
 Result:= FileSize(f)-1;
end;

procedure TfrmStud.AddStud(stud: Student);
// Добавление студента
begin
 seek(f, GetSizeF+1);
 Write(f, stud);
end;

function TfrmStud.GetStud(Ind: Integer): Student;
// Возвращение информации о студенте по его номеру
begin
 seek(f, Ind);
 Read(f, Result);
end;

procedure TfrmStud.FormCreate(Sender: TObject);
begin
 with StringGrid1 do begin // Настройка внешнего вида
   Cells[0, 0]:= 'Фамилия';
   Cells[1, 0]:= 'Оценки';
 end;
 Edit1.Text:= '';
 SetLength(Studs, 0);
 ListBox1.Items.Clear;
 FileName:= 'Primer.dat'
end;

procedure TfrmStud.N7Click(Sender: TObject);
// Выход
begin
 Close;
end;

procedure TfrmStud.N3Click(Sender: TObject);
// Чтение данных
var
 i: Integer;
begin
 if not OpenDialog1.Execute then Exit;
 AssignFile(f, OpenDialog1.FileName);
 Reset(f);
 SetLength(Studs, GetSizeF+1);
 ListBox1.Font.Style:= ListBox1.Font.Style + [fsBold];
 ListBox1.Font.Color:= clRed;
 ListBox1.Sorted:= True;
 for i:= 0 to GetSizeF do begin
   stud:= GetStud(i);
   ListBox1.Items.Add(Format('%s %d', [stud.Name, stud.Estimation]));
   StringGrid1.Cells[0, i+1]:=          stud.Name      ;
   StringGrid1.Cells[1, i+1]:= IntToStr(stud.Estimation);
   Studs[i]:= stud;
 end;
 CloseFile(f);
 if ListBox1.Items.Count = 0 then
   Application.MessageBox('Найдите файл', 'Ошибка', MB_ICONERROR);
end;

procedure TfrmStud.N2Click(Sender: TObject);
// Запись
var
 n: Integer;
begin
 SetLength(Studs, StringGrid1.RowCount-2);
 for n:= 0 to Length(Studs) do begin
   Studs[n].Name:= StringGrid1.Cells[0, n+1];
   Studs[n].Estimation:= StrToIntDef(StringGrid1.Cells[0, n+1], 0);
 end;
 AssignFile(f, FileName);
 Rewrite(f);
 for n:= 0 to Length(Studs) do begin
   AddStud(Studs[n])
 end;
 CloseFile(f);
end;

function Count(s: Students): Real;
var
 n: Integer;
 sum: Integer;
begin
 sum:= 0;
 for n:= 0 to Length(s) do
   Inc(sum, s[n].Estimation);
 result:= sum / Length(s);

end;

procedure TfrmStud.N5Click(Sender: TObject);
begin
 Edit1.Text:= Format('%8.3f', [Count(Studs)]);
end;

procedure TfrmStud.N6Click(Sender: TObject);
var
 n: Integer;
begin
 ListBox1.Font.Style:= ListBox1.Font.Style - [fsBold];
 ListBox1.Font.Color:= clWindowText;
 ListBox1.Items.Clear;
 for n:= 0 to Length(Studs) do
   if Studs[n].Estimation > 2 then
     ListBox1.Items.Add(studs[n].Name);
end;

Я бы за такие задания увольнял преподов. Такого маразма я еще не видел.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Yanochka
Дата 24.12.2004, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fallen Angel
***


Профиль
Группа: Участник Клуба
Сообщений: 1256
Регистрация: 7.10.2004
Где: Москва

Репутация: нет
Всего: 79



Alex
Спасибо тебе за помощь. От таких преподавателей, страдают студенты ни за что... smile


--------------------
user posted image 
PM MAIL ICQ   Вверх
Alex
Дата 24.12.2004, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Не за что.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
mutex
Дата 25.12.2004, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 17.10.2004

Репутация: нет
Всего: 3



Дополнительно.

Вот описание класса (из книги "Delphi5, Руководство разработчика" - С.Тейксейра и К.Пачеко, стр.514, гл.12, Работа с файлами), к-рый обеспечивает использование привычных "БД-методов" для типизированного файла:

TRecordStream = class(TFileStream)
private
function GetNumRecs: Longint;
function GetCurRec: Longint;
procedure SetCurRec(RecNo: Longint);
protected
function GetRecSize: Longint; virtual;
public
function SeekRec(RecNo: Longint; Origin: Word = 0): Longint;
function WriteRec(const Rec): Longint;
function AppendRec(const Rec): Longint;
function ReadRec(var Rec): Longint;
procedure FirstRec;
procedure LastRec;
procedure NextRec;
procedure PreviousRec;
property NumRecs: Longint read GetNumRecs;
property CurRec: Longint read GetCurRec write SetCurRec;
end;

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

Это сообщение отредактировал(а) mutex - 25.12.2004, 03:15
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1355 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.