![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Selena |
![]() ![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 39 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
Помогите пожайлуста разобраться с этим заданием:
Создать средствами языка 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 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Selena,
Цитата во внешний фаил затисывается вместо цифр какие-то квадратики и она сама выодится в одну строку На то и типизированный файл (File of sotrudn), чтобы не записывать текстовое представление... При записи в текой файл переносится весь Record, как он был в памяти, поэтому и записываются Цитата вместо цифр какие-то квадратики :yes: Чтобы корректно просмотреть этот файл нельзя открывать его текстовым редактором, нужно читать из него данные в такой же Record как и тот, из которого в файл записывали...Да и перенос строки в таком файле ни к чему - переход к следующей записи делается по размеру Record-а. Так что все в порядке. Цитата А как делать вторую: Для каждой таблицы описывай свой Record, и потом можно даже в одном модуле собирать информацию и записывать ее в соответствующие файлы. А вот файлы будут разные: одна таблица - один файл... |
![]() ![]() |
![]() |
Текстовая версия | 24.07.2025 14:59 |