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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2009, 21:05   #1
Татяна
Пользователь
 
Аватар для Татяна
 
Регистрация: 06.04.2009
Сообщений: 27
Восклицание Люди добрые)

Люди Добрые! Помогите неразумному человеку, справиться с задачей.

Программа управления однотабличной базой данных.Информация храниться в массиве записей.Запись должна содержать как минимум 3 поля различных типов, в т.ч. строковый, целый и вещественный.Хранение информации осуществляеться в типизированном файле на диске.Минимальные требования к программе включают:
1)Запись/считывание базы данных в /из файла
2)Добавление новой записи данных.
3)Уничтожение выбранно по номеру записи данных.
4)Просомтр сожержимого базы данных ( с порядковой нумерацией записей при вводе на экран)
5)Редактирование полей выбранной записи данных.
6)Сортировка базы данных по выбранному полю
7)Поиск записи в базе данных по выбранному полю
Диалог программы с пользователем можно организовать посредством мню, сожедращего перечисленный выше пункты, с выбором нужного пункта по номеру.Не следует так же забывать о пункте "Выход из программы".Указанные функции оформить в вие отдельных подпрограмм.



Буду очень презнательна за любую умную мысль)
Татьяна
Татяна вне форума Ответить с цитированием
Старый 06.04.2009, 21:33   #2
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

эм... какого рода мысли? вы имеете ввиду материализовать мысль в программный код? может есть конкретные вопросы? не хочется писать всю прогу =)
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 06.04.2009, 21:41   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну вот несколько мыслей:
Нужно завести массив этих записей. Сделать процедуру заполнения (чтения из файла) и записи (в файл). То есть все операции будут проводиться именно над массивом.

С добавлением все понятно: добавляем в конец и увеличиваем счетчик записей.

Уничтожение: сдвигаем записи правее уничтожаемой влево и уменьшаем счетчик (не забыв уменьшить номера сдвигаемых записей).

С просмотром тоже все ясно. Выводим запись с заданным индексом.

Собственно, вот.
Задача несложная.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.04.2009, 21:43   #4
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

могу поделиться меню.. я его делал когда-то для одной из своих программ...
Код:
procedure Menu;
var
	point:integer;
begin
	writeln(^J,'Menu');
	writeln('---------------');
	writeln('1. Start');
	writeln('2. Options');
	writeln('3. Help');
	writeln('4. Exit');
	writeln('5. About');
	writeln('---------------');
	write('->');
	read_var(point);

	case point of
		1: Start;
		2: Options(attempts_number);
		3: GetHelp;
		4: Quit;
		5: About;
	else writeln('Error - enter 1-5');
	end;
end;
в read_var там проверка на вводимое число.. чтобы оно было числом..

Код:
procedure read_var(var value:integer);
var
	error:integer;
	input:string;
begin
	readln(input);
	if (input = 'Q') or (input = 'q') then halt;
	val(input,value,error);

	while (error <> 0) do begin
		writeln('Input CORRECT value (Q or q to close program)');
		readln(input);
		if (input = 'Q') or (input = 'q') then halt;
		val(input,value,error);
	end;
end;
Ну чуть подправить обе процедурки.. и нормально) вторую лучше с repeat`ом переписать наверное...
Uguu~

Последний раз редактировалось __STDC__; 06.04.2009 в 21:46.
__STDC__ вне форума Ответить с цитированием
Старый 06.04.2009, 21:59   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Имхо, конечно, но как-то немного накручено для простого меню )
Я б как-нибудь так сделал:
Код:
procedure Menu;
var k : char;
begin
repeat
clrscr;
writeln('1 - Процедура 1');
writeln('2 - Процедура 2');
 { ........................... }
writeln('Esc - выход');
repeat
k := readkey;
until (k in ['1'..'5']) or (k=#27);
case k of
'1' : procedure1;
'2' : procedure2;
 {........................}
end;

until k=#27;
end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.04.2009, 22:02   #6
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Да там по сути тоже самое, хотя твой вариант красивее, согласен =) Только тогда clrscr убрать лучше.. иначе вывод будет затираться постоянно, если какая-то процедура будет его осуществлять.. у меня получается что-то вроде такого:

Код:
procedure read_var(var value:integer);
var
	error:integer;
	input:string;
begin
	repeat
		readln(input);
		if (input = 'Q') or (input = 'q') then halt;
		val(input,value,error);
		if (error<>0) then write('Input correct value');
	until error=0;
end;

procedure Menu;
var
	point:integer;
begin
{...}
	writeln('1. Start');
	writeln('2. Options');
{...}
	read_var(point);

	case point of
		1: writeln('Proc1');
		2: writeln('Proc2');
	else writeln('Error - enter 1-2');
	end;
end;
и основная :
Код:
begin
flag:=false;
repeat
	Menu;
until flag;
end.
мне достоинство такого метода видится в том, что с помощью read_var можно проверять и остальные числовые переменные.. такая.. в некотором роде защита от дурака
Uguu~

Последний раз редактировалось __STDC__; 06.04.2009 в 22:15.
__STDC__ вне форума Ответить с цитированием
Старый 06.04.2009, 22:13   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Только тогда clrscr убрать лучше.. иначе вывод будет затираться постоянно, если какая-то процедура будет его осуществлять..
Да нет, почему? Наоборот. Меню вызывается, когда процедура закончит работать. И чтобы не мешать все в одну кучу, лучше очистить экран. А в конце процедуры можно лишний readln добавить, чтобы на результаты посмотреть.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.04.2009, 22:15   #8
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Да нет, почему? Наоборот. Меню вызывается, когда процедура закончит работать. И чтобы не мешать все в одну кучу, лучше очистить экран. А в конце процедуры можно лишний readln добавить, чтобы на результаты посмотреть.
ну да, можно и так в принципе...
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 06.04.2009, 22:34   #9
Татяна
Пользователь
 
Аватар для Татяна
 
Регистрация: 06.04.2009
Сообщений: 27
По умолчанию

))Отлична , спасибо Вам, большое ЧЕЛОВЕЧЕСКОЕ)
Татьяна
Татяна вне форума Ответить с цитированием
Старый 06.04.2009, 22:48   #10
Татяна
Пользователь
 
Аватар для Татяна
 
Регистрация: 06.04.2009
Сообщений: 27
По умолчанию

А что вы сможете подсказать, по этому...


Написать модули для работы с комплексными числами.Модуля должен предоставлять следующие ресурсе:тип данных для описания комплексных чисел (запись), несколько процедур для работы с комплексными числами, среди которых в обязательном порядке должны присутсвовать процедуры суммирования, вычитания, умножения и деления комплексных чисел.Требуеться также представить программу для тестирования модуля.
Татьяна
Татяна вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Люди добрые помогите!!!... Stas))) Помощь студентам 3 02.06.2007 20:07