Pascal/Turbo Pascal - Ayuda!! en pascall xfavorrr!

   
Vista:

Ayuda!! en pascall xfavorrr!

Publicado por daniii! (4 intervenciones) el 08/08/2011 19:15:43
Hola tengo que hacer un programa en pascal, que consiste en la construccion de un programa que emule el sistema de elecciones y votaciones nacionales, dond los cuidadanos ingresan y dan su numero de cedula e inmediatamente el programa mostrará el nombre completo del cuidadano, la edad, lugar de residencia y distrito de votacion., seguidamente aparezca una papelera de 3 candidatos, y ahi mismo el cuidadano escoja el preferido.... y este programa me imprima el conteo de votos que obtuvo cada candidato por distritos!!

No tengo idea como hacer si me pueden ayudar se los agradeceria, xfavor

soy nobatooo!!
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

Ayuda!! en pascall xfavorrr!

Publicado por ramon (2072 intervenciones) el 08/08/2011 20:28:38
{Tienes que crear un fichero con los datos de Nombres y luego puedes buscar}
{a la persona por Nº de carne o sea DNI te presentara todos sus datos y la}
{edad que tiene con relacion a se nacimiento y año actual}

program eleccion;
uses
crt, dos;
type
nombres = record
nombre : string[30];
apell1 : string[30];
apell2 : string[30];
DNI : string[40];
calle : string[50];
ciudad : string[40];
provin : string[40];
nacio : string[10];
codipos : word;
distrito : longint;
end;


var
f : file of nombres;
datos : nombres;
tecla : char;
x, y, i, cont : integer;
salvar : boolean;
yy,mm,dd,dww : word;


procedure pantalla_datos(d : char);
begin
clrscr;
if d = 'e' then
begin
gotoxy(3,1);write('*** Entrada De Datos *** [ESC] AVANDONAR');
end
else
begin
gotoxy(3,1);write('<<< Informacion >>> [ESC] AVANDONAR');
end;
gotoxy(3,4);write('Nombre : ');
gotoxy(3,6);write('1ø Apellido : ');
gotoxy(3,8);write('2ø Apellido : ');
gotoxy(3,10);write('N§ DNI : ');
gotoxy(3,12);write('Calle : ');
gotoxy(3,14);write('Ciudad : ');
gotoxy(3,16);write('Provincia : ');
gotoxy(3,18);write('Codi.Post. : ');
gotoxy(3,20);write('Distrito : ');
if d = 'e' then
begin
gotoxy(3,22);write('Nacio El : Ejen : 01/02/2011');
end
else
begin
gotoxy(3,22);write('Edad Actual : ')
end;
end;

procedure entrada_datos;
var
anul : boolean;
dat, tec : char;
ent : integer;
entra : string[50];
coposta : word;
error : integer;
begin
x := 16;
y := 4;
gotoxy(x,y);
i := 1;
anul := false;
ent := 1;
dat := 't';
repeat
tec := readkey;
if tec <> #27 then
begin
if dat = 't' then
begin
if tec in[#32,#38..#126,#154,#165] then
begin
entra[ent] := tec;
entra[0] := chr(ent);
gotoxy(x + ent,y);write(entra[ent]);
ent := ent + 1;
if ent > 50 then
ent := 50;
end;
end;
if dat = 'n' then
begin
if tec in[#48..#57] then
begin
entra[ent] := tec;
entra[0] := chr(ent);
gotoxy(x + ent,y);write(entra[ent]);
ent := ent + 1;
if ent > 50 then
ent := 50;
end;
end;
if tec = #8 then
begin
ent := ent - 1;
if ent < 1 then
ent := 1;
entra[ent] := ' ';
entra[0] := chr(ent);
gotoxy(x + ent,y);write(entra[ent]);
end;
if tec = #13 then
begin
case i of
1 : begin
datos.nombre := copy(entra,1,length(entra));
y := y + 2;
ent := 1;
fillchar(entra,51,' ');
entra[0] := chr(50);
dat := 't';
gotoxy(x,y);
end;
2 : begin
datos.apell1 := copy(entra,1,length(entra));
y := y + 2;
ent := 1;
fillchar(entra,51,' ');
entra[0] := chr(50);
dat := 't';
gotoxy(x,y);
end;
3 : begin
datos.apell2 := copy(entra,1,length(entra));
y := y + 2;
ent := 1;
fillchar(entra,51,' ');
entra[0] := chr(50);
dat := 't';
gotoxy(x,y);
end;
4 : begin
datos.DNI := copy(entra,1,length(entra));
y := y + 2;
ent := 1;
fillchar(entra,51,' ');
entra[0] := chr(50);
dat := 't';
gotoxy(x,y);
end;
5 : begin
datos.calle := copy(entra,1,length(entra));
y := y + 2;
ent := 1;
fillchar(entra,51,' ');
entra[0] := chr(50);
dat := 't';
gotoxy(x,y);
end;
6 : begin
datos.ciudad := copy(entra,1,length(entra));
y := y + 2;
ent := 1;
fillchar(entra,51,' ');
entra[0] := chr(50);
dat := 't';
gotoxy(x,y);
end;
7 : begin
datos.provin := copy(entra,1,length(entra));
y := y + 2;
ent := 1;
fillchar(entra,51,' ');
entra[0] := chr(50);
dat := 'n';
gotoxy(x,y);
end;
8 : begin
val(entra,coposta,error);
datos.codipos := coposta;
y := y + 2;
ent := 1;
fillchar(entra,51,' ');
entra[0] := chr(50);
dat := 'n';
gotoxy(x,y);
end;
9 : begin
val(entra,coposta,error);
datos.distrito := coposta;
y := y + 2;
ent := 1;
fillchar(entra,51,' ');
entra[0] := chr(50);
dat := 't';
gotoxy(x,y);
end;
10 : begin
datos.nacio := copy(entra,1,length(entra));
gotoxy(x,y);
end;
end;
i := i + 1;
end;
end
else
begin
anul := true;
end;
until (i > 10) or (anul = true);
if (i > 10) and (anul = false) then
begin
salvar := true;
end
else
begin
salvar := false;
end;
end;

procedure busca_datos;
var
tc : char;
ndni : string[40];
err, zi : integer;
arh : longint;
sal : boolean;
dav : string[4];
fech : word;
begin
gotoxy(3,3);write('N§ DNI : [ESC] AVANDONA');
gotoxy(11,3);
zi := 1;
sal := false;
repeat
tc := readkey;
if tc in[#32,#38..#126,#154,#165] then
begin
ndni[zi] := tc;
ndni[0] := chr(zi);
gotoxy(10 + zi,3);write(ndni[zi]);
zi := zi + 1;
if zi > 40 then
zi := 40;
end;
if tc = #8 then
begin
zi := zi - 1;
if zi < 1 then
zi := 1;
ndni[zi] := ' ';
ndni[0] := chr(zi);
gotoxy(10 + zi,3);write(ndni[zi]);
end;
until (tc = #13) or (tc = #27);
if (tc = #13) and (zi > 2) then
begin
assign(f,'c:\VaseDato.bsd');
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
clrscr;
writeln('Falta El Archivo VaseDato.bsd');
writeln;
writeln('Pulse Enter');
repeat
tc := readkey;
until tc = #13;
end
else
begin
arh := 0;
repeat
seek(f,arh);
read(f,datos);
if datos.dni = ndni then
begin
sal := true;
end;
arh := arh + 1;
until (sal = true) or (arh > filesize(f) - 1);
if sal = true then
begin
y := 4;
clrscr;
pantalla_datos(' ');
gotoxy(16,y);write(datos.nombre);
y := y + 2;
gotoxy(16,y);write(datos.apell1);
y := y + 2;
gotoxy(16,y);write(datos.apell2);
y := y + 2;
gotoxy(16,y);write(datos.dni);
y := y + 2;
gotoxy(16,y);write(datos.calle);
y := y + 2;
gotoxy(16,y);write(datos.ciudad);
y := y + 2;
gotoxy(16,y);write(datos.provin);
y := y + 2;
gotoxy(16,y);write(datos.codipos);
y := y + 2;
gotoxy(16,y);write(datos.distrito);
y := y + 2;
GetDate(yy,mm,dd,dww);
dav := copy(datos.nacio,(length(datos.nacio) - 3),length(datos.nacio) + 1);
val(dav,fech,err);
gotoxy(16,y);write((yy - fech));
gotoxy(3,y + 3);write('PULSE ENTER');
repeat
tc := readkey;
until tc = #13;
end
else
begin
clrscr;
writeln;
writeln('El DNI No Esta En La Vase ');
writeln('--- [Pulse Enter] ---');
repeat
tc := readkey;
until tc = #13;
end;
end;
end;
end;

procedure panta_menu;
begin
gotoxy(1,1);write('*** MENU GENERAL ***');
gotoxy(4,3);write(' 1 Entrada Datos');
gotoxy(4,5);write(' 2 Comparar Datos');
gotoxy(4,7);write(' 3 Salir');
gotoxy(4,9);write('<< Elija Opcion >>');
end;


procedure menu;
var
erro, opcion : integer;
salir : boolean;
pul : char;
begin
panta_menu;
opcion := 1;
salir := false;
repeat
pul := readkey;
if pul in[#49..#51] then
begin
val(pul,opcion,erro);
case opcion of
1 : begin
pantalla_datos('e');
entrada_datos;
if salvar = true then
begin
assign(f,'c:\VaseDato.bsd');
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
rewrite(f);
seek(f,0);
write(f,datos);
close(f);
end
else
begin
seek(f,filesize(f));
write(f,datos);
close(f);
end;
end;
clrscr;
panta_menu;
end;
2 : begin
clrscr;
busca_datos;
clrscr;
panta_menu;
end;
3 : begin
clrscr;
salir := true;
end;
end;
end;
until (salir = true) or (pul = #27);
end;


begin
clrscr;
textcolor(15);
menu;
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