Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
13 / 13 / 10
Регистрация: 25.05.2015
Сообщений: 554
1

Программа Регистратура

09.04.2016, 19:58. Показов 775. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Меню программы:
1. Ввод данных (ввод данных с клавиатуры, чтение данных с файла [предусмотреть запись данных в файл, чтение данных из файла]).
2. Обработка данных (добавление и удаление записей)
3. Поиск информации
4. Вывод упорядоченной информации (вывод результатов)
5. Выход из программы.

Регистратура
Структура элемента массива ребенок: фамилия, место жительства – город, улица, дом, квартира, пол, количество дней посещения. Определить:
─ самого болеющего ребенка;
─ кто больше болеет – мальчики или девочки;
─ список детей, проживающих на заданной улице.
Решенный код к этой задаче
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
program Registratura;
 
uses
crt;
type
Tlocation =record
Ftown:string[15];
FStreat:string[20];
Fhouse:byte;
Fflat:byte;
end;
 
type
TChild = record
FSurname: string[15];
Loc:Tlocation;
gender:char;
KDP:word;
end;
 
var
Child: array[1..100] of TChild;
Zap: TChild;
f: file of TChild;
vibor: byte;
fami: string[30];
n, t: integer;
 
{------------------------------------------------------------------------------------}
procedure vvod;
var
i: integer;
begin
clrscr;
Assign(f, 'rebenok.dat');
rewrite(f);
Write('Введите количество детей: ');
readln(n);
for i := 1 to n do 
begin
writeln('Введите', ' ', i, ' ', 'ребенка ');
with Zap do
begin
 
write('|Введите фамилию ребенка................|- '); readln(Fsurname);
write('|Введите город...........................|- '); readln(Loc.Ftown);
write('|Введите название улицы.................|- '); readln(Loc.FStreat);
write('|Введите номер дома......................|- '); readln(Loc.Fhouse);
write('|Введите номер квартиры..................|- '); readln(Loc.Fflat);
write('|Введите пол ребенка(м/ж)................|- '); readln(gender);
write('|Введите количество дней посещения...|- '); readln(KDP);
writeln;
 
write(f, Zap);
end;
end;
close(f);
end;
{----------------------------------------------------------------------------------------}
procedure chten;
var
i: integer;
begin
clrscr;
assign(f, 'rebenok.dat');
reset(f);
i := 1;
while not (eof(f)) do 
begin
read(f, Child[i]);
writeln('____________________________________________________________________________');
writeln(i,Child[i].FSurname:15,'|',Child[i].Loc.Ftown:8,'|',Child[i].Loc.FStreat:8,'|',Child[i].Loc.Fhouse:12,'|',Child[i].Loc.Fflat:10,'|',Child[i].gender:5,'|',Child[i].KDP:3,'|');
i := i + 1;
 
end;
close(f);
 
n := i - 1;
end;
{-------------------------------------------------------------------------------------------------------------------------------------------}
procedure dobav;
var
i: integer;
begin
clrscr;
rewrite(f);
 
for i := 1 to n do
write(f, Child[i]); //Записываем в массив записей
 
Writeln('Введите ', ' ', n + 1, ' ', 'ребенка');
with Zap do
begin
write('|Введите фамилию ребенка................|- '); readln(Fsurname);
write('|Введите город...........................|- '); readln(Loc.Ftown);
write('|Введите название улицы.................|- '); readln(loc.FStreat);
write('|Введите номер дома......................|- '); readln(Loc.Fhouse);
write('|Введите номер квартиры..................|- '); readln(Loc.Fflat);
write('|Введите пол ребенка(м/ж)................|- '); readln(gender);
write('|Введите количество дней посещения...|- '); readln(KDP);
writeln;
write(f, Zap);
end;
close(f);
 
 
end;
{-------------------------------------------------------------------------------------------------------------------------------------------}
 
procedure delete;
var
i: integer;
begin
clrscr;
i := 1;
assign(f, 'rebenok.dat');
reset(f);
 
 
while not eof(f) do
begin
read(f, Child[i]);
i := i + 1
end;
 
close(f);
write('Выберите номер удаляемой записи которую вы хотите: ');
readln(n);
reset(f);
seek(f, filesize(f) - 1);{ Ставим указатель перед последним компонентом }
read(f, Child[i]);
seek(f, n - 1); { Ставим указатель перед удаляемым файлом }
write(f, Child[i]);{ Записываем конечный компонент вместо удаляемого }
{ убираем последний элемент файла }
seek(f, filesize(f) - 1);{ Ставим указатель перед последним компонентом }
 
truncate(f);{ Отсекаем последний компонент }
 
Writeln('Удаление прошло успешно!!!'); 
 
end;
{----------------------------------------------------------------------------------------------------------------------}
procedure poisk;
 
