You are on page 1of 23

AO DE LA UNIN NACIONAL FRENTE A LA CRISIS EXTERNA

UNIVERSIDAD NACIONAL HERMILIO VALDIZAN

ESCUELA ACADMICO PROFESIONAL DE INGENIERIA DE SISTEMAS


PROYECTO DE FUNDAMENTOS DE PROGRAMACIN EN EL LENGUAGE DE PROGRAMACIN C++

NOMBRE DEL PROYECTO: Creacin de un programa ue !imu"a un reci#o e"ec$rnico%

ASIGNATURA& Fundamen$o! de programacin e in$roduccin a "a compu$acin%

DOCENTE& Ing% In'! (u!$o To"en$ino%

INTEGRANTES& Ca#rera Cipriano) Sad* La+ado ,e+a""o!) Ma"-o An$onio Ro!a! Luca!) Car"o! Sanc.e/ Parede!) E"+i!

AO& 01

2u3nuco4Per5

DEDICATORIA: Dedicamos este trabajo a la ingeniera Ins Jess Tolentino y a nuestros queridos padres por haberme guiado en todo momento por el camino del bien con sus consejos y confianza para seguir adelante en mis estudios en la universidad.

I T!"D#$$I" %

&l presente trabajo monogr'fico trata de la elaboraci(n de un programa en el lenguaje de programaci(n $))* que consiste en un recibo electr(nico* ha sido elaborado teniendo en cuanta a nuestra preocupaci(n como alumnos. +or esta raz(n es necesario que se d a conocer al pblico en general as, como tambin a docentes* estudiantes universitarios y especialmente a los de la facultad de ingenier,a industrial y de sistemas. &ste trabajo es de gran importancia para nosotros ya que a travs de este trabajo pudimos aprender y conocer temas interesantes durante el tiempo que estudiamos e investigamos en libros* en el internet y* no debemos dejar sin mencionar que tambin tuvimos que consultar a personas que conocen del tema. &l resultado de toda esta investigaci(n durante tres semanas fue muy productivo y nos sentimos gratos de poder presentar este trabajo cuyo nombre es -$reaci(n de un programa que simula un recibo electr(nico. del que estamos seguros que el que revise el presente trabajo* que es resultado de bastante esfuerzo* podr' notar que es bastante interesante* y pensamos que luego de estudiar este material quedar' motivado para poder crear sus propios programas* sobre todo* por el uso del comando /graphics.h0 con que se puedes hacer muchas aplicaciones elegantes ya que este comando nos permite poder crear un cuadrado * un circulo entre otros y no solo eso sino que adem's esta librer,a de $)) nos permite dar color al cuadrado o circulo que deseemos crear.

$on esto* queremos decirles que quedar' interesado en aprender a utilizar los comandos de esta librer,a.

+royecto de fundamentos de programaci(n

1. Objetivo
&ste trabajo tiene como objetivo principal* facilitar el trabajo en un tiempo menor.

2. Im o!t"#$i" &se trabajo que se ha elaborado en el lenguaje de programaci(n $)) tiene como importancia. %. Ve#t"j"& 1a ventaja de este proyecto est' en que fue dise2ado en el lenguaje de programaci(n Turbo $)). '. De&ve#t"j"& 1a desventaja de este programa es que solamente est' elaborado para el ingreso de limitado de datos. (. E) *i$"$i+# ,e* $+,i-o: (.1 .i#$*/,e0,o&.12 &ste es un archivo de encabezado que permite obtener la hora de la computadora. (.2 .i#$*/,e0&t,io.12 &s un archivo de encabezado de turbo $))3 que permite el uso de la funci(n printf. (.% .i#$*/,e0$o#io.12 &ste comando permite el uso de las funciones - clrscr45 y getch45. (.' .i#$*/,e0io&t!e"m.12 &ste comando permite para el uso de la funci(n -cout y cin.

(..( .i#$*/,e0-!" 1i$&.12 &ste comando permite la utilizaci(n de funciones* con la cuales se puede realizar gr'ficos y son% 6.6.7 &et$o*o!31(4%

&ste funci(n permite dar el color a una figura geomtrica* por ejemplo el rect'ngulo. (.(.2 !e$t"#-*e356567%86'984 &sta funci(n dibujar' un rect'ngulo sin rellenar su interior usando el color actual. 1a esquina superior izquierda del rect'ngulo est' definida por los argumentos izquierdos y superiores. &stos argumentos corresponden a los valores x e y de la esquina superior izquierda. 8imilarmente* los argumentos derecha e inferior definen la esquina inferior derecha del rect'ngulo. &l per,metro del rect'ngulo es dibujado usando el estilo y grosor de l,nea actuales. Donde 9 : ; hasta 9: <=> y donde y:; hasta y:?@>

6=)=<

6789)=<

6=):;9<

6789):;9<

