Programas en c++

100
http://www.elrincondelc.com/nuevorincon/index.php?pag=codigos http://www.lawebdelprogramador.com/codigo/ SEMAFORO #include "stdafx.h" #include <stdio.h> #include <time.h> //funcion int cambiarColor( int ); main( ) { int tiempoSimulacion, tiempo; int semaforo1 = 0, semaforo2 = 1; bool entraPrimerVez = true; time_t comienzo, actual; //Se introduce el tiempo durante el cual se va a ejecutar la simulacion //Y tambien el tiempo en el que queremos que cambie el color del semaforo printf( "Introduzca el tiempo en segundos en el que se va a realizar la simulacionn" ); scanf( "%d", &tiempoSimulacion ); printf( "Introduzca el tiempo en segundos del cambio del color de los semaforosn" ); scanf( "%d", &tiempo ); comienzo = time( NULL ); do { actual = time( NULL ); //Entra al cuerpo del if cada que haya transcurrido el tiempo de cambio ingresadopor el usuario if( int( difftime(actual, comienzo) ) % tiempo == 0 && entraPrimerVez ) { entraPrimerVez = false; semaforo1 = cambiarColor( semaforo1 ); semaforo2 = cambiarColor( semaforo2 ); if( semaforo1 == 1 ) {

Transcript of Programas en c++

Page 1: Programas en c++

http://www.elrincondelc.com/nuevorincon/index.php?pag=codigoshttp://www.lawebdelprogramador.com/codigo/

SEMAFORO

#include "stdafx.h"#include <stdio.h>#include <time.h>//funcionint cambiarColor( int );

main( ){

int tiempoSimulacion, tiempo;

int semaforo1 = 0, semaforo2 = 1;bool entraPrimerVez = true;time_t comienzo, actual;

//Se introduce el tiempo durante el cual se va a ejecutar la simulacion//Y tambien el tiempo en el que queremos que cambie el color del semaforo

printf( "Introduzca el tiempo en segundos en el que se va a realizar la simulacionn" );

scanf( "%d", &tiempoSimulacion );printf( "Introduzca el tiempo en segundos del cambio del color de

los semaforosn" );scanf( "%d", &tiempo );

comienzo = time( NULL );

do{

actual = time( NULL );

//Entra al cuerpo del if cada que haya transcurrido el tiempo de cambio ingresadopor el usuario

if( int( difftime(actual, comienzo) ) % tiempo == 0 && entraPrimerVez )

{entraPrimerVez = false;semaforo1 = cambiarColor( semaforo1 );semaforo2 = cambiarColor( semaforo2 );

if( semaforo1 == 1 ){

printf( "El semaforo 1 esta en Verde y el semaforo 2 en Rojonn" );

}else{

printf( "El semaforo 1 esta en Rojo y el semaforo 2 en Verdenn" );

}}

Page 2: Programas en c++

if( int( difftime(actual, comienzo) ) % tiempo > 0 ){

entraPrimerVez = true;}

}while( int( difftime(actual, comienzo) ) < tiempoSimulacion );

return 0;}

int cambiarColor( int semaforo ){

//Si el valor del semaforo_1 es 1 es porque este semaforo este en verde, lo que indica que este pasa a rojo

//y el semaforo_2 pasaria a verde, de lo contrario se invertiria el color segun lo explicado anteriormente

if( semaforo == 1 ){

semaforo = 0;}else{

semaforo = 1;}return semaforo;

}

ADIVINA EL NUMERO

#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <time.h>main(){     START:      srand(time(NULL));      system("color f1");      system("cls");      int n_winner, n, n_wmax, intentos, inte=0, lvl, frandom, i;            printf("tJuego "Acierta al numero"nn");      printf("Ingresa el numero del nivel de dificultad: nn1.-Facil(0-10)  tt 4 Intentosn2.-Normal(0-100)  tt 7 Intentosn3.-Dificil(0-1000)  tt13 Intentosn4.-Muy dificil(0-10000)  t17 Intentosn=");      scanf("%i", &lvl);      if(lvl==1)      {      n_wmax=10;      intentos=4;      }      else if(lvl==2)       {

Page 3: Programas en c++

      n_wmax=100;      intentos=7;      }      else if(lvl==3)      {      n_wmax=1000;      intentos=13;      }      else if(lvl==4)      {      n_wmax=10000;      intentos=17;      }      else       {           printf("La opcion elegida no existe");            system("pause");      goto START;            }      system("color f1");      for(i=0;i<=rand();i+=4)frandom=rand()%n_wmax;          n_winner = frandom;      system("cls");      RETRY:      printf("tJuego "Acierta al numero"nn");      printf("Intenta acertar cual es el numero: ");      scanf("%i", &n);      inte++;      printf("Te quedan %i intento(s)nn", intentos-inte);      if(n==n_winner)      {               system("color f2");           printf("Felicidades, Has ganado!!n");           system("pause");           goto START;      }      else if (n<n_winner)      {           printf("Tu numero es demaciado bajo!!nnPreciona una tecla...");           system("pause>NULL");      }            else      {           printf("Te pasaste!!nnPreciona una tecla...");           system("pause>NULL");      }      system("cls");      if (inte>=intentos)      {      printf("Lo siento se te acabaron los intentos, el numero era "%i"nnt", n_winner);      system("pause");      goto START;      }goto RETRY;}

Page 4: Programas en c++

Trata de que te dan un numero de 6 digitos, ocultado en *, deves tirar numeros del 0 al 9 para ir revelando los *, tienes 4 vidas (dificil no?)#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<time.h>main(){      RETRY:       system("color 70");       int vida=3, hp=3;       int win=1;       int PDC; // Aqui declaro el "posible digito del codigo" que es el valor que ingresara               // el usuario para tratar de asertar a algun digito del codigo                      int c1,c2,c3,c4,c5,c6,i; // Aqui declaro las variables que equivalen a cada digito en                              // el codigo oculto        int a1='*',a2='*',a3='*',a4='*',a5='*',a6='*'; // Aqui los asteriscos (digito a digito)              srand(time(NULL)); // Aqui declaro que la semilla de la funcion rand varie por tiempo                  c1=(rand()%10)+48;        c2=(rand()%10)+48;  // Luego aqui las variables anteriormente declaradas toman un valor al       c3=(rand()%10)+48;  // azar del 0 al 9 (se preguntaran ¿Por que 48 a 58?, bueno, prueba        c4=(rand()%10)+48;  // hacerlo de otro modo, haber si descubres el por que lo ise asi)        c5=(rand()%10)+48;        c6=(rand()%10)+48;               INICIO:     // Punto de referencia para el "goto" que pondre despues              system("cls"); // Limpio la pantalla       printf("Descifra el codigo oculto de 6 digitos, ingresando 1 digito a la vez n");       printf("Vidas: ");       for(i=1;i<=hp;i++) printf("%c", vida);       printf("nttt--> %c%c%c%c%c%c <--nttt--> ", a1,a2,a3,a4,a5,a6); // Los Asteriscos       if (win==1) scanf ("%i", &PDC); // Aqui se escanea el "posible digito del codigo"              if (PDC==0)PDC=48;       if (PDC==1)PDC=49;

Page 5: Programas en c++

       if (PDC==2)PDC=50;       if (PDC==3)PDC=51;       if (PDC==4)PDC=52; // Una traduccion        if (PDC==5)PDC=53;       if (PDC==6)PDC=54;       if (PDC==7)PDC=55;       if (PDC==8)PDC=56;       if (PDC==9)PDC=57;              // Aqui va la sentencia que hara que los asteriscos sean remplazados al ser       // revelada una parte del codigo       if (PDC==c1) a1=c1;       if (PDC==c2) a2=c2;       if (PDC==c3) a3=c3;       if (PDC==c4) a4=c4;       if (PDC==c5) a5=c5;       if (PDC==c6) a6=c6;       if (PDC!=c1&&PDC!=c2&&PDC!=c3&&PDC!=c4&&PDC!=c5&&PDC!=c6)hp--;       if (hp==-1)        {       printf("No te quedan vidas...nn");       system("pause");       goto RETRY;       }              if (a1==c1&&a2==c2&&a3==c3&&a4==c4&&a5==c5&&a6==c6) win++;       if (win==3) printf("WINNER <--nn");       else goto INICIO;       system("pause");       system("cls");       printf("Por Grib Jr.");       system("pause");}

/*crear una aplicacion en c que lea nombre cedula edad y 3 notas de n estudiantesel programa debe decir si el usuario aprobo o no el curso sacando el promediode sus 3 notas luego debe permitirle al usuario buscar por numero de cedulay mostras las notas promedio y permitir editar cualquiera de las notas ingresadasUNEFA 26/11/10*/

#include "stdafx.h"

#include<stdio.h>#include<conio.h>#include<windows.h>main()

Page 6: Programas en c++

{ struct datos1 { char a[20]; //nombre long b; //cedula int c; //edad }; struct datos2 { float d; //nota1 float e; //nota2 float f; //nota3 float g; //promedio }; datos1 h[100]; //guardara nombre cedula y edad datos2 i[100]; //guardara las 3 notas y el promedio int j; //contador long k; //comparar las cedulas int l1,l2,l3,l4; //para el case y los if char m='s'; //para iniciar el programa nuevamente con el while int n; //maximo de estudiantes while ((m=='s') || (m=='S')) { system ("cls"); printf("Cuantos estudiantes ingresara? "); scanf("%d",&n); if ((n<1) || (n>100)) { printf("Debe ingresar por lo menos 1 estudiante o como maximo 100n"); printf("Quiere volver a intentarlo S/N? "); m=getch(); } else { for (j=0;j<n;j++) { printf("Ingrese el nombre: "); scanf("%s",&h[j].a); printf("Ingrese la cedula: "); scanf("%ld",&h[j].b); printf("Ingrese la edad: "); scanf("%d",&h[j].c); printf("Ingrese la nota 1: "); scanf("%f",&i[j].d); printf("Ingrese la nota 2: "); scanf("%f",&i[j].e); printf("Ingrese la nota 3: "); scanf("%f",&i[j].f); i[j].g=(i[j].d+i[j].e+i[j].f)/3; system ("cls"); } for (j=0;j<n;j++) { if(i[j].g>=9.5) {

Page 7: Programas en c++

printf("%s Aprobo la materia con %.2fn",h[j].a,i[j].g); } else { printf("%s Reprobo la materia con %.2fn",h[j].a,i[j].g); } } getch(); system("cls"); printf("Quiere buscar alguna cedula n"); printf("Presione 1 para sin"); printf("Presione 2 para no "); scanf("%d",&l1); system("cls"); if (l1==1) { printf("Ingrese la cedula "); scanf("%ld",&k); system("cls"); for (j=0;j<n;j++) { if (k==h[j].b) { printf("La cedula pertenece a %sn",h[j].a); printf("Sus notas fueron %.2f, %.2f, %.2f",i[j].d,i[j].e,i[j].f); getch(); system("cls"); printf("Quiere editar sus notas? n"); printf("Presione 1 para sin"); printf("Presione 2 para no "); scanf("%d",&l2); system("cls"); if (l2==1) { printf("Cual nota quiere editar? n"); printf("Presione 1 para la nota 1n"); printf("Presione 2 para la nota 2n"); printf("Presione 3 para la nota 3n"); printf("Presione 4 para todas las notas "); scanf("%d",&l3); system("cls"); switch (l3) { case 1: { printf("Ingrese la nota 1: "); scanf("%f",&i[j].d); i[j].g=(i[j].d+i[j].e+i[j].f)/3; system("cls"); break; }; case 2: { printf("Ingrese la nota 2: ");

Page 8: Programas en c++

scanf("%f",&i[j].e); i[j].g=(i[j].d+i[j].e+i[j].f)/3; system("cls"); break; }; case 3: { printf("Ingrese la nota 3: "); scanf("%f",&i[j].f); i[j].g=(i[j].d+i[j].e+i[j].f)/3; system("cls"); break; }; case 4: { printf("Ingrese la nota 1: "); scanf("%f",&i[j].d); printf("Ingrese la nota 2: "); scanf("%f",&i[j].e); printf("Ingrese la nota 3: "); scanf("%f",&i[j].f); i[j].g=(i[j].d+i[j].e+i[j].f)/3; system("cls"); break; }; } } } } } printf("Quiere ver la lista de todos sus alumnos? n"); printf("Presione 1 para sin"); printf("Presione 2 para no "); scanf("%d",&l4); system("cls"); if (l4==1) { for (j=0;j<n;j++) { if(i[j].g>=9.5) { printf("%s Aprobo la materia con %.2fn",h[j].a,i[j].g); } else { printf("%s Reprobo la materia con %.2fn",h[j].a,i[j].g); } } } printf("nn"); printf("Quiere iniciar el programa nuevamente S/N "); m=getch(); } }}

Page 9: Programas en c++

pequeño programa que genera la tabla de multiplicar de el numero que el usuario quiera y el limite que el usuario quiera echo con do..while

tengan consiente que falta una / invertida en donde muestra los resultados printf("%d x %d = %d n", a,c,d) aqui seria printf("%d x %d = %d /n", a,c,d) invirtiendo esa / claro esta

#include "stdafx.h"

#include<stdio.h>#include<conio.h>main(){ int a; int b; int c=1; int d; printf("Numero al cual quiere generar la tabla? "); scanf("%d",&a); printf("hasta cuanto quiere su tabla? "); scanf("%d",&b); do { d=(a*c); printf("%d x %d = %d n", a,c,d); c++; } while (c<=b); getch();}

ORGANIGRAMA

hola este es un programa que hace un organigrama de una empresa es posible llenar datos , ordenarlos de 4 maneras distintas y tambien tiene la posibilidad de hacer busqueda, ademas almecena todo los datos en archivo esto permite que los datos una vez almacenados no se pierdan,ademas esta hecho con varias funciones distintas ..................... este es un proyecto que hicimos con unos compañeros asi que igual opinen.........

si alguien lo va a ocupar lo minimo es que agradesca.....

//cada parte del programa va en un archivo con su nombre correspondiente 

Page 10: Programas en c++

main.c

#include <stdio.h>#include <stdlib.h>#include "funciones.h"

int main(int argc, char *argv[]){  PORTADA();  system("PAUSE");  return 0;}

funciones.h

void LLENADO(void);//declaracion de la funcion llenadovoid ORDENADO1(void);//declaracion de la funcion ordenar1void ORDENADO2(void);//declaracion de la funcion ordenar2void ORDENADO3(void);//declaracion de la funcion ordenar3void BUSCAR1(void);//declaracion de la funcion buscar1void BUSCAR2(void);//declaracion de la funcion buscar2void MENU(void);//declaracion de la funcion menuvoid PORTADA(void);//declaracion de la funcion portada

//en las proximas lineas de codigo es el programa como tal 

funciones.c

#include <stdio.h>#include <string.h>#include <stdlib.h>

#define max 50//define para el largo de cada string#define num_trab 6//define para el numero de trabajadores#define num_gerencia 6//define para el numero de gerencias#define trab_empresa 36//define para el numero total de trabajadores 

typedef struct PERSONA//aqui se crea la estructura basica del programa {         char nombre[max];//nombre de cada trabajador        char cargo[max];//cargo que ocupa en la empresa        int telefono;//telefono de cada trabajador        long int sueldo;//sueldo del trabajador                    }personas;//gracias al typedef, aqui se crea el tipo personas(struct PERSONA)                         typedef struct GERENCIA//estructura que define cada gerencia

Page 11: Programas en c++

