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 
 К началу страницы 
+ Ответить 
volvo
сообщение 2.06.2005 16:17
Сообщение #2


Гость






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

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

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

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

 

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