(.(.% &et:i**&t;*e31694 &sta funci(n es usada para seleccionar una trama predefinida y un color de relleno. &l argumento trama espec,fica la trama predefinida* mientras que el argumento color especifica el color de relleno. Donde% 7 es el tipo de fondo y @ es el color del fondo

(.(.% b"!316167%<6'9<4 &sta funci(n dibujar' una barra rectangular y rellenada de dos dimensiones. 1a esquina superior izquierda de la barra rectangular est' definida por los argumentos izquierdos y superiores. &stos argumentos corresponden a los valores x e y de la esquina superior izquierda. 8imilarmente* los argumentos derecha e inferior definen la esquina inferior derecha de la

barra. 1a barra no tiene borde* pero es rellenada con la trama de relleno actual y el color de relleno como es establecido por la funci(n setlinestyle. Donde se describe% bar4 Ai*Bi*Af*Bf 5 B luego pinta el fondo del -bar. en A desde Ai* hasta el Af y en B desde Bi hasta Bf. (.(.' *i#e3(1<6''(671<6''(4 &sta funci(n es usada para conectar dos puntos con una l,nea recta. &l primer punto es especificado por los argumentos )1 e ;1. &l segundo punto es especificado por los argumentos )2 e ;2. 1a l,nea se dibuja usando el estilo de l,nea actual* el grosor* y el color actual. 1a posici(n del cursor gr'fico no es afectada por la funci(n line. Donde las coordenadas en A es desde Ai hasta Af y en B es desde Bi hasta Bf. &n este caso de describe de esta forma% line 4Ai* Bi * Af * Bf53

467C ?65

4<7C* ??65

(.(.( o/tte)t);31756256= NACIONAL UNIVERSIDAD >>HERMILIO VALDIZAN>>=4 &sta funci(n es usada para mostar una cadena de caracteres. &l argumento DcadenaEte9to define la cadena de te9to a ser mostrado. 1a cadena es mostrada en la posici(n descrita por los argumentos 9 e y usando el color actual y fuente* direcci(n* valores* y justificaciones de te9to. $uando se use la

fuente por defecto* cualquier te9to que se e9tiende fuera del 'rea gr'fica actual es truncado. Funque la funci(n outte9t9y est' dise2ada para te9to sin formato* te9to con formato puede ser mostrada a travs del uso de un bfer de caracteres y la funci(n sprintf. Donde 49* y5 es donde inicia y empieza la palabra* ejemplito% outte9t9y4A* B* -frase.53

(.(.7 &ette)t&t;*e311656(4? &sta funci(n es usada para especificar las caracter,sticas para la salida de te9to con fuente. &l argumento fuente espec,fica la fuente registrada a usar. 1a fuente ha de estar registrada para resultados predecibles3 es decir* usa registerbgifont antes de usar esta funci(n. &l argumento orientacion espec,fica la orientaci(n en que el te9to ha de ser mostrado. 1a orientaci(n por defecto es G"!IHEDI!. &l argumento tamEcaracter define el factor por el cual la fuente actual ser' multiplicada. #n valor distinto a ; para el argumento tamEcaracter puede ser usado con fuentes escalables o de bitmap. 8in embargo* un valor distinto a ; para el argumento tamEcaracter* el cual selecciona el tama2o del car'cter definido por el usuario usando la funci(n setusercharsize* solamente funciona con fuentes escalables. &l argumento tamEcaracter puede agrandar el tama2o de la fuente hasta 7; veces su tama2o normal. &9isten varios valores y constantes para las justificaciones. sette9tstyle4tama2o de letra* modo* tipo de letra53

<. IincludeJte9to.hJ &sta funci(n nos permite escribir palabras pero con ubicaciones en coordenadas 1os comandos son% <.7 gprintf9y47@*776*J!ecibo K %J53

os permite mostrar te9to en pantalla en la ubicaci(n 49* y5 y muestra la frase en esa ubicaci(n* ejemplito%

gprintf9y4A * B* -Lrase.5 <.M gscanf9y47;;*776*JNdJ*ODrecPtamQ.recibo5 +ermite el ingreso y se almacena la informaci(n en la 49* y5 que tiene funci(n parecida a la funcion - cin .. gscanf9y4A* B* ingreso de la variable53 para ingresar una variable de tipo char. @. Iinclude/stdio.h0 9.1 !i#t: &sta funci(n es equivalente a cprintf* con el argumento stdout interpuesto antes de los argumentos a printf. 9.2 &$"#: &sta funci(n permite el ingreso de datos a la memoria de la computadora y es similar al cin pero con la diferencia de que scanf usa especificadores de formato. C. IincludeJcargrec.hJ &ste archivo de encabezado permite que el programa cargue lentamente o r'pidamente * as, como tambin cierra el programa cuando se desea salir de ella al aplicar la opci(n 7 y continua si se aplica la opci(n ;.

Rebibo.cpp
#include<dos.h> //gettime #include<stdlib.h> //exit() #include<stdio.h> //printf #include<conio.h> #include<string.h> #include<graphics.h> #include"texto.h" #include"cargrec.h" #define tam 30 int i !"

#$%& 'fp" struct recibo( unsigned long int recibo)30*" char nombre)30*" char apellidop)30*" char apellidom)30*" char escuela)30*" int annio)30*" char destino)30*" int item" char descripcion+)30* descripcion,)30* descripcion3)30* descripcion-)30* de scripcion.)30*" double importe+ importe, importe3 importe- importe." double total/pagar" 0rec)tam*" //definiendo las funciones 1oid 1oid 1oid 1oid 1oid mostrar()" contrasena()" mensa!e/error()" icono/entrada()" salir()"

1oid presentacion/pantalla() ( /'//////////////////////////////////////////////////////////////////// ///////'/ //2345R6+ setcolor(+.)" rectangle(0 0 738 -98)" setfillst:le(+ 9)" bar(+ + 73; -9;)" //2345R6, setcolor(+.)" rectangle(8 ++ 7,; .-)" setcolor(;)" line(8 .- 7,; .-)" setcolor(;)" line(7,; ++ 7,; ..)" setcolor(;)" line(7,8 ++ 7,8 ..)" setfillst:le(+ 3)" bar(+0 +, 7,9 .3)" setcolor(0)" line(+0 .. 7,; ..)" //2345R63 setcolor(+.)" rectangle(8 .7 7,; +00)" setcolor(;)" line(8 +00 7,; +00)" setcolor(;)" line(7,; .7 7,; +0+)" setcolor(;)" line(7,8 .7 7,8 +0+)" setfillst:le(+ 9)" bar(+0 .9 7,9 88)" setcolor(;)" line(+0 +0+ 7,; +0+)"

//2345R6-<<<<<<<<=&>?<$>@R&A6 setcolor(+.)" rectangle(8 +0; 7,; ,-0)" setcolor(;)" rectangle(++ ++0 7,7 ,3;)" rectangle(+, +++ 7,- ,39)" setfillst:le(+ 0)" bar(+3 ++, 7,3 ,37)" //2345R6.<<<<<<<<=&>?<A4%$54 setcolor(;)" rectangle(+, ,.; 7,. -39)" rectangle(+3 ,.8 7,- -37)" setcolor(+.)" line(+, -39 7,. -39)" line(+3 -37 7,- -37)" line(7,. ,.; 7,. -39)" line(7,- ,.8 7,- -37)" setfillst:le(+ 0)" bar(+- ,70 7,3 -3.)" //2345R67<<<<<<<<<=&>?<$>#&R$6R rectangle(+, --0 7,- -9,)" setcolor(;)" line(+, -93 7,. -93)" line(+3 -9- 7,7 -9-)"

line(7,. --0 7,. -93)" line(7,7 --+ 7,7 -9-)" //2345R69<<<<<R&%6B setcolor(+.)"rectangle(.+; --. 7+; -7.)" rectangle(.+8 --7 7+9 -7-)" setcolor(;)" line(.+; --. 7+; --.)" line(.+; --7 7+9 --7)" line(.+; --. .+; -7.)" line(.+8 --. .+8 -7-)"

1oid texto/presentacion(1oid) ( setcolor(+.)" outtextx:(+70 ,0 "3>$=&RA$545 >42$6>4% CCD&RE$%$6 =4%5$F4>CC")" setcolor(+.)" outtextx:(,80 3; "D34>326")" setcolor(+)" outtextx:(;0 70 "6#$2$>4 5& ?&A6R&R$4")" setcolor(+)" outtextx:(;7 9. "R.3.2.>G,0+9,3;3.3+ ")" setcolor(+)" settextst:le(, 0 -)" outtextx:(+3 ;7 "la 3ni1ersidad >acional CCDermilio =aldiH nCC RecibeI ")" setcolor(+)" settextst:le(, 0 7)" outtextx:(--0 90 "R&2$J6 5& $>@R&A6A")" setcolor(;)" settextst:le(++ 0 .)" outtextx:(+. ,-. "&l importe Kue se describe a continuaciLnI")" setcolor(+.)" settextst:le(++ 0 .)" outtextx:(+- ,-7 "&l importe Kue se describe a continuaciLnI")" settextst:le(3 0 +)" outtextx:(-7. --0 "fechaI")" setcolor(;)" settextst:le(3 0 +)" outtextx:(-73 -38 "fechaI")" setcolor(0)" settextst:le(, 0 .)" outtextx:(+9 --7 "M5esea AalirN )+/0*I")" //cuadro de decicion setcolor(+.)" rectangle(+77 --9 ,00 -7,)" rectangle(+79 --; +88 -7+)" setcolor(;)" line(+77 --9 ,00 --9)" line(+77 --; +88 --;)" line(+77 --9 +77 -7,)" line(+79 --; +79 -7+)" bar(+7; --8 +8; -70)"

0 1oid imprime/recibo() ( setcolor(++)" rectangle(+. ,70 7,, -+;)" rectangle(+. ,70 7,, 3,3)" rectangle(+. 3,3 7,, 33.)" rectangle(.30 -+; 7,, -3-)" line(.30 3,3 .30 -+;)" setcolor(++)" outtextx:(+0, ,7+ "3>$=&RA$545 >42$6>4% CCD&RE$%$6 =4%5$F4>CC")" outtextx:(,00 ,90 "D34>326")" outtextx:(+.8 ,98 "6#$2$>4 5& ?&A6R&R$4")" settextst:le(++ 0 +)"outtextx:(-7. ,9+ "R&2$J6 5& $>@R&A6A")" settextst:le(, 0 -)" outtextx:(+7. ,80 "R.3.2.>G,0+9,3;3.3+ ")" outtextx:(-7. ,;, "Recibo >GI")" outtextx:(+8 300 "5el Ar.(Arta)I")" outtextx:(+8 3+0 "5e la &.4.O. I")" outtextx:(300 3+0 "4PoI")" outtextx:(380 3+0 "2on destino aI")" outtextx:(,+0 3,3 "5 & A 2 R $ O 2 $ 6 >")" outtextx:(..8 3,3 "$EO6R?&")" outtextx:(-9, -,+ "?otal s/.")" 0 1oid ingresar()

( for(int iQ0"i<tam"iRR) if(S'rec)i*.recibo) breaT" if(iQQtam) ( printf("%a lista esta llenaUn")" getch()" 0 setcolor(+0)" settextst:le(, 0 -)" setcolor(+0)" gprintfx:(+9 ++. "Recibo >G I")" setcolor(+-)" gscanfx:(87 ++. "Vd" W'rec)i*.recibo)" setcolor(+0)" gprintfx:(+9 +,7 ">ombres I")" setcolor(+-)" gscanfx:(87 +,7 "Vs" Wrec)i*.nombre)" setcolor(+0)" gprintfx:(,,0 +,7 "4OI")" setcolor(+-)" gscanfx:(,-0 +,7 "Vs" Wrec)i*.apellidop)" setcolor(+0)" gprintfx:(3+0 +,7 "4E I")" setcolor(+-)" gscanfx:(33- +,7 "Vs" Wrec)i*.apellidom)" setcolor(+0)" gprintfx:(+9 +39 "5e la &.4.O. I")"setcolor(+-)" gscanfx:(87 +39 "Vs" Wrec)i*.escuela)" setcolor(+0)" gprintfx:(3+0 +39 "4PoI")" setcolor(+-)" gscanfx:(33- +39 "Vd" Wrec)i*.annio)" setcolor(+0)" gprintfx:(38. +39 "5estino aI")" setcolor(+-)" gscanfx:(-., +39 "Vs" Wrec)i*.destino)" setcolor(+0)" gprintfx:(+. +-9 "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")" setcolor(+0)" gprintfx:(+70 +.; "5&A2R$O2$6>")" setcolor(+0)" gprintfx:(-.0 +.; "$EO6R?&")" setcolor(+0)" //gprintfx:(.9; +.; "$temI")" setcolor(+-)" gscanfx:(707 +.; "Vd" Wrec)i*.item)" setcolor(+0)" gprintfx:(+. +78 "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")" setcolor(+0)" gprintfx:(80 +;0 "'")" setcolor(+-)" gscanfx:(8; +;0 "Vs" Wrec)i*.descripcion+)" setcolor(+0)" gprintfx:(-.0 +;0 "s/.")"setcolor(+-)" gscanfx:(-90 +;0 "Vd" Wrec)i*.importe+)" setcolor(+0)" gprintfx:(80 +80 "'")" setcolor(+-)" gscanfx:(8; +80 "Vs" Wrec)i*.descripcion,)" setcolor(+0)" gprintfx:(-.0 +80 "s/.")"setcolor(+-)" gscanfx:(-90 +80 "Vd" Wrec)i*.importe,)" setcolor(+0)" gprintfx:(80 ,00 "'")" setcolor(+-)" gscanfx:(8; ,00 "Vs" Wrec)i*.descripcion3)" setcolor(+0)" gprintfx:(-.0 ,00 "s/.")"setcolor(+-)" gscanfx:(-90 ,00 "Vd" Wrec)i*.importe3)" setcolor(+0)" gprintfx:(80 ,+0 "'")" setcolor(+-)" gscanfx:(8; ,+0 "Vs" Wrec)i*.descripcion-)" setcolor(+0)" gprintfx:(-.0 ,+0 "s/.")"setcolor(+-)" gscanfx:(-90 ,+0 "Vd" Wrec)i*.importe-)" setcolor(+0)" gprintfx:(80 ,,0 "'")" setcolor(+-)" gscanfx:(8; ,,0 "Vs" Wrec)i*.descripcion.)" setcolor(+0)" gprintfx:(-.0 ,,0 "s/.")"setcolor(+-)" gscanfx:(-90 ,,0 "Vd" Wrec)i*.importe.)" if(fXrite(rec)i*.recibo siHeof(rec)i*.recibo) + fp)SQ+) //printf("&rror al intentar escribir en archi1o")" fXrite(rec)i*.nombre siHeof(rec)i*.nombre) + fp)" fXrite(rec)i*.apellidop siHeof(rec)i*.apellidop) + fp)" fXrite(rec)i*.apellidom siHeof(rec)i*.apellidom) + fp)" fXrite(rec)i*.apellidom siHeof(rec)i*.escuela) + fp)" fXrite(rec)i*.apellidom siHeof(rec)i*.annio) + fp)" fXrite(rec)i*.apellidom siHeof(rec)i*.destino) + fp)" fXrite(rec)i*.apellidom siHeof(rec)i*.item) + fp)" fXrite(rec)i*.apellidom siHeof(rec)i*.descripcion+) + fp)"

fXrite(rec)i*.apellidom fXrite(rec)i*.apellidom fXrite(rec)i*.apellidom fXrite(rec)i*.apellidom fXrite(rec)i*.apellidom fXrite(rec)i*.apellidom fXrite(rec)i*.apellidom fXrite(rec)i*.apellidom fXrite(rec)i*.apellidom fclose(fp)" mostrar()" 0//&>5 E&>3 6O2$6>&A

siHeof(rec)i*.importe+) + fp)" siHeof(rec)i*.descripcion,) + fp)" siHeof(rec)i*.importe,) + fp)" siHeof(rec)i*.descripcion3) + fp)" siHeof(rec)i*.importe3) + fp)" siHeof(rec)i*.descripcion-) + fp)" siHeof(rec)i*.importe-) + fp)" siHeof(rec)i*.descripcion.) + fp)" siHeof(rec)i*.importe.) + fp)"

1oid mostrar(1oid) ( imprime/recibo()" int contQ0" for(iQ0"i<tam"iRR) ( if('rec)i*.recibo) ( setcolor(+.)" gprintfx:(.,- ,;, "Vd" 'rec)i*.recibo)" gprintfx:(8; 300 "Vs Vs Vs" rec)i*.nombre rec)i*.apellidop rec)i*.apellidom)" gprintfx:(8; 3+0 "Vs" rec)i*.escuela)" gprintfx:(3,3 3+0 "Vd" 'rec)i*.annio)" gprintfx:(-9, 3+0 "Vs" rec)i*.destino)" gprintfx:(+00 3-0 "// Vs" rec)i*.descripcion+)" gprintfx:(.-0 3-0 "A/.Vd" rec)i*.importe+)" gprintfx:(+00 3.0 "// Vs" rec)i*.descripcion,)" gprintfx:(.-0 3.0 "A/.Vd" rec)i*.importe,)" gprintfx:(+00 370 "// Vs" rec)i*.descripcion3)" gprintfx:(.-0 370 "A/.Vd" rec)i*.importe3)" gprintfx:(+00 390 "// Vs" rec)i*.descripcion-)" gprintfx:(.-0 390 "A/.Vd" rec)i*.importe-)" gprintfx:(+00 3;0 "// Vs" rec)i*.descripcion.)" gprintfx:(.-0 3;0 "A/.Vd" rec)i*.importe.)" gprintfx:(.-0 -,+ "A/. Vd" rec)i*.importe+Rrec)i*.importe,Rrec)i*.importe3Rrec)i*.importe-Rrec)i *.importe.)" getch()" 0 0 //E&>A4B& 5& O6A$J%& A4%$54 salir()" 0//end mostrar() 1oid hora() ( struct time t" gettime(Wt)" gotox:(77 ,8)"printf("V,dIV0,dIV0,d.V0,d Un" t.ti/hour t.ti/min t.ti/sec t.ti/hund)" 0 1oid main() ( int gdri1er Q 5&?&2? gmode errorcode" initgraph(Wgdri1er Wgmode "cIUUtcUUbgi")" contrasena()" presentacion/pantalla()" hora()" texto/presentacion()" ingresar()" 0

1oid contrasena(1oid) ( char contra)9*" setcolor(;)" rectangle(+,0 +.0 .,0 ,90)" rectangle(+,+ +.+ .+8 ,78)" setcolor(+.)" line(+,0 +.0 .,0 +.0)" line(+,0 +.+ .+8 +.+)" line(+,0 +.0 +,0 ,90)" line(+,+ +.0 +,+ ,78)" setfillst:le(+ 9)" bar(+,, +., .+; ,7;)" setfillst:le(+ +)" bar(+,, +., .+; +7;)" setcolor(+.)"settextst:le(, 0 .)"outtextx:(+30 +.3 "Aistema de seguridad...")" setcolor(+)" settextst:le(+, 0 .)"outtextx:(,.; ,+0 "O4AAY6R5I")" icono/entrada()" //escritura/passXord setcolor(;)" rectangle(3,8 ,0. -.+ ,,+)" rectangle(330 ,07 -.0 ,,0)" setcolor(+.)" line(3,8 ,,+ -.+ ,,+)" line(330 ,,0 -.+ ,,0)" line(-.+ ,0. -.+ ,,+)" line(-.0 ,07 -.0 ,,+)" setfillst:le(+ 0)" bar(33+ ,09 --8 ,+8)" setcolor(+.)" settextst:le(+, 0 -)" gscanfx:(33. ,08 "Vs" Wcontra)" if (strcmp(contra "recibo")) ( outtextx:(,70 ,30 "2ontrasePa no 1alida")" mensa!e/error()" getch()" contrasena()" 0 else ( cargador/recibo()" 0

1oid salir() ( int n" setcolor(+,)" settextst:le(+, 0 -)" gscanfx:(+90 -.0 "Vd" Wn)" ( sXitch(n) case 0I clrscr()" presentacion/pantalla()" hora()" init/mouse()" texto/presentacion()" ingresar()" breaT" case +I salida/recibo()" clearde1ice()" breaT" defaultI salir()"

0 0

2argrec.h
1oid icono/entrada() ( //$26>6 setcolor(;)" rectangle(+73 +8, ,30 ,3.)" rectangle(+7- +83 ,,8 ,3-)" setcolor(+.)" line(+73 +8, +73 ,3.)" line(+7- +8, +7- ,3-)" line(+73 +8, ,30 +8,)" line(+73 +83 ,,8 +83)" setfillst:le(+ 3)" bar(+7. +8- ,,; ,33)" setcolor(+.)"settextst:le(+ 0 .)"outtextx:(+78 +;9 "AiA")" setcolor(+.)"settextst:le(+ 0 .)"outtextx:(+90 +;9 "AiA")" setcolor(0)"settextst:le(+ 0 .)"outtextx:(+90 +;7 "AiA")"

1oid mensa!e/error() ( //E&>A4B& &RR6R/@R4=& setcolor(0)" circle(-;3 ,+0 ,0)" setfillst:le(+ -)" floodfill(-;3 ,+0 0)" setcolor(0)" settextst:le(; 0 -)" outtextx:(-97 +;. "Z")" setcolor(0)" settextst:le(; 0 -)" outtextx:(-99 +;. "Z")" setcolor(+.)" settextst:le(; 0 -)" outtextx:(-9- +;- "Z")" setcolor(+.)" settextst:le(; 0 -)" outtextx:(-9. +;- "Z")" 0 1oid cargador/recibo() ( //marco/de/1entana setcolor(+.)" rectangle(0 0 738 -98)" setfillst:le(+ ;)" bar(+ + 73; -9;)" rectangle(. . 73- -9-)" setfillst:le(+ 9)" bar(7 7 733 -93)" rectangle(,0 ,0 7+- -.-)" rectangle(,+ ,+ 7+3 -.3)" rectangle(,, ,, 7+, -.,)" setcolor(;)" line(,0 ,0 7+- ,0)"line(,0 ,+ 7+3 ,+)" line(,0 ,, 7+, ,,)" line(,0 ,0 ,0 -.-)"line(,+ ,0 ,+ -.3)" line(,, ,0 ,, -.,)" //text/1entana setcolor(+.)" settextst:le(+0 0 .)" outtextx:(+30 ,. "Jien1enidos")" setcolor(;)" settextst:le(+0 0 .)" outtextx:(+,8 ,3 "Jien1enidos")" setcolor(.)" settextst:le(; 0 -)" Lnico")" setcolor(+)" settextst:le(, 0 .)" outtextx:(+8; 3.0 "2argando . . .")" setcolor(+)" settextst:le(+ 0 ,)" >acional CChermilio =aldiHanCC")" setcolor(.)" settextst:le(++ 0 -)" +.0")" //icono/computer setcolor(+.)" rectangle(+3; 3-; rectangle(+-0 3.0 rectangle(+.0 390 rectangle(+3. 39.

outtextx:(+.. ++0 "Recibo &lectr

outtextx:(++0 +70 "3ni1ersidad outtextx:(,70 ,70 "=ersiLn

+9, +90 +70 +9.

390)" 37;)" 39.)" 3;.)"

rectangle(+70 399 +90 3;0)" setfillst:le(+ 3)" bar(+-+ 3.+ +78 379)" line(+30 380 +;0 380)" line(+,8 380 +3. 3;-)"line(+;0 380 +9- 3;-)" //sombras setcolor(;)" line(+39 3-9 +9+ 3-9)" line(+39 3-9 +39 378)" line(+-8 39+ +-8 39-)" line(+.8 39+ +.8 39-)" rectangle(+3- 39- +9- 3;-)" rectangle(+.8 397 +78 398)" rectangle(+3; 397 +-3 398)" setfillst:le(+ R&5)" bar(+38 399 +-, 39;)" line(+,8 3;8 +9; 3;8)" line(+,8 3;8 +3- 3;-)"line(+9; 3;8 +9- 3;.)" //cuadro/cargador setcolor(+.)" rectangle(+8; 37; --+ 38,)" rectangle(+88 378 --0 38+)" setcolor(;)" line(+8; 37; --+ 37;)"line(+8; 378 --0 378)" line(+8; 37; +8; 38,)"line(+88 37; +88 38+)" //cargador/aHul setfillst:le(+ +)" for(int iQ,00"i<-,0"iRQ3) ( bar(i 390 iR,0 380)" dela:(+00)" 0 0 1oid salida/recibo() ( //marco/de/1entana setcolor(+.)" rectangle(0 0 738 -98)" setfillst:le(+ rectangle(. . 73- -9-)" setfillst:le(+ rectangle(,0 ,0 7+- -.-)" rectangle(,+ ,+ 7+3 -.3)" rectangle(,, ,, 7+, -.,)" setcolor(;)" line(,0 ,0 7+- ,0)"line(,0 ,+ 7+3 ,+)" line(,0 ,0 ,0 -.-)"line(,+ ,0 ,+ -.3)"

;)" 9)"

bar(+ + 73; -9;)" bar(7 7 733 -93)"

line(,0 ,, 7+, ,,)" line(,, ,0 ,, -.,)"

//text/1entana setcolor(+)" settextst:le(+ 0 ,)" outtextx:(++. ,. "3ni1ersidad >acional CChermilio =aldiHanCC")" setcolor(+.)" settextst:le(+ 0 +)" outtextx:(30 -; "&A23&%4 4245&E$26 OR6#&A$6>4% 5& $>@&>$&R$4 5& A$A?&E4A")" setcolor(;)" settextst:le(+ 0 +)" outtextx:(3+ -8 "&A23&%4 4245&E$26 OR6#&A$6>4% 5& $>@&>$&R$4 5& A$A?&E4A")" setcolor(+.)" settextst:le(+0 0 .)" outtextx:(+00 .9 "$>?&@R4>?&A")" setcolor(;)" settextst:le(+0 0 .)" outtextx:(88 .. "$>?&@R4>?&A")" setcolor(;)" rectangle(++0 +70 .,0 ,70)" setcolor(+.)" rectangle(+++ +7+ .+8 ,.8)" setcolor(;)" settextst:le(; 0 +)" outtextx:(+,0 +90 ")+* 24JR&R4 2$OR$4>6 Aad:")" setcolor(;)" settextst:le(; 0 +)" outtextx:(+,0 +8. "),* %4=456 F&=4%%6A EalTo 4ntonio")" setcolor(;)" settextst:le(; 0 +)" outtextx:(+,0 ,,0 ")3* R6A4A %324A 2arlos")" setcolor(+)" settextst:le(, 0 .)" outtextx:(+8; 3.0 "#inaliHando . . .")"

setcolor(.)" +.0")"

settextst:le(++ 0 -)"

outtextx:(,70 3,0 "=ersiLn

//icono/computer setcolor(+.)" rectangle(+3; 3-; +9, 390)" rectangle(+-0 3.0 +90 37;)" rectangle(+.0 390 +70 39.)" rectangle(+3. 39. +9. 3;.)" rectangle(+70 399 +90 3;0)" setfillst:le(+ 3)" bar(+-+ 3.+ +78 379)" line(+30 380 +;0 380)" line(+,8 380 +3. 3;-)"line(+;0 380 +9- 3;-)" //sombras setcolor(;)" line(+39 3-9 +9+ 3-9)" line(+39 3-9 +39 378)" line(+-8 39+ +-8 39-)" line(+.8 39+ +.8 39-)" rectangle(+3- 39- +9- 3;-)" rectangle(+.8 397 +78 398)" rectangle(+3; 397 +-3 398)" setfillst:le(+ R&5)" bar(+38 399 +-, 39;)" line(+,8 3;8 +9; 3;8)" line(+,8 3;8 +3- 3;-)"line(+9; 3;8 +9- 3;.)" //cuadro/cargador setcolor(+.)" rectangle(+8; 37; --+ 38,)" rectangle(+88 378 --0 38+)" setcolor(;)" line(+8; 37; --+ 37;)"line(+8; 378 --0 378)" line(+8; 37; +8; 38,)"line(+88 37; +88 38+)" //cargador/aHul setfillst:le(+ +)" for(int iQ,00"i<-,0"iRQ3) ( bar(i 390 iR,0 380)" dela:(+.0)" 0 exit(0)" 0

texto.h
#include <stdarg.h> const int J3#A$F& Q +-0" const char 2RQ+3" //2odigo de tecla &>?&R const char JAQ;" //2odigo de la tecla R&?R62&A6 const char &A2Q,9" //2odigo de la tecla &A2 int gprintf(char 'fmt ...)" // espera un numero 1ariable de argumentos int gprintfx:(int xloc int :loc char 'fmt ...)" int ggetche(1oid)" int gputch(int c)" char 'ggets(char 'buffer)" int gscanfx:(int locx int loc: char 'fmt ...)" int gscanf(char 'fmt ...)"

//3na funcion printf() para graficos imprimira el texto en la posicion xloc : :loc //no se afecta la posicion actual int gprintfx:(int xloc int :loc char 'fmt ... ) ( 1a/list argptr" //apuntador a la lista de argumentos char str)J3#A$F&*" //buffer donde se armara el texto int cnt" //resultado de la con1ersion de sprintf() struct fillsettingst:pe oldfill" //parametros actaules de relleno char userfillpattern);*" //patron de relleno de usuario 1a/start(argptr fmt)" ///iniacialiHa las funciones 1a/ cnt Q 1sprintf(str fmt argptr)" //escribe el texto en el buffer if(str)0*QQ>3%%) return (0)" //borra el espacio donde se imprimira el texto getfillsettings(Woldfill)" if(oldfill.pattern QQ 3A&R/#$%%) getfillpattern(userfillpattern)" setfillst:le(A6%$5/#$%% getbTcolor())" bar(xloc :loc xlocRtextXidth(str) :locRtextheight("D")'./-)" if (oldfill.patternQQ3A&R/#$%%) setfillpattern(userfillpattern oldfill.color)" else setfillst:le(oldfill.pattern oldfill.color)" outtextx:(xloc :loc str)" //escribe el texto en la pantalla 1a/end(argptr)" //termina las funciones 1a/ return(cnt)" //regresa el contador de con1ersion

//3na funciLn printf() para elementos gr ficos. 4ctualiHar la posiciLn actual. //4sume !ustificaciLn a la iHKuierda %&#?/?&Z? : D6R$F/5$r int gprintf( char 'fmt ... ) ( 1a/list argptr" //apuntador a la lista de argumentos char str)J3#A$F&*" //Juffer donde se armara el texto int cnt" //Resultado de la con1ersion de sprintf() struct fillsettingst:pe oldfill" //Oarametros actuales de relleno char userfillpattern);*" //Oatron de relleno del usuario int xloc :loc" //Oosicion actual 1a/start(argptr fmt)" //$nicialiHa la fucnion 1a/ cntQ1sprintf(str fmt argptr)" //&scribe le texto en el buffer //Jorra el espacio donde se imprimrira el texto xlocQgetx()" :locQget:()" getfillsettings(Woldfill)" if (oldfill.pattern QQ 3A&R/#$%%) getfillpattern(userfillpattern)" setfillst:le(A6%$5/#$%% getbTcolor())" bar(xloc :loc xlocRtextXidth(str) :locRtextheight("D")R./-)" if (oldfill.pattern QQ 3A&R/#$%%) setfillpattern(userfillpattern oldfill.color)" else setfillst:le(oldfill.pattern oldfill.color)" outtext(str)" //&scribe el texto en la pantalla 1a/end(argptr)" //?ermina las funciones 1a/ return(cnt)" //Regresa el contador de con1ersion

//#uncion getche() para elementos graficos int ggetche(1oid)

char ch" chQgetch()" gprintf("Vc" ch)" return(ch)" 0 //#uncion putch() para elementos graficos int gputch(int c) ( char buffer),*" sprintf(buffer "Vc" c)" gprintf(buffer)" return(c)" 0 //%ee el caracter sin escribirlo en la pantalla //&scribe el caracter

// 3na rutina para entrada de textos en modo grafico. Regresa el texto tecleado // &scribe en pantalla el texto mientras se esta tecleando. // Aoporta el caracter de retroceso. char 'ggets(char 'buffer) ( int currloc maxchars oldcolor" struct 1ieXportt:pe 1ieX" char ch charbuff)3*" buffer)0* Q CU0C" currloc Q 0" get1ieXsettings(W1ieX)" maxchars Q (1ieX.right <getx())/ textXidth("E") < +" if (maxchars <Q 0) return (>3%%)" gprintfx:(getx() get:() "/")" Xhile((chQgetch()) SQ 2R ) ( //tecla enter if (chQQJA) ( //tecla retroceso if (currloc > 0 ) ( currloc <<" if (currloc <Q maxchars) ( oldcolorQ getcolor()" setcolor(getbTcolor())" sprintf(charbuff "Vc" buffer)currloc*)" gprintfx:(getx()< textXidth(charbuff) get:() "Vc/" buffer)currloc*)" setcolor(oldcolor)" mo1eto(getx()<textXidth(charbuff) get:())" 0 0 0 else ( if (currloc < maxchars) ( oldcolor Q getcolor()" setcolor(getbTcolor())" gprintfx:(getx() get:() "/")" setcolor(oldcolor)" buffer)currloc* Q ch" gputch(ch)" currlocRR" 0 else putch(0x09)" 0 if (currloc < maxchars) gprintfx:(getx() get:() "/")" 0 if (currloc <Q maxchars ) (

oldcolor Q getcolor()" setcolor(getbTcolor())" gprintfx:(getx() get:() setcolor(oldcolor)" 0 buffer)currloc* Q CU0C" return(buffer)"

"/")"

// 3na funcion scanf() para elementos graficos. 4ctualiHa la posicion actual // 4sume alineacion iHKuierda %&#?/?&Z? : D6R$F/5$R int gscanf(char 'fmt ... ) ( 1a/list argptr" //apuntador a la lista de argumentos char str)J3#A$F&*" //Juffer para recibir la entrada de texto int cnt" //>umero de campos con1ertidos 1a/start(argptr fmt)" //$nicialiHa las funciones 1a/ ggets(str)" //%ee el texto tecleado cnt Q 1sscanf(str fmt argptr)" //2on1ierte el texto leido de acuerdo //con el formato 1a/end(argptr)" // ?ermina las fucniones 1a/ return (cnt)" //Regresa el numero de con1ersiones //efectuadas correctamente 0 //3na funcion scanf() para elemntos graficos. >o afecta la posicion actual // : escribe lo Kue se 1a tecleando en la posicion (xloc :loc). // 4sume alineacion iHKuierda %&#?/?&Z? : D6R$F/5$R int gscanfx:(int xloc int :loc char 'fmt ... ) ( 1a/list argptr" //4puntador a la lista de argumentos char str)J3#A$F&*" //Juffer para recibir la entrada de texto int cnt" // >umero de campos con1ertidos int oldx old:" //OosiciLn actual original oldxQxloc" //@uarda la posicion actual para Kue despues old:Q:loc" //pueda ser restaurada mo1eto(xloc :loc)" //Ae mue1e a la posicon actual 1a/start(argptr fmt)" //inicialiHa las funciones 1a/ ggets(str)" // %ee lo tecleado por el usuario cntQ1sscanf(str fmt argptr)" //2on1ierte el texto leido 1a/end(argptr)" //?ermina las funciones 1ar/ mo1eto(oldx old:)" //Restaura la posicion actual return(cnt)" //Regresa el contador de con1ersiones 0

A@RADECIMIENTO% Fgradecemos a nuestro $risto nuestro salvador. F nuestros padres por su apoyo constante y comprensi(n en la realizaci(n de este trabajo.

RIR1I"S!FLIF Turbo $)) -S!FLGI$8.G.* $GF!1&8 1. $. !"JF8. Flgoritmos y su codificaci(n en $)) Tomo I y II* $esar 1iza Tvila.

UUU.conclase.net

http%VVUUU.conclase.netVcVRorlandVlibreria.phpWlib:graphics http%VVUUU.conclase.netVcVfuentes.phpWtema:? http%VVUUU.conclase.netVcVlibreriasVlibreria.phpWlib:stdio http%VVUUU.conclase.netVcVlibreriasVlibreria.phpWlib:string http%VVUUU.conclase.netVcVlibreriasVlibreria.phpWlib:stdlib http%VVUUU.conclase.netVcVlibreriasVlibreria.phpWlib:time

INDICE: $aratulaXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX7 DedicatoriaXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXM Introducci(nXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX= +royecto de fundamentos de programaci(nXXXXXXXXXXXXXXX? Yobjetivos Yimportancia Yventajas Ydesventajas &9plicaci(n del c(digoXXXXXXXXXXXXXXXXXXXXXXXXXX? recibo.cppXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX.> cargrec.hXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX7? te9to.hXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX.7@ FgradecimientoXXXXXXXXXXXXXXXXXXXXXXX XXXXXX.M; Ribliograf,aXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX..M7 Fne9osXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXMM ZndiceXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX..M?

You might also like