{        char nombre_gerencia[max];//nombre de la gerencia        personas trabajadores[num_trab];//arreglo de estructura anidada de trabajadores        } gerencia;//gracias al typedef, aqui se crea el tipo gerencia(struct GERENCIA)                              struct EMPRESA//estructura mas general del programa{        gerencia GERN[num_gerencia];//arreglo de estructura anidada de gerencias        char nombre_empresa[max];//nombre de la empresa        }empresa,empresaord;

typedef int contadores;//con typedef defino un tipo contadores para todos los contadores del programa        //------------------------------fin definicion de estructuras-----------------------------------------        

void LLENADO(void)//funcion de llenado{      contadores i,j,t;      FILE *archivo,*nom_empresa;      archivo = fopen("../Ahora si que ta weno...me corrio/Datos/datos.txt","w");      /*revisa si el archivo se abrio correctamente*/      if(archivo == NULL)//se comprueba si se cargo bien el archivo      {            printf("Archivo no existe");      }            printf("ingrese el nombre de la Empresan");//aqui comienzo a cargar los datos al archivo      fflush(stdin);      gets(empresa.nombre_empresa);      for(i=0;i<num_gerencia;i++)//for para moverse por gerencia      {        printf("ingrese nombre de la Gerencian");        gets(empresa.GERN[i].nombre_gerencia);        fflush(stdin);        for(j=0;j<num_trab;j++)//for para moverse por trabajador                          {            printf("ingrese el nombre del trabajador %dn",(j+1));            gets(empresa.GERN[i].trabajadores[j].nombre);            fflush(stdin);            printf("ingrese el cargon");            gets(empresa.GERN[i].trabajadores[j].cargo);            fflush(stdin);            printf("ingrese el sueldon");            scanf("%d",&empresa.GERN[i].trabajadores[j].sueldo);            fflush(stdin);            printf("ingrese el telefonon");

Page 12: Programas en c++

            scanf("%d",&empresa.GERN[i].trabajadores[j].telefono);            fflush(stdin);                  }//fin for            }//fin for      fwrite(&empresa, sizeof(struct EMPRESA),1,archivo); //escritura en el archivo      fclose(archivo);//se cierra el archivo}

//----------------------------------------fin funcion de llenado--------------------------------------

void ORDENADO1()//funcion de Ordenar{      contadores k,i,j,r=0;      FILE *archivo,*archivo2;      personas aux1;      gerencia aux2;      archivo= fopen("../Ahora si que ta weno...me corrio/Datos/datos.txt","r");//se abren el archivo ya creado en la funcion llenado      archivo2=fopen("../Ahora si que ta weno...me corrio/Datos/ordenado.txt","w");//se crea un archivo para mostrar que se ordeno el archivo de datos            while(! feof(archivo))//revisa que no sea el final del archivo      {           fread(&empresa, sizeof(struct EMPRESA),1,archivo);//se lee del archivo de datos      }      empresaord=empresa;      fclose(archivo);     for(k=0;k<num_gerencia;k++)//for para las gerencias       {       //ordenacion con burbuja alfabeticamente las gerencias                                        for (i=0; i<num_trab-1; i++)//for1 para la ordenacion de burbuja            {              for(j=i+1; j<num_trab; j++) //for2 para la ordenacion de burbuja                {                    if ((strcmp(empresaord.GERN[k].trabajadores[i].nombre, empresaord.GERN[k].trabajadores[j].nombre))>0)                    {                        aux1=empresaord.GERN[k].trabajadores[i];                        empresaord.GERN[k].trabajadores[i]=empresaord.GERN[k].trabajadores[j];                        empresaord.GERN[k].trabajadores[j]=aux1;                            }//cierra el if               }//cierra el for2                 }//cierra el for1       }//cierra el for de las gerencias//ordenarcion con burbuja alfabeticamente los nombres de los trabajadores     for (i=0; i<num_gerencia-1; i++)//for1 para la ordenacion de burbuja            {         for(j=i+1; j<num_gerencia; j++)//for2 para la ordenacion de burbuja                      {

Page 13: Programas en c++

                    if((strcmp(empresaord.GERN[i].nombre_gerencia,empresaord.GERN[j].nombre_gerencia)>0))                   {                         aux2=empresaord.GERN[i];                         empresaord.GERN[i]=empresaord.GERN[j];                         empresaord.GERN[j]=aux2;                   }//cierra el if                     }//cierra el for2         }//cierra el for1empresa=empresaord;  system("cls");//limpia la pantalla//se muestra por pantalla la ordenacion     for(i=0;i<num_gerencia;i++)       {           printf("La gerencia %s tiene los siguientes trabajadores:nn",empresa.GERN[i].nombre_gerencia);        for(j=0;j<num_trab;j++)           {           printf("tnombre del trabajador %d:%sn",j+1,empresa.GERN[i].trabajadores[j].nombre);           printf("tsu cargo es:%sn",empresa.GERN[i].trabajadores[j].cargo);           printf("tsu telefono es:%in",empresa.GERN[i].trabajadores[j].telefono);           printf("tsu sueldo es:%dnn",empresa.GERN[i].trabajadores[j].sueldo);           }                             }      fwrite(&empresa, sizeof(struct EMPRESA),1,archivo2);//se guarda la informacion de la ordenacion      fclose(archivo2); }

//--------------------------------------fin funcion ordenar 1------------------------------------------

