Fundamentos de Programacion. (Proyecto) Docx
Fundamentos de Programacion. (Proyecto) Docx
Fundamentos de Programacion. (Proyecto) Docx
PROYECTO FINAL
TERCER PARCIAL
INTEGRANTES
CHUGA JHONNY
BRAVO JONATHAN
USHIA ALEX
OBJETIVOS
OBJETIVO GENERAL
OBJETIVO ESPECFICO
las palabras reservadas del lenguaje, puesto que estas palabras junto
con la sintaxis conforman al lenguaje Borland C++.
ESTRUCTURA DE UN PROGRAMA
Todo programa en Borland C++ deber especificar las bibliotecas que se
usarn en el programa. Para eso se seguir la sintaxis:
#include<NombreDeLaBiblioteca>
Todo programa en Borland C++ tiene una funcin principal llamada
main. Para eso se seguir la siguiente estructura: tipoDeDato
main(tipoDeDato){ }
LIBRERIAS
Una librera es un conjunto de recursos (algoritmos) prefabricados, que
pueden ser utilizados por el programador para realizar determinadas
operaciones.
Dispone de utilidades o funciones para entrada o salida implementadas
en el propio lenguaje, de modo que estas y otras muchas, como manejo
de cadenas de caracteres (strings), manejo de ficheros, funciones
matemticas Etc.
FUNCIONES
Una funcin es un conjunto de lneas de cdigo que realizan una tarea
especfica y puede retornar un valor. Las funciones pueden tomar
parmetros que modifiquen su funcionamiento. Las funciones son
utilizadas para descomponer grandes problemas en tareas simples y
para implementar operaciones que son comnmente utilizadas durante
un programa y de esta manera reducir la cantidad de cdigo. Cuando
una funcin es invocada se le pasa el control a la misma, una vez que
esta finaliz con su tarea el control es devuelto al punto desde el cual la
funcin fue llamada.
VARIABLE PUNTERO
Es una variable qu almacena una direccin dememoria deotra variable
siendo esta direccin la posicin interna de la variable en la memoria
RAM del computador. Es decir, una variable apuntando a otra.
FUNCIONES
gotoxy(int x, int y)
Mueve el cursos a la posicion indicada, si se ingresa coordenadas no
validas, esta funcion es ignorada
textcolor(int newcolor)
Esta funcion da color al texto, el parametro ingresado puede ser un
numero, los cuales se encuentran tabulados o se puede escribir el
nombre del color en ingles.
cprintf
Esta funcion sirve para imprimir texto en pantalla, con la diferencia que
acepta una serie de argumentos.
delay
randomize
Con la llamada a esta funcin, el programa devuelve nmeros enteros
generados al azar.
tolower
Esta funcin convierte un tipo de dato a minscula, se basa en la tabla
ASCII
Para la aclaracin de cualquier duda acerca de las bibliotecas y sus
correspondientes funciones, Borland C++ cuenta con una opcin que
nos permite visualizar la forma correcta en que se debe utilizar
determinada funcin.
Para ellos realizamos en siguiente Proceso:
inquietud
menu();
guardar_c();
buscar_c();
modificar_c();
void
void
void
char
char
void
void
void
eliminar_c();
usuario(void);
imprimir(void);
verificar(void);
matriz[3][3];
juego(void);
maquina(void);
creditos();
//VARIABLES GLOBALES
int i,h,j;
char cod[5],telefono[15],pago_form[50],nom_con[100];
char nomb[30],ape[30],ced[9];
char var = 'x';
char pass[100];
void main()
// AQUI COMIENZA EL PROGRAMA
{
clrscr();
menu();
}
/*FUNCION MENU PRINCIPAL*/
void menu(){
char opcion,op;
int bandera,num;
do{
clrscr();
gotoxy(19,2); printf("
");
");
gotoxy(9,17);printf("\n\tINGRESE PASS?
");
do{
buscar_c();
fflush(stdin);
scanf("%s",&pass);
if( strcmp(pass,nom_con)==0)
break;
gotoxy(9,19);printf("PASS MAL INGRESADO!!!!");
else {
getch();
menu();
}
}while(TRUE);
//SUBMENU
do{
clrscr();
gotoxy(23,2);puts("
");
gotoxy(23,3);puts(" SECCION
DE JUEGOS ");
gotoxy(17,8);puts("-> A.EN
RAYA");
gotoxy(43,8);puts("->
B.BINGO");
gotoxy(17,11);puts("->
C.AHORCADO");
gotoxy(43,11);printf("R.REGRESAR");
do{
op=toupper(getch());
if(!strchr("ABCR",op))
putchar('\a');
else
break;
}while(TRUE);
bandera=TRUE;
switch(op){
case 'A'://EN RAYA
{clrscr();
char
hecho;
gotoxy(30,2);
printf("Tres en raya");
gotoxy(29,4);
printf("Jugaremos con X
\n\n");
' ';
imprimir();
usuario();
clrscr();
hecho=verificar(); /*Ver si gana*/
if(hecho!=' ') break; /*Ganador*/
maquina();
hecho =
juego();
do{
hecho=verificar(); /*Ganador*/}
while(hecho==' ');
if(hecho=='X') {
for(int q=1;q<16;q++){
textcolor(q);
clrscr();
gotoxy(18,12); cprintf("GANASTE"); delay(200); }
}
else printf("\n\t\t\tUSTED PERDIO!!\n");
imprimir();
//Fin
}break;
B[4],I[4],N[4],G[4],O[4],a,r,q,y,m,w,p,e,s,t,re,ve;
char u;
{ clrscr();
a=0; m=0; p=0; w=0;
do{
q=0;
clrscr();
randomize();
e=7;
re=0;
for(y=5;y<=20;y++){
while (a<=4) {
r=random(100);
((r>0)&&(r<=20)){
B[a]=r;
gotoxy(18,e);cout<<r;
re=r;
a=a++;
if
e=e+3; }}}
randomize();
e=4;
for(y=5;y<=20;y++){
while (q<=4)
r=random(100);
if ((r>20)&&(r<=40)){
I[q]=r;
e=e+3;
q++;
gotoxy(29,e);cout<<r;}}}
randomize();
e=4;
for(y=5;y<=20;y++)
while (m<=4)
r=random(100);
if ((r>40)&&(r<=60)){
N[m]=r;
e=e+3;
m++;
gotoxy(40,e);cout<<r; }}}
randomize();
e=4;
for(y=5;y<=20;y++){
while (p<=4){
r=random(100);
if ((r>60)&&(r<=80)){
{
{
G[p]=r;
e=e+3;
p++;
gotoxy(51,e);cout<<r;}}}
randomize();
e=4;
for(y=5;y<=20;y++){
while (w<=4){
r=random(100);
if ((r>80)&&(r<=100)){
O[w]=r;
e=e+3;
w++;
gotoxy(62,e);cout<<r;
}}gotoxy(37,13); cout<<"
";
int jo;
for(jo=3; jo<=3; jo++){
gotoxy(13,jo);printf("");
gotoxy(68,jo);printf(""); }
gotoxy(13,2);printf("");
gotoxy(13,4);printf("");
gotoxy(68,2);printf("");
gotoxy(68,4);printf("");
for(int x=13; x<=68; x++){
O";}
gotoxy(x,21);printf("");
gotoxy(x,5);printf("");}
for(int x1=13; x1<=68; x1++){
gotoxy(x1,17);printf("");
gotoxy(x1,8);printf("");}
for(int x2=13; x2<=68; x2++){
gotoxy(x2,14);printf("");
gotoxy(x2,11);printf("");}
for(int y2=6;y2<=20; y2++){
gotoxy(35,y2);printf("");
gotoxy(56,y2);printf("");}
for(int y=6;y<=20; y++){
gotoxy(13,y);printf("");
gotoxy(68,y);printf("");}
for(int y1=6;y1<=20; y1++){
gotoxy(25,y1);printf("");
gotoxy(45,y1);printf("");}
"); gotoxy(13,21);printf("");
"); gotoxy(35,5);printf("");
"); gotoxy(25,21);printf("");
");gotoxy(56,21);printf("");
S/N: ");cin>>u;
gotoxy(13,5);printf(""); gotoxy(68,5);printf("
gotoxy(68,21);printf("");gotoxy(25,5);printf("
gotoxy(45,5);printf(""); gotoxy(56,5);printf("
gotoxy(35,21);printf("");gotoxy(45,21);printf("
gotoxy(25,22);printf("desea crear otra tabla
}while(toupper(u)=='S');
}
if(toupper(u)=='N')
break;
case 'C':
{char
palabra[20],letra,auxcad[20],c[20];
termino=0,contador=0,flat,error = 0,s,k,r,i,j;
int
clrscr();
gotoxy(25,1);printf("EL AHORCADO");
gotoxy(6,6);printf("Ingrese palabra:
");
strcpy(auxcad,palabra);
strlen(palabra);s++){
Pasa de a minuscula
tolower(palabra[s]);
tolower(auxcad[s]);}
strlen(palabra);k++){
auxcad[k]){
auxcad[k]; }}
strlen(palabra);r++){
printf("%c",c[r]);}
Ingrese letra:");
scanf("%c",&letra);
tolower(letra);
i < strlen(palabra); i++){
== palabra[i]){
= '0';
fflush(stdin);
gets(palabra);
clrscr();
for( s = 0; s <
c[s] = '-';
//
palabra[s] =
auxcad[s] =
do{ clrscr();
printf("[");
flat = 0;
for(k = 0; k <
if(letra ==
c[k] =
for(r = 0; r <
printf("]
fflush(stdin);
letra =
for(i = 0;
if(letra
palabra[i]
flat = 1;
contador+
+;}}
if(flat ==
0){
error +=
1;
printf("Error numero %d de 6\n",error);
== 6)break;
if(error
for(j = 0;
termino +=
if(termino == strlen(palabra))
for(int
q=1;q<16;q++){
textcolor(q);
clrscr();
gotoxy(18,12);
printf(" [%s] palabra correcta ",auxcad);
cprintf("GANASTE"); delay(200); }
else
case 'R':
bandera=FALSE;
puts("\n");
break;
}//swich
}while(bandera);
break;
case'B':do{ clrscr();
");
DE REGISTRO");
");
REGISTRAR CLIENTE");
CLIENTE");
MODIFICAR CLIENTE");
ELIMINAR DE REGISTRO");
REGRESAR");
opcion: ");
op=toupper(getch());
strchr("ABCDR",op))
gotoxy(23,3);puts("
gotoxy(27,4); printf("PROCESO
gotoxy(23,5);puts("
gotoxy(15,8); printf("Agotoxy(41,8); printf("B-BUSCAR
gotoxy(15,11); printf("Cgotoxy(41,11); printf("Dgotoxy(15,15); printf("Rgotoxy(15,17); printf("Ingrese
do{
if(!
putchar('\a');
else
break;
}while(TRUE);
bandera=TRUE;
switch(op){
break;
break;
exit(0);}
}while(TRUE);
clrscr();
gotoxy(20,5);
gotoxy(10,10);
scanf("%s",nomb);
gotoxy(10,13);
scanf("%s",ape);
gotoxy(10,16);
scanf("%s",ced);
gotoxy(10,18);
printf("JUGADOR");
printf("Nombre o <Alias>: ");
printf("Apellido: ");
printf("Cedula: ");
printf("Telefono: ");
scanf("%s",telefono);
gotoxy(10,20);
printf("Forma de pago: ");
scanf("%s",pago_form);
gotoxy(10,22);
printf("Contrase: ");
scanf("%s",nom_con);
fprintf(pt,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);
}
fclose(pt);
clrscr();
gotoxy(15,19);printf("DATOS GUARDADOS");
getch();
");
clrscr();
gotoxy(20,5); printf("Jugador");
gotoxy(6,10); printf("Ingrese cedula para buscar en registro:
scanf("%s",cedt);
aux=0;
fscanf(pt,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
%s",strupr(nomb));
%s",strupr(ape));
%s",telefono);
%s",pago_form);
while(!feof(pt))
{
if(strcmp(ced,cedt)==0)
{
clrscr();
gotoxy(20,5); printf("Jugador");
gotoxy(15,10); printf("Cliente Registrado:");
gotoxy(9,13); printf("Nombre:\t
gotoxy(9,14);
printf("Apellido:\t
gotoxy(9,15);
gotoxy(9,16);
printf("Cedula:\t
%s",ced);
printf("Telefono:\t
gotoxy(9,17);
printf("Tipo de pago:
aux=1;
break;
else
{
fscanf(pt,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
}
}
fscanf(pt,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
}
REGISTRADO!!!...");
if(aux==0)
{
clrscr();
gotoxy(12,3);printf("POSIBLEMENTE NO SE ENCUENTRA
}
getch();
fclose(pt);
return;
APELLIDO");
gotoxy(12,15);
gotoxy(12,16);
gotoxy(14,18);
gotoxy(16,20);
gotoxy(16,21);
gotoxy(16,22);
gotoxy(16,23);
gotoxy(16,24);
gotoxy(16,25);
gotoxy(19,27);
");
op4=getche();
if(op4!='n'&&op4!='a'&&op4!='c'&&op4!='t')
{
getch();
menu();
}
{
switch(op4)
case'n':
{
clrscr();
gotoxy(20,5); printf("Jugador");
printf("\n\n\n
%s
%s
%s",nomb,ape,ced);
printf("\n Ingrese Nuevo Nombre para el Jugado: ");
scanf("%s",nomb);
printf("\n\n\n\n
Nuevos Datos Son:");
printf("\n\n\n
%s
%s
%s",strupr(nomb),strupr(ape),ced);
fprintf(temp,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);
ax1=1;
printf("\n\n NOMBRE EDITADO");
getch();
break;
}
case'a':
{
clrscr();
gotoxy(20,5); printf("Jugador");
printf("\n\n\n
%s
%s
%s",nomb,ape,ced);
printf("\n Ingrese Nuevo Apellido para el Cliente: ");
scanf("%s",ape);
printf("\n\n\n\n
Nuevos Datos Son:");
printf("\n\n\n
%s
%s
%s",strupr(nomb),strupr(ape),ced);
fprintf(temp,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);
ax1=1;
printf("\n\n APELLIDO EDITADO");
getch();
break;
}
case'c':
{
clrscr();
gotoxy(20,5); printf("Jugador");
printf("\n\n\n
%s
%s
%s",nomb,ape,ced);
printf("\n Ingrese Nueva CEDULA: ");
scanf("%s",ced);
printf("\n\n\n\n
Nuevos Datos Son:");
printf("\n\n\n
%s
%s
%s",nomb,ape,ced);
fprintf(temp,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);
ax1=1;
printf("\n\n CEDULA EDITADA");
getch();
break;
}
case't':
{
}
}
else
clrscr();
gotoxy(20,5); printf("Jugador");
printf("\n\n\n
%s
%s
%s",nomb,ape,ced);
printf("\n\n\nModificara todo el campo...");
guardar_c();
ax1=1;
printf("\n\n EDITADO TODO EL CAMPO");
getch();
break;
fprintf(temp,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);}
fscanf(pt1,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
}
if(ax1==0)
{ clrscr();
printf("\n NO EXISTE NINGUN");
printf("\n REGISTRO CON ESE NUMERO DE CEDULA");
getch();
}
fclose(pt1);
fclose(temp);
remove("clientes.dat");
rename("temporal.dat","clientes.dat");
return;
void eliminar_c()
{
FILE *pt1,*temp;
char cedt[20],con[20];
int ax1=0;
temp=fopen("temporal.dat","w");
if(!(pt1=fopen("clientes.dat","r")))
{
clrscr();
printf(" Imposible Abrir archivo..");
getch();
exit(0);
}
else
{
clrscr();
gotoxy(20,5); printf("Jugador");
gotoxy(10,10); printf("ingrese cedula para buscar en Registro: ");
scanf("%s",cedt);
gotoxy(10,12); printf("ingrese contase para para proceder a
eliminar: ");
scanf("%s",con);
fscanf(pt1,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
ax1=0;
while(!feof(pt1))
{
if(strcmp(ced,cedt)==0&&strcmp(nom_con,con)==0)
{
clrscr();
gotoxy(20,5); printf("Jugador");
gotoxy(5,9); printf("CLIENTE ENCONTRADO");
gotoxy(14,11); printf("Datos del Cliente:");
gotoxy(16,12); printf("Nombre: %s",strupr(nomb));
gotoxy(16,13); printf("Apellido: %s",strupr(ape));
gotoxy(16,14); printf("Cedula: %s",ced);
gotoxy(16,15); printf("Telefono: %s",telefono);
gotoxy(16,16); printf("Tipo de pago: %s",pago_form);
gotoxy(16,17); printf("Contrase: %s",nom_con);
gotoxy(16,19); printf("ELIMINADO DEL REGISTRO");
gotoxy(16,20); printf("PULSE CUALQUIER TECLA PARA VOLVER AL MENU");
ax1=1;
getch();
}
else
fprintf(temp,"%s %s %s %s %s
%s\n",nomb,ape,ced,telefono,pago_form,nom_con);}
fscanf(pt1,"%s %s %s %s %s
%s",nomb,ape,ced,telefono,pago_form,nom_con);
}
if(ax1==0)
{ clrscr();
printf("\n NO EXISTE NINGUN REGISTRO");
printf("\n CON ESOS DATOS INGRESADOS");
getch();
}
}
fclose(pt1);
fclose(temp);
remove("clientes.dat");
rename("temporal.dat","clientes.dat");
return;
}
//FUNCIONES PARA 3 EN RAYA
/*Inicializar la matriz*/
void juego(void){
int i, j;
for(i=0; i<3; i++)
{
}
}
nuevo.\n\n");
//Fin
}
/*Obtener un movimiento de la computadora*/
void maquina(void)
{
int i, j;
{
}
if(i*j==9)
{
printf ("EMPATE.\n");
exit(0);
}
else matriz[i] [j] = 'O';
}
//Fin
int t;
for(t=0; t<3; t++)
{
}
printf("\n");
if(matriz[0][i]==matriz[1][i]
/*verificar diagonales*/
if(matriz[0][0]==matriz[1][1]
if(matriz[0][2]==matriz[1][1]
return ' ';
}
void creditos()
{ // efecto letra por letra y cambio de color en creditos
int i;
char nombre[1000]="INTEGRANTES:BRAVO JONATHAN
\nCHUGA
JHONNY
\nUSHINA ALEX";
textmode(C40);
textcolor(CYAN);
gotoxy(5,18);
cprintf("DOCENTE: Ing. MENESES");
gotoxy(2,2);
textcolor(BROWN);
cprintf("]]ESUELA POLITECNICA DEL EJERCITO[[\n\n
\t\t\t\tFUNDAMENTOS DE
PROGRAMACION\t\t\t");
gotoxy(2,10);
textcolor(GREEN);
delay(750);
for(i=0;i<=strlen(nombre);i++)
{
cprintf("%c",nombre[i]);
delay(100);
}
delay(2000);
return;
}
CONCLUSIONES
Se logr una comprensin profunda de lo que es realizar
programas utilizando el lenguaje de programacin C++.
Se aplic todos los conocimientos obtenidos en el curso de
FUNDAMENTOS DE PROGRAMACION
La utilizacin de funciones facilita el proceso de programacin y
nos ahorra lneas de cdigo.
Si se escribe el cdigo de forma correcta y ordenada no se
presentara ningn tipo de errores al compilar el mismo.
RECOMENDACIONES.
Declarar todas las variables q se van a utilizar siempre teniendo en
cuenta de que tipo son para que al momento de compilar no nos
produzca error.
Recordar siempre cerrar todas las llaves, parntesis o corchetes
ocupadas al escribir el cdigo.