Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/27: Рейтинг темы: голосов - 27, средняя оценка - 4.63
8 / 8 / 4
Регистрация: 15.04.2009
Сообщений: 38

Создание базы данных с текстовым файлом

21.05.2009, 21:52. Показов 5806. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать две программы:
Первая – содержит базу данных для аэропорта. Информация должна содержать:
1. Наименование воздушной линии
2. Тип самолета
3.Количество рейсов
4. Налет, тыс. км
5.Пассажирооборот, человеко-часов
Внести информацию в файл не менее 5 позиций и для контроля фиксировать информацию на экране

Вторая – обработка базы данных.
Используя, созданной первой программой файл найти или ответить на вопрос:
1. Самая непопулярная авиакомпания
2. Сколько рейсов осуществляется на ИЛ-86 и ТУ-134 по всем воздушным авиалиниям
3.Средний пассажирооборот по всем линиям
4.Общий налет данного предприятия

Как сделать первую часть, я как бы понимаю, но со второй не получается(к сожаления первая часть осталась у друга на флэшке).
Помогите Пожалуйста(И если не сложно напишите программу и для первой части...). И если возможно с пояснениями..
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2009, 21:52
Ответы с готовыми решениями:

Создание папки с текстовым файлом
использую тасм и тлинк чтоб собрать все это, после запускаю создается папка, а текстовый файл нет, вот код, подскажите что сделать masm ...

Работа с текстовым файлом. Создание, запись, сохранение
Напишите функции для: Создания файла. Записи в конец файла с переносом строки. Сохранения файла. Спасибо.

Работа с текстовым файлом как с базой данных
привет всем. возник вот такой вопрос: есть некая база данных в текстовичке. нужно что бы с помощью программы по части известного,...

12
 Аватар для diliana
93 / 26 / 1
Регистрация: 19.05.2009
Сообщений: 138
21.05.2009, 22:03
gloom, это курсовая?
0
8 / 8 / 4
Регистрация: 15.04.2009
Сообщений: 38
21.05.2009, 22:06  [ТС]
Нет, контрольная. Нам дали ее на пару, кто скока успел сделать... Я успел сделать 1 часть задачи и часть второй....
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
22.05.2009, 07:47
1-я часть.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
uses crt;
type port=record
          nam:string[20];
          tip:string[10];
          kol:word;
          nal:word;
          pas:word;
          end;
var f:file of port;
    zp:port;
    i:word;
    c:char;