void ORDENADO2(){      contadores k,i,j;      FILE *archivo,*archivo2;      personas aux3;      archivo= fopen("../Ahora si que ta weno...me corrio/Datos/datos.txt","r+");//se abren el archivo ya creado en la funcion llenado      archivo2=fopen("../Ahora si que ta weno...me corrio/Datos/ordenadodos.txt","w");//se crea un archivo para mostrar que se ordeno el archivo de datos      while(! feof(archivo))//revisa que no sea el final del archivo      {           fread(&empresa, sizeof(struct EMPRESA),1,archivo);//se lee del archivo de datos      }      empresaord=empresa;      fclose(archivo);      //ordenacion alfabetica de los cargos de cada gerencia hecho con burbuja       for(k=0;k<num_gerencia;k++)//for para las gerencias

Page 14: Programas en c++

       {                                       for (i=0;i<num_trab-1;i++)//for1 para la ordenacion de burbuja            {              for(j=i+1;j<num_trab;j++) //for2 para la ordenacion de burbuja                {                    if ((strcmp(empresaord.GERN[k].trabajadores[i].cargo, empresaord.GERN[k].trabajadores[j].cargo))>0)                    {                        aux3=empresaord.GERN[k].trabajadores[i];                        empresaord.GERN[k].trabajadores[i]=empresaord.GERN[k].trabajadores[j];                        empresaord.GERN[k].trabajadores[j]=aux3;                            }//cierra el if               }//cierra el for2                 }//cierra el for1       }//cierra el for de las gerenciasempresa=empresaord;  system("cls");//limpia la pantalla//se muestra por pantalla la ordenacion     for(i=0;i<num_gerencia;i++)       {           printf("El orden alfabetico de los cargos en la gerencia %s es:nn",empresa.GERN[i].nombre_gerencia);        for(j=0;j<num_trab;j++)           {           printf("t%s %snn",empresa.GERN[i].trabajadores[j].cargo,empresa.GERN[i].trabajadores[j].nombre);           }           printf("nn");                             }      fwrite(&empresa, sizeof(struct EMPRESA),1,archivo2);//se guarda la informacion de la ordenacion      fclose(archivo2);          } //--------------------------------------fin funcion ordenar 2-------------------------------------------

void ORDENADO3(){      contadores k,i,j,r;      FILE *archivo,*archivo2;      personas aux,totaltrab[trab_empresa];      archivo= fopen("../Ahora si que ta weno...me corrio/Datos/datos.txt","r+");//se abren el archivo ya creado en la funcion llenado      archivo2=fopen("../Ahora si que ta weno...me corrio/Datos/ordenadotres.txt","w");//se crea un archivo para mostrar que se ordeno el archivo de datos      while(! feof(archivo))//revisa que no sea el final del archivo      {           fread(&empresa, sizeof(struct EMPRESA),1,archivo);//se lee del archivo de datos      }      empresaord=empresa;      fclose(archivo);    //se le asignan todos los trabajadores a un arreglo

Page 15: Programas en c++

      i=0;           for(k=0;k<num_gerencia;k++)           {              for(r=0;r<num_trab;r++)              {                  totaltrab[i]=empresa.GERN[k].trabajadores[r];                                     i++;                    }//fin for                                        }//fin for     //ordenacion por sueldos de la empresa hecho con burbuja                                        for(i=0; i<(trab_empresa-1); i++)           {               for(j=(i+1); j<trab_empresa;j++)                 {                     if(totaltrab[i].sueldo<totaltrab[j].sueldo)                        {                               aux=totaltrab[i];                               totaltrab[i]=totaltrab[j];                               totaltrab[j]=aux;                        }//cierra el if                 }//cierra el for2                  }//cierra el for1empresa=empresaord;  system("cls");//limpia la pantalla//se muestra por pantalla la ordenacion         for(j=0;j<trab_empresa;j++)           {           printf("EL/La %s %s gana $%dnn",totaltrab[j].cargo,totaltrab[j].nombre,totaltrab[j].sueldo);           }      fwrite(&empresa, sizeof(struct EMPRESA),1,archivo2);//se guarda la informacion de la ordenacion      fclose(archivo2);         }

//-------------------------------------fin funcion ordenar 3-------------------------------------------         void BUSCAR1(){     contadores i,j,k;     int flag=0;     char buscar[max];     FILE *archivo;     archivo = fopen("../Ahora si que ta weno...me corrio/Datos/datos.txt","r"); //abertura de archivo para solo lectura          while(! feof(archivo)) //revisa que no sea el final del archivo     {         fread(&empresa, sizeof(struct EMPRESA),1,archivo);     }//fin while          do//do while para realizar la busqueda por gerencia     {         system("cls");//limpia la pantalla para realizar una nueva buequeda

Page 16: Programas en c++

         printf("nntIngrese el nombre de la Gerencia que desea buscarnnn");         printf("                Gerencia: ");//esto es para ordenar el programa, solamente para eso         gets(buscar);         fflush(stdin);         system("cls");//limpia nuevamente la pantalla         for(i=0;i<num_gerencia;i++) //recorre las 6 Gerencias         {             if ((strcmp(buscar, empresa.GERN[i].nombre_gerencia))==0)//compara el nombre de la gerencia ingresada con los nombres de las gerencias ya guardadas en el archivo             {                 flag=1;  //si encuentra la facultad buscada marca el flag                 //despliege del resultado por pantalla                 printf("Gerencia %sn",empresa.GERN[i].nombre_gerencia);                 for(k=0;k<num_trab;k++)                 {                 printf("nntrabajador %dnn",k+1);                 printf("tsu nombre es %snn",empresa.GERN[i].trabajadores[k].nombre);                   printf("tsu cargo es %snn",empresa.GERN[i].trabajadores[k].cargo);                 printf("tsu telefono es %dnn",empresa.GERN[i].trabajadores[k].telefono);                 printf("tsu sueldo es %dn",empresa.GERN[i].trabajadores[k].sueldo);                 }//fin for             }// fin if         }// fin for     }while(flag == 0); //hace que se repita la busqueda en caso de ingresar mal el nombre o que no se encuetre     getchar();     fclose(archivo); //cierre de archivo}// fin busqueda

//-------------------------------------fin funcion buscar 1------------------------------------------

void BUSCAR2(){      contadores k,r,i;      long int inferior,superior;      FILE *archivo;      personas aux,totaltrab[trab_empresa];      archivo= fopen("../Ahora si que ta weno...me corrio/Datos/datos.txt","r");//se abren el archivo ya creado en la funcion llenado      while(! feof(archivo))//revisa que no sea el final del archivo      {           fread(&empresa, sizeof(struct EMPRESA),1,archivo);//se lee del archivo de datos      }      fclose(archivo);          //se le asignan todos los trabajadores a un arreglo      i=0;      for(k=0;k<num_gerencia;k++)

Page 17: Programas en c++

           {           for(r=0;r<num_trab;r++)              {                totaltrab[i]=empresa.GERN[k].trabajadores[r];                                   i++;              }//fin for                                   }//fin for     //ordenacion por sueldos de la empresa hecho con burbuja                                        for(i=0; i<(trab_empresa-1); i++)           {               for(k=(i+1); k<trab_empresa;k++)                 {                     if(totaltrab[i].sueldo>totaltrab[k].sueldo)                        {                               aux=totaltrab[i];                               totaltrab[i]=totaltrab[k];                               totaltrab[k]=aux;                        }//cierra el if                 }//cierra el for2                  }//cierra el for1      system("cls");      //se pide el rango de sueldos para la busqueda      printf("ingrese el rango de sueldos que desea buscarn");      printf("ningrese el rango inferior:");      scanf("%d",&inferior);      printf("ningrese el rango superior:");      scanf("%d",&superior);      system("cls");      //se muestra por pantalla solo el resultado de la comparacion      printf("entre $%d y $%d se ecuentrannnn",inferior, superior);      getchar();      for(i=0;i<trab_empresa;i++)      {          if((inferior<=totaltrab[i].sueldo) && (superior>=totaltrab[i].sueldo))          {          printf("EL/La %s %s que gana $%dnn",totaltrab[i].cargo,totaltrab[i].nombre,totaltrab[i].sueldo);                                  }//fin if                             }//fin for   getchar();}      //------------------------------------fin funcion buscar 2------------------------------------------      

void MENU(){  int elec1,elec2,ver=0;  char elec3;     system("cls");    printf("nnnnnnnntPara seleccionar ingrese el numero correspondiente a su opcion:n");  printf("nntOpciones:n");

Page 18: Programas en c++

  printf("t   1.- Ordenarn");  printf("t   2.- Buscarn");  printf("t   3.- Resetear y Llenar los datos de la empresan");  printf("t   4.- Salir del programan");  do{  fflush(stdin);              scanf("%i",&elec1);                  switch(elec1)      {        case 1 :             {                      system("cls");                  printf("nnnnnnnntPara seleccionar ingrese el numero correspondiente a su opcion:n");                  printf("nnt1-ordenar por orden alfabetico cada gerencia ntcon los datos relevantes de estan");                  printf("nt2-ordenar por orden alfabetico los cargos ntexistentes en cada gerencia, con la personantencargada de cada cargo respectivamente.n");                  printf("nt3-ordenar por sueldo.n");                  printf("nt4-volver a MENUn");                  do                  {                                                                                 scanf("%i",&elec2);                      fflush(stdin);                                                                                     switch(elec2)                         {                       case 1:                            {                                  ORDENADO1();                                  getchar();                                  MENU();                                  break;                                    }                       case 2:                            {                                  ORDENADO2();                                  getchar();                                  MENU();                                  break;                                    }                       case 3:                            {                                  ORDENADO3();                                  getchar();                                  MENU();                                  break;                                    }                                              case 4:                      {                           MENU();                           break;                           }                                   case 'n':

Page 19: Programas en c++

                            {                                 printf("at No ha ingresado ningun valorn porfavor intente de nuevamenten");                                 ver=2;                                 break;                                                                          }                               default:                            {                                 printf("at Opcion invalidan porfavor intente de nuevamenten");                                     ver=2;                                 break;                                         }                                            }                                           }while(ver==2);                            break;                      }            case 2:                   {                      system("cls");                                            printf("nnnnnnnntPara seleccionar ingrese el numero correspondiente a su opcion:n");                      printf("nnt1-informacion completa de cada gerencian");                      printf("nt2-un rango de sueldos solicitados, ntdesplegar la informacion de las personas que mantienen esta informacionn");                      printf("nt3-volver a MENUn");                      do                      {                         fflush(stdin);                                     scanf("%i",&elec2);                         switch (elec2)                               {                                        case 1:                                         {                                              BUSCAR1();                                              MENU();                                              getchar();                                              break;                                                        }                                    case 2:                                         {                                              BUSCAR2();                                              MENU();                                              getchar();                                              break;                                                        }                                    case 3:                                    {                                    MENU();                                    break;                                     }                                       case 'n':                                    {

Page 20: Programas en c++

                                     printf("at No ha ingresado ningun valorn porfavor intente de nuevamenten");                                     ver=2;                                     break;                                      }                                             default:                                    {                                     printf("at Opcion invalidan porfavor intente de nuevamenten");                                         ver=2;                                     break;                                         }                                    }                                       }while(elec2==2);                           break;                       }                case 3:                     {                            system("cls");                                                    printf("nnADVERTENCIA!!!!:se borraran todos los datos que tiene almacenados!!!!!na ");                          printf("nttdesea borrarlos de todas maneras?n");                           do                          {                              fflush(stdin);                              printf("n                si<S>/no<N>:");                                       scanf("%c",&elec3);                                       switch(elec3)                                  {                                           case 's':                                           case 'S':                                           {       &n

CALCULADORA

#include "stdafx.h"

#include <iostream>#include <cstdlib>#include <cmath>

using namespace std;

struct punto{ float x;

Page 21: Programas en c++

float y; float z;};

struct vector{ float compx; float compy; float compz;};

struct plano{ punto puntoori; vector vectorperpen;};

struct recta{ punto puntoori; vector vectordir;};

punto leerpunto();punto interseccionrecs(recta r,recta s);punto interseccionplarec(plano p,recta r);punto puntoenrecta(recta r, float l);punto intersecciontresplas(plano pl,plano pl1,plano pl2);bool sonparaplanorecta(plano pl,recta r);bool sonparaplanos(plano pl,plano pl2);char sonpararecs(recta r,recta r1);vector prodvect(vector v1,vector v2);vector leervector();vector dospunts(punto p1,punto p2);recta interseccionplas(plano p,plano t);recta leerrecta();plano leerplano();float distanciarecs(recta r,recta s,char c);float angulorecs(recta r,recta s);float anguloplans(plano pl,plano pl1);float anguloplarec(plano pl,recta r);float distanciapuntrec(recta r,punto p);float prodescalar(vector v1,vector v2);float planoenpunto(plano pl,punto p);float mod(vector v);float distanciapunts(punto p1,punto p2);float D(plano pl);float distanciapuntplan(plano pl,punto p);

int main(){ /* Declaración de variables */ int select; float d; punto p1,p2; plano pl,pl1,pl2;

Page 22: Programas en c++

recta r,r1,r2; /* Entrada de datos */ cout<<" MENU DE LA CALCULADORA DEL ESPACIO"<<endl; cout<<"-------------------------------------------------------------------------"<<endl; cout<<" 1.Distancia entre dos puntos"<<endl; cout<<" 2.Distancia entre un punto y un plano"<<endl; cout<<" 3.Distancia entre un punto y una recta"<<endl; cout<<" 4.Posicion relativa entre una recta y un plano"<<endl; cout<<" 5.Posicion relativa entre dos planos"<<endl; cout<<" 6.Posicion relativa entre dos rectas"<<endl; cout<<" 7.Angulo relativa entre una recta y un plano"<<endl; cout<<" 8.Angulo entre dos planos"<<endl; cout<<" 9.Angulo enter dos rectas"<<endl; cout<<" 10.Posicion relativa tres planos"<<endl; cout<<endl<<"Seleccione una opcion del menu: "; cin>>select; /* Procedimiento */ switch (select) { case 1: cout<<"Introduzca dos puntos"<<endl; p1=leerpunto(); p2=leerpunto(); d=distanciapunts(p1,p2); cout<<"La distancia entre los dos puntos es "<<d<<endl;; break; case 2: cout<<"Introduzca un plano"<<endl; pl=leerplano(); cout<<"Introduzca un punto"<<endl; p1=leerpunto(); d=distanciapuntplan(pl,p1); cout<<"La distancia entre el plano y el punto es "<<d<<endl;; break; case 3: cout<<"Introduzca un punto"<<endl; p1=leerpunto(); cout<<"Introduzca una recta"<<endl; r=leerrecta(); d=distanciapuntrec(r,p1); cout<<"La distancia entre la recta y el punto es "<<d<<endl; break; case 4: cout<<"Introduzca un plano"<<endl;

Page 23: Programas en c++

pl=leerplano(); cout<<"Introduzca una recta"<<endl; r=leerrecta(); if (sonparaplanorecta(pl,r)) {cout<<"Son paralelos el plano y la recta, y los separa una distancia de "; cout<<distanciapuntplan(pl,r.puntoori)<<endl;} else { p1=interseccionplarec(pl,r); cout<<"El punto interseccion es ("<<p1.x<<","<<p1.y<<","<<p1.z<<")"<<endl; } break; case 5: cout<<"Introduzca dos planos"<<endl; pl=leerplano(); pl1=leerplano(); if (sonparaplanos(pl,pl1)) {cout<<"Los planos son paralelos, y los separa una distancia de "; cout<<distanciapuntplan(pl,pl1.puntoori)<<endl;} else { r=interseccionplas(pl,pl1); cout<<"La recta interseccion es ("<<r.puntoori.x<<","<<r.puntoori.y<<","<<r.puntoori.z; cout<<") + t * ("<<r.vectordir.compx<<","<<r.vectordir.compy<<","<<r.vectordir.compz<<")"<<endl; } break; case 6: cout<<"Introduzca dos rectas"<<endl; r=leerrecta(); r1=leerrecta(); if (sonpararecs(r,r1)=='c') {cout<<"Las rectas se cruzan, y las separa una distacia de "; cout<<distanciarecs(r,r1,'c')<<endl;} else {if (sonpararecs(r,r1)=='x') {p1=interseccionrecs(r,r1); cout<<"El punto interseccion es ("<<p1.x<<","<<p1.y<<","<<p1.z<<")"<<endl;} else {if (sonpararecs(r,r1)=='p') {cout<<"Las rectas son paralelas, y las separa una distancia de "; cout<<distanciarecs(r,r1,'p')<<endl;}} } break; case 7: cout<<"Introduzca una recta y un plano"<<endl; r=leerrecta(); pl=leerplano();

Page 24: Programas en c++

if (sonparaplanorecta(pl,r)) cout<<"Son paralelos el plano y la recta, y forman un angulo de 0"; else { d=anguloplarec(pl,r); cout<<"El angulo que forman es "<<d<<endl; } break; case 8: cout<<"Introduzca dos planos"<<endl; pl=leerplano(); pl1=leerplano(); if (sonparaplanos(pl,pl1)) cout<<"Los planos son paralelos, y forman un angulo de 0"; else { d=anguloplans(pl,pl1); cout<<"El angulo que forman es "<<d<<endl; } break; case 9: cout<<"Introduzca dos rectas"<<endl; r=leerrecta(); r1=leerrecta(); if (sonpararecs(r,r1)=='p') cout<<"Las rectas son paralelas, y forman un angulo de 0"<<endl; else cout<<"El angulo que forman es "<<d<<endl; break; case 10: cout<<"Introduzca tres planos"<<endl; pl=leerplano(); pl1=leerplano(); pl2=leerplano(); if (sonparaplanos(pl,pl1)) { if (sonparaplanos(pl,pl2)) cout<<"Los planos son paralelos"; else { r=interseccionplas(pl,pl2); r1=interseccionplas(pl,pl1); cout<<"La interseccion son las rectas: "; cout<<"("<<r.puntoori.x<<","<<r.puntoori.y<<","<<r.puntoori.z; cout<<") + lambda * ("<<r.vectordir.compx<<","<<r.vectordir.compy<<","<<r.vectordir.compz<<") y "; cout<<"("<<r1.puntoori.x<<","<<r1.puntoori.y<<","<<r1.puntoori.z; cout<<") + mu * ("<<r1.vectordir.compx<<","<<r1.vectordir.compy<<","<<r1.vectordir.compz<<")"<<endl;

Page 25: Programas en c++

} } else { if (sonparaplanos(pl,pl2)) { r=interseccionplas(pl1,pl2); r1=interseccionplas(pl,pl1); cout<<"La interseccion son las rectas: "; cout<<"("<<r.puntoori.x<<","<<r.puntoori.y<<","<<r.puntoori.z; cout<<") + lambda * ("<<r.vectordir.compx<<","<<r.vectordir.compy<<","<<r.vectordir.compz<<") y "; cout<<"("<<r1.puntoori.x<<","<<r1.puntoori.y<<","<<r1.puntoori.z; cout<<") + mu * ("<<r1.vectordir.compx<<","<<r1.vectordir.compy<<","<<r1.vectordir.compz<<")"<<endl; } else { if (sonparaplanos(pl1,pl2)) { r=interseccionplas(pl,pl2); r1=interseccionplas(pl,pl1); cout<<"La interseccion son las rectas: "; cout<<"("<<r.puntoori.x<<","<<r.puntoori.y<<","<<r.puntoori.z; cout<<") + lambda * ("<<r.vectordir.compx<<","<<r.vectordir.compy<<","<<r.vectordir.compz<<") y "; cout<<"("<<r1.puntoori.x<<","<<r1.puntoori.y<<","<<r1.puntoori.z; cout<<") + mu * ("<<r1.vectordir.compx<<","<<r1.vectordir.compy<<","<<r1.vectordir.compz<<")"<<endl; } else { r=interseccionplas(pl,pl2); r1=interseccionplas(pl,pl1); r2=interseccionplas(pl1,pl2); if (sonparaplanorecta(pl1,r)) { cout<<"La interseccion son las rectas: "; cout<<"("<<r.puntoori.x<<","<<r.puntoori.y<<","<<r.puntoori.z; cout<<") + eta * ("<<r.vectordir.compx<<","<<r.vectordir.compy<<","<<r.vectordir.compz<<"), "; cout<<"("<<r1.puntoori.x<<","<<r1.puntoori.y<<","<<r1.puntoori.z;

Page 26: Programas en c++

cout<<") + lambda * ("<<r1.vectordir.compx<<","<<r1.vectordir.compy<<","<<r1.vectordir.compz<<") y "; cout<<"("<<r2.puntoori.x<<","<<r2.puntoori.y<<","<<r2.puntoori.z; cout<<") + mu * ("<<r2.vectordir.compx<<","<<r2.vectordir.compy<<","<<r2.vectordir.compz<<")"<<endl;; } else { p1=interseccionplarec(pl2,interseccionplas(pl,pl1)); cout<<"El punto interseccion es ("<<p1.x<<","<<p1.y<<","<<p1.z<<")"<<endl; } } } } } /* Salida de resultados */ system("PAUSE"); return 0;}

float mod(vector v){ float mod; mod=sqrt(v.compx*v.compx+v.compy*v.compy+v.compz*v.compz); return mod;}

vector dospunts(punto p1,punto p2){ vector v; v.compx=p1.x-p2.x; v.compy=p1.y-p2.y; v.compz=p1.z-p2.z; return v;}

float distanciapunts(punto p1,punto p2){ vector v; v=dospunts(p1,p2);

Page 27: Programas en c++

return mod(v);}

float distanciapuntplan(plano pl,punto p){ float d; d=planoenpunto(pl,p); d=abs(d)/mod(pl.vectorperpen); return d;}

vector leervector(){ char c; vector p; cin>>c; cin>>p.compx; cin>>c; cin>>p.compy; cin>>c; cin>>p.compz; cin>>c; return p;}

punto leerpunto(){ punto p; char c; cin>>c; cin>>p.x; cin>>c; cin>>p.y; cin>>c; cin>>p.z; cin>>c; return p;}

plano leerplano(){ plano p; cout<<"Introduzca el vector caracteristico del plano"<<endl; p.vectorperpen=leervector(); cout<<"Introduzca un punto que pertenezca al plano"<<endl; p.puntoori=leerpunto(); return p;}

Page 28: Programas en c++

recta leerrecta(){ recta r; cout<<"Introduzca el vector director de la recta"<<endl; r.vectordir=leervector(); cout<<"Introduzca un punto que pertenezca a la recta"<<endl; r.puntoori=leerpunto(); return r;}

float D(plano pl){ float d; d=pl.vectorperpen.compx*pl.puntoori.x+pl.vectorperpen.compy*pl.puntoori.y+pl.vectorperpen.compz*pl.puntoori.z; d=-d; return d;}

float planoenpunto(plano pl,punto p){ float d; d=pl.vectorperpen.compx*p.x+pl.vectorperpen.compy*p.y+pl.vectorperpen.compz*p.z+D(pl); return d;}

punto interseccionplarec(plano pl,recta r){ float l; l=-planoenpunto(pl,r.puntoori)/prodescalar(pl.vectorperpen,r.vectordir); return (puntoenrecta(r,l));}

float prodescalar(vector v1,vector v2){ float d; d=v1.compx*v2.compx+v1.compy*v2.compy+v1.compz*v2.compz; return d;}

bool sonparaplanorecta(plano pl,recta r){ bool para;

Page 29: Programas en c++

if (prodescalar(pl.vectorperpen,r.vectordir)==0) para=true; else para=false; return para;}

punto puntoenrecta(recta r, float l){ punto p; p.x=r.puntoori.x+r.vectordir.compx*l; p.y=r.puntoori.y+r.vectordir.compy*l; p.z=r.puntoori.z+r.vectordir.compz*l; return p;}

float distanciapuntrec(recta r,punto p){ vector v; float d,l; l=prodescalar(r.vectordir,dospunts(p,r.puntoori))/(mod(r.vectordir)*mod(r.vectordir)); v=dospunts(puntoenrecta(r,l),p); return mod(v);}

vector prodvect(vector v1,vector v2){ vector v3; v3.compx=v1.compy*v2.compz-v1.compz*v2.compy; v3.compy=-v1.compx*v2.compz+v1.compz*v2.compx; v3.compz=v1.compx*v2.compy-v1.compy*v2.compx; return v3;}

bool sonparaplanos(plano pl,plano pl2){ vector cero; vector v; cero.compx=0; cero.compy=0; cero.compz=0; v=prodvect(pl.vectorperpen,pl2.vectorperpen); if ((v.compx==cero.compx)&&(v.compy==cero.compy)&&(v.compz==cero.compz))

Page 30: Programas en c++

return true; else return false;}

recta interseccionplas(plano p,plano t){ recta r; vector v; recta s; r.vectordir=prodvect(p.vectorperpen,t.vectorperpen); v=prodvect(p.vectorperpen,r.vectordir); s.vectordir=v; s.puntoori=p.puntoori; r.puntoori=interseccionplarec(t,s); return r;}

char sonpararecs(recta r,recta r1){ vector v; float l; vector cero; cero.compx=0; cero.compy=0; cero.compz=0; v=dospunts(r.puntoori,r1.puntoori); l=v.compx*(r.vectordir.compy*r1.vectordir.compz-r.vectordir.compz*r1.vectordir.compy); l=l+v.compy*(-r.vectordir.compx*r1.vectordir.compz+r.vectordir.compz*r1.vectordir.compx); l=l+v.compz*(r.vectordir.compx*r1.vectordir.compy-r.vectordir.compy*r1.vectordir.compx); v=prodvect(r.vectordir,r1.vectordir); if ((v.compx==cero.compx)&&(v.compy==cero.compy)&&(v.compz==cero.compz)) return 'p'; if (l==0) return 'x'; else return 'c';}

float distanciarecs(recta r,recta r1,char c){ float d; if (c=='p')

Page 31: Programas en c++

d=distanciapuntrec(r1,r.puntoori); else d=abs((prodescalar(dospunts(r.puntoori,r1.puntoori),prodvect(r.vectordir,r1.vectordir)))/(mod(prodvect(r.vectordir,r1.vectordir)))); return d;}

punto interseccionrecs(recta r,recta s){ punto p; vector v; plano pl; v=prodvect(r.vectordir,s.vectordir); pl.vectorperpen=prodvect(r.vectordir,v); pl.puntoori=r.puntoori; p=interseccionplarec(pl,s); return p;}

float angulorecs(recta r,recta s){ float ang; ang=acos(abs(prodescalar(r.vectordir,s.vectordir))/(mod(r.vectordir)*mod(s.vectordir))); return ang;}

float anguloplans(plano pl,plano pl1){ float ang; ang=acos(abs(prodescalar(pl.vectorperpen,pl1.vectorperpen))/(mod(pl.vectorperpen)*mod(pl1.vectorperpen))); return ang;}

float anguloplarec(plano pl,recta r){ float ang; ang=asin(abs(prodescalar(r.vectordir,pl.vectorperpen))/(mod(pl.vectorperpen)*mod(r.vectordir))); return ang;}

Page 32: Programas en c++
Page 33: Programas en c++

aqui les dejo un prog que ingresando las variables q disponemos calcula concentraciones y otros en una solucion.. espero que a algun quimico le pueda servir.. escucho cualkier comentario

#include "stdafx.h"

#include <iostream.h>#include <stdlib.h>

struct datos{

double molaridad; double normalidad; double grsoluto; double pesosolu; double pesovol; double pesopeso; double densidad; double pesomolec; double numcargas; }*a;

//funciones prototipo

void menu(int *);void inicializar(struct datos *);void ingresar(struct datos *, int );void calcular(struct datos *);void resultados(struct datos *);

//funcion principal

int main(){

a = new datos; inicializar(a); int opc; do{ menu(&opc); if(opc!=9&&opc!=10) { ingresar(a, opc); } else if(opc==9) { calcular(a); resultados(a); } }while(opc!=10); delete a; return 0; }

Page 34: Programas en c++

//funciones

void menu(int *o){

system("cls"); cout<<"Ingrese un numero segun los datos que dispone :"<<endl; cout<<"1 - Molaridad"<<endl;cout<<"2 - Normalidad"<<endl; cout<<"3 - Peso molecular (gr/mol)"<<endl;cout<<"4 - Densidad (gr/ml)"<<endl; cout<<"5 - Gramos de soluto"<<endl;cout<<"6 - Gramos de solucion"<<endl; cout<<"7 - Peso/Volumen de solucion (ml)"<<endl;cout<<"8 - Numero de cargas, protones u oxidrilos"<<endl; cout<<"9 - Resultados"<<endl;cout<<"10 - Salir"<<endl; cin>>*o; if(*o!=9||*o!=10)

system("cls"); }

void inicializar(struct datos *s){

s->molaridad=NULL; s->normalidad=NULL; s->pesovol=NULL; s->pesopeso=NULL; s->grsoluto=NULL; s->pesosolu=NULL; s->densidad=NULL; s->pesomolec=NULL; s->numcargas=NULL; }

void ingresar(struct datos *b, int op){

switch(op) { case 1: cout<<"Ingrese la molaridad de la solucion :"<<endl; cin>>b->molaridad; break; case 2: cout<<"Ingrese la normalidad de la solucion :"<<endl; cin>>b->normalidad; break; case 3: cout<<"Ingrese el peso molecular del compuesto :"<<endl; cin>>b->pesomolec; break; case 4: cout<<"Ingrese la densidad de la solucion :"<<endl; cin>>b->densidad; break; case 5: cout<<"Ingrese los gramos de soluto en la solucion :"<<endl; cin>>b->grsoluto; break;

Page 35: Programas en c++

case 6: cout<<"Ingrese el peso de la solucion :"<<endl; cin>>b->pesosolu; break; case 7: cout<<"Ingrese el peso volumen de la solucion :"<<endl; cin>>b->pesovol; break; case 8: cout<<"Ingrese el numero de cargas, protones u oxidrilos del compuesto"<<endl; cin>>b->numcargas; break; } }

void calcular(struct datos *c){

if(!c->molaridad) { if(c->normalidad!=NULL&&c->numcargas!=NULL) c->molaridad= c->normalidad/c->numcargas; else if(c->grsoluto!=NULL&&c->pesomolec!=NULL) c->molaridad= c->grsoluto/c->pesomolec; } if(!c->normalidad) { if(c->molaridad!=NULL&&c->numcargas!=NULL) c->normalidad=c->molaridad*c->numcargas; } if(!c->grsoluto) { if(c->pesosolu!=NULL) c->grsoluto= c->pesosolu*10; else if(c->molaridad!=NULL&&c->pesomolec!=NULL) c->grsoluto=c->molaridad*c->pesomolec; } if(!c->pesosolu) { if(c->densidad!=NULL) c->pesosolu=c->densidad*1000; } if(!c->pesovol) { if(c->grsoluto!=NULL) c->pesovol= c->grsoluto/10; } if(!c->pesopeso) { if(c->grsoluto!=NULL&&c->pesosolu!=NULL) c->pesopeso= (c->grsoluto/c->pesosolu) *100; } if(!c->densidad) { if(c->pesosolu!=NULL) c->densidad=c->pesosolu*1000; }

Page 36: Programas en c++

if(!c->numcargas) { if(c->normalidad!=NULL&&c->molaridad!=NULL) c->numcargas= c->normalidad/c->molaridad; } }

void resultados(struct datos *d){

system("cls"); cout<<"Los datos calculables son los siguientes:"<<endl; if(d->molaridad) { cout<<"Molaridad = "<<d->molaridad<<endl; } if(d->normalidad) { cout<<"Normalidad = "<<d->normalidad<<endl; } if(d->grsoluto) { cout<<"Gramos de soluto = "<<d->grsoluto<<endl; } if(d->pesosolu) { cout<<"Peso de la solucion = "<<d->pesosolu<<endl; } if(d->pesovol) { cout<<"Concentracion P/V = "<<d->pesovol<<endl; } if(d->pesopeso) { cout<<"Concentracion P/P = "<<d->pesopeso<<endl; } if(d->densidad) { cout<<"Densidad(gr/ml) = "<<d->densidad<<endl; } if(d->numcargas) { cout<<"Numero de cargas, oxidrilos o protones = "<<d->numcargas<<endl; } system("pause"); }

Page 37: Programas en c++

#include <conio.h>#include <stdio.h>#include <dos.h>

void main()

{

int x=0,y=0,renx1=5,renx2=20,col1=25,col2=6,max2=20;int max=25,min=6,maxcol=20,mincol=7,columna=5,min1=5,max1=25;

textbackground(RED);textcolor(WHITE);clrscr();

for (x=1;x<5;x++){

for (y=min1;y<=max;y++){

gotoxy(y,renx1);cprintf("*");delay(100);

};renx1+=2;max-=2;min1+=2;for (y=columna;y<=maxcol;y++)

{gotoxy(col1,y);cprintf("*");delay(100);

};col1-=2;maxcol-=2;columna+=2;for (y=max1;y>=min;y--)

{gotoxy(y,renx2);cprintf("*");delay(100);

};renx2-=2;min+=2;max1-=2;for (y=max2;y>=mincol;y--)

{gotoxy(col2,y);cprintf("*");delay(100);

};col2+=2;mincol+=2;

Page 38: Programas en c++

max2-=2;};getch();

}

DIBUJA UN ROMBO EN PANTALLA

#include <conio.h>#include <stdio.h>#include <dos.h>

void main()

{

int x=0,y=0,col1=40,col2=40,ren=5;

textbackground(RED);textcolor(WHITE);clrscr();

for (x=1;x<=15;x++){

gotoxy(col1,x);cprintf("*");gotoxy(col2,x);cprintf("*");col1++;col2--;delay(100);

};for (x=16;x<=31;x++)

{gotoxy(col1,x);cprintf("*");gotoxy(col2,x);cprintf("*");col1--;col2++;delay(100);

};getch();

Page 39: Programas en c++

PROGRAMA DE CONTABILIDAD

#include <ctype.h>#include <stdlib.h>#include <stdio.h>#include <time.h>#include <iostream.h>#include <conio.h>#include <graphics.h>#include <string.h>#define graficos int gdriver=DETECT, gmode;/* initialize graphics and local variables */initgraph(&gdriver, &gmode,"c:/tc/bgi");setcolor(getmaxcolor());#include <dos.h>

int confirmado=0;char encontrado[50];int bb2;int reg3;int kep=0;char comp[50]="compra";char si[10]="si";char no[10]="no";char vent[50]="venta";char decicion;char opc;char opcion;char opcion2;int x=54,y=68,xx=245;int x1,y1,l2=60,bandera=0;int c;float iva=0.16;

struct datos{   char gg[10];   char provedor[30];   char articulo[50];   char codigo[10];   float cantidad2;   float cantidad;   float valor;   float total;   int dia;   int a_o;   int mes;};typedef struct datos empresa;

Page 40: Programas en c++

struct ventas{   char accion[50];   char articulo_venta[50];   char codigo_venta[10];   float cantidad_venta;   float valor_venta;   int dia_venta;   int a_o_venta;   int mes_venta;};typedef struct ventas empresa_ventas;

struct ventas2{   char accion2[50];   char codigo_venta2[10];   float valor_venta2;   float valor_iva;   char nombre_proveedor[50];   char nombre_cliente[50];   int dia_venta2;   int a_o_venta2;   int mes_venta2;};typedef struct ventas2 empresa_ventas2;

void ingresar2(empresa p, empresa_ventas p4, empresa_ventas2 p5);void ingresar3(empresa p, empresa_ventas p4, empresa_ventas2 p5);void guardar(empresa p);void delet(empresa p);void abrir();void lib_diario(empresa p, empresa_ventas2 p5);void listar(empresa p);void inventario(empresa p, empresa_ventas p4);void subpro(empresa p);void estado_financiero(empresa_ventas2 p5);void ingresar();void iconos();void main();

cursor(mov,mov2){int c=0;

while(!(kbhit()))  {   gotoxy(mov,mov2);textcolor(c);cprintf("²");

    if (c==0)    c=14;    c--;    delay(200);    if (c%2==0)    c=0;

Page 41: Programas en c++

}    gotoxy(mov,mov2);textcolor(0);cprintf(" ");    gotoxy(mov,mov2);textcolor(7);cprintf("  ");}

circulo(int x2,int y2){setcolor(2);circle(x2,y2,50);}

circulo_borrar(int x2,int y2){setcolor(15);circle(x2,y2,50);}

void derecha(){if(x<240){circulo_borrar(x,y);x=x+186;circulo(x,y);}}

void izquierda(){if(x>54 && y<=188){circulo_borrar(x,y);x=x-186;circulo(x,y);}}

void abajo(){if(y<308){circulo_borrar(x,y);y=y+120;if(y<=188){circulo(x,y);}if(y>188){y=y+20;x=449;setcolor(2);circle(x,y,50);}}}

Page 42: Programas en c++

void arriba(){if(y>68){if(y<=188){circulo_borrar(x,y);y=y-120;circulo(x,y);}if(y>188){circulo_borrar(x,y);y=y-140;x=x-209;circulo(x,y);}}}

circulo_salir(int xx2){setcolor(BLACK);rectangle(xx,190,xx+20,180);}circulo_salir_borrar(int xx2){setcolor(15);rectangle(xx,190,xx+20,180);}

void derecha2(){if(xx<385){circulo_salir_borrar(xx);xx=xx+140;circulo_salir(xx);}}

void izquierda2(){if(xx>245){circulo_salir_borrar(xx);xx=xx-140;circulo_salir(xx);}}void poner2(){if(xx==245){exit(1);}if(xx==385)

Page 43: Programas en c++

{cleardevice();x=54;y=68;main();}}

void poner(){empresa pb;empresa_ventas pb4;

if(y==68 && x==54){ingresar();setgraphmode(getgraphmode());cleardevice();iconos();setcolor(2);x=54;y=68;circulo(x,y);}

if(y==68 && x==240){guardar(pb);setgraphmode(getgraphmode());cleardevice();iconos();setcolor(2);x=240;y=68;circulo(x,y);}

if(y==188 && x==54){abrir();setgraphmode(getgraphmode());cleardevice();iconos();setcolor(2);x=54;y=188;circulo(x,y);}

if(y==188 && x==240){delet(pb);setgraphmode(getgraphmode());cleardevice();iconos();setcolor(2);x=240;

Page 44: Programas en c++

y=188;circulo(x,y);}

if(y==328 && x==449){setcolor(15);rectangle(220, 200, 420,150);setfillstyle(1,15);floodfill(253,153,15);floodfill(253,197,15);floodfill(290,153,15);setcolor(BLACK);settextstyle(2,0,4);outtextxy(235,168,"Esta seguro que desea salir?");outtextxy(250,180,"Si");outtextxy(390,180,"No");circulo_salir(xx);

while(decicion!=27){             decicion=getch();

if(decicion==77||decicion==75||decicion=='r'){      if(decicion==77)      {decicion=NULL;      derecha2();}

  if(decicion==75)  {decicion=NULL;  izquierda2();}     if(decicion=='r')     {decicion=NULL;     poner2();}

 }}

}}

void iconos(){//LA HOJAsetcolor(15);circle(54,68,50);line(40, 40, 13, 83);line(90, 43, 60, 90);line(40, 40, 90, 43);line(13, 83, 60, 90);floodfill(43,43,15);setcolor(6);setfillstyle(1,8);line(40, 50, 80, 53);line(34, 60, 74, 63);line(28, 70, 68, 73);line(40, 80, 60, 81);

Page 45: Programas en c++

//EL DISQUETEsetcolor(15);circle(240,68,50);setcolor(7);rectangle(210, 100, 270, 50);setfillstyle(1,8);floodfill(213,97,7);

setcolor(15);rectangle(220, 85, 260, 58);rectangle(264, 55, 268, 52);setfillstyle(1,7);floodfill(223,82,15);rectangle(225, 96, 255, 88);floodfill(228,93,15);

setcolor(15);rectangle(226, 95, 233, 89);floodfill(229,93,15);

//ABRIRsetcolor(15);circle(54,188,50);setcolor(14);rectangle(22, 174, 40,169);setfillstyle(1,14);floodfill(25,171,14);setcolor(15);rectangle(22, 220, 90,175);setfillstyle(1,14);floodfill(25,217,15);setcolor(7);line(40, 178, 100, 178);line(23, 220, 89, 220);line(22, 220, 40, 178);line(90, 220, 100, 178);floodfill(43,181,7);arc(75, 175,29,-210, 19);line(85, 167, 99, 163);line(85, 167, 92, 170);line(99, 163, 92, 170);

//BORRARsetcolor(15);circle(240,188,50);line(215,168,225,220);line(270,161,267,215);arc(238,123,244,-49,50);arc(240,162,256,-63,60);arc(265,159,350,-237,5);arc(261,245,445,-240,90);setfillstyle(1,15);floodfill(264,158,15);setfillstyle(1,7);floodfill(218,171,15);setcolor(2);arc(247,200,443,-215,18);

Page 46: Programas en c++

arc(249,203,445,-217,24);line(247, 186, 255, 177);line(229, 188, 231, 192);line(247, 186, 258, 192);line(255, 177, 258, 192);setfillstyle(1,2);floodfill(250,180,2);floodfill(253,180,2);

setcolor(2);arc(245,193,252,-17,18);arc(243,191,250,-25,24);line(244, 207,232,216);line(244, 207, 235, 198);line(232, 216, 235, 198);line(262, 200, 264, 204);setfillstyle(1,2);floodfill(247,213,2);floodfill(235,213,2);

//SALIRsetcolor(15);circle(449,328,50);setcolor(7);line(426, 308, 460, 285);line(426, 370, 460, 347);line(460, 285, 460, 347);line(426, 308, 426, 370);setfillstyle(1,6);floodfill(429,311,7);setcolor(BLACK);line(454, 317, 458, 313);line(454, 327, 458, 323);line(454, 317, 454, 327);line(458, 313, 458, 323);setfillstyle(1,BLACK);floodfill(457,320,BLACK);setcolor(15);rectangle(426,370,476,308);

}

void main()

{clrscr();FILE *ab, *ab2;if((ab = fopen("DIARIO.txt", "a+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }fclose(ab);if((ab2 = fopen("VENTAS.txt", "a+b"))==NULL) //por si hay error   {      printf("nERRRROR");

Page 47: Programas en c++

      //exit(0);   }fclose(ab2);graficosiconos();setcolor(2);circle(x,y,50);opc=NULL;while(opc!=27)

{             opc=getch();

if(opc==77||opc==75||opc==80||opc==72||opc=='r'){      if(opc==77)      {opc=NULL;      derecha();}

  if(opc==75)  {opc=NULL;  izquierda();}     if(opc==80)     {opc=NULL;     abajo();}

 if(opc==72) {opc=NULL; arriba();}     if(opc=='r')     {opc=NULL;     poner();}

}}if(opc==27){//exit(1);}

//getch();closegraph();}

//PRIMERA OPCION (DE LA HOJA):void arriba2(){if(l2==90){setcolor(BLACK);settextstyle(2,0,4);outtextxy(110,l2,"2. Venta de articulos.");l2=l2-30;setcolor(2);settextstyle(2,0,4);outtextxy(110,l2,"1. Compra de articulos.");}}

void abajo2(){if(l2==60){

Page 48: Programas en c++

setcolor(BLACK);settextstyle(2,0,4);outtextxy(110,l2,"1. Compra de articulos.");l2=l2+30;setcolor(2);settextstyle(2,0,4);outtextxy(110,l2,"2. Venta de articulos.");}}

void poner3(){empresa pb;empresa_ventas pb4;empresa_ventas2 pb5;

switch (l2){case 60:ingresar2(pb,pb4,pb5);main();break;

case 90:ingresar3(pb,pb4,pb5);main();}}

void ingresar(){int mx1,my1;

//clrscr();cleardevice();setcolor(15);rectangle(1,700,700,1);setfillstyle(1,15);floodfill(4,4,15);

setcolor(BLACK);for(mx1=100;mx1<=500;mx1++){settextstyle(2,0,4);outtextxy(mx1,50,"Ä");outtextxy(mx1,300,"Ä");}for(my1=50;my1<=300;my1++){settextstyle(2,0,4);outtextxy(100,my1,"³");outtextxy(500,my1,"³");}setcolor(2);settextstyle(2,0,4);outtextxy(110,60,"1. Compra de articulos.");setcolor(BLACK);

Page 49: Programas en c++

settextstyle(2,0,4);outtextxy(110,60+30,"2. Venta de articulos.");l2=60;bandera=0;opcion=NULL;while(opcion!=27)

{             opcion=getch();

if(opcion==80||opcion==72||opcion=='r'){

     if(opcion==80)     {opcion=NULL;     abajo2();}

 if(opcion==72) {opcion=NULL; arriba2();}     if(opcion=='r')     {opcion=NULL;     poner3();}

 }}if(opcion==27){main();}

//getch();}

void ingresar2(empresa ptr, empresa_ventas ptr2, empresa_ventas2 ptr4){

struct date d;getdate(&d);int i,reg,reg2;int mx,my;char cod[10],art[50],prov[50];float cant;int i2,j2;float tt,t;int ii,aviso=0;

FILE *ab;FILE *ab2;FILE *diario;

cleardevice();restorecrtmode();clrscr();

for (i2=0; i2<90; i2++){    for (j2=0; j2<80; j2++)    cprintf(" ");    cprintf("rn");    textbackground(BLACK);}

Page 50: Programas en c++

for(x1=3;x1<=77;x1++){gotoxy(x1,9);textcolor(5);cprintf("Ä");gotoxy(x1,11);textcolor(5);cprintf("Ä");gotoxy(x1,13);textcolor(5);cprintf("Ä");gotoxy(x1,15);textcolor(5);cprintf("Ä");}for(y1=9;y1<=15;y1++){gotoxy(3,y1);textcolor(5);cprintf("³");gotoxy(13,y1);textcolor(5);cprintf("³");gotoxy(21,y1);textcolor(5);cprintf("³");gotoxy(50,y1);textcolor(5);cprintf("³");gotoxy(62,y1);textcolor(5);cprintf("³");gotoxy(77,y1);textcolor(5);cprintf("³");}gotoxy(3,9);textcolor(5);cprintf("Ú");gotoxy(13,9);textcolor(5);cprintf("¿");gotoxy(3,15);textcolor(5);cprintf("À");gotoxy(77,15);textcolor(5);cprintf("Ù");gotoxy(77,9);textcolor(5);cprintf("¿");gotoxy(13,15);textcolor(5);cprintf("Ù");gotoxy(21,9);textcolor(5);cprintf("Ú");gotoxy(21,15);textcolor(5);cprintf("À");gotoxy(50,9);textcolor(5);cprintf("¿");gotoxy(50,15);textcolor(5);cprintf("Ù");gotoxy(62,9);textcolor(5);cprintf("Ú");gotoxy(62,15);textcolor(5);cprintf("À");

gotoxy(3,4);textcolor(15);cprintf("Proveedor: ");

for(mx=15;mx<=40;mx++){gotoxy(mx,5);textcolor(15);cprintf("Ä");}for(mx=62;mx<=77;mx++){gotoxy(mx,3);textcolor(15);cprintf("Ä");gotoxy(mx,5);textcolor(15);cprintf("Ä");}for(my=3;my<=5;my++){gotoxy(62,my);textcolor(15);cprintf("³");gotoxy(67,my);textcolor(15);cprintf("³");gotoxy(72,my);textcolor(15);cprintf("³");gotoxy(77,my);textcolor(15);cprintf("³");}gotoxy(62,3);textcolor(15);cprintf("Ú");gotoxy(77,3);textcolor(15);cprintf("¿");gotoxy(62,5);textcolor(15);cprintf("À");gotoxy(77,5);textcolor(15);cprintf("Ù");gotoxy(67,3);textcolor(15);cprintf("Ú");gotoxy(72,3);textcolor(15);cprintf("¿");gotoxy(67,5);textcolor(15);cprintf("À");gotoxy(72,5);textcolor(15);cprintf("Ù");

gotoxy(4,10);textcolor(15);cprintf("CANTIDAD");

Page 51: Programas en c++

gotoxy(14,10);textcolor(15);cprintf("CODIGO ");gotoxy(28,10);textcolor(15);cprintf("ARTICULO");gotoxy(51,10);textcolor(15);cprintf("VALOR");gotoxy(63,10);textcolor(15);cprintf("TOTAL");

gotoxy(63,2);textcolor(BLACK);cprintf("Mes");gotoxy(68,2);textcolor(BLACK);cprintf("D¡a");gotoxy(73,2);textcolor(BLACK);cprintf("A¤o");

gotoxy(63,4);textcolor(15);cprintf("   ");gotoxy(63,4);textcolor(15);cprintf("%d",d.da_mon);

gotoxy(68,4);textcolor(15);cprintf("   ");gotoxy(68,4);textcolor(15);cprintf("%d",d.da_day);

gotoxy(73,4);textcolor(15);cprintf("   ");gotoxy(73,4);textcolor(15);cprintf("%d",d.da_year);

if((ab = fopen("empresa.txt", "a+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }fseek(ab, 0L, SEEK_END);reg3=(int)ftell(ab)/sizeof(empresa);

gotoxy(15,4);textcolor(15);cprintf("                                      ");fflush(stdin);fflush(stdin);gotoxy(15,4);gets(prov);

_setcursortype(_NOCURSOR);

if((diario = fopen("DIARIO.txt", "a+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }

mx=4;my=12;

strcpy(ptr.gg,no);

strcpy(ptr.provedor,prov);

cursor(mx,my);fflush(stdin);gotoxy(4,12);scanf("%f",&ptr.cantidad);ptr.cantidad2=ptr.cantidad;cant=ptr.cantidad;

mx=mx+10;cursor(mx,my);fflush(stdin);

Page 52: Programas en c++

fflush(stdin);gotoxy(14,12);gets(cod);strcpy(ptr.codigo,cod);

mx=mx+14;cursor(mx,my);fflush(stdin);fflush(stdin);gotoxy(28,12);gets(ptr.articulo);

strcpy(art,ptr.articulo);

mx=mx+23;cursor(mx,my);fflush(stdin);gotoxy(51,12);scanf("%f",&ptr.valor);

ptr.total=ptr.cantidad*ptr.valor;tt=ptr.total;

gotoxy(63,12);printf("%.0f",ptr.total);ptr.total=ptr.total+(ptr.cantidad*ptr.valor*iva);t=ptr.total;

ptr.dia=d.da_day;ptr.mes=d.da_mon;ptr.a_o=d.da_year;

gotoxy(27,20);textcolor(15);cprintf("I.V.A  16%");gotoxy(39,20);textcolor(15);cprintf("% .2f",tt*iva);gotoxy(51,20);textcolor(15);cprintf("TOTAL $");gotoxy(63,20);textcolor(15);cprintf("% .0f",t);

fwrite(&ptr, sizeof(empresa), 1, ab);fclose(ab);//POR EL LADO DE LAS COMPRASif((ab2 = fopen("VENTAS.txt", "r+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }  fseek(ab2, 0L, SEEK_END);  reg=(int)ftell(ab2)/sizeof(empresa_ventas);  rewind(ab2);  aviso=0;for(ii=0;ii<reg;ii++){fseek(ab2, (ii) *sizeof(empresa_ventas), SEEK_SET);fread(&ptr2, sizeof(empresa_ventas), 1, ab2);if(strcmpi(ptr2.codigo_venta,cod)==0){if(d.da_mon==ptr2.mes_venta && d.da_day==ptr2.dia_venta && d.da_year==ptr2.a_o_venta && (strcmpi(ptr2.accion,comp)==0)){fseek(ab2, (ii) *sizeof(empresa_ventas), SEEK_SET);ptr2.valor_venta=ptr2.valor_venta+t;ptr2.cantidad_venta=ptr2.cantidad_venta+cant;

Page 53: Programas en c++

fwrite(&ptr2, sizeof(empresa_ventas), 1, ab2);aviso=1;//fflush(ab2);fclose(ab2);}}}//del for ii

if(aviso==0){if((ab2 = fopen("VENTAS.txt", "a+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }   strcpy(ptr2.accion,comp);   strcpy(ptr2.articulo_venta,art);   strcpy(ptr2.codigo_venta,cod);   ptr2.cantidad_venta=cant;   ptr2.valor_venta=t;   ptr2.dia_venta=d.da_day;   ptr2.a_o_venta=d.da_year;   ptr2.mes_venta=d.da_mon;   fwrite(&ptr2, sizeof(empresa_ventas), 1, ab2);//fflush(ab2);fclose(ab2);}//del aviso si es que el codigo del articulo //no coincide con la fecha de alguno que ya estestrcpy(ptr4.accion2,comp);strcpy(ptr4.nombre_proveedor,prov);ptr4.valor_venta2=t;ptr4.valor_iva=tt*iva;ptr4.dia_venta2=d.da_day;ptr4.a_o_venta2=d.da_year;ptr4.mes_venta2=d.da_mon;fwrite(&ptr4, sizeof(empresa_ventas2), 1, diario);fclose(diario);kep=1;gotoxy(22,23);textcolor(7);cprintf("El articulo ha sido a¤adido con ‚xito");sleep(2);}

void ingresar3(empresa ptr, empresa_ventas ptr2, empresa_ventas2 ptr3){

struct date d;getdate(&d);

int i,reg,ii,reg2,i2,j2;int mx,my;char cliente[40],cod[10],art[50];float sum1,tot,total2;float cant=0;float luis=0;int aviso=0;

Page 54: Programas en c++

FILE *ab,*ab2,*ab3;

restorecrtmode();clrscr();_setcursortype(_NOCURSOR);

if((ab3 = fopen("DIARIO.txt", "a+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }

if((ab = fopen("EMPRESA.txt", "r+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }

  fseek(ab, 0L, SEEK_END);  reg=(int)ftell(ab)/sizeof(empresa);

for (i2=0; i2<90; i2++){    for (j2=0; j2<80; j2++)    cprintf(" ");    cprintf("rn");    textbackground(WHITE);}

gotoxy(3,2);textcolor(BLUE);cprintf("...............");gotoxy(3,4);textcolor(BLACK);cprintf("Cliente:");

for(mx=11;mx<=40;mx++){gotoxy(mx,5);textcolor(1);cprintf("Ä");}for(mx=62;mx<=77;mx++){gotoxy(mx,3);textcolor(1);cprintf("Ä");gotoxy(mx,5);textcolor(1);cprintf("Ä");}for(my=3;my<=5;my++){gotoxy(62,my);textcolor(1);cprintf("³");gotoxy(67,my);textcolor(1);cprintf("³");gotoxy(72,my);textcolor(1);cprintf("³");gotoxy(77,my);textcolor(1);cprintf("³");}gotoxy(62,3);textcolor(1);cprintf("Ú");gotoxy(77,3);textcolor(1);cprintf("¿");gotoxy(62,5);textcolor(1);cprintf("À");gotoxy(77,5);textcolor(1);cprintf("Ù");gotoxy(67,3);textcolor(1);cprintf("Ú");gotoxy(72,3);textcolor(1);cprintf("¿");gotoxy(67,5);textcolor(1);cprintf("À");gotoxy(72,5);textcolor(1);cprintf("Ù");

Page 55: Programas en c++

for(mx=3;mx<=77;mx++){gotoxy(mx,9);textcolor(1);cprintf("Ä");gotoxy(mx,11);textcolor(1);cprintf("Ä");gotoxy(mx,13);textcolor(1);cprintf("Ä");gotoxy(mx,15);textcolor(1);cprintf("Ä");gotoxy(mx,17);textcolor(1);cprintf("Ä");gotoxy(mx,19);textcolor(1);cprintf("Ä");gotoxy(mx,21);textcolor(1);cprintf("Ä");}for(my=9;my<=21;my++){gotoxy(3,my);textcolor(1);cprintf("³");gotoxy(13,my);textcolor(1);cprintf("³");gotoxy(21,my);textcolor(1);cprintf("³");gotoxy(50,my);textcolor(1);cprintf("³");gotoxy(62,my);textcolor(1);cprintf("³");gotoxy(77,my);textcolor(1);cprintf("³");}gotoxy(3,9);textcolor(1);cprintf("Ú");gotoxy(13,9);textcolor(1);cprintf("¿");gotoxy(3,21);textcolor(1);cprintf("À");gotoxy(77,21);textcolor(1);cprintf("Ù");gotoxy(77,9);textcolor(1);cprintf("¿");gotoxy(13,21);textcolor(1);cprintf("Ù");gotoxy(21,9);textcolor(1);cprintf("Ú");gotoxy(21,21);textcolor(1);cprintf("À");gotoxy(50,9);textcolor(1);cprintf("¿");gotoxy(50,21);textcolor(1);cprintf("Ù");gotoxy(62,9);textcolor(1);cprintf("Ú");gotoxy(62,21);textcolor(1);cprintf("À");

gotoxy(4,25);textcolor(0);cprintf("RES No. 140000018465 DE FECHA 2006/01/25");

gotoxy(63,2);textcolor(BLACK);cprintf("Mes");gotoxy(68,2);textcolor(BLACK);cprintf("D¡a");gotoxy(73,2);textcolor(BLACK);cprintf("A¤o");gotoxy(4,10);textcolor(BLACK);cprintf("Cantidad");gotoxy(14,10);textcolor(BLACK);cprintf("Codigo");gotoxy(33,10);textcolor(BLACK);cprintf("Detalle");gotoxy(51,10);textcolor(0);cprintf("Vr. Unit");gotoxy(63,10);textcolor(0);cprintf("Vr. Parcial");

cursor(12,4);fflush(stdin);fflush(stdin);gotoxy(12,4);textcolor(0);cprintf("                                      ");gotoxy(12,4);scanf("%[^n]",cliente);fflush(stdin);fflush(stdin);

gotoxy(63,4);textcolor(0);cprintf("   ");gotoxy(63,4);textcolor(0);cprintf("%d",d.da_mon);

gotoxy(68,4);textcolor(0);cprintf("   ");

Page 56: Programas en c++

gotoxy(68,4);textcolor(0);cprintf("%d",d.da_day);

gotoxy(73,4);textcolor(0);cprintf("   ");gotoxy(73,4);textcolor(0);cprintf("%d",d.da_year);

my=12;mx=12;sum1=0;while(my<=22){c=4;cant=0;luis=0;cursor(c,my);gotoxy(c,my);textcolor(0);cprintf("     ");fflush(stdin);fflush(stdin);gotoxy(c,my);textcolor(0);scanf("%f",&cant);luis=cant;

if(cant==0){my=26;}

if(cant!=0){c=14;cursor(c,my);gotoxy(c,my);textcolor(0);cprintf("   ");fflush(stdin);fflush(stdin);gotoxy(c,my);textcolor(0);scanf("%[^n]",cod);fflush(stdin);fflush(stdin);

rewind(ab); //apuntamos al inicio del archivofor (i=0; i<reg; i++)       {       fseek(ab, (i) *sizeof(empresa), SEEK_SET);       fread(&ptr, sizeof(empresa), 1, ab);

if((strcmpi(ptr.codigo,cod)==0)&& (strcmpi(ptr.gg,si)==0)){fseek(ab, (i) *sizeof(empresa), SEEK_SET);//gotoxy(50,23);textcolor(0);cprintf("%.0f",ptr.cantidad);ptr.cantidad=ptr.cantidad-cant;gotoxy(28,my);textcolor(0);cprintf("%s",ptr.articulo);strcpy(art,ptr.articulo);gotoxy(51,my);textcolor(0);cprintf("%.0f",ptr.valor);tot=ptr.valor*cant;gotoxy(63,my);textcolor(0);cprintf("%.0f",tot);fwrite(&ptr, sizeof(empresa), 1, ab);//fflush(ab);fclose(ab);//por el lado de las ventasif((ab2 = fopen("VENTAS.txt", "r+b"))==NULL) //por si hay error

Page 57: Programas en c++

   {      printf("nERRRROR");      //exit(0);   }  fseek(ab2, 0L, SEEK_END);  reg2=(int)ftell(ab2)/sizeof(empresa_ventas);  rewind(ab2);  aviso=0;for(ii=0;ii<reg2;ii++){fseek(ab2, (ii) *sizeof(empresa_ventas), SEEK_SET);fread(&ptr2, sizeof(empresa_ventas), 1, ab2);if(strcmpi(ptr2.codigo_venta,cod)==0){if(d.da_mon==ptr2.mes_venta && d.da_day==ptr2.dia_venta && d.da_year==ptr2.a_o_venta && (strcmpi(ptr2.accion,vent)==0)){fseek(ab2, (ii) *sizeof(empresa_ventas), SEEK_SET);aviso=1;ptr2.valor_venta=ptr2.valor_venta + tot;fflush(stdin);ptr2.cantidad_venta = ptr2.cantidad_venta + luis;fflush(stdin);//gotoxy(30,23);textcolor(0);cprintf("%.0f",ptr2.cantidad_venta);fwrite(&ptr2, sizeof(empresa_ventas), 1, ab2);//fflush(ab2);fclose(ab2);}

}}//del for iiif(aviso==0){if((ab2 = fopen("VENTAS.txt", "a+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }   strcpy(ptr2.accion,vent);   strcpy(ptr2.articulo_venta,art);   strcpy(ptr2.codigo_venta,cod);   ptr2.cantidad_venta=cant;   ptr2.valor_venta=tot;   ptr2.dia_venta=d.da_day;   ptr2.a_o_venta=d.da_year;   ptr2.mes_venta=d.da_mon;   fwrite(&ptr2, sizeof(empresa_ventas), 1, ab2);//fflush(ab2);fclose(ab2);}//del aviso si es que el codigo del articulo //no coincide con la fecha de alguno que ya este}

}sum1=sum1+tot;my=my+2;

}//del else

Page 58: Programas en c++

}//del whilegotoxy(27,23);textcolor(RED);cprintf("I.V.A  16%");total2=sum1*iva;strcpy(ptr3.accion2,vent);strcpy(ptr3.nombre_cliente,cliente);ptr3.valor_venta2=sum1;ptr3.valor_iva=total2;ptr3.dia_venta2=d.da_day;ptr3.a_o_venta2=d.da_year;ptr3.mes_venta2=d.da_mon;fwrite(&ptr3, sizeof(empresa_ventas2), 1, ab3);//fflush(ab3);fclose(ab3);

gotoxy(39,23);textcolor(RED);cprintf("% .2f",total2);gotoxy(51,23);textcolor(RED);cprintf("TOTAL $");total2=total2+sum1;gotoxy(63,23);textcolor(RED);cprintf("% .0f",total2);getch();

}

//OPCION DISQUETE:

void guardar(empresa ptr){

if(kep==1){FILE *ab;int reg,i;

if((ab = fopen("empresa.txt", "r+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }

  fseek(ab, 0L, SEEK_END);  reg=(int)ftell(ab)/sizeof(empresa);

  rewind(ab); //apuntamos al inicio del archivo

   for (i=reg3; i<reg; i++)       {       fseek(ab, (i) *sizeof(empresa), SEEK_SET);       fread(&ptr, sizeof(empresa), 1, ab);       fseek(ab, (i) *sizeof(empresa), SEEK_SET);       printf("%sn",ptr.gg);       strcpy(ptr.gg,si);       printf("%sn",ptr.articulo);       printf("%s",ptr.gg);       fwrite(&ptr, sizeof(empresa), 1, ab);       //getch();

}

fclose(ab);

Page 59: Programas en c++

kep=0;//getch();}

}

//ABRIR:void arriba4(){if(l2>60){l2=l2-30;switch(l2){case 60:setcolor(BLACK);settextstyle(2,0,4);outtextxy(110,90,"2. Libro de Inventario.");outtextxy(110,120,"3. Listado de articulos.");outtextxy(110,150,"4. Estado Financiero.");setcolor(2);settextstyle(2,0,4);outtextxy(110,l2,"1. Libro Diario.");break;case 90:setcolor(BLACK);settextstyle(2,0,4);outtextxy(110,60,"1. Libro Diario.");outtextxy(110,120,"3. Listado de articulos.");outtextxy(110,150,"4. Estado Financiero.");setcolor(2);settextstyle(2,0,4);outtextxy(110,l2,"2. Libro de Inventario.");break;case 120:setcolor(BLACK);settextstyle(2,0,4);outtextxy(110,60,"1. Libro Diario.");outtextxy(110,90,"2. Libro de Inventario.");outtextxy(110,150,"4. Estado Financiero.");setcolor(2);settextstyle(2,0,4);outtextxy(110,l2,"3. Listado de articulos.");break;case 150:setcolor(BLACK);settextstyle(2,0,4);outtextxy(110,60,"1. Libro Diario.");outtextxy(110,90,"2. Libro de Inventario.");outtextxy(110,120,"3. Listado de articulos.");setcolor(2);settextstyle(2,0,4);outtextxy(110,l2,"4. Estado Financiero.");}}}

Page 60: Programas en c++

void abajo4(){if(l2<150){l2=l2+30;switch(l2){case 60:setcolor(BLACK);settextstyle(2,0,4);outtextxy(110,90,"2. Libro de Inventario.");outtextxy(110,120,"3. Listado de articulos.");outtextxy(110,150,"4. Estado Financiero.");setcolor(2);settextstyle(2,0,4);outtextxy(110,l2,"1. Libro Diario.");break;case 90:setcolor(BLACK);settextstyle(2,0,4);outtextxy(110,60,"1. Libro Diario.");outtextxy(110,120,"3. Listado de articulos.");outtextxy(110,150,"4. Estado Financiero.");setcolor(2);settextstyle(2,0,4);outtextxy(110,l2,"2. Libro de Inventario.");break;case 120:setcolor(BLACK);settextstyle(2,0,4);outtextxy(110,60,"1. Libro Diario.");outtextxy(110,90,"2. Libro de Inventario.");outtextxy(110,150,"4. Estado Financiero.");setcolor(2);settextstyle(2,0,4);outtextxy(110,l2,"3. Listado de articulos.");break;case 150:setcolor(BLACK);settextstyle(2,0,4);outtextxy(110,60,"1. Libro Diario.");outtextxy(110,90,"2. Libro de Inventario.");outtextxy(110,120,"3. Listado de articulos.");setcolor(2);settextstyle(2,0,4);outtextxy(110,l2,"4. Estado Financiero.");

}}}

void poner4(){empresa pb;empresa_ventas pb4;empresa_ventas2 pb5;

Page 61: Programas en c++

switch (l2){case 60:lib_diario(pb,pb5);main();break;

case 90:inventario(pb,pb4);main();break;

case 120:listar(pb);main();break;

case 150:estado_financiero(pb5);main();}}

void abrir(){int mx1,my1;

//clrscr();cleardevice();setcolor(15);rectangle(1,700,700,1);setfillstyle(1,15);floodfill(4,4,15);

setcolor(BLACK);for(mx1=100;mx1<=500;mx1++){settextstyle(2,0,4);outtextxy(mx1,50,"Ä");outtextxy(mx1,300,"Ä");}for(my1=50;my1<=300;my1++){settextstyle(2,0,4);outtextxy(100,my1,"³");outtextxy(500,my1,"³");}setcolor(2);settextstyle(2,0,4);outtextxy(110,60,"1. Libro Diario.");setcolor(BLACK);settextstyle(2,0,4);outtextxy(110,60+30,"2. Libro de Inventario.");outtextxy(110,90+30,"3. Listado de articulos.");outtextxy(110,120+30,"4. Estado Financiero.");l2=60;bandera=0;

Page 62: Programas en c++

opcion2=NULL;while(opcion2!=27)

{             opcion2=getch();

if(opcion2==80||opcion2==72||opcion2=='r'){

     if(opcion2==80)     {opcion2=NULL;     abajo4();}

 if(opcion2==72) {opcion2=NULL; arriba4();}     if(opcion2=='r')     {opcion2=NULL;     poner4();}

 }}if(opcion2==27){main();}

//getch();}

void lib_diario(empresa ptr, empresa_ventas2 ptr2){int fil,col;int i2,j2;int i, reg;int my1,mx1;int despy=50,despyv=170;float suma_p;float suma_total;char suma_total2[500];float iva_total;char iva_total2[100];float total_comercio;char total_comercio2[500];char diaf[10],mesf[10],a_of[20];char string[10];char string1[10];char string2[20];char string3[100];char string4[100];char string5[100];char suma_p2[100];float valor_mas_iva;char valor_mas_iva2[100];float valor_to;char valor_to2[100];

restorecrtmode();clrscr();for (i2=0; i2<90; i2++){    for (j2=0; j2<80; j2++)

Page 63: Programas en c++

    cprintf(" ");    cprintf("rn");    textbackground(BLACK);}gotoxy(28,1);textcolor(15);cprintf("INGRESE FECHA");for(mx1=20;mx1<=50;mx1++){gotoxy(mx1,2);textcolor(15);cprintf("Í");gotoxy(mx1,4);textcolor(15);cprintf("Í");}for(my1=2;my1<=4;my1++){gotoxy(20,my1);textcolor(15);cprintf("º");gotoxy(30,my1);textcolor(15);cprintf("º");gotoxy(40,my1);textcolor(15);cprintf("º");gotoxy(50,my1);textcolor(15);cprintf("º");}gotoxy(20,2);textcolor(15);cprintf("É");gotoxy(20,4);textcolor(15);cprintf("È");gotoxy(50,2);textcolor(15);cprintf("»");gotoxy(50,4);textcolor(15);cprintf("¼");gotoxy(30,2);textcolor(15);cprintf("»");gotoxy(30,4);textcolor(15);cprintf("¼");gotoxy(40,2);textcolor(15);cprintf("É");gotoxy(40,4);textcolor(15);cprintf("È");gotoxy(24,5);textcolor(15);cprintf("DIA");gotoxy(34,5);textcolor(15);cprintf("MES");gotoxy(44,5);textcolor(15);cprintf("A¥O");

fflush(stdin);gotoxy(22,3);textcolor(7);scanf("%[^n]",diaf);fflush(stdin);gotoxy(32,3);textcolor(7);scanf("%[^n]",mesf);fflush(stdin);gotoxy(42,3);textcolor(7);scanf("%[^n]",a_of);fflush(stdin);

setgraphmode(getgraphmode());cleardevice();FILE *ab;

setcolor(15);rectangle(75,20,525,5);rectangle(50,65,550,25);rectangle(80,60,100,45);rectangle(104,60,124,45);rectangle(128,60,148,45);rectangle(5,110,595,70);rectangle(5,470,595,70);rectangle(5,470,80,70);rectangle(80,470,321,70);rectangle(321,470,458,70);rectangle(388,470,389,85);rectangle(458,470,595,70);rectangle(525,470,526,85);rectangle(321,85,595,70);setcolor(7);

Page 64: Programas en c++

settextstyle(2,0,4);outtextxy(210,30,"Comprobante diario de contabilidad");outtextxy(10,85,"CODIGO");outtextxy(130,85,"DETALLE");outtextxy(339,73,"PARCIALES");outtextxy(476,73,"TOTALES");settextstyle(12,0,1);outtextxy(323,92,"Debe");outtextxy(461,92,"Debe");outtextxy(392,92,"Haber");outtextxy(529,92,"Haber");

settextstyle(2,0,3);outtextxy(86,48,diaf);outtextxy(107,48,mesf);outtextxy(130,48,a_of);

int cl=0;

if((ab = fopen("DIARIO.txt", "r+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }       fseek(ab, 0L, SEEK_END);       reg=(int)ftell(ab)/sizeof(empresa_ventas2);       rewind(ab);       despyv=170;       suma_total=0;       suma_p=0;       valor_mas_iva=0;       valor_to=0;       for(fil=0;fil<5;fil++)       {       col=10;       cl=0;

       for (i=0; i<reg; i++)       {       fseek(ab, (i) *sizeof(empresa_ventas2), SEEK_SET);       fread(&ptr2, sizeof(empresa_ventas2), 1, ab);       itoa(ptr2.dia_venta2, string, 10);       itoa(ptr2.mes_venta2, string1, 10);       itoa(ptr2.a_o_venta2, string2, 10);       itoa(ptr2.valor_venta2, string3, 10);       itoa(ptr2.valor_iva, string4, 10);       if((strcmpi(diaf,string)==0) && (strcmpi(mesf,string1)==0))       {       if(strcmpi(ptr2.accion2,vent)==0)       {       if(fil==0&&cl==0)       {       cl=1;       setcolor(7);       settextstyle(2,0,4);       outtextxy(15,despyv-10,"1305");       outtextxy(84,despyv-10,"CLIENTES");

Page 65: Programas en c++

       }       if(fil==2&&cl==0)       {       cl=1;       setcolor(7);       outtextxy(15,despyv-10,"2408");       outtextxy(84,despyv-10,"IVA POR PAGAR");       }       if(fil==3&&cl==0)       {       cl=1;       setcolor(7);       outtextxy(15,despyv-10,"4135");       outtextxy(84,despyv-10,"COMERCIO AL POR MAYOR Y MENOR");       setcolor(15);       outtextxy(15,despyv,"413540");       outtextxy(84,despyv,"Credito, facturas No.");       }       if(fil==0)       {       setcolor(15);       settextstyle(2,0,4);       outtextxy(15,despyv,"13050502");       outtextxy(84,despyv,ptr2.nombre_cliente);       valor_mas_iva=ptr2.valor_venta2+ptr2.valor_iva;       valor_to=valor_to+valor_mas_iva;       itoa(valor_mas_iva,valor_mas_iva2, 10);       outtextxy(323,despyv,valor_mas_iva2);       suma_total=suma_total+ptr2.valor_venta2;       despyv=despyv+12;       }       if(fil==2)       {       setcolor(15);       settextstyle(2,0,4);       outtextxy(15,despyv,"240810");       outtextxy(84,despyv,"Ventas credito");       outtextxy(391,despyv,string4);       col=col+12;       despyv=despyv+12;       }       }//de la accion de vender       if(strcmpi(ptr2.accion2,comp)==0)       {       valor_mas_iva=0;       if(fil==1&&cl==0)       {       cl=1;       setcolor(7);       settextstyle(2,0,4);       outtextxy(15,despyv-10,"2205");       outtextxy(84,despyv-10,"PROVEEDORES NACIONALES");       }       if(fil==4&&cl==0)       {       cl=1;       setcolor(7);

Page 66: Programas en c++

       outtextxy(15,despyv-10,"6205");       outtextxy(84,despyv-10,"COMPRAS DE MERCANCIAS");       setcolor(15);       outtextxy(15,despyv,"620505");       outtextxy(84,despyv,"Credito, factura No.");       }       if(fil==1)       {       setcolor(15);       settextstyle(2,0,4);       outtextxy(15,despyv,"220503");       outtextxy(84,despyv,ptr2.nombre_proveedor);       valor_mas_iva=ptr2.valor_venta2;       ltoa(valor_mas_iva,valor_mas_iva2, 10);       outtextxy(391,despyv,valor_mas_iva2);       suma_p=suma_p+valor_mas_iva;       col=col+12;       despyv=despyv+12;       }       }//de la accion de comprar       }//del if de comparar la fecha       } //acaba el segundo for con i       if(cl==1)       {       if(fil==0)       {       ltoa(valor_to,valor_to2,10);       outtextxy(463,160,valor_to2);       despyv=despyv+20;       }       if(fil==1)       {       ltoa(suma_p,suma_p2,10);       outtextxy(528,despyv-col,suma_p2);       despyv=despyv+20;       }       if(fil==2)       {       iva_total=suma_total*iva;       itoa(iva_total,iva_total2,10);       outtextxy(528,despyv-col,iva_total2);       despyv=despyv+20;       }

       if(fil==3)       {       total_comercio=suma_total;       ltoa(total_comercio,total_comercio2,10);       outtextxy(392,despyv,total_comercio2);       outtextxy(528,despyv,total_comercio2);       despyv=despyv+20;       }

       if(fil==4)       {       outtextxy(323,despyv,suma_p2);       outtextxy(461,despyv,suma_p2);

Page 67: Programas en c++

       }       }//para ver si entro en cl       }

       fclose(ab);       /*strcpy(ptr3.articulo_venta2,art);strcpy(ptr3.codigo_venta2,cod);strcpy(ptr3.nombre_cliente,cliente);ptr3.cantidad_venta2=cant;ptr3.valor_venta2=total2;ptr3.valor_iva=tot*0.16;ptr3.dia_venta2=d.da_day;ptr3.a_o_venta2=d.da_year;ptr3.mes_venta2=d.da_mon;*/getch();}

void listar(empresa ptr){

int i2,j2;int i, reg;int my1,mx1;int despy=80;char nn[50];char string[50];char string1[100];char string2[20];

restorecrtmode();clrscr();for (i2=0; i2<90; i2++){    for (j2=0; j2<80; j2++)    cprintf(" ");    cprintf("rn");    textbackground(BLACK);}gotoxy(21,1);textcolor(15);cprintf("INGRESE NOMBRE DEL ARTICULO");for(mx1=20;mx1<=50;mx1++){gotoxy(mx1,2);textcolor(15);cprintf("Í");gotoxy(mx1,4);textcolor(15);cprintf("Í");}for(my1=2;my1<=4;my1++){gotoxy(20,my1);textcolor(15);cprintf("º");gotoxy(50,my1);textcolor(15);cprintf("º");}gotoxy(20,2);textcolor(15);cprintf("É");gotoxy(20,4);textcolor(15);cprintf("È");gotoxy(50,2);textcolor(15);cprintf("»");gotoxy(50,4);textcolor(15);cprintf("¼");

_setcursortype(_NOCURSOR);cursor(22,3);gotoxy(22,3);textcolor(7);cprintf("                ");

Page 68: Programas en c++

fflush(stdin);gotoxy(22,3);textcolor(7);scanf("%[^n]",nn);fflush(stdin);

setgraphmode(getgraphmode());cleardevice();FILE *ab;

setcolor(15);rectangle(5,450,595,5);rectangle(50,450,230,5);rectangle(230,450,300,5);rectangle(397,450,595,5);rectangle(5,40,595,5);

setcolor(7);settextstyle(12,0,1);outtextxy(8,20,"Cant");outtextxy(111,20,"Articulo");outtextxy(242,20,"Codigo");outtextxy(315,20,"Valor");outtextxy(415,20,"Proveedor");

if((ab = fopen("EMPRESA.txt", "r+b"))==NULL) //por si hay error   {      printf("nERRRROR");      exit(0);   }       fseek(ab, 0L, SEEK_END);       reg=(int)ftell(ab)/sizeof(empresa);       rewind(ab);       despy=80;

       for (i=0; i<reg; i++)   {       fseek(ab, (i) *sizeof(empresa), SEEK_SET);       fread(&ptr, sizeof(empresa), 1, ab);

 if((strncmpi(ptr.articulo,nn,strlen(nn))==0) && (strcmpi(ptr.gg,si)==0))

   {   itoa(ptr.cantidad, string, 10);   itoa(ptr.valor, string1, 10);   settextstyle(2,0,4);   outtextxy(8,despy,string);   outtextxy(53,despy,ptr.articulo);   outtextxy(233,despy,ptr.codigo);   outtextxy(303,despy,string1);   outtextxy(435,despy,ptr.provedor);   despy=despy+10;}

       }

fclose(ab);getch();

}

Page 69: Programas en c++

void inventario(empresa ptr, empresa_ventas ptr2){int i2,j2;int i, reg;int fil, reg2;int my1,mx1;int despy=80;int res=0;char nn[50];char string[50];char string1[100];char string2[50];char std[10],std2[10],std3[10];int began=0;float res2=0, began2=0;char res2_string[100];char val[100];float began3=0;char val_unitario[100];float compra1=0,compra2=0,compra3=0;char compra1_string[100],compra2_string[100],compra3_string[100];

restorecrtmode();clrscr();for (i2=0; i2<90; i2++){    for (j2=0; j2<80; j2++)    cprintf(" ");    cprintf("rn");    textbackground(BLACK);}gotoxy(21,1);textcolor(15);cprintf("INGRESE CODIGO DEL ARTICULO");for(mx1=20;mx1<=50;mx1++){gotoxy(mx1,2);textcolor(15);cprintf("Í");gotoxy(mx1,4);textcolor(15);cprintf("Í");}for(my1=2;my1<=4;my1++){gotoxy(20,my1);textcolor(15);cprintf("º");gotoxy(50,my1);textcolor(15);cprintf("º");}gotoxy(20,2);textcolor(15);cprintf("É");gotoxy(20,4);textcolor(15);cprintf("È");gotoxy(50,2);textcolor(15);cprintf("»");gotoxy(50,4);textcolor(15);cprintf("¼");

_setcursortype(_NOCURSOR);cursor(22,3);fflush(stdin);gotoxy(22,3);textcolor(7);scanf("%[^n]",nn);fflush(stdin);

setgraphmode(getgraphmode());cleardevice();FILE *ab, *vent_a;

Page 70: Programas en c++

setcolor(15);rectangle(1,450,630,5);rectangle(1,20,50,5);rectangle(1,35,630,5);rectangle(15,450,27,20);rectangle(50,450,205,5);rectangle(300,450,410,5);rectangle(410,450,520,5);rectangle(300,20,630,5);rectangle(300,450,340,20);rectangle(410,450,450,20);rectangle(520,450,560,20);setcolor(7);settextstyle(2,0,4);

   outtextxy(6,8,"Fecha");   outtextxy(4,24,"D");   outtextxy(17,24,"M");   outtextxy(32,24,"A");   outtextxy(108,20,"Detalle");   outtextxy(207,20,"Valor Unitario");   outtextxy(308,8,"Entradas");   outtextxy(418,8,"Salidas");   outtextxy(528,8,"Totales");   outtextxy(303,24,"Cant");   outtextxy(413,24,"Cant");   outtextxy(523,24,"Cant");   outtextxy(343,24,"Valor");   outtextxy(453,24,"Valor");   outtextxy(563,24,"Valor");

if((ab = fopen("EMPRESA.txt", "r+b"))==NULL) //por si hay error   {      printf("nERRRROR");      exit(0);   }       fseek(ab, 0L, SEEK_END);       reg=(int)ftell(ab)/sizeof(empresa);       rewind(ab);       despy=50;

       for (i=0; i<reg; i++)   {       fseek(ab, (i) *sizeof(empresa), SEEK_SET);       fread(&ptr, sizeof(empresa), 1, ab);

 if((strcmpi(ptr.codigo,nn)==0) && (strcmpi(ptr.gg,si)==0))   {

began3=ptr.valor;began2=ptr.valor*ptr.cantidad2;began=ptr.cantidad2;i=reg;if((vent_a = fopen("VENTAS.txt", "r+b"))==NULL) //por si hay error   {      printf("nERRRROR");

Page 71: Programas en c++

      exit(0);   }       fseek(vent_a, 0L, SEEK_END);       reg2=(int)ftell(vent_a)/sizeof(empresa_ventas);       rewind(vent_a);       for(fil=0;fil<reg2;fil++)       {       fseek(vent_a, (fil) *sizeof(empresa_ventas), SEEK_SET);       fread(&ptr2, sizeof(empresa_ventas), 1, vent_a);

 if(strcmpi(ptr2.codigo_venta,nn)==0)   {   if(strcmpi(ptr2.accion,vent)==0)//Ventas   {   //gotoxy(1,80);printf("%.0f",began2);   res=began-ptr2.cantidad_venta;   res2=began2-ptr2.valor_venta;   ltoa(ptr2.valor_venta,val, 10);   itoa(res,string, 10);   itoa(ptr2.cantidad_venta,string2, 10);   itoa(began3,val_unitario, 10);   ltoa(res2,res2_string, 10);   setcolor(15);   settextstyle(2,0,4);   outtextxy(563,despy,res2_string);   outtextxy(523,despy,string);   outtextxy(452,despy,val);   outtextxy(413,despy,string2);   outtextxy(207,despy,val_unitario);

   itoa(ptr2.dia_venta,std, 10);   itoa(ptr2.mes_venta,std2, 10);   itoa(ptr2.a_o_venta,std3, 10);   outtextxy(54,despy,ptr2.articulo_venta);   outtextxy(3,despy,std);   outtextxy(15,despy,std2);   outtextxy(28,despy,std3);

   began=res;   began2=res2;   despy=despy+12;   }//del if de saber si es una venta   if(strcmpi(ptr2.accion,comp)==0)//Ventas   {   res=res+ptr2.cantidad_venta;   res2=res2+(began3*ptr2.cantidad_venta);   compra1=res2;   compra2=began3*ptr2.cantidad_venta;   compra3=res;

   ltoa(compra1,compra1_string, 10);   ltoa(compra2,compra2_string, 10);   itoa(compra3,compra3_string, 10);   itoa(ptr2.cantidad_venta,string2, 10);   itoa(began3,val_unitario, 10);

   setcolor(15);   settextstyle(2,0,4);

Page 72: Programas en c++

   outtextxy(563,despy,compra1_string);   outtextxy(523,despy,compra3_string);   outtextxy(343,despy,compra2_string);   outtextxy(303,despy,string2);   outtextxy(207,despy,val_unitario);   itoa(ptr2.dia_venta,std, 10);   itoa(ptr2.mes_venta,std2, 10);   itoa(ptr2.a_o_venta,std3, 10);   outtextxy(54,despy,ptr2.articulo_venta);   outtextxy(3,despy,std);   outtextxy(15,despy,std2);   outtextxy(28,despy,std3);

   despy=despy+12;   }//del if de saber si es una compra

   }       }//para el for de las ventas

   } //del if despues de encontrarlo en la empresa

   } //del for

   fclose(ab);   fclose(vent_a);getch();}

//LA OPCION DE PAPELERA

void abb(){if(bb2<270){setcolor(0);settextstyle(2,0,4);rectangle(bb2,280,bb2+40,268);bb2=bb2+60;setcolor(5);settextstyle(2,0,4);rectangle(bb2,280,bb2+40,268);}}

void ar(){if(bb2>210){setcolor(0);settextstyle(2,0,4);rectangle(bb2,280,bb2+40,268);bb2=bb2-60;setcolor(5);settextstyle(2,0,4);rectangle(bb2,280,bb2+40,268);}}

Page 73: Programas en c++

void pon(){empresa pb;if(bb2==210){confirmado=1;subpro(pb);main();}if(bb2==270){confirmado=0;main();}}

void delet(empresa ptr){int i2,j2,my1,mx1;char nn[50];char string[50];char string1[50];char bb;

restorecrtmode();clrscr();

for (i2=0; i2<90; i2++){    for (j2=0; j2<80; j2++)    cprintf(" ");    cprintf("rn");    textbackground(BLACK);}gotoxy(30,1);textcolor(15);cprintf("ARTICULO");for(mx1=20;mx1<=50;mx1++){gotoxy(mx1,2);textcolor(15);cprintf("Í");gotoxy(mx1,4);textcolor(15);cprintf("Í");}for(my1=2;my1<=4;my1++){gotoxy(20,my1);textcolor(15);cprintf("º");gotoxy(50,my1);textcolor(15);cprintf("º");}gotoxy(20,2);textcolor(15);cprintf("É");gotoxy(20,4);textcolor(15);cprintf("È");gotoxy(50,2);textcolor(15);cprintf("»");gotoxy(50,4);textcolor(15);cprintf("¼");

_setcursortype(_NOCURSOR);cursor(22,3);fflush(stdin);fflush(stdin);gotoxy(22,3);textcolor(7);gets(nn);

Page 74: Programas en c++

fflush(stdin);fflush(stdin);strcpy(encontrado,nn);

FILE *ab;int reg,i;

if((ab = fopen("empresa.txt", "r+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }

  fseek(ab, 0L, SEEK_END);  reg=(int)ftell(ab)/sizeof(empresa);

  rewind(ab); //apuntamos al inicio del archivo

   for (i=reg3; i<reg; i++)       {       fseek(ab, (i) *sizeof(empresa), SEEK_SET);       fread(&ptr, sizeof(empresa), 1, ab);

       if(( (strcmpi(ptr.codigo,nn)==0) && (strcmpi(ptr.gg,si)==0) ) || ( (strcmpi(ptr.articulo,nn)==0) && (strcmpi(ptr.gg,si)==0)) )       {       setgraphmode(getgraphmode());       cleardevice();setcolor(15);rectangle(5,200,595,5);rectangle(50,200,230,5);rectangle(230,200,300,5);rectangle(397,200,595,5);rectangle(5,50,595,5);

setcolor(7);settextstyle(12,0,3);outtextxy(8,20,"Cant");outtextxy(111,20,"Articulo");outtextxy(242,20,"Codigo");outtextxy(315,20,"Valor");outtextxy(415,20,"Proveedor");

   itoa(ptr.cantidad, string, 10);   itoa(ptr.valor, string1, 10);   setcolor(5);   settextstyle(6,0,1);   outtextxy(8,60,string);   outtextxy(53,60,ptr.articulo);   outtextxy(233,60,ptr.codigo);   outtextxy(303,60,string1);   outtextxy(410,60,ptr.provedor);

   setcolor(15);   rectangle(190,300,420,230);   setfillstyle(1,15);   floodfill(193,233,15);

Page 75: Programas en c++

   bb2=210;   setcolor(0);   settextstyle(2,0,4);   outtextxy(192,240,"Confirme eliminar registro.");   rectangle(210,280,250,268);   rectangle(270,280,310,268);   outtextxy(216,268,"Si");   outtextxy(276,268,"No");   setcolor(5);   rectangle(210,280,250,268);   fclose(ab);   while(bb!=27)

{             bb=getch();

if(bb==77||bb==75||bb=='r'){

     if(bb==77)     {bb=NULL;     abb();}

 if(bb==75) {bb=NULL; ar();}     if(bb=='r')     {bb=NULL;     pon();}

 }}if(bb==27){main();}

   }

}

}

void subpro(empresa ptr){FILE *ab;int i, reg;if((ab = fopen("empresa.txt", "r+b"))==NULL) //por si hay error   {      printf("nERRRROR");      //exit(0);   }   fseek(ab, 0L, SEEK_END);   reg=(int)ftell(ab)/sizeof(empresa);

  rewind(ab); //apuntamos al inicio del archivo

   for (i=reg3; i<reg; i++)       {       fseek(ab, (i) *sizeof(empresa), SEEK_SET);       fread(&ptr, sizeof(empresa), 1, ab);

Page 76: Programas en c++

       if( (strcmpi(encontrado,ptr.codigo)==0) || (strcmpi(encontrado,ptr.articulo)==0) )       {       fseek(ab, (i) *sizeof(empresa), SEEK_SET);       printf("%sn",ptr.gg);       strcpy(ptr.gg,no);       printf("%sn",ptr.articulo);       printf("%s",ptr.gg);       fwrite(&ptr, sizeof(empresa), 1, ab);       }       //getch();

}

}

void estado_financiero(empresa_ventas2 ptr){cleardevice();int reg,i;float caja=0;float pasivo=0;float activo=0;float patrimonio=0;float totalpas=0;float totalpat=0;char totalpas2[100];char t

este programa enseña a los niños a multiplicar tiene varias opciones k puedes escoger con las teclas direccionales y tiene varias funciones de colores k creo te van a interesar.!!!!!!""!OW=

#include <stdio.h>#include <iostream.h>#include <conio.h>#include <stdlib.h>#include <time.h>#include <windows.h>#include <dos.h>#include <math.h>#include <ctype.h>#define MAX 10

void menu_opciones(int n,char *menu[],int *m);void color1();void color2();void loading(int n);void opciones();

Page 77: Programas en c++

void instrucciones();void tituloa();void titulob();void opciones_multiplicacion();void basico();void ejerciciosb();void multiplicar();void intermedio();void ejerciciosi();void avansado();

void instrucciones(){   textbackground(BLACK);   textcolor(CYAN);   clrscr();   gotoxy(30,1);cprintf("Instrucciones");   gotoxy(30,2);cprintf("-------------");   getch();gotoxy(1,4);cprintf("1)Para poder desplazarte en las opciones utiliza las teclas direccionales.");   getch();cout<<endl<<endl;cprintf("2)Para ingresar a alguna opcion preciona enter.");   getch();cout<<endl<<endl;cprintf("3)Cuando te hagan la pregunta 'deseas continuar' ingresa la letra s si es si y n si es no. ");   getch();cout<<endl<<endl;cprintf("4)Puedes precionar cualquier tecla para continuar en los conceptos.");   getch();cout<<endl<<endl;cprintf("5)Cuando ingreses a los ejercicios ingresa primero la respuesta y luego precionas enter.");   getch();   opciones();}

void color1()   {textbackground(BLACK);textcolor(CYAN);}

void color2()   {textbackground(WHITE);textcolor(CYAN);}

void loading(int n){   textcolor(CYAN);gotoxy(35,11);cprintf("CARGANDO");   for(int h=1;h<4;h++){     for(int i=5;i<67;i++)       {gotoxy(i,24);cout<<" °°±±²²Û";Sleep(n);}     for(int j=66;j>4;j--)       {gotoxy(j,24);cout<<"Û²²±±°° ";Sleep(n);}   }   textcolor(CYAN);gotoxy(35,11);cprintf("  ENTER ");   color2();gotoxy(13,24);cprintf("NOTA: Usa las flechas direccionales para desplazarte ");getch();}

void tituloa(){    color1();    clrscr();    gotoxy(30,1);cprintf("APRENDIENDO MATEMATICA");    gotoxy(30,2);cprintf("=========== ==========");    gotoxy(10,5);cprintf("Elija la opcion:");}

Page 78: Programas en c++

void titulob(){   color1();   clrscr();   gotoxy(30,1);cprintf("APRENDIENDO A MULTIPLICAR");   gotoxy(30,2);cprintf("=========== = ===========");   gotoxy(10,5);cprintf("Elija la opcion:");}

void menu_opciones(int n, char *menu[], int *m){   int linea=0,tecla,p=5,a=7,posiciones[MAX];   for(int h=0;h<n;h++){     posiciones[h]=a;a=a+2;   }   do{color1();    for(int k=0;k<n;k++){      gotoxy(29,p=p+2);cprintf(menu[k]);    }    p=5;    color2();gotoxy(29,posiciones[0+linea]);cprintf(menu[linea]);    tecla=getch();

    if(tecla==80){     if(linea<n-1)      {linea++;}    }    else{       if(tecla==72){        if(linea>0)         {linea--;}       }    }   }while(tecla!=13);   *m=linea;}void calculadora(){   char *menu[6]={"Suma","Resta","Multiplicacion","Divicion","Calculadora Cientifica","Salir"};   char c;   int n1,n2,op;   cout<<"a";   color1();   clrscr();   do{   clrscr();   gotoxy(30,1);cprintf("Calculadora Cientifica");   gotoxy(30,2);cprintf("=========== ==========");   gotoxy(1,5);cprintf("numero[1]: ");   cin>>n1;cout<<"a";   gotoxy(1,6);cprintf("numero[2]: ");   cin>>n2;cout<<"a";   cout<<endl;cprintf("La suma es: ");cout<<(n1+n2);   cout<<endl;cprintf("La resta es: ");cout<<(n1-n2);   cout<<endl;cprintf("La multiplicacion es: ");cout<<(n1*n2);   cout<<endl;cprintf("La divicion es: ");cout<<(n1/n2);   cout<<endl;cprintf("El residuo es: ");cout<<(n1%n2);

Page 79: Programas en c++

   cout<<endl;cprintf("La potencia de %d",n1);cprintf(" elevado a %d",n2);cprintf(" es: ");cout<<pow(n1,n2);   cout<<endl;cprintf("La raiz cuadrada de %d",n1);cprintf(" es: ");cout<<sqrt(float(n1));   cout<<endl;cprintf("La raiz cuadrada de %d",n2);cprintf(" es: ");cout<<sqrt(float(n2));   cout<<endl;cprintf("El seno de %d",n1);cprintf(" es: ");cout<<sin(n1);   cout<<endl;cprintf("El seno de %d",n2);cprintf(" es: ");cout<<sin(n2);   cout<<endl;cprintf("El coseno de %d",n1);cprintf(" es: ");cout<<cos(n1);   cout<<endl;cprintf("El coseno de %d",n2);cprintf(" es: ");cout<<cos(n2);   cout<<endl;cprintf("La tangente de %d",n1);cprintf(" es: ");cout<<tan(n1);   cout<<endl;cprintf("La tangente de %d",n2);cprintf(" es: ");cout<<tan(n2);   cout<<endl;cprintf("La cotangente de %d",n1);cprintf(" es: ");cout<<pow(tan(n1),-1);   cout<<endl;cprintf("La cotangente de %d",n2);cprintf(" es: ");cout<<pow(tan(n2),-1);   cout<<endl;cprintf("La secante de %d",n1);cprintf(" es: ");cout<<pow(cos(n1),-1);   cout<<endl;cprintf("La secante de %d",n2);cprintf(" es: ");cout<<pow(cos(n2),-1);   cout<<endl;cprintf("La cosecante de %d",n1);cprintf(" es: ");cout<<pow(sin(n1),-1);   cout<<endl;cprintf("La cosecante de %d",n2);cprintf(" es: ");cout<<pow(sin(n2),-1);   getch();   cout<<endl<<endl<<endl;do{cout<<endl;cprintf("Deseas continuar? [s] o [n]: ");   cin>>c;cout<<"a";if(tolower(c)!='s' && tolower(c)!='n')cprintf("error");}while(tolower(c)!='s' && tolower(c)!='n');   }while(tolower(c)=='s');   opciones();}

void opciones(){   char *menu[4]={"Instrucciones","Multiplicacion","Calculadora Cientifica","Salir"};   int op;   tituloa();   menu_opciones(4,menu,&op);   switch(op){        case 0: instrucciones();break;        case 1: opciones_multiplicacion();break;        case 2: calculadora();break;   }}

void opciones_multiplicacion(){   char *menu[6]={"Basico","Intermedio","Avanzado","Tabla de multiplicar","Menu","Salir"};   int op;   titulob();   menu_opciones(6,menu,&op);   cout<<"a";

Page 80: Programas en c++

   switch(op){        case 0:basico();break;        case 1:intermedio();break;        case 2:avansado();break;        case 3:multiplicar();break;        case 4:opciones();break;   }}

void basico(){   char *menu[4]={"Ejercicios","Menu Multiplicacion","Menu","Salir"};   int op;   textbackground(BLACK);   textcolor(CYAN);   clrscr();   gotoxy(33,1);cprintf("NIVEL BASICO");   gotoxy(33,2);cprintf("----- ------");   gotoxy(1,4);cprintf("Concepto:");   getch();gotoxy(9,5);cprintf("En esta fase aprenderemos a multiplicar de una manera sencilla y eficaz.");   getch();gotoxy(1,7);cprintf("Ejemplo:");   getch();gotoxy(9,10);cprintf("4*3=4+4+4=12");   getch();gotoxy(9,11);cprintf("3*4=3+3+3+3=12");   getch();gotoxy(1,13);cprintf("Nos damos cuenta que el resultado es 3 veces la suma de 4 y lo contrario.");   getch();gotoxy(1,14);cprintf("Ahora seguiremos con los ejercicios.");getch();getch();   clrscr();gotoxy(10,5);cprintf("Elija la opcion:");   menu_opciones(4,menu,&op);   cout<<"a";   switch(op){   case 0: ejerciciosb();break;   case 1: opciones_multiplicacion();break;   case 2: opciones();break;   }}

void ejerciciosb(){   int a,b,r,n,s=0;   char c;   do{    textcolor(BLUE);    clrscr();   randomize();   a=random(99);   b=random(10);   cout<<endl<<endl<<endl;   cprintf("%d",a);cprintf("*%d",b);cprintf("=");cin>>r;   if(r==(a*b)){    cout<<endl;cprintf("Correcto pasa a la siguiente pregunta");n=4;   }   else{      cout<<endl;cprintf("aaaERROR");n=-1;   }   s=s+n;   getch();

Page 81: Programas en c++

   cout<<endl<<endl<<endl;do{cout<<endl;cprintf("Deseas continuar? [s] o [n]: ");   cin>>c;cout<<"a";if(tolower(c)!='s' && tolower(c)!='n')cprintf("error");}while(tolower(c)!='s' && tolower(c)!='n');   }while(tolower(c)=='s');   cprintf("Tu nota es: %d",s);   opciones_multiplicacion();}

void intermedio(){   int op;   char *menu[4]={"Ejercicios","Menu Multiplicacion","Menu","Salir"};   textbackground(BLACK);   textcolor(CYAN);   clrscr();   gotoxy(32,1);cprintf("NIVEL INTERMEDIO");   gotoxy(32,2);cprintf("----- ----------");   gotoxy(1,4);cprintf("Concepto:");   getch();gotoxy(10,5);cprintf("En esta fase aprenderemos a multiplicar de dos a mas cifras.");   getch();gotoxy(1,7);cprintf("Ejemplo :");   gotoxy(30,10);cprintf("35");getch();gotoxy(30,11);cprintf("22");getch();gotoxy(29,12);cprintf("----");gotoxy(33,10);cprintf("*");   getch();gotoxy(1,18);cprintf("Paso 1:Se multiplica comenzando del segundo numero de derecha a izquierda.");   getch();gotoxy(31,13);cprintf("0");   getch();gotoxy(1,19);cprintf("Paso 2:La segunda cifra de los numeros multiplicados se lleva arriba.");   getch();gotoxy(30,9);cprintf("1");getch();gotoxy(30,13);cprintf("7");   getch();gotoxy(1,20);cprintf("Paso 3:los resultados se coloca en el siguiente orden.");   getch();gotoxy(30,14);cprintf("0");getch();gotoxy(30,8);cprintf("1");getch();gotoxy(29,14);cprintf("7");   getch();gotoxy(28,15);cprintf("------");   getch();gotoxy(1,21);cprintf("Paso 4:Los numeros se suman en orden.");   getch();gotoxy(29,16);cprintf("770");   getch();gotoxy(1,23);cprintf("Ahora seguiremos con los ejercicios asi que  agarra lapiz y papel.");getch();getch();   clrscr();gotoxy(10,5);cprintf("Elija la opcion:");   menu_opciones(4,menu,&op);   cout<<"a";   switch(op){   case 0: ejerciciosi();break;   case 1: opciones_multiplicacion();break;   case 2: opciones();break;   }}

void ejerciciosi(){   int a,b,r,n,s=0;   char c;   randomize();   srand(10);   a=random(1000);   b=random(99);   do{   textcolor(BLUE);

Page 82: Programas en c++

   clrscr();   cprintf("%d",a);cprintf("*%d",b);cprintf("=");cin>>r;   if(r==(a*b)){    cout<<endl;cprintf("Correcto pasa a la siguiente pregunta");n=4;   }   else{      cout<<endl;cprintf("aaaERROR");n=-1;   }   s=s+n;   getch();   cout<<endl<<endl<<endl;do{cout<<endl;cprintf("Deseas continuar? [s] o [n]: ");   cin>>c;cout<<"a";if(tolower(c)!='s' && tolower(c)!='n')cprintf("error");}while(tolower(c)!='s' && tolower(c)!='n');   }while(tolower(c)=='s');   cprintf("Tu nota es: %d",s);   opciones_multiplicacion();}

void avansado(){   textbackground(BLACK);   textcolor(CYAN);   clrscr();   gotoxy(33,1);cprintf("NIVEL AVANZADO");   gotoxy(33,2);cprintf("----- --------");   gotoxy(1,4);cprintf("Concepto:");   getch();gotoxy(10,5);cprintf("En esta fase aprenderemos algunos trucos para multiplicar eficaz y     mentalmente.");   getch();gotoxy(1,8);cprintf("Multiplicando 2 numeros iguales:");   getch();gotoxy(33,10);cprintf("25*25=");   getch();gotoxy(1,12);cprintf("Paso 1: Se multiplica 2 veces la segunda cifra del primer numero 5*5 y se colocaen la derecha asi.");   getch();gotoxy(41,10);cprintf("5");   getch();gotoxy(1,14);cprintf("Paso 2: Si alguna cifra sobra se le suma a la siguiente operacion.");   getch();gotoxy(1,15);cprintf("Paso 3: La siguiente operacion es multiplicar 2*el primer numero y sumarlo con  la cifra que lleva, si no lleva ni un numero entonces se deja asi nomas pero en  este caso la operacion es (2*2*5)+2=22 y se lleva.");   getch();gotoxy(40,10);cprintf("2");   getch();gotoxy(1,18);cprintf("Paso 4:Se multiplica 2 veces la primera cifra del primer numero 2*2 y si se sumacon lo que lleva caso contrario no se su macon nada.");   getch();gotoxy(39,10);cprintf("6");   getch();gotoxy(1,21);cprintf("Multiplicando 2 numeros diferentes:");   getch();gotoxy(33,23);cprintf("32*41=");   getch();gotoxy(1,25);cprintf("Paso 1: Se multiplica la segunda cifra de los dos numeros");   getch();gotoxy(42,23);cprintf("2");   getch();gotoxy(1,26);cprintf("Paso 2: Se multiplica los numeros internos sumandose con los externos y con lo  que se lleva asi (2*4)+(3*1)=11");   getch();gotoxy(41,23);cprintf("1");   getch();gotoxy(1,28);cprintf("paso 3:Se multiplicala primera cifra de los dos numeros y sesuma con lo q se    lleva en este caso 1.");   getch();gotoxy(39,23);cprintf("13");   getch();gotoxy(1,31);cprintf("Muliplicando con multiplos de 10:");

Page 83: Programas en c++

   getch();gotoxy(10,32);cprintf("1)cuando se multiplica con numeros solamente se le aumenta ceros al      costado.");   getch();gotoxy(33,35);cprintf("23*100=2300");   getch();gotoxy(33,36);cprintf("45*1000=45000");   getch();gotoxy(10,38);cprintf("2)Si se multiplica con decimales se avanza la coma.");   getch();gotoxy(33,40);cprintf("477,89*100=4,7789");   getch();gotoxy(33,41);cprintf("0,4*10=4");   getch();gotoxy(1,43);cprintf("Ahora practica y dominaras a la perfeccion la multiplicacion.");   getch();getch();}

void multiplicar(){   int i,n;   char c;   textcolor(BLUE);   clrscr();   gotoxy(30,1);cprintf("TABLA DE MULTIPLICAR");   gotoxy(30,2);cprintf("----- -- -----------");   do{    clrscr();    gotoxy(1,4);cprintf("Ingrese un numero:");    cin>>n;    cprintf("a");    for(i=1; i<13; i++){     cprintf("%d",n);cprintf("*%d",i);cprintf("=%d",(n*i));cout<<endl;    }    getch();      cout<<endl<<endl<<endl;do{cout<<endl;cprintf("Deseas continuar? [s] o [n]: ");    cin>>c;cout<<"a";if(tolower(c)!='s' && tolower(c)!='n')cprintf("error");}while(tolower(c)!='s' && tolower(c)!='n');   }while(tolower(c)=='s');   opciones_multiplicacion();}

void main(){   loading(10);   opciones();}