begin
clrscr;
 
write('Введите фамилию ребенка: ');
readln(fami);
reset(f);
t := 0;
while not eof(f) do
begin
read(f, Zap);
if Zap.FSurname = fami then{если фамилия совпала}
begin
t := 1;{фиксируем}
writeln('Найдент ребенок с такой фамилией!!!');
Writeln('Выводим запись');
writeln(Zap.FSurname:10,'|',Zap.Loc.Ftown:8,'|',Zap.Loc.FStreat:8,'|',Zap.Loc.Fhouse:12,'|',Zap.Loc.Fflat:10,'|',Zap.gender:5,'|',Zap.KDP:15,'|');
end;
end;
if t = 0 then writeln('Такого ребенка нету!!!');{если нет совпадений}
close(f);
end;
 
{------------------------------------------------------------------------------------------------------------------------------------------} 
procedure ill_child;
var i:integer;
min_d:integer;
maxid:integer;
begin
ClrScr;
maxid:=1;
min_d:=365;
for i:=2 to n do
begin
if (Child[i].KDP<min_d) then
begin
maxid:=i;
min_d:=Child[i].KDP;
end;
end;
if min_d=365 then writeln('Детей нет')
else
writeln('Самый больной ребенок: '+Child[maxid].FSurname);
 
end;
//---------------------------------------------------------
procedure disease;//процедура болезнь
var i,s_day_mal,s_day_dev:integer;
begin
s_day_mal:=0;
s_day_dev:=0;
 
for i:=1 to n do begin
if Child[i].gender='м' then
s_day_mal:=s_day_mal+Child[i].KDP
else s_day_dev:=s_day_dev+Child[i].KDP;
end;
if s_day_dev<s_day_mal then writeln('Девочки болеют больше');
if s_day_dev>s_day_mal then writeln('Мальчики болеют больше');
if s_day_dev=s_day_mal then writeln('Девочки и мальчики болеют одинаково');
end;
procedure streat;
var str:string[35];
i:integer;
Key:boolean;
begin
Write('Введите название улицы: ');
Readln(str);
//Key:=true;
for i:=1 to n do 
 
if Pos(Child[i].Loc.FStreat,str)>0 then
begin 
writeln(Child[i].FSurname);
Key:=true;
end;
if (Key=false)or(Pos(Child[i].Loc.FStreat,str)<>0)then 
begin
writeln('Дети не проживают на этой улице');
end;
end;
begin
repeat
Writeln('Выбор действия');
Writeln('1-Ввод новых данных');
Writeln('2-Чтение данных');
Writeln('3-Добавление записей');
Writeln('4-Удаление записи');
Writeln('5-Поиск информации');
Writeln('6-Самый больной ребенок');
Writeln('7-Кто больше болеет - мальчики или девочки');
writeln('8-Cписок детей, проживающих на заданной улице');
writeln('9-Выход');
readln(vibor);
case vibor of
1: vvod;
2: chten;
3: dobav;
4: delete;
5: poisk;
6: ill_child;
7:disease;
8:streat;
9:begin
writeln('Нажмите Enter для выхода');
Readln;
exit;
end
else 
begin
writeln('Нажмите Enter и повторите ваш ввод');
Readln; end;
end
until (vibor=9);
 
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2016, 19:58
Ответы с готовыми решениями:

Виртуальная регистратура
О Ч Е Н Ь С Р О Ч Н О !! Ребята,помогите пожалуйста. Я девушка-будуший врач, пишу программу на...

БД Регистратура...
Помогите Пожалуйста создать таблицу &quot;Врач&quot; как показано на рисунке... Вот описание того что должно...

Электронная регистратура
Всем доброго дня. Делаю курсовой проект по теме электронная регистратура.Создал базу данных,...

БД - Регистратура поликлиники
Надо создать БД - Регистратура поликлиники. Но не имею представления с чего даже начать:(...

0
09.04.2016, 19:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2016, 19:58
Помогаю со студенческими работами здесь

Электронная регистратура в делфи
Доброго всем вечера.Мне нужно написать электронную регистратуру в делфи.в нете нет нигде...

MC Access. Автозаполнение бд Регистратура поликлиники
Доброго времени суток. В общем, работаю темой &quot;Регистратура поликлиники&quot; нужна помощь в...

Предметная область "Регистратура поликлиники"
Представление: а) Вывод данных о пациентах; б) вывод данных о врачах;...

Создать базу данных "Регистратура"
создать базу данных Регистратура - карточки отдыхающих, платные услуги, запись на приём

АРМ "Регистратура"
Пишу курсовой проект на тему АРМ &quot;Регистратура&quot;. Столкнулась с такой проблемой: при заполнении...

БД "Регистратура"
Если кто делал БД &quot;Ригистратура&quot; поделитесь плиз


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru