Pascal/Turbo Pascal - Necesito ayude Urgente PLZ

 
Vista:

Necesito ayude Urgente PLZ

Publicado por jesus  (1 intervención) el 01/02/2011 21:07:02
necesito realizar este programa pero no tengo idea de como si alguien me puede ayudar se lo agradeseria con todo el alma :D

un consultorio medico asistencial presta servicios de oftalmologia, pediatria, traumatologia, carfiologia y rayos X cada una de estas consultas tiene un precio de Bs.80,70,90,120,50 respectivamente ´para aquellas persones mayores de 60 años cada consulta tendrá un coto de 50% menos sobre su precio original. se necesita de sus servicios para que realice un sistema que almacene los siguientes datos y permita la modificación y visualización:
*cedula
*nombre y apellido
*edad
*area de atencion
*costo
*fecha de atencion
*observacion

asi mismo necesita que el sistema genere los siguientes reportes:
* la cantidad de personas mayores de 60 años
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Necesito ayude Urgente PLZ

Publicado por ramon (2158 intervenciones) el 14/02/2011 14:42:22
el proceso que pides es bastante entretenido pero te iniciare tu segiras el resto
sino no aprenderas.

este proceso es bastante simple pero para empezar bale.

program fartura;
uses
crt, dos; {unidades normales casi siempre en pascal}
type
datos = record { el registro de datos}
cedula : integer; {si es todo numero sino string}
nombre : string[20]; {un string de 20 carazteres si quieres mas asta 256}
apellido : string[20]; {lo mismo que el anterior}
edad : integer;
area : integer; {si no tiene letras sino string}
costo : real; { por los decimales}
fecha : string[8]; { dia/mes/a¤o ejem:02/02/11 o 02/02/2011 en el string[10]}
observacion : string; {testo de 256 caracteres}
end;

const
nomb = 'oftalmol.fic';{nombre del fichero puede cambiar segun}
{cual quieras como}
{oftalmologia,pediatria, traumatologia, carfiologia y rayos X }
{pero con solo 8 letras en el nombre}

var
ficha : datos; {o si quieres mejor ficha : array[1..100] of datos}
{para empezar te recomiendo lo primero}
tecla : char; {para entrada por el teclado}
f : file of datos; {para guardar los datos tomados}
cont, x, y : integer; {posicion de los datos y contador para los string}

procedure entradadatos(xd, yd : integer);
begin
textcolor(15);
TextBackground(1);
clrscr;
textcolor(14);
gotoxy(xd + 20,yd - 4);write('**** ENTRE DATOS DE FICHA ****');
textcolor(15);
gotoxy(xd,yd);write('Cedula : ');
gotoxy(xd,yd + 1);write('Nombre : ');
gotoxy(xd,yd + 2);write('Apellido : ');
gotoxy(xd,yd + 3);write('Edad : ');
gotoxy(xd,yd + 4);write('Area : ');
gotoxy(xd,yd + 5);write('Costo : ');
gotoxy(xd,yd + 6);write('Fecha : ');
gotoxy(xd,yd + 7);write('Observacion : ');
gotoxy(xd + 19,yd);readln(ficha.cedula);
gotoxy(xd + 19,yd + 1);readln(ficha.nombre);
gotoxy(xd + 19,yd + 2);readln(ficha.apellido);
gotoxy(xd + 19,yd + 3);readln(ficha.edad);
gotoxy(xd + 19,yd + 4);readln(ficha.area);
gotoxy(xd + 19,yd + 5);readln(ficha.costo);
gotoxy(xd + 19,yd + 6);readln(ficha.fecha);
gotoxy(xd + 19,yd + 7);readln(ficha.observacion);
textcolor(14);
gotoxy(xd + 20,yd + 12);write('Desea guardar la ficha S/N');
textcolor(15);
repeat
tecla := readkey;
if tecla in['s','S','n','N'] then
begin
end
else
begin
sound(100);
delay(200);
nosound;
end;
until tecla in['s','S','n','N'];
if tecla in['s','S'] then
begin
assign(f,nomb); {Abrimos el fichero}
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
rewrite(f); {creamos el archivo no esiste}
seek(f,0); {posicionamos el puntero del fichero al inicio}
write(f,ficha); {lo guardamos}
close(f); {lo cerramos}
end
else
begin { si esiste insertamos en el la ficha}
seek(f,sizeof(f)); {posicionamos el puntero de archivo}
write(f,ficha); {lo guardamos}
close(f); {lo cerramos}
end;
end;
TextBackground(0);
end;

procedure carga_fichas(xf, yf : integer); {cargamos los nombres}
{ para elegir}
begin
clrscr;
assign(f,nomb);
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
writeln('El Fichero no Existe.....');
delay(300);
halt(1);
end;
for cont := 0 to filesize(f) - 1 do
begin
seek(f,cont);
read(f,ficha);
writeln(cont,' ',ficha.nombre);{ podiamos cargar cualquier otro}
{dato del registro por ejemp:}
{ficho.edad para comprovar la edad}
end;
close(f);
end;

procedure reporte(xr, yr : integer);
begin
clrscr;
assign(f,nomb);
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
writeln('El Fichero no Existe.....');
delay(300);
halt(1);
end;
x := 0;
for cont := 0 to filesize(f) - 1 do
begin
seek(f,cont);
read(f,ficha);
if ficha.edad >= 60 then
begin
x := x + 1;
writeln(ficha.nombre);
end;
end;
writeln('Numero de mallores o de 60 a¤os = ',x);
end;

begin
clrscr; {limpiamos la pantalla}
textcolor(4);
gotoxy(10,8);write('MENU');
textcolor(14);
gotoxy(10,11);write('ENTRAR DATOS');
gotoxy(10,12);write('MIRAR NOMBRES');
gotoxy(10,13);write('REPORTE 60 A¥OS');
textcolor(15);
gotoxy(10,14);write('PULSA E=ENTRADAS / M=MIRAR / R=REPORTE');
repeat
tecla := readkey;
if (tecla in['e','E','m','M','r','R']) or (tecla = #27) then
begin
end
else
begin
sound(200);
delay(100);
nosound;
end;
until (tecla in['e','E','m','M','r','R']) or (tecla = #27);
case tecla of
'e','E' : begin
entradadatos(10,10); {presentamos ficha y la rellenamos}
end;
'm','M' : begin
carga_fichas(10,10); {visualizamos las fichas para elegir}
readln;
end;
'r','R' : begin
reporte(10,10);
readln;
end;
end;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar