IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> База данных
Selena
сообщение 2.06.2005 15:58
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Женский
Реальное имя: Ольга

Репутация: -  0  +


Помогите пожайлуста разобраться с этим заданием:
Создать средствами языка Pascal реляционную базу данных сотрудников, работающих в ШЧ-6, имеющую таблицы:
«Сотрудники», содержащую поля:
12. Фамилия
13. Имя
14. Отчество
15. Год рождения
16. Пол
17. Табельный номер
18. Стаж
19. Цех
20. Должность
21. Разряд
22. Зарплата
«Зарплата», содержащую поля:
11. Фамилия
12. Табельный номер
13. Оклад
14. Надбавка за стаж
15. Премия
16. Районный коэффициент
17. Начислено
18. Отчисление в негосударственный пенсионный фонд
19. Кредит
20. Налог
21. Получение на руки

I. Заполнить поля таблицы сотрудников, кроме поля зарплата, 5-ю записями.
II. В базе зарплата перенести значения полей «Фамилия» и «Табельный номер» из базы сотрудников.
III. Поля «Отчисление в негосударственный пенсионный фонд» и «Кредит» заполнить произвольно.

Первую таблицу я сделала, но почему-то когда я ее запускаю, во внешний фаил затисывается вместо цифр какие-то квадратики и она сама выодится в одну строку:
Program vvod_sotrudniki;
Uses WinCrt;
Type
sotrudn=Record
Fam:String[15];
Im:String[15];
Otch:String[15];
Dtr:1960..1990;
Pol:Char;
Tn:Integer;
Sz:0..50;
Ce:1..5;
Dol:String[20];
Raz:1..10;
Zr:Real;
End;
Var
MasR:Array[1..25] of sotrudn;
f:File of sotrudn;
i,n:Byte;
Name:String[12];
Begin
WriteLn('введите имя созд. таблицы');ReadLn(name);
Assign(f,name);ReWrite(f);
WriteLn('ввод данных в таблицу ',name);
WriteLn('введите количество сотрудников');ReadLn(n);
For i:=1 to n do
Begin
WriteLn('введите фамилию,i:2);ReadLn(MasR[i].fam);
WriteLn('введите имя',i:2);ReadLn(MasR[i].im);
WriteLn('введите отчество',i:2);ReadLn(MasR[i].otch);
WriteLn('введите дату рождения',i:2);ReadLn(MasR[i].dtr);
WriteLn('введите пол',i:2);ReadLn(MasR[i].pol);
WriteLn('введите табельный номер номер ',i:2);ReadLn(MasR[i].tn);
WriteLn('введите стаж',i:2);ReadLn(MasR[i].sz);
WriteLn('введите цех',i:2);ReadLn(MasR[i].ce);
WriteLn('введите должность',i:2);ReadLn(MasR[i].dol);
WriteLn('введите разряд',i:2,);ReadLn(MasR[i].raz);
MasR[i].zr:=0;
End;
WriteLn('введенные данные');
For i:=1 to n do
Begin
Write(MasR[i].fam:15);
Write(MasR[i].im:10);
Write(MasR[i].otch:15);
Write(MasR[i].dtr:4);
Write(MasR[i].pol:1);
Write(MasR[i].tn:8);
Write(MasR[i].sz:4);
Write(MasR[i].ce:3);
Write(MasR[i].dol:15);
Write(MasR[i].raz:2);
Write(MasR[i].zr:8:2);
End;
For i:=1 to n do
Write(f,MasR[i]);
Close(f);
End.


А как делать вторую:
Надо создать модуль чтобы обьеденить эти таблицы, или вторую таблицу также ввести, а потом через созданный модуль их объединить?

Сообщение отредактировано: volvo - 2.06.2005 16:07
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 1)
volvo
сообщение 2.06.2005 16:17
Сообщение #2


Гость






Selena,
Цитата
во внешний фаил затисывается вместо цифр какие-то квадратики и она сама выодится в одну строку
На то и типизированный файл (File of sotrudn), чтобы не записывать текстовое представление... При записи в текой файл переносится весь Record, как он был в памяти, поэтому и записываются
Цитата
вместо цифр какие-то квадратики
:yes: Чтобы корректно просмотреть этот файл нельзя открывать его текстовым редактором, нужно читать из него данные в такой же Record как и тот, из которого в файл записывали...

Да и перенос строки в таком файле ни к чему - переход к следующей записи делается по размеру Record-а. Так что все в порядке.

Цитата
А как делать вторую:
Для каждой таблицы описывай свой Record, и потом можно даже в одном модуле собирать информацию и записывать ее в соответствующие файлы. А вот файлы будут разные: одна таблица - один файл...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.07.2025 23:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"