Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2009, 18:14   #1
alekta
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
Смущение Паскаль. СРОЧНО

Ребята,помогите пожалуйста. Я девушка-будуший врач, пишу программу на дурацком Free паскале, для дурацкого зачета по программированию.
Задача такая. Виртуальная регистратура. Есть глав врач, просто врач и пациент. Глав врачу присваевается номер 0. Просто врачам от 1 до 20. Пациенты от 21 до 100. Система такая, Пачиент заходит программу, вводит "2"(ну тип он пациент,а не врач), потом регистрируется(логин-пароль)вводит все данные о себе, потом он может выбрать себе врача, и посмотреть его график работы, и если пациенту надо - записаться на прием. Если входит просто врач, он вводит "1", потом тоже регистрируется-блаблабла, и он может помотреть свой график, и на какое время у него есть пациенты, а так же может посмотреть данные о своем пациенте. Если входит Главврач, то он типа Бог, может все, т.е. вводит "0", потом регится,а потом может посмотреть данные о любом пациенте и о любом враче, а так же графиг работы своих врачей.
--------------------------------------------------------------------------
alekta вне форума Ответить с цитированием
Старый 04.05.2009, 18:14   #2
alekta
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию

Я вот как бы написала уже часть, и даже скомпилировалось все:

program REGISTRATURA;
uses crt;
Type
Date = record
day: byte;
month: byte;
year: word;
End;
Person=record
code: integer;

speciality: String;

login: String;
password: String;

lastname: String;
irstname: String;
patronymic: String;

bdate: Date;
address: String;
End;

Recept_Table= array [1..20,1..31,9..17] of integer;

var r,gerson;

number, nomber_doktor, nomber_pacient: integer;
t: Recept_Table;
pers: array [1..100] of person;
numberp: integer;


procedure Registration (var person);

var k:integer;
begin
writeln ('Введите:');
writeln ('если вы главный врач - 0');
writeln ('если вы врач - 1');
writeln ('если вы пациент - 2');
readln(k);
if k=0 then p.code:=0;
if k=1 then begin inc (nomber_doktor);
p.code:=nomber_doktor;
end;

if k=2 then begin inc (nomber_pacient);
p.code:=nomber_pacient+20;
end;


writeln ('Введите логин');
readln (p.login);
writeln ('Введите пароль');
readln (p.password);
writeln ('Введите Имя');
readln (p.firstname);
writeln ('Введите Отчество');
readln (p.patronymic);
writeln ('Введите Фамилию');
readln (p.lastname);
writeln ('Введите Дату рождения');
writeln ('день');
readln (p.bdate.day);
writeln ('месяц');
readln (p.bdate.month);
writeln ('год');
readln (p.bdate.year);
writeln ('Введите Место жительства');
readln (p.address);
writeln ('Регистрация Завершина!');

end;

procedure PrintPersson (p: person);
begin if (p.code=0) then writeln ('ГлавВрач');
writeln ('Имя - ',p.firstname);
writeln ('Отчество',p.patronymic);
writeln ('Фамилия',p.lastname);
writeln ('Датa рождения',p.bdate.day,p.bdate.month ,p.bdate.year);
end;

Procedure Get_Table ();
var
ft: file of Recept_Table;

begin
assign (ft, 'table.dat');
reset (ft);
read (ft,t);
close (ft);
end;




Procedure Put_Table ();
var
ft: file of Recept_Table;
begin
assign (ft, 'table.dat');
rewrite (ft);
write (ft,t);
close (ft);
end;

Procedure Get_Person ();
var
fp: file of person;
i: integer;
begin
assign (fp, 'person.dat');
reset (fp);
i:=1;
While not EOF (fp) do
begin
read (fp, pers[i]);
i:=i+1;
end;
numberp:=i-1;
close (fp);
end;

Procedure Put_Person ();
var
fp: file of person;
i: integer;
begin
assign (fp, 'person.dat');
rewrite (fp);
For i:=1 to numberp do
begin
write (fp, pers[i]);
end;
close (fp);
end;



Procedure Service_P (i: integer);
begin

end;

Procedure Service_MD (i: integer);
begin

end;
Procedure Service_D (i: integer);
begin

end;

Procedure Init ();
var i,j,k: integer;

begin
for i:=1 to 20 do
for j:=1 to 31 do
for k:=9 to 17 do

t[i][j][k]:=-1;

Put_Table();
number:=1;
registration (pers[1]);
Put_Person ()
end;

Procedure Login();
var str: string;
l:string;
p:string;
i:integer;
begin
writeln ('Введите логин');
readln (l);
writeln ('Введите пароль');
readln (p);
for i:=1 to numberp do
begin
if (l=pers[i].login) and (p=pers[i].password) then
begin
if pers[i].code =0 then Service_MD(pers[i].code) ;
if (0 < pers[i].code) and (pers[i].code<=20) then Service_D(pers[i].code);
if pers[i].code>20 then Service_P(pers[i].code) ;
end;
end;
end;

BEGIN
nomber_doktor:=0;
nomber_pacient:=0;
Registration (r);
PrintPersson (g);




readln;
END.
=================================== ====================
вот. вся эта фигня рабатает. Надо ее причесать и доватьв нее какую нить простенькую фишку, а-ля модификацию и все....



P/S- Молодые люди,если кто может помочь, пишите плиз в аську 363175720. буду оч благадарна.
интим не предлагать=)
alekta вне форума Ответить с цитированием
Старый 04.05.2009, 18:59   #3
alekta
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию

*help**help**help* *help**help**help*
=((
alekta вне форума Ответить с цитированием
Старый 04.05.2009, 19:04   #4
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

вообще неплохо бы исходники помещать в тег CODE (решетка такая..) И вопрос формулировать точнее... честно не хочется сидеть за этим кодом.. если есть конкретные вопросы - спросите..
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 04.05.2009, 20:34   #5
alekta
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию

__STDC__, Вапще да,есть конкретные вопросы. Я так понимаю, что тут надо еще добавить процедуру которая будет при входе проходить. ну то есть типа "введите 1 для регистрации, 2 для входа в программу, 3 - чтобы покинуть программу" Я вот не знаю как это прописать, там как то ведь надо при первоп прогоне прописывать Init, а потом заменять это на Get_Person и Get_Table ... ни оч пинимаю как это должно быть, но так обьясняла препод..
alekta вне форума Ответить с цитированием
Старый 04.05.2009, 20:38   #6
alekta
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию

ну и как бы дальше надо прописать,если выбрали "1" (регистрация), то надо процедуру регистрации запустить. Но, тут опять же я в ступоре, не знаю как делать, ибо если это регится врач, то надо учесть что врачей от 1 до 20, если регится пациент, то от 21 до 100, и чтоп присвоить каждому зарегистрированому пользователю очередной номер
alekta вне форума Ответить с цитированием
Старый 04.05.2009, 20:39   #7
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Цитата:
"введите 1 для регистрации, 2 для входа в программу, 3 - чтобы покинуть программу"
Меню что ли сделать?
Цитата:
Я вот не знаю как это прописать, там как то ведь надо при первоп прогоне прописывать Init, а потом заменять это на Get_Person и Get_Table ...
а if или case уже не подходят?
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 04.05.2009, 20:55   #8
alekta
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию

ну они может и подходят, у меня просто проблемы с тем как это использовать))

да,верняк=)меню)
alekta вне форума Ответить с цитированием
Старый 04.05.2009, 20:57   #9
alekta
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию

пропишите ктонить это все мне=((пожалуста...
alekta вне форума Ответить с цитированием
Старый 04.05.2009, 20:59   #10
alekta
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 12
По умолчанию

я как бэ ваще не прогер...я не шарю совсем=\
alekta вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклы. Паскаль. Срочно. Кирилл17 Помощь студентам 1 05.12.2008 22:21
Паскаль рекурсии СРОЧНО Solana Помощь студентам 3 14.12.2007 17:49