begin
clrscr;
assign(f,'port');
rewrite(f);
writeln('Введите данные не менее чем о 5 предприятиях, окончание ввода Esc.');
i:=0;
repeat
i:=i+1;
writeln('Предприятие ',i);
write(' Наименование: ');readln(zp.nam);
write(' Тип самолета: ');readln(zp.tip);
write(' Количество рейсов: ');readln(zp.kol);
write(' Налет, тыс.км: ');readln(zp.nal);
write(' Пассажирооборот,чел-час: ');readln(zp.pas);
write(f,zp);
c:=readkey;
until (i>=5)and(c=#27);
clrscr;
reset(f);
writeln('Сведения о внесенных записях':40);
writeln('------------------------------------------------------------------');
writeln('|  Наименвание  | Тип самолета | Рейсы | Налет | Пассажирооборот |');
writeln('------------------------------------------------------------------');
while not eof(f) do
   begin
    read(f,zp);
    gotoXY(1,whereY);write('| ',zp.nam);
    gotoXY(17,whereY);write('|  ',zp.tip);
    gotoXY(32,whereY);write('| ',zp.kol);
    gotoXY(40,whereY);write('| ',zp.nal);
    gotoXY(48,whereY);write('|    ',zp.pas);
    gotoXY(66,whereY);write('|');
    writeln;
  end;
writeln('------------------------------------------------------------------');
close(f);
readln
end.
2-я часть.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
uses crt;
type port=record
          nam:string[20];
          tip:string[10];
          kol:integer;
          nal:integer;
          pas:integer;
          end;
var f:file of port;
    zp:port;
    b,mn,k,sr,sm:word;
    nam:string[20];
begin
clrscr;
assign(f,'port');
reset(f);
write('Самая непопулярная компания: ');
mn:=maxint;
while not eof(f) do
 begin
  read(f,zp);
  if zp.pas<mn then
   begin
    mn:=zp.pas;
    nam:=zp.nam;
   end;
 end;
writeln(nam);
close(f);
reset(f);
write('Количество рейсов ИЛ-86 и ТУ-134=');
k:=0;
while not eof(f) do
 begin
  read(f,zp);
  if (zp.tip='ИЛ-86')or(zp.tip='ТУ-134') then
  k:=k+1;
 end;
if k=0 then writeln(' Таких типов нет!')
else writeln(k);
close(f);
reset(f);
write('Средний пассажирооборот по всем линиям=');
sr:=0;k:=0;
while not eof(f) do
 begin
  read(f,zp);
  sr:=sr+zp.pas;
  k:=k+1;
 end;
writeln(sr/k:0:2);
close(f);
reset(f);
write('Введите наименование предприятия: ');
readln(nam);
k:=0;
while not eof(f) do
 begin
  read(f,zp);
  if zp.nam=nam then
  k:=k+zp.nal;
 end;
if k=0 then writeln(' Такого предприятия нет!')
else writeln('Общий налет предприятия ',nam,'=',k);
close(f);
readln
end.
1
8 / 8 / 4
Регистрация: 15.04.2009
Сообщений: 38
22.05.2009, 08:01  [ТС]
Спасибо, но к сожалению мне нужно было создать базу данных с текстовым файлом(То бишь данные введенные с клавиатуры в Паскале, выводятся на экран и потом сохраняются в текстовый файл, а во второй части используя ранее созданный текстовый файл, и по нему сделать поиск...)
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
22.05.2009, 08:05
Можно и с текстовым файлом, только гемморойно это. Русские слова надо конвертировать при вводе в файл и выводе из файла, строки парсить туда-сюда. Когда надо, если время есть, переделаю.
А что значит "данные введенные с клавиатуры в Паскале, выводятся на экран"? Когда вводишь, они и так на экране.
0
8 / 8 / 4
Регистрация: 15.04.2009
Сообщений: 38
22.05.2009, 08:09  [ТС]
Необязательно, их сразу можно записывать в текст. файл, без вывода на экран=)
Просто созданный тобой код, мне не очень понятен, т.к мы еще такого не проходили... и не думаю, что препод примет такое.... но все равно спасибо большое=)
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
22.05.2009, 08:10
Так тебе еще надо, или нет?
0
8 / 8 / 4
Регистрация: 15.04.2009
Сообщений: 38
22.05.2009, 08:10  [ТС]
Да, будьте добры=)
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
22.05.2009, 09:42
Лучший ответ Сообщение было отмечено как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
Первая часть.
uses crt;
type port=record
          nam:string[20];
          tip:string[10];
          kol:word;
          nal:word;
          pas:word;
          end;
procedure Convert1(var a:string);{из проги в Паскале переводим русский текст в блокнот ASCII->ANSI}
var i:integer;
begin
for i:=1 to length(a) do
if ord(a[i]) in [128..175] then a[i]:=chr(ord(a[i])+64)
else if ord(a[i]) in [224..239] then a[i]:=chr(ord(a[i])+16)
else if ord(a[i])=240 then a[i]:=chr(ord(168))
else if ord(a[i])=241then a[i]:=chr(ord(184));
end;
var f:text;
    zp:array[1..50] of port;
    n,i:integer;
    s,s1:string;
begin
clrscr;
assign(f,'port.txt');
rewrite(f);
write('Введите количество записей не менее 5 n=');
repeat
readln(n);
until n>=5;
writeln('Введите данные о ',n,' предприятиях.');
for i:=1 to n do
 begin
  writeln('Предприятие ',i);
  s:='';{открываем строку}
  write(' Наименование: ');readln(zp[i].nam);
  s:=s+zp[i].nam+' ';{записывем в нее первое слово+пробел}
  write(' Тип самолета: ');readln(zp[i].tip);
  s:=s+zp[i].tip+' ';{второе слово+пробел}
  write(' Количество рейсов: ');readln(zp[i].kol);
  str(zp[i].kol,s1);{преобразуем третье слово в строку}
  s:=s+s1+' ';{добавляем с пробелом}
  write(' Налет, тыс.км: ');readln(zp[i].nal);
  str(zp[i].nal,s1);{тоже четвертое слово}
  s:=s+s1+' ';
  write(' Пассажирооборот,чел-час: ');readln(zp[i].pas);
  str(zp[i].pas,s1);{тоже пятое-остаток строки-без пробела}
  s:=s+s1;
  Convert1(s);{конвертируем строку}
  writeln(f,s);{записываем в файл}
 end;
clrscr;
writeln('Сведения о внесенных записях':40);{выводим то что записали на экран}
writeln('------------------------------------------------------------------');
writeln('|  Наименвание  | Тип самолета | Рейсы | Налет | Пассажирооборот |');
writeln('------------------------------------------------------------------');
for i:=1 to n do
   begin
    gotoXY(1,whereY);write('| ',zp[i].nam);
    gotoXY(17,whereY);write('|  ',zp[i].tip);
    gotoXY(32,whereY);write('| ',zp[i].kol);
    gotoXY(40,whereY);write('| ',zp[i].nal);
    gotoXY(48,whereY);write('|    ',zp[i].pas);
    gotoXY(66,whereY);write('|');
    writeln;
  end;
writeln('------------------------------------------------------------------');
close(f);{закрываем файл}
readln
end.
 
Вторая часть.
uses crt;
type port=record
          nam:string[20];
          tip:string[10];
          kol:integer;
          nal:integer;
          pas:integer;
          end;
procedure Convert2(var a:string);{обратная конвертация из блокнота в прогу ANSI->ASCII}
var i:integer;
begin
for i:=1 to length(a) do
if ord(a[i]) in [192..239] then a[i]:=chr(ord(a[i])-64)
else if ord(a[i]) in [240..255] then a[i]:=chr(ord(a[i])-16)
else if ord(a[i])=168 then a[i]:=chr(ord(240))
else if ord(a[i])=184 then a[i]:=chr(ord(241));
end;
var f:text;
    zp:array[1..50] of port;
    n,i,t,c,b,mn,k,sr,sm:integer;
    nam:string[20];
    s,s1:string;
begin
clrscr;
assign(f,'port.txt');
reset(f);
n:=0;
while not eof(f) do
 begin
  readln(f,s);{читаем строки}
  Convert2(s);{конвертируем}
  n:=n+1;{считаем}
  zp[n].nam:=copy(s,1,pos(' ',s)-1);{первое слово до пробела}
  delete(s,1,pos(' ',s));{удаляем с пробелом}
  zp[n].tip:=copy(s,1,pos(' ',s)-1);{второе слово}
  delete(s,1,pos(' ',s));
  s1:=copy(s,1,pos(' ',s)-1);{третье слово}
  val(s1,t,c);{преобразуем в число}
  zp[n].kol:=t;
  delete(s,1,pos(' ',s));
  s1:=copy(s,1,pos(' ',s)-1);{четвертое слово}
  val(s1,t,c);
  zp[n].nal:=t;
  delete(s,1,pos(' ',s));
  val(s,t,c);{пятое-остаток строки}
  zp[n].pas:=t;
 end;
close(f);
 
write('Самая непопулярная компания: ');
mn:=maxint;
for i:=1 to n do
if zp[i].pas<mn then
   begin
    mn:=zp[i].pas;
    nam:=zp[i].nam;
   end;
writeln(nam);
 
write('Количество рейсов ИЛ-86 и ТУ-134=');
k:=0;
for i:=1 to n do
if (zp[i].tip='ИЛ-86')or(zp[i].tip='ТУ-134') then k:=k+1;
if k=0 then writeln(' Таких типов нет!')
else writeln(k);
 
write('Средний пассажирооборот по всем линиям=');
sr:=0;k:=0;
for i:=1 to n do
 begin
  sr:=sr+zp[i].pas;
  k:=k+1;
 end;
writeln(sr/k:0:2);
 
write('Введите наименование предприятия: ');
readln(nam);
k:=0;
for i:=1 to n do
if zp[i].nam=nam then
k:=k+zp[i].nal;
if k=0 then writeln(' Такого предприятия нет!')
else writeln('Общий налет предприятия ',nam,'=',k);
readln
end.
3
8 / 8 / 4
Регистрация: 15.04.2009
Сообщений: 38
22.05.2009, 18:25  [ТС]
Большое спасибо за помощь! Очень помогли=)
0
simma
07.06.2009, 18:14
помогите пожалуйста))))))) очень срочно надо))))))
надо разроботать базу даных по расчёту калорийности дневного рациона из заданого перечня кормов. используйте два файла данных. один из них spravоch - содержит инфо об удельной калорийности каждого из пяти видов корма, sklad- наличие отдельных видов кормов на складе:
Программа должна обеспечивать ответы на следующие вопросы: Какова ежедневная калорийность выбраного рациона на одну голову скота(она должна находится в пределах от 20000-30000Ккал)? Какой вид корма закончится первым для выбраного рациона при заданом поголовье скота и на сколько дней его хватит? Ежедневный рацион постоянен и находится в пределах : Сено (5-10 кг), пшеница (0-3 кг), комбикорм (0-5 кг), отруби (0-6 кг), овес (0-3 кг). Поголовье насчитывает 2-10 единиц.
Таблица spravоch
корм сено пшеница комбикорм отруби овес
удельная 1200 4000 3000 3500 5000
калорийность
Ккал\кг
Таблица sklad
корм сено пшеница комбикорм отруби овес
количество, кг 2000 500 1000 1000 300
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 22
04.12.2014, 07:31
Puporev, объясни пожалуйста принцип этого кода конвертации
Pascal
1
2
3
4
5
6
7
8
9
procedure Convert1(var a:string);{из проги в Паскале переводим русский текст в блокнот ASCII->ANSI}
var i:integer;
begin
for i:=1 to length(a) do
if ord(a[i]) in [128..175] then a[i]:=chr(ord(a[i])+64)
else if ord(a[i]) in [224..239] then a[i]:=chr(ord(a[i])+16)
else if ord(a[i])=240 then a[i]:=chr(ord(168))
else if ord(a[i])=241then a[i]:=chr(ord(184));
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2014, 07:31
Помогаю со студенческими работами здесь

GUI Работа с текстовым файлом, лог файлом не мешая системе
Хочу написать прогу которая будет по таймеру искать в тхт - лог файле сообщение об ошибке. Например Error: 100 Qt C++ gui изучаю недавно...

Можно ли программно поработать с файлом PageMaker'a, как с текстовым файлом?
Можно ли программно поработать с файлом PageMaker'a, как с текстовым файлом. Задача состоит в том, чтобы содрать содержимое большого...

Класс, содержащий функции для работы с текстовым файлом (создание файла, удаление файла)
я понимаю ;-) что нужно руками гуглить , время поджимает. подскажите как Создать класс, содержащий функции для работы с текстовым файлом...

Создание базы данных, открытие из под одной базы данных MS Access
Здравствуйте. В общем, C# начал заниматься только вот и сразу была поставлена задача создать базу данных. Идея есть, при открытие программы...

Файл не является файлом базы данных 1с
Всем привет, уважаемые форумчане! Столкнулся с такой проблемой: предположительно из-за коварных действий уволившегося недовольного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru