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

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

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

 
 Ответить  Открыть новую тему 
> База данных
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






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

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

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

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

 





- Текстовая версия 8.05.2024 17:50
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name