Backup proyecto Joyfe - Borland

This commit is contained in:
2025-06-16 22:54:10 +02:00
commit d61829a1a7
130 changed files with 11881 additions and 0 deletions
+161
View File
@@ -0,0 +1,161 @@
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *maes, *mov, *maestmp, *historico;
struct clientes{
char nombre[11], apellidos[21], direccion[21], telefono[11];
int codigo;
};
struct maestro {
int codigo;
char nombre[11], apellidos[21];
char direccion[21], telefono[11];
}regmaes;
struct movi {
char tipo;
int codigo;
char nombre[10], apellidos[20];
char direccion[20], telefono[10];
}regmov;
void limpiar1(), limpiar2();
void main(void){
struct clientes cli;
mov=fopen("k:\\files\\clientes.mov","r+b");
if ((maes=fopen("k:\\files\\clientes.dat","r+b"))==NULL){
//fclose(maes);
maes=fopen("k:\\files\\clientes.dat","w+b");
while (!feof(mov)){
limpiar1();limpiar2();
fread(&regmov,sizeof(regmov),1,mov);
if (regmov.tipo=='A') {
strcpy (regmaes.apellidos,regmov.apellidos);
strcpy (regmaes.nombre,regmov.nombre);
regmaes.codigo=regmov.codigo;
strcpy (regmaes.direccion,regmov.direccion);
strcpy (regmaes.telefono,regmov.telefono);
clrscr();
printf ("%d \n%s \n%s \n%s \n%s", regmaes.codigo, regmaes.nombre,regmaes.apellidos, regmaes.direccion, regmaes.telefono);
getch();
fwrite (&regmaes,sizeof(struct maestro),1,maes);
}
}
}
else{
fclose(maes);
system("rename k:\\files\\clientes.dat clientes.tmp");
maes=fopen("k:\\files\\clientes.dat","w+b");
maestmp=fopen("k:\\files\\clientes.tmp","rb");
historico=fopen("k:\\files\\clientes.log","a+b");
limpiar1();limpiar2();
fread(&regmov,sizeof(regmov),1,mov);
fread(&regmaes,sizeof(regmaes),1,maestmp);
while (!feof(mov) && !feof(maestmp)){
if (regmaes.codigo==regmov.codigo){
if(regmov.tipo=='A'){
printf("Error cliente duplicado.");getch();
fwrite(&regmaes,sizeof(regmaes),1,maes);
limpiar1();limpiar2();
fread(&regmov,sizeof(regmov),1,mov);
fread(&regmaes,sizeof(regmaes),1,maestmp);
}
else{
if (regmov.tipo=='B'){
printf("Dando de baja...");
fwrite(&regmaes,sizeof(regmaes),1,historico);
limpiar1();limpiar2();
fread(&regmov,sizeof(regmov),1,mov);
fread(&regmaes,sizeof(regmaes),1,maestmp);
}
else{
fwrite(&(regmov.codigo),2,1,maes);
fwrite(&(regmov.nombre),11,1,maes);
fwrite(&(regmov.apellidos),21,1,maes);
fwrite(&(regmov.direccion),21,1,maes);
fwrite(&(regmov.telefono),11,1,maes);
limpiar1();limpiar2();
fread(&regmov,sizeof(regmov),1,mov);
fread(&regmaes,sizeof(regmaes),1,maestmp);
}
}
}
else{
if(regmov.codigo>regmaes.codigo){
fwrite(&regmaes,sizeof(regmaes),1,maes);
limpiar2();
fread(&regmaes,sizeof(regmaes),1,maestmp);
}
else{
if (regmov.tipo=='A'){
fwrite(&(regmov.codigo),2,1,maes);
fwrite(&(regmov.nombre),10,1,maes);
fwrite(&(regmov.apellidos),20,1,maes);
fwrite(&(regmov.direccion),20,1,maes);
fwrite(&(regmov.telefono),10,1,maes);
}
else{
printf("Error: El cliente no existe.");getch();
}
limpiar1();
fread(&regmov,sizeof(regmov),1,mov);
}
}
} // fin del while
if (!feof(mov)){
while(!feof(mov)){
if(regmov.tipo=='A'){
strcpy (regmaes.apellidos,regmov.apellidos);
strcpy (regmaes.nombre,regmov.nombre);
regmaes.codigo=regmov.codigo;
strcpy (regmaes.direccion,regmov.direccion);
strcpy (regmaes.telefono,regmov.telefono);
clrscr();
printf ("%d \n%s \n%s \n%s \n%s", regmaes.codigo, regmaes.nombre,regmaes.apellidos, regmaes.direccion, regmaes.telefono);
getch();
fwrite (&regmaes,sizeof(struct maestro),1,maes);
}
else{
printf("Error: El cliente no existe.");getch();
}
limpiar1();
fread(&regmov,sizeof(regmov),1,mov);
}
}
else{
if(!feof(maestmp)){
while(!feof(maestmp)){
fwrite(&regmaes,sizeof(regmaes),1,maes);
limpiar2();
fread(&regmaes,sizeof(regmaes),1,maestmp);
}
}
}
fcloseall();
}
unlink("k:\\files\\clientes.mov");
unlink("k:\\files\\clientes.tmp");
}
void limpiar1(){
regmov.tipo=NULL;regmov.codigo=0;
for (int n=0;n<21;n++){
regmov.apellidos[n]=NULL;regmov.direccion[n]=NULL;
}
for(n=0;n<11;n++){
regmov.nombre[n]=NULL;regmov.telefono[n]=NULL;
}
}
void limpiar2(){
for (int n=0;n<21;n++){
regmaes.apellidos[n]=NULL;regmaes.direccion[n]=NULL;
}
for (n=0;n<11;n++){
regmaes.nombre[n]=NULL;regmaes.telefono[n]=NULL;
}
regmaes.codigo=0;
}
+238
View File
@@ -0,0 +1,238 @@
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <iostream.h>
#include <alloc.h>
#include <stdlib.h>
struct nodo {
int dato;
struct nodo *padre;
struct nodo *hi;
struct nodo *hd;
};
int ARBOL_VACIO (struct nodo *);
void INI_ARBOL (struct nodo **);
void INS_ARBOL (struct nodo **, int);
int PROFUNDIDAD (struct nodo *);
void ELIMINAR_NODO (struct nodo **, struct nodo *);
void LISTAR_IRD(struct nodo *);
struct nodo* BUSCAR_NODO(struct nodo*,int);
void main (void) {
int d;
struct nodo *arbol;
INI_ARBOL(&arbol);
clrscr();
while (d!=0){
printf ("\nNumero: ");
cin >> d;
if (d!=0)
INS_ARBOL(&arbol, d);
}
printf("Presione ENTER para continuar, ESC finaliza.\n");
printf ("\nListado del  rbol:");
printf ("\n------------------\n");
LISTAR_IRD(arbol);
printf ("\n------------------\n");
cout << "\nLa profundidad del  rbol es " << PROFUNDIDAD(arbol);
printf("\nLado Izquierdo-> %d", PROFUNDIDAD(arbol->hi));
printf("\tLado Derecho-> %d", PROFUNDIDAD(arbol->hd));
printf("\n Raiz: %d",arbol->dato);getch();
getch();
int victima;
while (!ARBOL_VACIO(arbol)) {
printf("\nIntroduce un nodo a eliminar: ");
cin >> victima;
ELIMINAR_NODO(&arbol,BUSCAR_NODO(arbol,victima));
printf ("\nListado del  rbol:");
printf ("\n------------------\n");
LISTAR_IRD(arbol);
printf ("\n------------------\n");
cout << "\nLa profundidad del  rbol es " << PROFUNDIDAD(arbol);
printf("\nLado Izquierdo-> %d", PROFUNDIDAD(arbol->hi));
printf("\tLado Derecho-> %d", PROFUNDIDAD(arbol->hd));
if (arbol!=NULL)
printf("\n Raiz: %d",(arbol->dato));getch();
getch();
}
free (arbol);
}
int ARBOL_VACIO(struct nodo *p) {
return (p == NULL);
}
void INI_ARBOL(struct nodo **p) { *p = NULL; }
void INS_ARBOL(struct nodo **p, int n) {
struct nodo *aux;
struct nodo **q;
int sw;
if ((aux = (struct nodo*) malloc (sizeof (struct nodo)))== NULL)
exit(1);
aux->dato = n;
if (ARBOL_VACIO(*p)) {
aux->hi = NULL;
aux->hd = NULL;
aux->padre = aux;
*p = aux;
}
else {
sw = 1;
q = p;
while (sw) {
sw = 0;
if ((*q)->dato <= n && (*q)->hd != NULL) {
q = &(*q)->hd;
sw = 1;
}
if ((*q)->dato >= n && (*q)->hi != NULL) {
q = &(*q)->hi;
sw = 1;
}
}
aux->hi = aux->hd = NULL;
aux->padre = (*q);
((*q)->dato < n) ? (*q)->hd = aux : (*q)->hi = aux;
}
}
int PROFUNDIDAD(struct nodo *p) {
int nivelhi=0;
int nivelhd=0;
if (p != NULL) {
nivelhi++;
nivelhi+=PROFUNDIDAD(p -> hi);
nivelhd++;
nivelhd+=PROFUNDIDAD(p -> hd);
}
return (nivelhd > nivelhi) ? nivelhd : nivelhi;
}
void ELIMINAR_NODO (struct nodo **p, struct nodo *q) {
if (q==NULL)
printf("Error. Se ha intentado eliminar un nodo NO EXISTENTE.");
else {
if (q->hd == NULL && q->hi == NULL && q->padre != q) { // ES HOJA
if ((q->padre)->hd == q)
(q->padre)->hd = NULL; // ES UN HD
else
(q->padre)->hi = NULL; // ES UN HI
} // fin del if si es hoja
else {
if ((q->padre) == q && q->hd == NULL && q->hi == NULL)// RAIZ SIN HIJOS
*p = NULL;
else {
if (q->hd != NULL && q->hi == NULL) {// NO TIENE HI
if (q->padre==q)
*p=q->hd;
else
if ((q->padre)->hd == q) // ES UN HD
(q->padre)->hd = q->hd;
else
(q->padre)->hi = q->hd; // ES UN HI
} // fin del if no tiene HI
else {
if (q->hd == NULL && q->hi != NULL) {// NO TIENE HD
if (q->padre==q)
*p=q->hi;
else
if ((q->padre)->hd == q)
(q->padre)->hd = q->hi;
else
(q->padre)->hi = q->hi;
} // fin del if no tiene hd
else {
if (q->hd != NULL && q->hi != NULL){ //TIENE 2 HIJOS
struct nodo *aux = NULL;
if (PROFUNDIDAD(q->hi) > (PROFUNDIDAD (q->hd))) {
aux=q->hi;
while (aux->hd != NULL) {aux = aux->hd;}
}
else {
aux=q->hd;
while (aux->hi != NULL) {aux = aux->hi;}
}
struct nodo *nodotmp = NULL;
if ((nodotmp = (struct nodo*) malloc (sizeof (struct nodo)))==NULL){
printf ("\nError Memory Allocation !!");
printf ("\nNo hay memoria suficiente, abortando ...");
exit(1);
}
nodotmp->dato = aux->dato;
if (q->hd == aux)
nodotmp->hd = aux->hd;
else
nodotmp->hd = q->hd;
if (q->hi == aux)
nodotmp->hi = aux->hi;
else
nodotmp->hi = q->hi;
if ((q->padre)==q){ // ES RAIZ
*p = nodotmp;
nodotmp->padre=nodotmp;
}
else
if ((q->padre)->hd == q) {// ES UN HD
(q->padre)->hd = nodotmp;
nodotmp->padre=q->padre;
}
else {
(q->padre)->hi = nodotmp; // ES UN HI
nodotmp->padre=q->padre;
}
ELIMINAR_NODO(p, aux);
} // fin del if
} // fin del else
} // fin del else
} // fin del else
} // fin del else
} // fin del else
free (q);
} // fin de la funcion eliminar_nodo
void LISTAR_IRD(struct nodo *p){
if (p!=NULL){
LISTAR_IRD(p->hi);
printf("%d ",p->dato);
LISTAR_IRD(p->hd);
}
}
struct nodo* BUSCAR_NODO(struct nodo *p,int n){
if (p==NULL || n==p->dato)
return p;
else
if (n<p->dato)
return (BUSCAR_NODO(p->hi,n));
else
return (BUSCAR_NODO(p->hd,n));
}
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+313
View File
@@ -0,0 +1,313 @@
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <dos.h>
struct nodo{
int dato;
struct nodo *hi;
struct nodo *hd;
struct nodo *padre;
};
void insertar (struct nodo **,int);
int esvacio(struct nodo *);
void listar_ird(struct nodo *);
struct nodo* buscar_nodo(struct nodo*,int);
void eliminar_nodo(struct nodo**,struct nodo*);
void eliminar(struct nodo*,struct nodo*);
void main(void){
struct nodo *arbol=NULL,*aux=NULL;int n=0;char tecla=NULL;
do{
clrscr();
printf ("Inserta nuevo nodo:");
cin >> n;
aux=buscar_nodo(arbol,n);
if (aux==NULL){
insertar(&arbol,n);
printf ("\nPara finalizar de introducir nodos pulse ESC.");
tecla=getch();
}
else{
nosound();sound(500);delay(500);nosound();
}
}while (tecla!=27);
clrscr();
listar_ird(arbol);getch();
while (n!=0){
printf ("\nRaiz %d",arbol->dato);
printf("\nIndica el nodo a eliminar: \n");
cin >> n;
aux=buscar_nodo(arbol,n);
eliminar(arbol,aux);
listar_ird(arbol);getch();
}
}
int esvacio(struct nodo *p){
return(p==NULL);
}
void insertar (struct nodo **p,int n){
struct nodo *aux=NULL;
if ((aux=(struct nodo *)malloc(sizeof(struct nodo)))==NULL){
clrscr();
printf ("No hay memoria suficiente.");
getch();
exit(1);
}
else{
if (esvacio(*p)){
aux->dato=n;aux->hd=NULL;aux->hi=NULL;aux->padre=aux;
(*p)=aux;
}
else{
struct nodo **q=NULL;
q=p;int sw=1;
while (sw==1){
sw=0;
if ((*q)->dato<n && (*q)->hd!=NULL){
q=&((*q)->hd);sw=1;
}
if ((*q)->dato>n && (*q)->hi!=NULL){
q=&((*q)->hi);sw=1;
}
}
aux->dato=n;aux->hi=NULL;aux->hd=NULL;aux->padre=(*q);
if ((*q)->dato<n)
(*q)->hd=aux;
else
(*q)->hi=aux;
}
}
}
void listar_ird(struct nodo *p) { //int x,int y){
if (p!=NULL){
//gotoxy(x,y);
printf("%d ",p->dato);
listar_ird(p->hi);
listar_ird(p->hd);
}
}
struct nodo* buscar_nodo(struct nodo *p,int n){
if (p==NULL || n==p->dato)
return p;
else
if (n<p->dato)
return (buscar_nodo(p->hi,n));
else
return (buscar_nodo(p->hd,n));
}
void eliminar(struct nodo *tree,struct nodo *aux){
if (aux==NULL){
printf ("El nodo no existe");getch();
}
else{
if (aux->hi==NULL && aux->hd==NULL && aux->padre!=aux){
if((aux->padre)->hi==aux)
(aux->padre)->hi=NULL;
else
if((aux->padre)->hd==aux)
(aux->padre)->hd=NULL;
}
else
if(aux->padre==aux && aux->hi==NULL && aux->hd==NULL)
tree=NULL;
else
eliminar_nodo(&tree,aux);
free(aux);
listar_ird(tree);getch();
}
}
void eliminar_nodo(struct nodo**p,struct nodo*q){
if (q->padre!=q){
if (q->hi!=NULL){
if((q->hi)->hd==NULL){
if ((q->padre)->hd==q)
(q->padre)->hd=q->hi;
else
if((q->padre)->hi==q)
(q->padre)->hi=q->hi;
(q->hi)->padre=q->padre;
(q->hi)->hd=q->hd;
if (q->hd!=NULL)
((q->hi)->hd)->padre=q->hi;
}
else{
struct nodo *aux=NULL;
if ((aux=(struct nodo *)malloc(sizeof(struct nodo)))==NULL){
clrscr();
printf ("No hay memoria suficiente.");
getch();
exit(1);
}
else{
aux=(q->hi)->hd;
while(aux->hd!=NULL)
aux=aux->hd;
if (aux->hi!=NULL)
eliminar_nodo(p,aux);
else
if ((aux->padre)->hd==aux)
(aux->padre)->hd=NULL;
else
if((aux->padre)->hi==aux)
(aux->padre)->hi=NULL;
// else
// if ((q->hd)->hd==aux)
// (q->hd)->hd=NULL;
// else
// if((q->hd)->hi==aux)
// (q->hd)->hi=NULL;
if ((q->padre)->hd==q)
(q->padre)->hd=aux;
else
if ((q->padre)->hi==q)
(q->padre)->hi=aux;
aux->padre=q->padre;
aux->hi=q->hi;
if (aux->hi!=NULL)
(aux->hi)->padre=aux;
aux->hd=q->hd;
if (aux->hd!=NULL)
(aux->hd)->padre=aux;
}
}
}
else{
if (q->hd!=NULL){
if((q->hd)->hi==NULL){
if ((q->padre)->hd==q)
(q->padre)->hd=q->hd;
else
if((q->padre)->hi==q)
(q->padre)->hi=q->hd;
(q->hd)->padre=q->padre;
(q->hd)->hi=q->hi;
if (q->hi!=NULL)
((q->hd)->hi)->padre=q->hd;
}
else{
struct nodo *aux=NULL;
if ((aux=(struct nodo *)malloc(sizeof(struct nodo)))==NULL){
clrscr();
printf ("No hay memoria suficiente.");
getch();
exit(1);
}
else{
aux=(q->hd)->hi;
while(aux->hi!=NULL)
aux=aux->hi;
if (aux->hd!=NULL)
eliminar_nodo(p,aux);
else
if ((aux->padre)->hd==aux)
(aux->padre)->hd=NULL;
else
if((aux->padre)->hi==aux)
(aux->padre)->hi=NULL;
// else
// if ((q->hd)->hd==aux)
// (q->hd)->hd=NULL;
// else
// if((q->hd)->hi==aux)
// (q->hd)->hi=NULL;
if ((q->padre)->hd==q)
(q->padre)->hd=aux;
else
if ((q->padre)->hi==q)
(q->padre)->hi=aux;
aux->padre=q->padre;
aux->hi=q->hi;
if (aux->hi!=NULL)
(aux->hi)->padre=aux;
aux->hd=q->hd;
if (aux->hd!=NULL)
(aux->hd)->padre=aux;
}
}
}
}
}
else{
if (q->hi!=NULL){
if((q->hi)->hd==NULL){
(q->hi)->hd=(*p)->hd;
(*p)=q->hi;
(q->hi)->padre=q->hi;
}
else{
struct nodo *aux=NULL;
if ((aux=(struct nodo *)malloc(sizeof(struct nodo)))==NULL){
clrscr();
printf ("No hay memoria suficiente.");
getch();
exit(1);
}
else{
aux=(q->hi)->hd;
while(aux->hd!=NULL)
aux=aux->hd;
if (aux->hi!=NULL)
eliminar_nodo(p,aux);
(*p)=aux;
aux->padre=aux;
aux->hi=q->hi;
if (aux->hi!=NULL)
(aux->hi)->padre=aux;
aux->hd=q->hd;
if (aux->hd!=NULL)
(aux->hd)->padre=aux;
}
}
}
else{
if (q->hd!=NULL){
if((q->hd)->hi==NULL){
(*p)=q->hd;
(q->hd)->padre=q->hd;
}
else{
struct nodo *aux=NULL;
if ((aux=(struct nodo *)malloc(sizeof(struct nodo)))==NULL){
clrscr();
printf ("No hay memoria suficiente.");
getch();
exit(1);
}
else{
aux=(q->hd)->hi;
while(aux->hi!=NULL)
aux=aux->hi;
if (aux->hd!=NULL)
eliminar_nodo(p,aux);
(*p)=aux;
if ((aux->padre)->hd==aux)
(aux->padre)->hd=NULL;
else
if((aux->padre)->hi==aux)
(aux->padre)->hi=NULL;
aux->padre=aux;
aux->hi=q->hi;
if (aux->hi!=NULL)
(aux->hi)->padre=aux;
aux->hd=q->hd;
if (aux->hd!=NULL)
(aux->hd)->padre=aux;
}
}
}
}
}
}
+103
View File
@@ -0,0 +1,103 @@
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <alloc.h>
#include <stdlib.h>
struct nodo {
int dato;
struct nodo *padre;
struct nodo *hi;
struct nodo *hd;
};
int ARBOL_VACIO (struct nodo *);
void INI_ARBOL (struct nodo **);
void INS_ARBOL (struct nodo **, int);
int LISTAR_IRD (struct nodo *);
void main (void) {
int d;
struct nodo *arbol;
INI_ARBOL(&arbol);
for (int i=0; i<37; i++) {
printf("\n Introduce n£mero: ");
fflush (stdin);
scanf ("%d", &d);
INS_ARBOL(&arbol, d);
}
printf("Numero de niveles -> %d",LISTAR_IRD(arbol));
getch();
free (arbol);
}
int ARBOL_VACIO(struct nodo *p) {
if (p == NULL)
return (1);
else
return (0);
}
void INI_ARBOL(struct nodo **p) { *p = NULL; }
void INS_ARBOL(struct nodo **p, int n) {
struct nodo *aux;
struct nodo **q;
int sw;
if ((aux = (struct nodo*) malloc (sizeof (struct nodo)))== NULL)
exit(1);
aux -> dato = n;
if (ARBOL_VACIO(*p)) {
aux -> hi = NULL;
aux -> hd = NULL;
aux -> padre = aux;
*p = aux;
}
else {
sw = 1;
q = p;
while (sw) {
sw = 0;
if ((*q) -> dato <= n && (*q) -> hd != NULL) {
q = &(*q) -> hd;
sw = 1;
}
if ((*q) -> dato >= n && (*q) -> hi != NULL) {
q = &(*q) -> hi;
sw = 1;
}
}
aux -> hi = aux -> hd = NULL;
aux -> padre = (*q);
((*q) -> dato < n) ? (*q) -> hd = aux : (*q) -> hi = aux;
}
}
int LISTAR_IRD(struct nodo *p) {
static int max=0;
static int nivel=1;
if (p != NULL)
{
nivel++;LISTAR_IRD(p -> hi);
if (nivel>max)
max=nivel;
nivel--;
//printf (" %d ", p -> dato);
nivel++;LISTAR_IRD(p -> hd);
nivel--;
if (nivel>max)
max=nivel;
}
return (max-1);
}
+101
View File
@@ -0,0 +1,101 @@
#include <stdio.h>
#include <conio.h>
int digitos,baseini,basefinal,num,numfinal,tabla[80],tabla_bien[80];
int Pedir_Base();
int Pedir_Num(int baseini);
int BaseDiez_Base(int num,int basefinal);
int Transform(int num);
void Imprimir_tabla(int digitos);
void main() {
clrscr();
baseini=Pedir_Base();
num=Pedir_Num(baseini);
basefinal=Pedir_Base();
digitos=BaseDiez_Base(num,basefinal);
Imprimir_tabla(digitos);
printf("\nPulse una tecla para finalizar ...");
getch();
}
int Pedir_Base() {
int b;
do {
printf("\nIntroduce la Base: ");
fflush(stdin);
scanf("%d",&b);
} while (b<2 || b>16);
return(b);
}
int Pedir_Num(int baseini) {
int seguir=1,k=0,nuevo=0,numero;char n=0;
printf("Introduce un n£mero: ");
while (seguir) {
fflush(stdin); cscanf("%1c",&n);
if (n==13)
seguir=0;
else
k=Transform(n);
if (seguir)
if (k<baseini) {
numero=nuevo+k;
nuevo=numero*baseini;
}
else {
gotoxy(wherex()-1,wherey());
printf(" ");
gotoxy(wherex()-1,wherey());
}
}
return (numero);
}
int BaseDiez_Base(int num,int basefinal) {
int n=0,con=0,resto=0,pos=0,i=0,digitos=0;
n=num; con=0;
while (n!=0) {
resto=(n%basefinal);
n=(n/basefinal);
tabla[con]=resto;
printf("\n guardo en tabla[%d]=%d",con,resto);
digitos=con;
con++;
}
pos=0;i=(con-1);
for (i;i>=0;i--) {
tabla_bien[pos]=tabla[i];
printf("\ntablabien[%d]=%d",i,tabla_bien[pos]);
pos++;
}
return(digitos);
}
int Transform(int num) {
int k=0;
if (num>=48 && num <=57)
k=(num-48);
else
if (num>=65 && num <=70)
k=(num-55);
else
if (num>=97 && num <=102)
k=(num-87);
else
k=99;
return(k);
}
void Imprimir_tabla(int digitos) {
//printf("\n llegan digitos=%d\n",digitos);
printf("\nEl n£mero pedido es: ");
for (int i=0;i<=digitos;i++)
printf("%x",tabla_bien[i]);
}
+101
View File
@@ -0,0 +1,101 @@
#include <stdio.h>
#include <conio.h>
int digitos,baseini,basefinal,num,numfinal,tabla[80],tabla_bien[80];
int Pedir_Base();
int Pedir_Num(int baseini);
int BaseDiez_Base(int num,int basefinal);
int Transform(int num);
void Imprimir_tabla(int digitos);
void main() {
clrscr();
baseini=Pedir_Base();
num=Pedir_Num(baseini);
basefinal=Pedir_Base();
digitos=BaseDiez_Base(num,basefinal);
Imprimir_tabla(digitos);
printf("\nPulse una tecla para finalizar ...");
getch();
}
int Pedir_Base() {
int b;
do {
printf("\nIntroduce la Base: ");
fflush(stdin);
scanf("%d",&b);
} while (b<2 || b>16);
return(b);
}
int Pedir_Num(int baseini) {
int seguir=1,k=0,nuevo=0,numero;char n=0;
printf("Introduce un n£mero: ");
while (seguir) {
fflush(stdin); cscanf("%1c",&n);
if (n==13)
seguir=0;
else
k=Transform(n);
if (seguir)
if (k<baseini) {
numero=nuevo+k;
nuevo=numero*baseini;
}
else {
gotoxy(wherex()-1,wherey());
printf(" ");
gotoxy(wherex()-1,wherey());
}
}
return (numero);
}
int BaseDiez_Base(int num,int basefinal) {
int n=0,con=0,resto=0,pos=0,i=0,digitos=0;
n=num; con=0;
while (n!=0) {
resto=(n%basefinal);
n=(n/basefinal);
tabla[con]=resto;
printf("\n guardo en tabla[%d]=%d",con,resto);
digitos=con;
con++;
}
pos=0;i=(con-1);
for (i;i>=0;i--) {
tabla_bien[pos]=tabla[i];
printf("\ntablabien[%d]=%d",i,tabla_bien[pos]);
pos++;
}
return(digitos);
}
int Transform(int num) {
int k=0;
if (num>=48 && num <=57)
k=(num-48);
else
if (num>=65 && num <=70)
k=(num-55);
else
if (num>=97 && num <=102)
k=(num-87);
else
k=99;
return(k);
}
void Imprimir_tabla(int digitos) {
//printf("\n llegan digitos=%d\n",digitos);
printf("\nEl n£mero pedido es: ");
for (int i=0;i<=digitos;i++)
printf("%x",tabla_bien[i]);
}
+94
View File
@@ -0,0 +1,94 @@
// Minicalculator© Ver 2.1
// Copyright 1998
//
// Descripci¢n del programa:
// Este programa pide dos n£meros, luego muestra un men£ y dependiendo
// de la opci¢n elegida los suma, resta, multiplica o divide imprimiendo
// el resultado de la operaci¢n.
//
// Programadores:
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// Grupo 1§A
//
// Novedades de la Versi¢n 2.1
// Presenta un mensaje de error si la opci¢n no est  en el men£
// o si la divisi¢n es por cero. Adem s cuando la divisi¢n no es exacta
// se imprime el resto. Tambin se ha mejorado la interface con el usuario.
//
// Creado: 3-11-1998
// éltima modificaci¢n: 10-11-1998
#include <conio.h>
#include <stdio.h>
int a,b,c;
char pausa;
void main ()
{
clrscr();
printf ("\n\t\t\t Minicalculator© Ver 2.1");
printf ("\n\t\t\t ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ");
printf ("\n\n\n\n\t\t Introduce primer n£mero: ");
fflush (stdin);
scanf ("%d",&a);
printf ("\n\n\t\t Introduce segundo n£mero: ");
fflush (stdin);
scanf ("%d",&b);
clrscr();
printf ("\n\t\t\t Minicalculator© Ver 2.1");
printf ("\n\t\t\t ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ");
printf ("\n\n\n\t\t\t Men£ de opciones");
printf ("\n\n\t\t 1.- Sumar los n£meros introducidos.");
printf ("\n\t\t 2.- Restar los n£meros introducidos.");
printf ("\n\t\t 3.- Multiplicar los n£meros introducidos.");
printf ("\n\t\t 4.- Dividir los n£meros introducidos.");
printf ("\n\n\t\t Opci¢n deseada: ");
fflush(stdin);
scanf ("%d",&c);
if (c==1)
{
printf ("\n\t\t La suma de los n£meros (%d+%d) es: %d",a,b,a+b);
}
else
{
if (c==2)
{
printf ("\n\t\t La resta de los n£meros (%d-%d) es: %d",a,b,a-b);
}
else
{
if (c==3)
{
printf ("\n\t\t La multiplicaci¢n de los n£meros (%d*%d) es: %d",a,b,a*b);
}
else
{
if (c==4)
{
if (b==0)
{
printf ("\n\t\t ­­ Error !!, no se puede dividir por cero.");
}
else
{
printf ("\n\t\t La divisi¢n de los n£meros (%d/%d) es: %d",a,b,a/b);
if (a%b!=0)
{
printf (" Resto: %d",a%b);
}
}
}
else
{
printf ("\n\n\t\t\t­­ Opci¢n incorrecta !!");
}
}
}
}
printf ("\n\n\n\n\n\n\n\n\n Pulse ENTER para finalizar...");
fflush(stdin);
scanf("%c",&pausa);
}
+146
View File
@@ -0,0 +1,146 @@
/* conio.h
Direct MSDOS console input/output.
Copyright (c) 1987, 1991 by Borland International
All Rights Reserved.
*/
#if !defined(__CONIO_H)
#define __CONIO_H
#if !defined(__DEFS_H)
#include <_defs.h>
#endif
#define _NOCURSOR 0
#define _SOLIDCURSOR 1
#define _NORMALCURSOR 2
struct text_info {
unsigned char winleft;
unsigned char wintop;
unsigned char winright;
unsigned char winbottom;
unsigned char attribute;
unsigned char normattr;
unsigned char currmode;
unsigned char screenheight;
unsigned char screenwidth;
unsigned char curx;
unsigned char cury;
};
enum text_modes { LASTMODE=-1, BW40=0, C40, BW80, C80, MONO=7, C4350=64 };
#if !defined(__COLORS)
#define __COLORS
enum COLORS {
BLACK, /* dark colors */
BLUE,
GREEN,
CYAN,
RED,
MAGENTA,
BROWN,
LIGHTGRAY,
DARKGRAY, /* light colors */
LIGHTBLUE,
LIGHTGREEN,
LIGHTCYAN,
LIGHTRED,
LIGHTMAGENTA,
YELLOW,
WHITE
};
#endif
#define BLINK 128 /* blink bit */
extern int _Cdecl directvideo;
extern int _Cdecl _wscroll;
#ifdef __cplusplus
extern "C" {
#endif
void _Cdecl clreol( void );
void _Cdecl clrscr( void );
void _Cdecl gotoxy( int __x, int __y );
int _Cdecl wherex( void );
int _Cdecl wherey( void );
int _Cdecl getch( void );
int _Cdecl getche( void );
int _Cdecl kbhit( void );
int _Cdecl putch( int __c );
#ifndef _PORT_DEFS
int _Cdecl inp( unsigned __portid );
unsigned _Cdecl inpw( unsigned __portid );
int _Cdecl outp( unsigned __portid, int __value );
unsigned _Cdecl outpw( unsigned __portid, unsigned __value );
unsigned char _Cdecl inportb( int __portid );
void _Cdecl outportb( int __portid, unsigned char __value );
#endif /* !_PORT_DEFS */
int _Cdecl inport( int __portid );
void _Cdecl outport( int __portid, int __value );
void _Cdecl delline( void );
int _Cdecl gettext( int __left, int __top,
int __right, int __bottom,
void *__destin);
void _Cdecl gettextinfo (struct text_info *__r );
void _Cdecl highvideo( void );
void _Cdecl insline( void );
void _Cdecl lowvideo( void );
int _Cdecl movetext( int __left, int __top,
int __right, int __bottom,
int __destleft, int __desttop );
void _Cdecl normvideo( void );
int _Cdecl puttext( int __left, int __top,
int __right, int __bottom,
void *__source );
void _Cdecl textattr( int __newattr );
void _Cdecl textbackground( int __newcolor );
void _Cdecl textcolor( int __newcolor );
void _Cdecl textmode( int __newmode );
void _Cdecl window( int __left, int __top, int __right, int __bottom);
void _Cdecl _setcursortype( int __cur_t );
char * _Cdecl cgets( char *__str );
int _Cdecl cprintf( const char *__format, ... );
int _Cdecl cputs( const char *__str );
int _Cdecl cscanf( const char *__format, ... );
char * _Cdecl getpass( const char *__prompt );
int _Cdecl ungetch( int __ch );
#ifndef _PORT_DEFS
#define _PORT_DEFS
/* These are in-line functions. These prototypes just clean up
some syntax checks and code generation.
*/
unsigned char _Cdecl __inportb__( int __portid );
unsigned int _Cdecl __inportw__( int __portid );
void _Cdecl __outportb__( int __portid, unsigned char __value );
void _Cdecl __outportw__( int __portid, unsigned int __value );
#define inportb __inportb__
#define inportw __inportw__
#define outportb __outportb__
#define outportw __outportw__
#define inp( portid ) __inportb__( portid )
#define outp( portid,v ) (__outportb__( portid,v ), (int)_AL)
#define inpw( portid ) __inportw__( portid )
#define outpw( portid,v ) (__outportw__( portid,v ), (unsigned)_AX)
#endif /* _PORT_DEFS */
#ifdef __cplusplus
}
#endif
#endif /* __CONIO_H */
+126
View File
@@ -0,0 +1,126 @@
#include <stdio.h>
char i = 0, a = 0;
int col, sw = 0;
int fil;
void main () {
clrscr ();
fflush (stdin);
gotoxy (10, 10);
printf ("Mueve cursor:");
while (sw == 0) {
//gotoxy(wherex(),wherey());
i = getche ();
col = wherex ();
col--;
fil = wherey ();
if (i == 0)
{
//printf("dentro de i=0");
a = getch ();
switch (a)
{
case 72:
{
gotoxy (col, fil - 1);
// printf("col= %d, fil= %d",col,fil);
// getch();
break;
}
case 80:
gotoxy (col, fil + 1);
break;
case 77:
gotoxy (col + 1, fil);
break;
case 75:
gotoxy (col - 1, fil);
break;
}
// getch();
}
else
sw = 1;
}
printf ("fin");
getch ();
fflush (stdin);
clrscr ();
}
+91
View File
@@ -0,0 +1,91 @@
#include <stdio.h>
char i = 0, a = 0;
int col, sw = 0;
int fil;
void main () {
clrscr ();
fflush (stdin);
gotoxy (10, 10);
printf ("Mueve cursor:");
while (sw == 0) {
/*gotoxy(wherex(),wherey());*/
i = getche ();
col = wherex ();
col--;
fil = wherey ();
if (i == 0) {
/* //printf("dentro de i=0");*/
a = getch ();
switch (a) {
case 72: {
gotoxy (col, fil - 1);
/* // printf("col= %d, fil= %d",col,fil);*/
/* // getch();*/
break;
}
case 80:
gotoxy (col, fil + 1);
break;
case 77:
gotoxy (col + 1, fil);
break;
case 75:
gotoxy (col - 1, fil);
break;
}
}
else
sw = 1;
}
printf ("fin");
getch ();
fflush (stdin);
clrscr ();
}
+54
View File
@@ -0,0 +1,54 @@
#include <stdio.h>
#include <conio.h>
char i=0, a=0;
int col,sw=0;
int fil;
void main()
{
clrscr();
fflush(stdin);
gotoxy(10,10);
printf("Mueve cursor:");
while(sw==0)
{
//gotoxy(wherex(),wherey());
i=getche();
col=wherex();
col--;
fil=wherey();
if(i==0)
{
//printf("dentro de i=0");
a=getch();
switch(a)
{
case 72:
{
gotoxy(col,fil-1);
// printf("col= %d, fil= %d",col,fil);
// getch();
break;
}
case 80:
gotoxy(col,fil+1);
break;
case 77:
gotoxy(col+1,fil);
break;
case 75:
gotoxy(col-1,fil);
break;
}
// getch();
}
else
sw=1;
}
printf("fin");
getch();
fflush(stdin);
clrscr();
}
View File
BIN
View File
Binary file not shown.
+91
View File
@@ -0,0 +1,91 @@
#include <stdio.h>
char i = 0, a = 0;
int col, sw = 0;
int fil;
void main () {
clrscr ();
fflush (stdin);
gotoxy (10, 10);
printf ("Mueve cursor:");
while (sw == 0) {
/*gotoxy(wherex(),wherey());*/
i = getche ();
col = wherex ();
col--;
fil = wherey ();
if (i == 0) {
/* //printf("dentro de i=0");*/
a = getch ();
switch (a) {
case 72: {
gotoxy (col, fil - 1);
/* // printf("col= %d, fil= %d",col,fil);*/
/* // getch();*/
break;
}
case 80:
gotoxy (col, fil + 1);
break;
case 77:
gotoxy (col + 1, fil);
break;
case 75:
gotoxy (col - 1, fil);
break;
}
}
else
sw = 1;
}
printf ("fin");
getch ();
fflush (stdin);
clrscr ();
}
+148
View File
@@ -0,0 +1,148 @@
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <k:\pruebas\mouse15\mouse.h>
int huge detectEGA(void);
void main(){
int gdriver = DETECT, gmode, errorcode;
gdriver = installuserdriver("svga256",detectEGA);
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk){
printf("Error al iniciar el modo gr fico: %s\n", grapherrormsg(errorcode));
printf("Pulse cualquier tecla para finalizar...");
getch();
exit(1);
}
MouseInit();
MShowCursor();
setcolor(1);
rectangle(-1,-1,640,480);setfillstyle(9,1);floodfill(2,2,1);
setcolor(15);
rectangle(288,88,612,412);rectangle(290,90,610,410);
int i=0;
for (i=1;i<9;i++)
line(290+(i*40),90,290+(i*40),410);
for (i=1;i<9;i++)
line(290,90+(i*40),610,90+(i*40));
for (int y=90,con=1,con2=1;y<410;y=y+40,con2++)
for (int x=290;x<610;x=x+40,con++){
if (con%2==0 && con2%2!=0)
setfillstyle(1,6);
else
if (con%2!=0 && con2%2==0)
setfillstyle(1,6);
else
setfillstyle(1,14);
floodfill(x+1,y+1,15);
}
for (y=110,con=1,con2=1;y<230;y=y+40,con2++)
for (i=310;i<610;i=i+40,con++)
if ((con%2==0 && con2%2!=0) || (con%2!=0 && con2%2==0)){
setcolor(0);setfillstyle(1,0);circle(i,y,10);floodfill(i,y,0);
}
for (y=310,con=1,con2=6;y<410;y=y+40,con2++)
for (i=310;i<610;i=i+40,con++)
if ((con%2==0 && con2%2!=0) || (con%2!=0 && con2%2==0)){
setcolor(15);setfillstyle(1,15);circle(i,y,10);floodfill(i,y,15);
}
int sw=0,cursor=0,col=0,fil=0,a=0,color=6;
col=370;fil=210;setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);rectangle(col+3,fil+3,col+37,fil+37);
while(sw==0){
cursor=getche();
if (cursor!=13){
setcolor(color);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);rectangle(col+3,fil+3,col+37,fil+37);
}
if(cursor==0){
a=getch();
switch(a){
case 72:
if (col>289 && col<571 && fil>89 && fil<371){
fil=fil-40;
if (fil<89)
fil=fil+40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
case 80:
if (col>289 && col<571 && fil>89 && fil<371){
fil=fil+40;
if (fil>371)
fil=fil-40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
case 77:
if (col>289 && col<571 && fil>89 && fil<371){
col=col+40;
if (col>571)
col=col-40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
case 75:
if (col>289 && col<571 && fil>89 && fil<371){
col=col-40;
if (col<289)
col=col+40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
}
}
else
if (cursor==13){
int color2=0;
color2=getpixel(col+20,fil+20);
setcolor(color);setfillstyle(1,color);floodfill(col+20,fil+20,color);
circle(col+20,fil+20,color);
setcolor(8);setfillstyle(1,8);circle(col+22,fil+22,10);
floodfill(col+22,fil+22,8);
setcolor(color2);setfillstyle(1,color2);circle(col+18,fil+18,10);
floodfill(col+18,fil+18,color2);
col=370;fil=210;setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
else
sw=1;
}
getch();
MouseClose();
closegraph();
}
/* detects EGA or VGA cards */
int huge detectEGA(void)
{
int driver, mode, sugmode = 0;
sugmode++;
detectgraph(&driver, &mode);
if ((driver == EGA) || (driver == VGA))
/* return suggested video mode number */
return 1;
else
/* return an error code */
return grError;
}
+126
View File
@@ -0,0 +1,126 @@
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main(){
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "d:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk){
printf("Error al iniciar el modo gr fico: %s\n", grapherrormsg(errorcode));
printf("Pulse cualquier tecla para finalizar...");
getch();
exit(1);
}
setcolor(1);
rectangle(-1,-1,640,480);setfillstyle(9,1);floodfill(2,2,1);
setcolor(15);
rectangle(288,88,612,412);rectangle(290,90,610,410);
int i=0;
for (i=1;i<9;i++)
line(290+(i*40),90,290+(i*40),410);
for (i=1;i<9;i++)
line(290,90+(i*40),610,90+(i*40));
for (int y=90,con=1,con2=1;y<410;y=y+40,con2++)
for (int x=290;x<610;x=x+40,con++){
if (con%2==0 && con2%2!=0)
setfillstyle(1,6);
else
if (con%2!=0 && con2%2==0)
setfillstyle(1,6);
else
setfillstyle(1,14);
floodfill(x+1,y+1,15);
}
for (y=110,con=1,con2=1;y<230;y=y+40,con2++)
for (i=310;i<610;i=i+40,con++)
if ((con%2==0 && con2%2!=0) || (con%2!=0 && con2%2==0)){
setcolor(0);setfillstyle(1,0);circle(i,y,10);floodfill(i,y,0);
}
for (y=310,con=1,con2=6;y<410;y=y+40,con2++)
for (i=310;i<610;i=i+40,con++)
if ((con%2==0 && con2%2!=0) || (con%2!=0 && con2%2==0)){
setcolor(15);setfillstyle(1,15);circle(i,y,10);floodfill(i,y,15);
}
int sw=0,cursor=0,col=0,fil=0,a=0,color=6;
col=370;fil=210;setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);rectangle(col+3,fil+3,col+37,fil+37);
while(sw==0){
cursor=getche();
if (cursor!=13){
setcolor(color);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);rectangle(col+3,fil+3,col+37,fil+37);
}
if(cursor==0){
a=getch();
switch(a){
case 72:
if (col>289 && col<571 && fil>89 && fil<371){
fil=fil-40;
if (fil<89)
fil=fil+40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
case 80:
if (col>289 && col<571 && fil>89 && fil<371){
fil=fil+40;
if (fil>371)
fil=fil-40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
case 77:
if (col>289 && col<571 && fil>89 && fil<371){
col=col+40;
if (col>571)
col=col-40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
case 75:
if (col>289 && col<571 && fil>89 && fil<371){
col=col-40;
if (col<289)
col=col+40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
}
}
else
if (cursor==13){
int color2=0;
color2=getpixel(col+20,fil+20);
setcolor(color);setfillstyle(1,color);floodfill(col+20,fil+20,color);
circle(col+20,fil+20,color);
setcolor(8);setfillstyle(1,8);circle(col+22,fil+22,10);
floodfill(col+22,fil+22,8);
setcolor(color2);setfillstyle(1,color2);circle(col+18,fil+18,10);
floodfill(col+18,fil+18,color2);
col=370;fil=210;setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
else
sw=1;
}
getch();
closegraph();
}
+148
View File
@@ -0,0 +1,148 @@
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <k:\pruebas\mouse15\mouse.h>
int huge detectEGA(void);
void main(){
int gdriver = DETECT, gmode, errorcode;
gdriver = installuserdriver("egavga",detectEGA);
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk){
printf("Error al iniciar el modo gr fico: %s\n", grapherrormsg(errorcode));
printf("Pulse cualquier tecla para finalizar...");
getch();
exit(1);
}
MouseInit();
MShowCursor();
setcolor(1);
rectangle(-1,-1,640,480);setfillstyle(9,1);floodfill(2,2,1);
setcolor(15);
rectangle(288,88,612,412);rectangle(290,90,610,410);
int i=0;
for (i=1;i<9;i++)
line(290+(i*40),90,290+(i*40),410);
for (i=1;i<9;i++)
line(290,90+(i*40),610,90+(i*40));
for (int y=90,con=1,con2=1;y<410;y=y+40,con2++)
for (int x=290;x<610;x=x+40,con++){
if (con%2==0 && con2%2!=0)
setfillstyle(1,6);
else
if (con%2!=0 && con2%2==0)
setfillstyle(1,6);
else
setfillstyle(1,14);
floodfill(x+1,y+1,15);
}
for (y=110,con=1,con2=1;y<230;y=y+40,con2++)
for (i=310;i<610;i=i+40,con++)
if ((con%2==0 && con2%2!=0) || (con%2!=0 && con2%2==0)){
setcolor(0);setfillstyle(1,0);circle(i,y,10);floodfill(i,y,0);
}
for (y=310,con=1,con2=6;y<410;y=y+40,con2++)
for (i=310;i<610;i=i+40,con++)
if ((con%2==0 && con2%2!=0) || (con%2!=0 && con2%2==0)){
setcolor(15);setfillstyle(1,15);circle(i,y,10);floodfill(i,y,15);
}
int sw=0,cursor=0,col=0,fil=0,a=0,color=6;
col=370;fil=210;setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);rectangle(col+3,fil+3,col+37,fil+37);
while(sw==0){
cursor=getche();
if (cursor!=13){
setcolor(color);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);rectangle(col+3,fil+3,col+37,fil+37);
}
if(cursor==0){
a=getch();
switch(a){
case 72:
if (col>289 && col<571 && fil>89 && fil<371){
fil=fil-40;
if (fil<89)
fil=fil+40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
case 80:
if (col>289 && col<571 && fil>89 && fil<371){
fil=fil+40;
if (fil>371)
fil=fil-40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
case 77:
if (col>289 && col<571 && fil>89 && fil<371){
col=col+40;
if (col>571)
col=col-40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
case 75:
if (col>289 && col<571 && fil>89 && fil<371){
col=col-40;
if (col<289)
col=col+40;
color=getpixel(col+1,fil+1);
setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
break;
}
}
else
if (cursor==13){
int color2=0;
color2=getpixel(col+20,fil+20);
setcolor(color);setfillstyle(1,color);floodfill(col+20,fil+20,color);
circle(col+20,fil+20,color);
setcolor(8);setfillstyle(1,8);circle(col+22,fil+22,10);
floodfill(col+22,fil+22,8);
setcolor(color2);setfillstyle(1,color2);circle(col+18,fil+18,10);
floodfill(col+18,fil+18,color2);
col=370;fil=210;setcolor(13);rectangle(col+1,fil+1,col+39,fil+39);
rectangle(col+2,fil+2,col+38,fil+38);
rectangle(col+3,fil+3,col+37,fil+37);
}
else
sw=1;
}
getch();
MouseClose();
closegraph();
}
/* detects EGA or VGA cards */
int huge detectEGA(void)
{
int driver, mode, sugmode = 0;
sugmode++;
detectgraph(&driver, &mode);
if ((driver == EGA) || (driver == VGA))
/* return suggested video mode number */
return 4;
else
/* return an error code */
return grError;
}
+32
View File
@@ -0,0 +1,32 @@
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <k:\pruebas\mouse15\mouse.h>
void main(){
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk){
printf("Error al iniciar el modo gr fico: %s\n", grapherrormsg(errorcode));
printf("Pulse cualquier tecla para finalizar...");
getch();
exit(1);
}
setcolor(1);
rectangle(-1,-1,640,480);setfillstyle(9,1);floodfill(2,2,1);
// Pendiente 1/4 =80
setcolor(15);
setlinestyle(0,1,3);line(80,430,560,430);
setlinestyle(0,1,1);line(80,430,160,110);line(560,430,480,110);
line(160,110,480,110);
line(320,430,320,110);
line(260,430,280,110);line(200,430,240,110);line(140,430,200,110);
line(380,430,360,110);line(440,430,400,110);line(500,430,440,110);
line(150,150,490,150);
line(160,192,500,192);
// setfillstyle(1,14);floodfill(475,112,15);
getch();
closegraph();
}
+31
View File
@@ -0,0 +1,31 @@
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main(){
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk){
printf("Error al iniciar el modo gr fico: %s\n", grapherrormsg(errorcode));
printf("Pulse cualquier tecla para finalizar...");
getch();
exit(1);
}
setcolor(1);
rectangle(-1,-1,640,480);setfillstyle(9,1);floodfill(2,2,1);
// Pendiente 1/4 =80
setcolor(15);
setlinestyle(0,1,3);line(80,430,560,430);
setlinestyle(0,1,1);line(80,430,160,110);line(560,430,480,110);
line(160,110,480,110);
line(320,430,320,110);
line(260,430,280,110);line(200,430,240,110);line(140,430,200,110);
line(380,430,360,110);line(440,430,400,110);line(500,430,440,110);
line(150,150,490,150);
line(160,192,500,192);
// setfillstyle(1,14);floodfill(475,112,15);
getch();
closegraph();
}
+192
View File
@@ -0,0 +1,192 @@
#include<stdio.h>
#include<conio.h>
char ventana (int ancho,int largo,int color_g,int color_borde,char titulo[],
int color_titulo,int posx,int posy);
void main() {
int cabeza[5][7],pelo[2][7],piernad[5][9],soga[12][7];
textbackground(0);
clrscr();
ventana(80,24,7,1,"Juego del Ahorcado",14,1,1);
// Pintar soga.
soga[0][3]='Û';soga[1][3]='Û';soga[2][3]='Û';soga[3][3]='Û';soga[4][3]='Û';
soga[5][2]='Û';soga[5][4]='Û';soga[6][1]='Û';soga[6][5]='Û';soga[7][0]='Û';
soga[7][6]='Û';soga[8][0]='Û';soga[8][6]='Û';soga[9][0]='Û';soga[9][6]='Û';
soga[10][1]='Û';soga[10][5]='Û';soga[11][2]='Û';soga[11][3]='Û';
soga[11][4]='Û';
for (int f=2,y=2;f<12;f++,y++) {
gotoxy(60,y);
for (int c=0;c<7;c++) {
if (soga[f][c]=='Û') {
textcolor(14);
cprintf ("%c",soga[f][c]);
}
else {
textcolor(7);
cprintf ("Û");
}
}
}
// pintar cabeza
cabeza[0][1]='Û';cabeza[0][2]='Û';cabeza[0][3]='Û';cabeza[0][4]='Û';
cabeza[0][5]='Û';cabeza[1][0]='Û';cabeza[1][1]='Û';cabeza[1][2]='Û';
cabeza[1][3]='Û';cabeza[1][4]='Û';cabeza[1][5]='Û';cabeza[1][6]='Û';
cabeza[2][0]='Û';cabeza[2][1]='Û';cabeza[2][2]='Û';cabeza[2][3]='Û';
cabeza[2][4]='Û';cabeza[2][5]='Û';cabeza[2][6]='Û';
cabeza[3][1]='Û';cabeza[3][2]='Û';cabeza[3][3]='Û';cabeza[3][4]='Û';
cabeza[3][5]='Û';cabeza[4][2]='Û';cabeza[4][3]='Û';cabeza[4][4]='Û';
for (f=0,y=6;f<5;f++,y++) {
gotoxy(60,y);
for (int c=0;c<7;c++) {
if (cabeza[f][c]=='Û') {
textcolor(6);
cprintf ("%c",cabeza[f][c]);
}
else {
textcolor(14);
cprintf ("Û");
}
}
}
// Pintar pelo
pelo[0][0]='Û';pelo[0][1]='Û';pelo[0][2]='Û';pelo[0][3]='Û';
pelo[0][4]='Û';pelo[0][5]='Û';pelo[0][6]='Û';pelo[1][0]='Û';
pelo[1][6]='Û';
for (f=0,y=5;f<2;f++,y++) {
gotoxy(60,y);
for (int c=0;c<7;c++) {
if (pelo[f][c]=='Û') {
textcolor(0);
cprintf ("%c",pelo[f][c]);
}
else {
textcolor(6);
cprintf ("Û");
}
}
}
// Pintar cara alegre.
// Pintar ojos
textbackground(6);textcolor(0);
gotoxy (62,7);cprintf ("O");
gotoxy (64,7);cprintf ("O");
// Pintar nariz.
gotoxy(63,8);cprintf("U");
// Pintar boca.
gotoxy(62,9);cprintf("À");
gotoxy(64,9);cprintf("Ù");
gotoxy(63,9);cprintf("-");
// Pintar cara triste.
// Pintar ojos
textbackground(6);textcolor(0);
gotoxy (62,7);cprintf ("*");
gotoxy (64,7);cprintf ("*");
// Pintar nariz.
gotoxy(63,8);cprintf("U");
// Pintar boca.
gotoxy(62,9);cprintf("+");
gotoxy(64,9);cprintf("+");
gotoxy(63,9);cprintf("+");
// Pintar cuerpo.
ventana(11,5,6,6,"",6,58,12);
// Pintar pierna.
piernad[0][0]='Û';piernad[0][1]='Û';piernad[0][2]='Û';piernad[0][3]='Û';
piernad[1][1]='Û';piernad[1][2]='Û';piernad[1][3]='Û';piernad[1][4]='Û';
piernad[2][2]='Û';piernad[2][3]='Û';piernad[2][4]='Û';piernad[2][5]='Û';
piernad[3][3]='Û';piernad[3][4]='Û';piernad[3][5]='Û';piernad[3][6]='Û';
piernad[4][4]='Û';piernad[4][5]='Û';piernad[4][6]='Û';piernad[4][7]='Û';
// Derecha
for (f=0,y=17;f<5;f++,y++) {
gotoxy(64,y);
for (int c=0;c<9;c++) {
if (piernad[f][c]=='Û') {
textcolor(6);
cprintf ("%c",piernad[f][c]);
}
else {
textcolor(7);
cprintf ("Û");
}
}
}
// Izquierda.
for (f=0,y=17;f<5;f++,y++) {
gotoxy(54,y);
for (int c=8;c>=0;c--) {
if (piernad[f][c]=='Û') {
textcolor(6);
cprintf ("%c",piernad[f][c]);
}
else {
textcolor(7);
cprintf ("Û");
}
}
}
// Pintar brazos.
// Derecho
for (f=0,y=12;f<4;f++,y++) {
gotoxy(69,y);
for (int c=0;c<9;c++) {
if (piernad[f][c]=='Û') {
textcolor(6);
cprintf ("%c",piernad[f][c]);
}
else {
textcolor(7);
cprintf ("Û");
}
}
}
// Izquierda.
for (f=0,y=12;f<4;f++,y++) {
gotoxy(49,y);
for (int c=8;c>=0;c--) {
if (piernad[f][c]=='Û') {
textcolor(6);
cprintf ("%c",piernad[f][c]);
}
else {
textcolor(7);
cprintf ("Û");
}
}
}
getch();
}
char ventana (int ancho,int largo,int color_g,int color_borde,char titulo[80],
int color_titulo,int posx,int posy) {
int x,y,cony,conx;
char dib;
dib='Û';
for (cony=0,y=posy;cony<largo;cony++,y++){
for (conx=0,x=posx;conx<ancho;conx++,x++) {
gotoxy(x,y);
if (x==posx || y==posy || y==(posy+(largo-1)) || x==(posx+1)
|| x==(posx+(ancho-2)) || x==(posx+(ancho-1)))
textcolor(color_borde);
else
textcolor(color_g);
cprintf ("%c",dib);
}
}
gotoxy((posx+2),posy);
textcolor(color_titulo);
textbackground(color_borde);
cprintf("%s",titulo);
return(0);
}
+56
View File
@@ -0,0 +1,56 @@
// pintar soga
for (int a=1;a<30;a++)
cprintf("Û");
gotoxy(8,21);
for (int b=1;b<26;b++)
cprintf("Û");
for (int f=1,y=20;f<=17;f++,y--) {
gotoxy(19,y);
for (int c=1;c<=4;c++)
cprintf("Û");
}
for (int d=1;d<44;d++)
cprintf("Û");
gotoxy(64,3);
cprintf("Û");
gotoxy(65,3);
cprintf("Û");
gotoxy(64,5);
cprintf("Û");
gotoxy(65,5);
cprintf("Û");
for (int g=1,y2=4;g<=5;g++,y2++) {
gotoxy(62,y2);
textcolor(14);
cprintf("Û");
}
// Inicializaci¢n de la soga.
soga [0][2]='Û';soga [1][1]='Û';soga [1][3]='Û';soga [2][0]='Û';
soga [2][4]='Û';soga [3][1]='Û';soga [3][3]='Û';soga [4][2]='Û';
for (int jfila=0;jfila<=4;jfila++)
for (int jcolumna=0;jcolumna<=4;jcolumna++) {
gotoxy (jcolumna+60,jfila+8);
if (soga[jfila][jcolumna]=='Û') {
textcolor(14);
cprintf ("%c",soga[jfila][jcolumna]);
}
}
// Inicializaci¢n de la cabeza.
cabeza [0][3]='Û';cabeza [1][2]='Û';cabeza [2][1]='Û';cabeza [3][0]='Û';
cabeza [4][1]='Û';cabeza [5][2]='Û';cabeza [6][3]='Û';cabeza [5][4]='Û';
cabeza [4][5]='Û';cabeza [3][6]='Û';cabeza [2][5]='Û';cabeza [1][4]='Û';
cabeza [1][3]='Û';cabeza [2][3]='Û';cabeza [3][3]='Û';cabeza [4][3]='Û';
cabeza [5][3]='Û';cabeza [2][2]='Û';cabeza [3][2]='Û';cabeza [4][2]='Û';
cabeza [3][1]='Û';cabeza [2][4]='Û';cabeza [3][4]='Û';cabeza [4][4]='Û';
cabeza [3][5]='Û';cabeza [4][5]='Û';
for (jfila=0;jfila<=6;jfila++)
for (jcolumna=0;jcolumna<=6;jcolumna++) {
gotoxy (jcolumna+60,jfila+7);
if (cabeza[jfila][jcolumna]=='Û') {
textcolor(6);
cprintf ("%c",cabeza[jfila][jcolumna]);
}
}
// fin pintar soga
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+1338
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+119
View File
@@ -0,0 +1,119 @@
// ************************************************************************************************
//
// Direct Video
//
//
// ************************************** (c) Pedro Díez López ************************************
#include <malloc.h>
#include "DXVideo.h"
//
// Inicio
//
BOOL CDXVideo::Inicio(HWND hwnd,int Ancho,int Alto,int BPP)
{
char buf[256];
ddrval = DirectDrawCreate(NULL, &lpDD, NULL);
if(ddrval == DD_OK)
{
ddrval = lpDD->SetCooperativeLevel(hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
if(ddrval == DD_OK)
{
ddrval = lpDD->SetDisplayMode(Ancho,Alto,BPP);
if(ddrval == DD_OK)
{
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount = 1;
ddrval = lpDD->CreateSurface(&ddsd, &lpDDSView, NULL);
if(ddrval == DD_OK)
{
ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
ddrval = lpDDSView->GetAttachedSurface(&ddscaps, &lpDDSBack);
if(ddrval == DD_OK)
{
hres = Ancho;
vres = Alto;
bpp = BPP;
ElmBuffer = hres*vres;
DimBuffer = hres*vres*(bpp/8);
pBuffer.bpp = malloc (DimBuffer);
if(pBuffer.bpp==NULL)
{
hres = 0;
vres = 0;
bpp = 0;
ElmBuffer = 0;
DimBuffer = 0;
Fin();
return FALSE;
}
return TRUE;
}
}
}
}
}
wsprintf(buf, "Fallo %08lX al iniciliazr DirectDraw\n",ddrval);
MessageBox(hwnd, buf, "ERROR DirectX", MB_OK);
Fin();
return FALSE;
}
//
// Cursor
//
void CDXVideo::Cursor(HCURSOR nCursor)
{
mDDCursorShape = nCursor;
}
//
// Pinta
//
void CDXVideo::Pinta ()
{
// Copia el buffer de trabajo al BackBuffer.
while (TRUE)
{
ddrval=lpDDSBack->Lock(NULL,&ddsd,0,NULL);
if(ddrval == DD_OK) break;
if (ddrval != DDERR_WASSTILLDRAWING) return;
}
lpDXBuffer = (void *)ddsd.lpSurface;
memcpy(lpDXBuffer,pBuffer.bpp,DimBuffer);
lpDDSBack->Unlock(NULL);
// Cambia el buffer.
while (TRUE)
{
ddrval=lpDDSView->Flip(NULL, 0);
if (ddrval == DD_OK) return;
if (ddrval == DDERR_SURFACELOST)
{
ddrval=lpDDSView->Restore();
if (ddrval!=DD_OK) return;
}
if (ddrval!=DDERR_WASSTILLDRAWING) return;
}
}
//
// Fin
//
void CDXVideo::Fin()
{
if (pBuffer.bpp != NULL) free (pBuffer.bpp);
if(lpDD != NULL)
{
if(lpDDSView!=NULL)
{
lpDDSView->Release();
lpDDSView = NULL;
}
lpDD->Release();
lpDD = NULL;
}
}
+31
View File
@@ -0,0 +1,31 @@
// Programa ejemplo 1
//
// Programadores:
//
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
// Program ejemplo de tablas.
#include<stdio.h>
#include<conio.h>
int tabla[10];
int con;
void main() {
for (con=0;con<10;con++) {
clrscr();
gotoxy (20,12);
printf ("Introduce n£meros para llenar la tabla: ");
fflush (stdin);
scanf ("%5d",&tabla[con]);
}
clrscr();
for (con=0;con<10;con++)
printf ("\nEl valor introducido en la posici¢n %d es: %d",con+1,tabla[con]);
fflush(stdin);
getch();
}
+32
View File
@@ -0,0 +1,32 @@
// Programa ejemplo 2
//
// Programadores:
//
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
// Program ejemplo de tablas.
#include<stdio.h>
#include<conio.h>
int tabla[100];
int con,num,conaux;
void main() {
for (con=0,num=10;con<100;con++,num=num+2)
tabla[con]=num;
clrscr();
for (con=99;con>=0;con--,conaux++) {
printf ("\nEl valor introducido en la posici¢n %d es: %d",con+1,tabla[con]);
if (conaux==24) {
fflush (stdin);
getch();
conaux=0;
}
}
fflush (stdin);
getch();
}
+17
View File
@@ -0,0 +1,17 @@
// ejemplo3
#include<stdio.h>
#include<conio.h>
int matriz [5][4];
int f,c,cont=1;
void main() {
clrscr();
for(f=0;f<5;f++)
for (c=0;c<4;c++,cont++) {
matriz[f][c]=cont;
printf ("\nMatriz [%d][%d] contiene %d y su direcci¢n es: %p",f,c,matriz[f][c],&matriz[f][c]);
}
getch();
}
+27
View File
@@ -0,0 +1,27 @@
// ejemplo4
#include<stdio.h>
#include<conio.h>
int tabla[10][10],num,x,y,sw=1;
void main(){
clrscr();
for (y=0,num=1;y<10;y++){
if (sw==1)
for (x=0;x<10;x++,num++){
tabla[y][x]=num;
printf ("\nValor de la posici¢n [%d][%d] es: %d",y,x,tabla[y][x]);
sw=0;
}
else
for (x=9;x>=0;x--,num++){
tabla[y][x]=num;
printf ("\nValor de la posici¢n [%d][%d] es: %d",y,x,tabla[y][x]);
sw=1;
}
fflush(stdin);
getch();
}
fflush(stdin);
getch();
}
+35
View File
@@ -0,0 +1,35 @@
#include<stdio.h>
#include<conio.h>
#include<dos.h>
void main(){
clrscr();
for (int j=0;j<=40;j++){
textcolor(7);gotoxy(3+j,5);cprintf("Û");
}
textbackground(7);textcolor(15);gotoxy(3,5);cprintf("0%");
for (j=0;j<=40;j++){
textcolor(16);
if (((j*2)+25)<=100){
if (j>6){
gotoxy((j-1)/2,5);textcolor(4);
cprintf("Û");
gotoxy(j/2,5);
}
else
gotoxy(3,5);
textcolor(15);textbackground(4);
cprintf("%d%",(j*2)+25);
}
textcolor(4);
if (j==18)
textbackground(4);
if (j<=40){
gotoxy(3+j,5);cprintf("Û");
}
delay(50);
}
textcolor(7);textbackground(0);
getch();
}
+148
View File
@@ -0,0 +1,148 @@
/* ESTE PROGRAMA GENERA UN MENU DE 3 OPCIONES, DONDE LAS OPCIONES SON
SELECCIONADAS POR LOS CURSORES Y LA TECLA ENTER*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
/* PROTOTIPOS DE LAS FUNCIONES UTILIZADAS */
void impri(int,char[],int,int);/*IMPRIME LAS OPCIONES DEL MENU int,COLOR DE
IMPRESION, cha[],CADENA A IMPRIMIR,
int, COLUMNA, int, FILA*/
void cursor(char[3][10],int,int,int);/* MANEHO DE LOS CURSORES Y SELECION DE
OPCION, char[3][10],MATRIZ DE CADENAS
int,COLUMNA, int,FILA int,INDICE PARA
LA MATRIZ*/
void main()
{
_setcursortype(_NOCURSOR);/*FUNCION QUE NOS PERMITE OCULTAR EL CURSOR EN
PANTALLA SUS POSIBLES VALORES SON:
_NOCURSOR: EL CURSOR NO APARECE VALOR 0
_SOLIDCURSOR: EL CURSOR APARECE GRUESO VALOR 1
_NORMALCURSOR: NORMAL CURSOR VALOR 2
_setcursortype(int) se encuentra en conio.h
en dicha libreria estan definidas las
constantes _NOCURSOR,_SOLIDCURSOR Y _NORMALCURSOR*/
int sw=0,color,c,f,col,fil, indice;
char cad[3][10]={"PRIMERA","SEGUNDA","SALIR"};/* MATRIZ DE CADENAS, CON LAS
OPCIONES DEL MENU*/
clrscr();
color=7;
impri(color,cad[0],30,10);
impri(color,cad[1],30,12);
impri(color,cad[2],30,14);
col=30;
fil=10;
indice=0;
while(sw==0)
{
cursor(cad,col,fil,indice);
if(wherey()==10)
{ col=30;
fil=10;
gotoxy(20,24);
textcolor(142);
cprintf("OPCION PRIMERA");
textcolor(14);
cprintf("\t PULSE UNA TECLA PARA VOLVER AL MENU");
textcolor(7);
getch();
gotoxy(20,24);
printf(" ");
indice=0;
}
else
if(wherey()==12)
{
col=30;
fil=12;
gotoxy(20,24);
textcolor(142);
cprintf("OPCION SEGUNDA");
textcolor(14);
cprintf("\t PULSE UNA TECLA PARA VOLVER AL MENU");
textcolor(7);
gotoxy(20,24);
getch();
printf(" ");
indice=1;
}
else
{
col=30;
fil=14;
gotoxy(20,24);
textcolor(142);
printf("SALIR");
textcolor(14);
cprintf("\t PULSE UNA TECLA PARA VOLVER AL MENU");
textcolor(7);
sw=1;
getch();
gotoxy(20,24);
printf(" ");
indice=2;
}
}
_setcursortype(_NORMALCURSOR);
}
//DESARROLLO DE LAS FUNCIONES
void impri(int color, char cad[],int c,int f)
{
textcolor(color);
gotoxy(c,f);
cprintf("OPCION %s",cad);
}
void cursor(char cad[3][10],int c,int f,int indice)
{
int sw=0,i,a;
gotoxy(c,f);
impri(14,cad[indice],c,f);
while(sw==0)
{
i=getche();
if(i==0)
{
a=getch();
switch(a)
{
case 72:
{
gotoxy(c,f);
impri(7,cad[indice],c,f);
if(f==10)
f=14;
else
f=f-2;
gotoxy(c,f);
if(indice==0)
indice=2;
else
indice--;
impri(14,cad[indice],c,f);
break;
}
case 80:
{
gotoxy(c,f);
impri(7,cad[indice],c,f);
if(f==14)
f=10;
else
f=f+2;
gotoxy(c,f);
if(indice==2)
indice=0;
else
indice++;
impri(14,cad[indice],c,f);
break;
}
}
}
else
if(i==13)
sw=1;
}
}
+149
View File
@@ -0,0 +1,149 @@
/* ESTE PROGRAMA GENERA UN MENU DE 3 OPCIONES, DONDE LAS OPCIONES SON
SELECCIONADAS POR LOS CURSORES Y LA TECLA ENTER*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
/* PROTOTIPOS DE LAS FUNCIONES UTILIZADAS */
void impri(int,char[],int,int);/*IMPRIME LAS OPCIONES DEL MENU int,COLOR DE
IMPRESION, cha[],CADENA A IMPRIMIR,
int, COLUMNA, int, FILA*/
void cursor(char[3][10],int,int,int);/* MANEHO DE LOS CURSORES Y SELECION DE
OPCION, char[3][10],MATRIZ DE CADENAS
int,COLUMNA, int,FILA int,INDICE PARA
LA MATRIZ*/
void main()
{
_setcursortype(_NOCURSOR);/*FUNCION QUE NOS PERMITE OCULTAR EL CURSOR EN
PANTALLA SUS POSIBLES VALORES SON:
_NOCURSOR: EL CURSOR NO APARECE VALOR 0
_SOLIDCURSOR: EL CURSOR APARECE GRUESO VALOR 1
_NORMALCURSOR: NORMAL CURSOR VALOR 2
_setcursortype(int) se encuentra en conio.h
en dicha libreria estan definidas las
constantes _NOCURSOR,_SOLIDCURSOR Y _NORMALCURSOR*/
int sw=0,color,c,f,col,fil, indice;
char cad[3][10]={"PRIMERA","SEGUNDA","SALIR"};/* MATRIZ DE CADENAS, CON LAS
OPCIONES DEL MENU*/
clrscr();
color=7;
impri(color,cad[0],30,10);
impri(color,cad[1],30,12);
impri(color,cad[2],30,14);
col=30;
fil=10;
indice=0;
while(sw==0)
{
cursor(cad,col,fil,indice);
if(wherey()==10)
{ col=30;
fil=10;
gotoxy(20,24);
textcolor(142);
cprintf("OPCION PRIMERA");
textcolor(14);
cprintf("\t PULSE UNA TECLA PARA VOLVER AL MENU");
textcolor(7);
getch();
gotoxy(20,24);
printf("
");
indice=0;
}
else
if(wherey()==12)
{
col=30;
fil=12;
gotoxy(20,24);
textcolor(142);
cprintf("OPCION SEGUNDA");
textcolor(14);
cprintf("\t PULSE UNA TECLA PARA VOLVER AL MENU");
textcolor(7);
gotoxy(20,24);
getch();
printf(" ");
indice=1;
}
else
{
col=30;
fil=14;
gotoxy(20,24);
textcolor(142);
printf("SALIR");
textcolor(14);
cprintf("\t PULSE UNA TECLA PARA VOLVER AL MENU");
textcolor(7);
sw=1;
getch();
gotoxy(20,24);
printf(" ");
indice=2;
}
}
_setcursortype(_NORMALCURSOR);
}
//DESARROLLO DE LAS FUNCIONES
void impri(int color, char cad[],int c,int f)
{
textcolor(color);
gotoxy(c,f);
cprintf("OPCION %s",cad);
}
void cursor(char cad[3][10],int c,int f,int indice)
{
int sw=0,i,a;
gotoxy(c,f);
impri(14,cad[indice],c,f);
while(sw==0)
{
i=getche();
if(i==0)
{
a=getch();
switch(a)
{
case 72:
{
gotoxy(c,f);
impri(7,cad[indice],c,f);
if(f==10)
f=14;
else
f=f-2;
gotoxy(c,f);
if(indice==0)
indice=2;
else
indice--;
impri(14,cad[indice],c,f);
break;
}
case 80:
{
gotoxy(c,f);
impri(7,cad[indice],c,f);
if(f==14)
f=10;
else
f=f+2;
gotoxy(c,f);
if(indice==2)
indice=0;
else
indice++;
impri(14,cad[indice],c,f);
break;
}
}
}
else
if(i==13)
sw=1;
}
}
+219
View File
@@ -0,0 +1,219 @@
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#define seleccionado color_numero=color_menu=9;settextstyle(7,0,4);
#define no_seleccionado color_numero=3;color_menu=8;settextstyle(8,0,3);
int select_actual=1,num_opciones=5,estoy_en=0;
void menu_principal(int selec_actual); // INICIALIZACION DE FUNCIONES
void sub_menu(int menu);
void modo_grafico();
void leer_tecla(int num_opciones);
void satelite_gsm(int senyal);
// PROGRAMA PRINCIPAL
//-------------------
void main() {
modo_grafico();
menu_principal(select_actual);
leer_tecla(num_opciones);
getch();
closegraph();
}
//FUNCIàN QUE INICIA EL MODO GRµFICO
//----------------------------------
void modo_grafico(){
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "d:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk){
printf("Error al iniciar el modo gr fico: %s\n", grapherrormsg(errorcode));
printf("Pulse cualquier tecla para finalizar...");
getch();
exit(1);
}
}
// FUNCIàN QUE LEE LAS TECLAS PULSADAS
//------------------------------------
void leer_tecla(int num_opciones) {
int tecla,tecla2,sw=1,pintar=0; // VARIABLES
while(sw==1){
tecla=getch();
if(tecla==0){
tecla2=getch();
pintar=0;
switch(tecla2){
case 72:
if (select_actual<=1)
select_actual=num_opciones;
else
select_actual--;
pintar=1;
break;
case 80:
if (select_actual>=num_opciones)
select_actual=1;
else
select_actual++;
pintar=1;
break;
}
}
else
if (tecla==13){
pintar=0;
clearviewport();
satelite_gsm(select_actual);
}
else
if (tecla==27)
sw=0;
if (pintar) {
clearviewport();
// satelite_gsm(select_actual);
menu_principal(select_actual);
}
}
}
// FUNCIàN QUE NOS DICE EN QUE LUGAR DEL MENU NOS ENCONTRAMOS
//-----------------------------------------------------------
void satelite_gsm(int senyal) {
if (estoy_en==0){
estoy_en=senyal;
sub_menu(senyal);
}
}
void sub_menu(int menu){
int color_numero=9,color_menu=2,pos_number=0,pos_menu=pos_number+50;
setviewport(170, 100, 600, 300, 0);
switch (menu) {
case 1: // MENU 1: CLIENTES
estoy_en=1;
if (select_actual==1){seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,0,"1.-");
setcolor(color_menu);outtextxy(pos_menu,0,"Altas de Clientes");
if (select_actual==2) {seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,40,"2.-");
setcolor(color_menu);outtextxy(pos_menu,40,"Bajas de Clientes");
if (select_actual==3){seleccionado;}
else{no_seleccionado}
setcolor(color_menu);outtextxy(pos_menu,80,"Modificaciones");
setcolor(color_numero);outtextxy(0,80,"3.-");
if (select_actual==4){seleccionado}
else{no_seleccionado}
setcolor(color_menu);outtextxy(pos_menu,120,"Listar Clientes");
setcolor(color_numero);outtextxy(0,120,"4.-");
if (select_actual==5){seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,160,"5.-");
setcolor(color_menu);outtextxy(pos_menu,160,"Volver");
break;
case 2: // MENU 2 GESTION DE PEDIDOS
if (select_actual==1){seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,0,"1.-");
setcolor(color_menu);outtextxy(pos_menu,0,"Altas de Pel¡culas");
if (select_actual==2) {seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,40,"2.-");
setcolor(color_menu);outtextxy(pos_menu,40,"Bajas de Pel¡culas");
if (select_actual==3){seleccionado;}
else{no_seleccionado}
setcolor(color_menu);outtextxy(pos_menu,80,"Modificaciones");
setcolor(color_numero);outtextxy(0,80,"3.-");
if (select_actual==4){seleccionado}
else{no_seleccionado}
setcolor(color_menu);outtextxy(pos_menu,120,"Listar Pel¡culas");
setcolor(color_numero);outtextxy(0,120,"4.-");
if (select_actual==5){seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,160,"5.-");
setcolor(color_menu);outtextxy(pos_menu,160,"Volver");
break;
case 3: // MENU 3: ALQUILERES
if (select_actual==1){seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,0,"1.-");
setcolor(color_menu);outtextxy(pos_menu,0,"Alquiler");
if (select_actual==2) {seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,40,"2.-");
setcolor(color_menu);outtextxy(pos_menu,40,"Devoluci¢n");
if (select_actual==3){seleccionado;}
else{no_seleccionado}
setcolor(color_menu);outtextxy(pos_menu,80,"Volver");
setcolor(color_numero);outtextxy(0,80,"3.-");
break;
case 4:
if (select_actual==1){seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,0,"1.-");
setcolor(color_menu);outtextxy(pos_menu,0,"Alquiler");
if (select_actual==2) {seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,40,"2.-");
setcolor(color_menu);outtextxy(pos_menu,40,"Devoluci¢n");
if (select_actual==3){seleccionado;}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,80,"3.-");
setcolor(color_menu);outtextxy(pos_menu,80,"Volver");
break;
}
}
// FUNCIàN QUE MUESTRA EL MENé PRINCIPAL
//--------------------------------------
void menu_principal(int select_actual) {
setviewport(170, 100, 600, 300, 0);
int color_numero=9,color_menu=2,pos_number=0,pos_menu=pos_number+50;
if (select_actual==1){seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,0,"1.-");
setcolor(color_menu);outtextxy(pos_menu,0,"Gesti¢n de Clientes");
if (select_actual==2) {seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,40,"2.-");
setcolor(color_menu);outtextxy(pos_menu,40,"Gesti¢n de Pedidos");
if (select_actual==3){seleccionado;}
else{no_seleccionado}
setcolor(color_menu);outtextxy(pos_menu,80,"Alquileres");
setcolor(color_numero);outtextxy(0,80,"3.-");
if (select_actual==4){seleccionado}
else{no_seleccionado}
setcolor(color_menu);outtextxy(pos_menu,120,"Devoluciones");
setcolor(color_numero);outtextxy(0,120,"4.-");
if (select_actual==5){seleccionado}
else{no_seleccionado}
setcolor(color_numero);outtextxy(0,160,"5.-");
setcolor(color_menu);outtextxy(pos_menu,160,"Salir");
}
+130
View File
@@ -0,0 +1,130 @@
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *maes, *mov, *movtmp;
struct nodo {
int n;
struct nodo *sig;
};
struct clientes{
char nombre[11], apellidos[21], direccion[21], telefono[11];
int codigo;
};
struct maestro {
int codigo;
char nombre[11], apellidos[21];
char direccion[21], telefono[11];
}regmaes;
struct movi {
char tipo;
int codigo;
char nombre[10], apellidos[20];
char direccion[20], telefono[10];
}regmov;
void INSERTAR (struct nodo **, int);
void ORDENAR (struct nodo **);
void LISTAR_INV (struct nodo *);
void LISTAR (struct nodo *);
int elementos=0;
struct nodo *p=NULL;
void main(void){
if ((mov=fopen("k:\\files\\clientes.mov","r+b"))==NULL)
{
printf("Error. No existe el fichero de movimientos");
exit (1);
}
else {
fread(&regmov,sizeof(regmov),1,mov);
while (!feof(mov))
{
INSERTAR(&p,regmov.codigo);
fread(&regmov,sizeof(regmov),1,mov);
}
fclose (mov);
ORDENAR(&p);
system ("rename k:\\files\\clientes.mov clientes.ord");
if ((movtmp=fopen("k:\\files\\clientes.ord","r+b"))==NULL)
{
printf("Error Muy Gordo. No existe el fichero temporal.");
exit (1);
}
mov=fopen("k:\\files\\clientes.mov","w+b");
struct nodo *q=p;
while (q) {
fread(&regmov,sizeof(regmov),1,movtmp);
if (regmov.codigo == q->n){
fwrite(&regmov,sizeof(regmov),1,mov);
fseek(movtmp,0,0);
q=q->sig;
}
}
//fclose(movtmp);
LISTAR(p);
getch();
free(p);
fcloseall();
unlink ("k:\\files\\clientes.ord");
}
}
//******************************************************************
void INSERTAR (struct nodo **p, int d){
struct nodo *aux;
aux = (struct nodo*) malloc (sizeof(struct nodo));
aux -> n = d;
aux -> sig = (*p);
(*p) = aux;
elementos+=1;
}
void ORDENAR (struct nodo **q){
int j=0,sw=0,n=0;
struct nodo *aux1=NULL, *aux2=NULL,aux;
int i=1;sw=1;
n=elementos-1;
while (i<=n && sw==1){
sw=0;aux2 = *q; aux1 = aux2->sig;
aux.sig=NULL;
aux.n=0;
for (j=1; j< elementos;j++) {
if ((aux2->n)>(aux1->n)){
aux.n=aux2->n;
aux2->n=aux1->n;
aux1->n=aux.n;
sw=1;
}
aux2 = aux1; aux1 = aux1 -> sig;
}
i++;
}
}
void LISTAR_INV (struct nodo *p){
if (p!=NULL) {
LISTAR_INV (p->sig);
printf(" %d ",p->n);
}
}
void LISTAR (struct nodo *p){
if (p!=NULL) {
printf(" %d ",p->n);
LISTAR (p->sig);
}
}
+150
View File
@@ -0,0 +1,150 @@
// Minicalculator© Ver 3.0
// Copyright 1998
//
// Descripci¢n del programa:
// Este programa pide dos n£meros, luego muestra un men£ y dependiendo
// de la opci¢n elegida los suma, resta, multiplica o divide imprimiendo
// el resultado de la operaci¢n.
//
// Programadores:
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// Grupo 1§A
//
// Novedades de la Versi¢n 3.0
// No finaliza el programa hasta que el usuario lo requiere y adem s
// se ha habilitado una nueva opci¢n para poder introducir valores nuevos.
//
// Novedades de versiones anteriores:
// Versi¢n 2.2
// Presenta un mensaje de error si la opci¢n no est  en el men£
// o si la divisi¢n es por cero. Adem s cuando la divisi¢n no es exacta
// se imprime el resto. Tambin se ha mejorado la interface con el usuario.
// No realiza la resta ni la divisi¢n si el primer n£mero es menor que el
// segundo.
// Creado: 3-11-1998
// éltima modificaci¢n: 12-11-1998
#include <conio.h>
#include <stdio.h>
int a,b,c;
char pausa;
void main ()
{
clrscr();
printf ("\n\t\t\t Minicalculator© Ver 3.0");
printf ("\n\t\t\t ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ");
printf ("\n\n\n\n\t\t Introduce primer n£mero: ");
fflush (stdin);
scanf ("%d",&a);
printf ("\n\n\t\t Introduce segundo n£mero: ");
fflush (stdin);
scanf ("%d",&b);
while (c!=6)
{
clrscr();
printf ("\n\t\t\t Minicalculator© Ver 3.0");
printf ("\n\t\t\t ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ");
printf ("\n\n\n\t\t\t Men£ de opciones");
printf ("\n\n\t\t 1.- Sumar los n£meros introducidos.");
printf ("\n\t\t 2.- Restar los n£meros introducidos.");
printf ("\n\t\t 3.- Multiplicar los n£meros introducidos.");
printf ("\n\t\t 4.- Dividir los n£meros introducidos.");
printf ("\n\t\t 5.- Introducir datos nuevos.");
printf ("\n\t\t 6.- Salir.");
printf ("\n\n\t\t Opci¢n deseada: ");
fflush(stdin);
scanf ("%d",&c);
if (c==1)
{
printf ("\n\t\t La suma de los n£meros (%d+%d) es: %d",a,b,a+b);
}
else
{
if (c==2)
{
if (a<b)
{
printf ("\n\t\t ­­ La resta d  un n£mero negativo !!");
}
else
{
printf ("\n\t\t La resta de los n£meros (%d-%d) es: %d",a,b,a-b);
}
}
else
{
if (c==3)
{
printf ("\n\t\t La multiplicaci¢n de los n£meros (%d*%d)",a,b);
printf (" es: %d",a*b);
}
else
{
if (c==4)
{
if (b==0)
{
printf ("\n\t\t ­­ Error !!, no se puede dividir por cero.");
}
else
{
if (a<b)
{
printf ("\n\t\t La divisi¢n no se puede realizar, cambie");
printf (" los valores.");
}
else
{
printf ("\n\t\t La divisi¢n de los n£meros (%d/%d)",a,b);
printf (" es: %d",a/b);
if (a%b!=0)
{
printf (" Resto: %d",a%b);
}
}
}
}
else
{
if (c==5)
{
clrscr();
printf ("\n\t\t\t Minicalculator© Ver 3.0");
printf ("\n\t\t\t ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ");
printf ("\n\n\n\n\t\t Introduce primer n£mero: ");
fflush (stdin);
scanf ("%d",&a);
printf ("\n\n\t\t Introduce segundo n£mero: ");
fflush (stdin);
scanf ("%d",&b);
}
else
{
if (c==6)
{
printf ("\n\n\n\n\n\n\n\n\t\t Pulse ENTER para finalizar...");
fflush(stdin);
scanf("%c",&pausa);
}
else
{
printf ("\n\n\t\t\t­­ Opci¢n incorrecta !!");
}
}
}
}
}
}
if (c!=6 && c!=5)
{
printf ("\n\n\n\n\n\n\n\t\t Pulse ENTER para continuar...");
fflush(stdin);
scanf("%c",&pausa);
}
}
clrscr();
}
+101
View File
@@ -0,0 +1,101 @@
// Prog10
//
// Programadores:
//
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
// Program que introducido un n£mero decimal, lo cambia a la base
// introducida.
#include<stdio.h>
#include<conio.h>
int numero,base,cociente,j_resto,numeroaux,resto,baseini;
int tabla[15];
char aux;
// Inicializaci¢n de funciones.
void imprimir_num(int j_resto);
//int comprobar_base(baseini);
void main () {
clrscr();
gotoxy (20,11);
printf ("Introduce la base del n£mero: ");
fflush(stdin);
scanf ("%d",&baseini);
gotoxy (20,12);
printf ("Introduce n£mero: ");
for (j_resto=0;j_resto<15;j_resto++) {
fflush(stdin);
cscanf ("%1c",&aux);
if (aux=='t')
j_resto=15;
tabla[j_resto]=aux;
// else
// if (tabla[j_resto]==97)
}
gotoxy (20,13);
printf ("Introduce base: ");
fflush(stdin);
scanf ("%d",&base);
numeroaux=numero;
j_resto=0;
do {
cociente=numeroaux/base;
resto=numeroaux%base;
tabla[j_resto]=resto;
j_resto++;
numeroaux=cociente;
}
while (base<=cociente);
tabla[j_resto]=cociente;
imprimir_num(j_resto);
fflush(stdin);
getch();
}
// Funci¢n imprimir n£mero resultante.
void imprimir_num(int j_resto) {
clrscr();
gotoxy(10,12);
printf ("El n£mero %d en base %d es: ",numero,base);
for (;j_resto>=0;j_resto--) {
if (tabla[j_resto]<=9)
printf ("%d",tabla[j_resto]);
else
if (tabla[j_resto]==10)
printf ("A");
else
if (tabla[j_resto]==11)
printf ("B");
else
if (tabla[j_resto]==12)
printf ("C");
else
if (tabla[j_resto]==13)
printf ("D");
else
if (tabla[j_resto]==14)
printf ("E");
else
if (tabla[j_resto]==15)
printf ("F");
}
}
// Funci¢n comprobar base.
//int comprobar_base(int baseini) {
// if (baseini<=9)
// if (tabla[j_resto]>=baseini)
// error=1;
// else
// if (tabla[j_resto]!=065 || tabla[j_resto]!=097 || tabla[j_resto]!=066
//|| tabla[j_resto]!= 067 || tabla[j_resto]!=068 || tabla[j_resto]!=069)
//}
+552
View File
@@ -0,0 +1,552 @@
// Prog9
//
// Programadores:
//
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
#include<stdio.h>
#include<conio.h>
char ventana (int ancho,int largo,int color_g,int color_borde,char titulo[],
int color_titulo,int posx,int posy);
int intentos(int nivel,int niv,int n);
char psoga();char pcabeza();char pcaraa(); char pcarat();char pcuerpo();
char pextremidades(int lado);char dibujar(int niv,int fallo);
void main() {
int numero[9],n=0,nivel=0,num,tabla[9],color_num[10],niv=0,soga[5][5];
int cabeza[7][7],fallo=0;
for (int aux=0;aux<9;aux++)
tabla[aux]=10;
for (int auxi=0;auxi<=9;auxi++)
color_num[auxi]=0;
textbackground(0);
clrscr();
ventana(80,24,7,1,"Juego del Ahorcado",14,1,1);
textcolor(6);
gotoxy(6,22);
ventana(45,7,7,8,"H",1,20,10);
ventana(45,7,7,1,"Valores iniciales del juego",14,18,9);
textcolor(0);
textbackground(7);
gotoxy(21,11);
cprintf ("Introduce nivel de dificultad(1-7): ");
textcolor(0);
fflush(stdin);
cscanf("%1d",&nivel);
gotoxy(21,13);
cprintf ("Introducir n£mero a adivinar: ");
do {
textcolor(0);
textbackground(0);
gotoxy(51,13);
fflush(stdin);
cscanf ("%1d",&numero[n]);
n++;
gotoxy (51,13);
textcolor(0);
textbackground(7);
cprintf ("_");
} while (n<nivel);
textbackground(0);
clrscr();
ventana(80,24,7,1,"Juego del Ahorcado",14,1,1);
if (nivel!=6 && nivel!=7)
psoga();
ventana(25,7,7,8,"",8,10,5);
ventana(25,7,7,1,"Estado del juego",14,8,4);
gotoxy(12,6);
textbackground(7);
for (n=0;n<nivel;n++) {
textcolor(0);
cprintf ("_");
textcolor(7);
cprintf (" ");
}
gotoxy (11,8);
for (int number=0;number<=9;number++) {
textcolor(0);
cprintf ("%d",number);
textcolor(7);
cprintf (" ");
}
int sw=1;
ventana(30,7,7,8,"",8,9,15);
ventana(30,7,7,1,"Introducci¢n del n£mero",14,7,14);
if (nivel==1)
niv=6;
else
if (nivel==2)
niv=5;
else
if (nivel==3)
niv=5;
else
if (nivel==4)
niv=6;
else
if (nivel==5)
niv=6;
else
if (nivel==6)
niv=7;
else
niv=7;
gotoxy(10,18);
textcolor(0);
textbackground(7);
cprintf ("Intentos: ");
textcolor(2);cprintf ("0");textcolor(0);cprintf (" de %d",niv);
for (n=1;n<=niv && sw==1;n++) {
textcolor(0);
textbackground(7);
gotoxy(10,16);
cprintf ("Introduce n£mero: ");
fflush(stdin);
cscanf ("%1d",&num);
color_num[num]=1;
for (int j=0;j<nivel;j++)
if (numero[j]==num)
tabla[j]=num;
else {
fallo++;
dibujar(niv,fallo);
}
gotoxy(12,6);
for (int i=0;i<nivel;i++) {
textbackground(7);
if (tabla[i]==10) {
textcolor(0);
cprintf ("_");
}
else {
textcolor(5);
cprintf ("%d",tabla[i]);
}
textcolor(7);
cprintf (" ");
}
for (int k=0,con=0;k<nivel;k++)
if (tabla[k]!=10) {
con++;
}
if (con==nivel)
sw=0;
textbackground(7);
gotoxy (11,8);
for (int number=0;number<=9;number++) {
if (color_num[number]==1) {
textcolor(4);
cprintf ("%d",number);
}
else {
textcolor(0);
cprintf ("%d",number);
}
textcolor(7);
cprintf (" ");
}
intentos(nivel,niv,n);
}
if (sw==0) {
ventana(25,5,7,8,"",8,28,11);
ventana(25,5,7,4,"Fin del juego",14,26,10);
gotoxy(31,12);
textcolor(0+BLINK);
textbackground(7);
cprintf ("­­ Ha ganado !!");
}
else {
ventana(30,7,7,8,"",8,26,10);
ventana(30,7,7,4,"Fin del juego",14,24,9);
gotoxy(28,11);
textcolor(0);
textbackground(7);
cprintf ("Ha perdido");
gotoxy(28,13);
cprintf ("El n£mero era: ");
for (int b=0;b<nivel;b++)
cprintf ("%d",numero[b]);
}
getch();
}
// ******************FIN DE PROGRAMA PRINCIPAL************************
char ventana (int ancho,int largo,int color_g,int color_borde,char titulo[80],
int color_titulo,int posx,int posy) {
int x,y,cony,conx;
char dib;
dib='Û';
for (cony=0,y=posy;cony<largo;cony++,y++){
for (conx=0,x=posx;conx<ancho;conx++,x++) {
gotoxy(x,y);
if (x==posx || y==posy || y==(posy+(largo-1)) || x==(posx+1)
|| x==(posx+(ancho-2)) || x==(posx+(ancho-1)))
textcolor(color_borde);
else
textcolor(color_g);
cprintf ("%c",dib);
}
}
gotoxy((posx+2),posy);
textcolor(color_titulo);
textbackground(color_borde);
cprintf("%s",titulo);
return(0);
}
// Funci¢n color de intentos.
int intentos(int nivel,int niv,int n) {
gotoxy(10,18);
textbackground(7);
if (nivel==1 || nivel==4 || nivel==5) {
if (n<3) {
textcolor(0);
cprintf ("Intentos: ");
textcolor(2);
cprintf ("%d",n);
textcolor(0);
cprintf (" de %d",niv);
}
else
if (n<5) {
textcolor(0);
cprintf ("Intentos: ");
textcolor(14);
cprintf ("%d",n);
textcolor(0);
cprintf (" de %d",niv);
}
else {
textcolor(0);
cprintf ("Intentos: ");
textcolor(4+BLINK);
cprintf ("%d",n);
textcolor(0);
cprintf (" de %d",niv);
}
}
if (nivel==2 || nivel==3) {
if (n<3) {
textcolor(0);
cprintf ("Intentos: ");
textcolor(2);
cprintf ("%d",n);
textcolor(0);
cprintf (" de %d",niv);
}
else
if (n<4) {
textcolor(0);
cprintf ("Intentos: ");
textcolor(14);
cprintf ("%d",n);
textcolor(0);
cprintf (" de %d",niv);
}
else {
textcolor(0);
cprintf ("Intentos: ");
textcolor(4+BLINK);
cprintf ("%d",n);
textcolor(0);
cprintf (" de %d",niv);
}
}
if (nivel==6 || nivel==7) {
if (n<4) {
textcolor(0);
cprintf ("Intentos: ");
textcolor(2);
cprintf ("%d",n);
textcolor(0);
cprintf (" de %d",niv);
}
else
if (n<6) {
textcolor(0);
cprintf ("Intentos: ");
textcolor(14);
cprintf ("%d",n);
textcolor(0);
cprintf (" de %d",niv);
}
else {
textcolor(0);
cprintf ("Intentos: ");
textcolor(4+BLINK);
cprintf ("%d",n);
textcolor(0);
cprintf (" de %d",niv);
}
}
return(0);
}
// Dibujar.
char dibujar (int niv,int fallo) {
if (niv==5)
switch (fallo) {
case 1:
pcabeza();
pcaraa();
break;
case 2:
pcuerpo();
break;
case 3:
pextremidades(3);
pextremidades(4);
break;
case 4:
pextremidades(1);
break;
case 5:
pextremidades(2);
pcarat();
break;
}
else
if (niv==6)
switch (fallo) {
case 1:
pcabeza();
pcaraa();
break;
case 2:
pcuerpo();
break;
case 3:
pextremidades(3);
break;
case 4:
pextremidades(4);
break;
case 5:
pextremidades(1);
break;
case 6:
pextremidades(2);
pcarat();
break;
}
else
if (niv==7)
switch (fallo) {
case 1:
psoga();
break;
case 2:
pcabeza();
pcaraa();
break;
case 3:
pcuerpo();
break;
case 4:
pextremidades(3);
break;
case 5:
pextremidades(4);
break;
case 6:
pextremidades(1);
break;
case 7:
pextremidades(2);
pcarat();
break;
}
return (0);
}
// Pintar soga.
char psoga(){
int soga[12][7];
soga[0][3]='Û';soga[1][3]='Û';soga[2][3]='Û';soga[3][3]='Û';soga[4][3]='Û';
soga[5][2]='Û';soga[5][4]='Û';soga[6][1]='Û';soga[6][5]='Û';soga[7][0]='Û';
soga[7][6]='Û';soga[8][0]='Û';soga[8][6]='Û';soga[9][0]='Û';soga[9][6]='Û';
soga[10][1]='Û';soga[10][5]='Û';soga[11][2]='Û';soga[11][3]='Û';
soga[11][4]='Û';
for (int f=2,y=2;f<12;f++,y++) {
gotoxy(60,y);
for (int c=0;c<7;c++) {
if (soga[f][c]=='Û') {
textcolor(14);
cprintf ("%c",soga[f][c]);
}
else {
textcolor(7);
cprintf ("Û");
}
}
}
return(0);
}
// pintar cabeza
char pcabeza() {
int cabeza[5][7],pelo[2][7];
cabeza[0][1]='Û';cabeza[0][2]='Û';cabeza[0][3]='Û';cabeza[0][4]='Û';
cabeza[0][5]='Û';cabeza[1][0]='Û';cabeza[1][1]='Û';cabeza[1][2]='Û';
cabeza[1][3]='Û';cabeza[1][4]='Û';cabeza[1][5]='Û';cabeza[1][6]='Û';
cabeza[2][0]='Û';cabeza[2][1]='Û';cabeza[2][2]='Û';cabeza[2][3]='Û';
cabeza[2][4]='Û';cabeza[2][5]='Û';cabeza[2][6]='Û';
cabeza[3][1]='Û';cabeza[3][2]='Û';cabeza[3][3]='Û';cabeza[3][4]='Û';
cabeza[3][5]='Û';cabeza[4][2]='Û';cabeza[4][3]='Û';cabeza[4][4]='Û';
for (int f=0,y=6;f<5;f++,y++) {
gotoxy(60,y);
for (int c=0;c<7;c++) {
if (cabeza[f][c]=='Û') {
textcolor(6);
cprintf ("%c",cabeza[f][c]);
}
else {
textcolor(14);
cprintf ("Û");
}
}
}
// Pintar pelo
pelo[0][0]='Û';pelo[0][1]='Û';pelo[0][2]='Û';pelo[0][3]='Û';
pelo[0][4]='Û';pelo[0][5]='Û';pelo[0][6]='Û';pelo[1][0]='Û';
pelo[1][6]='Û';
for (f=0,y=5;f<2;f++,y++) {
gotoxy(60,y);
for (int c=0;c<7;c++) {
if (pelo[f][c]=='Û') {
textcolor(0);
cprintf ("%c",pelo[f][c]);
}
else {
textcolor(6);
cprintf ("Û");
}
}
}
return (0);
}
// Pintar cara alegre.
char pcaraa() {
// Pintar ojos
textbackground(6);textcolor(0);
gotoxy (62,7);cprintf ("O");
gotoxy (64,7);cprintf ("O");
// Pintar nariz.
gotoxy(63,8);cprintf("U");
// Pintar boca.
gotoxy(62,9);cprintf("À");
gotoxy(64,9);cprintf("Ù");
gotoxy(63,9);cprintf("-");
return(0);
}
// Pintar cara triste.
char pcarat() {
// Pintar ojos
textbackground(6);textcolor(0);
gotoxy (62,7);cprintf ("*");
gotoxy (64,7);cprintf ("*");
// Pintar nariz.
gotoxy(63,8);cprintf("U");
// Pintar boca.
gotoxy(62,9);cprintf("+");
gotoxy(64,9);cprintf("+");
gotoxy(63,9);cprintf("+");
return(0);
}
// Pintar cuerpo.
char pcuerpo() {
ventana(11,5,9,9,"",9,58,12);
return(0);
}
// Pinta extremidades
char pextremidades(int lado) {
int piernad[5][9];
piernad[0][0]='Û';piernad[0][1]='Û';piernad[0][2]='Û';piernad[0][3]='Û';
piernad[1][1]='Û';piernad[1][2]='Û';piernad[1][3]='Û';piernad[1][4]='Û';
piernad[2][2]='Û';piernad[2][3]='Û';piernad[2][4]='Û';piernad[2][5]='Û';
piernad[3][3]='Û';piernad[3][4]='Û';piernad[3][5]='Û';piernad[3][6]='Û';
piernad[4][4]='Û';piernad[4][5]='Û';piernad[4][6]='Û';piernad[4][7]='Û';
if (lado==2) {
// Pierna Derecha
for (int f=0,y=17;f<5;f++,y++) {
gotoxy(64,y);
for (int c=0;c<9;c++) {
if (piernad[f][c]=='Û') {
textcolor(9);
cprintf ("%c",piernad[f][c]);
}
else {
textcolor(7);
cprintf ("Û");
}
}
}
}
if (lado==1) {
// Pierna Izquierda.
for (int f=0,y=17;f<5;f++,y++) {
gotoxy(54,y);
for (int c=8;c>=0;c--) {
if (piernad[f][c]=='Û') {
textcolor(9);
cprintf ("%c",piernad[f][c]);
}
else {
textcolor(7);
cprintf ("Û");
}
}
}
}
if (lado==4) {
// Brazo Derecho
for (int f=0,y=12;f<4;f++,y++) {
gotoxy(69,y);
for (int c=0;c<9;c++) {
if (piernad[f][c]=='Û') {
textcolor(9);
cprintf ("%c",piernad[f][c]);
}
else {
textcolor(7);
cprintf ("Û");
}
}
}
}
if (lado==3) {
// Izquierda.
for (int f=0,y=12;f<4;f++,y++) {
gotoxy(49,y);
for (int c=8;c>=0;c--) {
if (piernad[f][c]=='Û') {
textcolor(9);
cprintf ("%c",piernad[f][c]);
}
else {
textcolor(7);
cprintf ("Û");
}
}
}
}
return(0);
}
+422
View File
@@ -0,0 +1,422 @@
#include<stdio.h>
#include<conio.h>
char ventana (int ancho,int largo,int color_g,int color_borde,char titulo[],
int color_titulo,int posx,int posy);
char ventanaarchivo(int op);char ventanaoperaciones();
char ventanaayuda(int op);char ventanageneral(int op);
char ventanatipomatriz();
char pagina(int numero);char instrucciones(char opt,int numero_pag);
void main(){
int salir=0;
do {
char tecla;
int numero=0,col,tipomatriz;
ventanageneral(0);
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=97 && numero!=121 && numero!=27);
if (numero==97) {
ventanaarchivo(0);
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=115 && numero!=109 && numero!=108 && numero!=27);
if (numero==108) {
ventanageneral(0);ventana(35,5,8,8,"",8,24,11);
ventana(35,5,7,4,"Salir",14,22,10);
gotoxy(26,12);textbackground(7);textcolor(0);
cprintf("¨Desea salir del programa?");
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=115 && numero!=110 && numero!=27);
if (numero==115)
salir=1;
}
else {
if (numero==109) {
tipomatriz=ventanatipomatriz();
ventanageneral(0);
switch(tipomatriz){
case 49:
break;
case 50:
int matriz[3][3];
ventana(20,7,8,8,"",8,9,6);
ventana(20,7,7,1,"Matriz",14,7,5);
gotoxy(11,6);textcolor(0);textbackground(7);
cprintf("Ú");gotoxy(11,7);cprintf("³");gotoxy(11,8);cprintf("³");
gotoxy(11,9);cprintf("³");gotoxy(11,10);cprintf("À");
gotoxy(22,6);cprintf("¿");gotoxy(22,7);cprintf("³");
gotoxy(22,8);cprintf("³");gotoxy(22,9);cprintf("³");
gotoxy(22,10);cprintf("Ù");
for (int f=1;f<=3;f++)
for(int c=2;c<=9;c=c+3){
gotoxy(12+c,6+f);cprintf("*");
}
ventana(35,5,8,8,"",8,37,7);
ventana(35,5,7,1,"Introducci¢n de la matriz",14,35,6);
gotoxy(39,8);textcolor(0);textbackground(7);
cprintf("Introduce n£mero: ");
int num,col=0;
for (f=1;f<=3 && numero!=27;f++){
for (col=(-1),c=2;c<=9 && numero!=27;col++){
if (c>2){
matriz[f-1][col]=num;
textcolor(0);gotoxy(12+(c-3),6+f);
cprintf("%d",matriz[f-1][col]);
textcolor(0+BLINK);gotoxy(12+c,6+f);cprintf("*");
c=c+3;
}
else {
textcolor(0+BLINK);gotoxy(12+c,6+f);cprintf("*");
c=c+3;
}
num=10;
do {
do {
if (numero==0) {
gotoxy(57,8);textcolor(7);cprintf("Û");
}
textcolor(0);gotoxy(57,8);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
if (numero==13 && num==10){
num=0;
ventana(35,7,8,8,"",8,27,14);
ventana(35,7,7,4,"Error 002",14+BLINK,25,13);
textcolor(0);textbackground(7);gotoxy(29,15);
cprintf("Al no haber introducido nin-");
gotoxy(29,16);cprintf("g£n valor, se introduce por");
gotoxy(29,17);cprintf("defecto el 0.");
fflush(stdin);getch();
ventana(35,7,15,15,"",15,27,14);
ventana(35,7,15,15,"",15,25,13);
}
if (numero!=27 && numero!=13 && numero<48 || numero>57) {
ventana(35,6,8,8,"",8,27,14);
ventana(35,6,7,4,"Error 001",14+BLINK,25,13);
textcolor(0);textbackground(7);gotoxy(29,15);
cprintf("No se puede introducir un");
gotoxy(29,16);cprintf("car cter,solo n£meros.");
fflush(stdin);getch();
ventana(35,6,15,15,"",15,27,14);
ventana(35,6,15,15,"",15,25,13);
numero=0;
}
}while(numero!=27 && numero!=13 && numero<48 || numero>57);
if (numero>=48 && numero<=57){
switch(numero) {
case 48:
num=0;break;
case 49:
num=1;break;
case 50:
num=2;break;
case 51:
num=3;break;
case 52:
num=4;break;
case 53:
num=5;break;
case 54:
num=6;break;
case 55:
num=7;break;
case 56:
num=8;break;
case 57:
num=9;break;
}
}
}while(numero!=13 && numero!=27);
gotoxy(57,8);textcolor(7);cprintf("Û");
}
matriz[f-1][col]=num;
textcolor(0);gotoxy(12+(c-3),6+f);
cprintf("%d",matriz[f-1][col]);
}
ventanageneral(1);
ventana(20,7,8,8,"",8,9,6);
ventana(20,7,7,1,"Matriz",14,7,5);
gotoxy(11,6);textcolor(0);textbackground(7);
cprintf("Ú");gotoxy(11,7);cprintf("³");gotoxy(11,8);cprintf("³");
gotoxy(11,9);cprintf("³");gotoxy(11,10);cprintf("À");
gotoxy(22,6);cprintf("¿");gotoxy(22,7);cprintf("³");
gotoxy(22,8);cprintf("³");gotoxy(22,9);cprintf("³");
gotoxy(22,10);cprintf("Ù");
for (f=1;f<=3;f++){
for (col=0,c=5;c<=9;c=c+3,col++){
textcolor(0);gotoxy(12+(c-3),6+f);
cprintf("%d",matriz[f-1][col]);
}
textcolor(0);gotoxy(12+(c-3),6+f);
cprintf("%d",matriz[f-1][col]);
}
break;
}
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=97 && numero!=121 && numero!=111 && numero!=27);
switch(numero){
case 111:
ventanaoperaciones();
getch();
}
}
}
}
else {
if (numero==121) {
ventanaayuda(0);
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=121 && numero!=97 && numero!=27);
if (numero==97) {
ventanageneral(0);
ventana(35,9,8,8,"",8,24,9);
ventana(35,9,7,1,"Acerca de...",14,22,8);
gotoxy(29,10);textbackground(7);textcolor(4+BLINK);
cprintf("MATRIMATIC© ver 1.0");
gotoxy(25,12);textcolor(0);cprintf("Programado por:");
gotoxy(27,13);textcolor(15);cprintf("Moiss Virumbrales Cuenca");
gotoxy(40,15);textcolor(0);cprintf("Copyright 1999");
fflush(stdin);getch();
}
else {
if (numero==121) {
ventanageneral(0);
int numpag=1;char opcion='a';
numpag=instrucciones(opcion,numpag);
for (;numpag!=10;) {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&opcion);
numpag=instrucciones(opcion,numpag);
}
}
}
}
else {
ventana(35,5,8,8,"",8,24,11);
ventana(35,5,7,4,"Salir",14,22,10);
gotoxy(26,12);textbackground(7);textcolor(0);
cprintf("¨Desea salir del programa?");
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=115 && numero!=110 && numero!=27);
if (numero==115)
salir=1;
}
}
textcolor(0);
} while(salir==0);
}
// Funci¢n ventana.
char ventana (int ancho,int largo,int color_g,int color_borde,char titulo[80],
int color_titulo,int posx,int posy) {
int x,y,cony,conx;
char dib;
dib='Û';
for (cony=0,y=posy;cony<largo;cony++,y++){
for (conx=0,x=posx;conx<ancho;conx++,x++) {
gotoxy(x,y);
if (x==posx || y==posy || y==(posy+(largo-1)) || x==(posx+1)
|| x==(posx+(ancho-2)) || x==(posx+(ancho-1)))
textcolor(color_borde);
else
textcolor(color_g);
cprintf ("%c",dib);
}
}
gotoxy((posx+2),posy);
textcolor(color_titulo);
textbackground(color_borde);
cprintf("%s",titulo);
return(0);
}
//Funci¢n ventanaarchivo
char ventanaarchivo(int op) {
textbackground(0);
clrscr();
ventana(80,24,15,1,"Matrimatic©",14,1,1);ventana(76,1,7,7,"",7,3,2);
gotoxy(5,2);textbackground(0);
textcolor(15);cprintf("Archivo");
gotoxy(14,2);textbackground(7);
if (op==1){
textcolor(15);cprintf("O");textcolor(0);cprintf("peraciones");
}
else{
textcolor(8);cprintf("Operaciones");
}
gotoxy(27,2);
textcolor(0);cprintf("A");textcolor(15);cprintf("y");
textcolor(0);cprintf("uda");
ventana(16,5,7,7,"",7,5,3);
textcolor(0);textbackground(7);
gotoxy(7,4);cprintf("Nueva ");textcolor(15);cprintf("M");
textcolor(0);cprintf("atriz");
gotoxy(7,5);cprintf("Nuevo ");textcolor(15);cprintf("S");
textcolor(0);cprintf("istema");
gotoxy(5,6);cprintf("----------------");
gotoxy(7,7);textcolor(0);cprintf("Sa");textcolor(15);cprintf("l");
textcolor(0);cprintf("ir ");textcolor(15);cprintf("Esc");
return(0);
}
//Funci¢n ventanaoperaciones
char ventanaoperaciones(){
textbackground(0);
ventana(20,5,7,7,"",7,14,3);
gotoxy(15,4);textcolor(0);cprintf("Inversa");
gotoxy(15,5);cprintf("Adjunta");
gotoxy(15,6);cprintf("Traspuesta");
return(0);
}
//Funci¢n ventanaayuda
char ventanaayuda(int op){
textbackground(0);clrscr();
ventana(80,24,15,1,"Matrimatic©",14,1,1);ventana(76,1,7,7,"",7,3,2);
gotoxy(5,2);textbackground(7);
textcolor(15);cprintf("A");textcolor(0);cprintf("rchivo");
gotoxy(14,2);
if (op==1){
textcolor(15);cprintf("O");textcolor(0);cprintf("peraciones");
}
else{
textcolor(8);cprintf("Operaciones");
}
gotoxy(27,2);textbackground(0);
textcolor(15);cprintf("Ayuda");
ventana(15,4,7,7,"",7,27,3);
gotoxy(28,4);textcolor(0);cprintf("A");textcolor(15);cprintf("y");
textcolor(0);cprintf("uda");
gotoxy(27,5);cprintf("---------------");
gotoxy(28,6);textcolor(15);cprintf("A");textcolor(0);cprintf("cerca de...");
return(0);
}
//Funci¢n ventanageneral
char ventanageneral(int op){
textbackground(0);
clrscr();
ventana(80,24,15,1,"Matrimatic©",14,1,1);
ventana(76,1,7,7,"",7,3,2);
gotoxy(5,2);
textbackground(7);
textcolor(15);cprintf("A");textcolor(0);cprintf("rchivo");
gotoxy(14,2);
if(op==1) {
textcolor(15);cprintf("O");textcolor(0);cprintf("peraciones");
}
else{
textcolor(8);cprintf("Operaciones");
}
gotoxy(27,2);
textcolor(0);cprintf("A");textcolor(15);cprintf("y");
textcolor(0);cprintf("uda");
return(0);
}
// Funci¢n ventanatipomatriz.
char ventanatipomatriz(){
int col=7,numero=0;char tecla;
ventanageneral(0);
ventana(35,12,8,8,"",8,22,8);
ventana(35,12,7,1,"Nueva Matriz",14,20,7);
int num;
do {
if (numero==49)
col=4;
else
col=7;
textbackground(col);gotoxy(23,9);textcolor(15);cprintf(" 1");
textcolor(0);cprintf(".- Matriz de 2*2 ");
if (numero==50)
col=4;
else
col=7;
textbackground(col);gotoxy(23,10);textcolor(15);cprintf(" 2");
textcolor(0);cprintf(".- Matriz de 3*3 ");
if (numero==51)
col=4;
else
col=7;
textbackground(col);gotoxy(23,11);textcolor(15);cprintf(" 3");
textcolor(0);cprintf(".- Matriz de 4*4 ");
if (numero==52)
col=4;
else
col=7;
textbackground(col);gotoxy(23,12);textcolor(15);cprintf(" 4");
textcolor(0);cprintf(".- Matriz de 5*5 ");
if (numero==53)
col=4;
else
col=7;
textbackground(col);gotoxy(23,13);textcolor(15);cprintf(" 5");
textcolor(0);cprintf(".- Matriz de 6*6 ");
textbackground(7);gotoxy(24,15);cprintf("Elija n£mero y pulse ENTER ");
gotoxy(24,16);cprintf("para continuar.");
do {
textcolor(1);textbackground(1);gotoxy(78,24);
fflush(stdin);cscanf("%1c",&tecla);numero=tecla;
} while (numero!=49 && numero!=50 && numero!=51 && numero!=52 &&
numero!=53 && numero!=13 && numero!=27);
if (numero!=13 && numero!=27)
num=numero;
} while (numero!=13 && numero!=27);
return(num);
}
// Funci¢n instrucciones.
char instrucciones(char opt,int numero_pag) {
if (opt=='s' && numero_pag!=4) {
numero_pag++;pagina(numero_pag);
}
else
if (opt=='s') pagina(numero_pag);
if (opt=='a' && numero_pag!=1) {
numero_pag--;pagina(numero_pag);
}
else
if (opt=='a') pagina(numero_pag);
if (opt=='q')
numero_pag=10;
return (numero_pag);
}
//Funci¢n paginas
char pagina(int numero) {
switch (numero) {
case 1:
ventana(60,18,7,8,"",8,12,5);
ventana(60,18,7,1,"Ayuda interactiva",14,10,4);
textbackground(7);textcolor(0);gotoxy (53,5);cprintf ("P gina 1 de 4.");
gotoxy(15,6);textcolor(15);cprintf("1");textcolor(0);
cprintf(".- ¨C¢mo utilizar la ayuda?");
gotoxy(15,7);textcolor(15);cprintf("2");textcolor(0);
cprintf(".- Introducci¢n de una nueva matriz.");
gotoxy(15,8);textcolor(15);cprintf("3");textcolor(0);
cprintf(".- Introducci¢n de un nuevo sistema de ecuaciones.");
gotoxy(15,9);textcolor(15);cprintf("4");textcolor(0);
cprintf(".- Operaciones con matrices.");
gotoxy(13,20);textcolor(8);cprintf ("A:p g. anterior ");
textcolor(15);cprintf (" S");textcolor(0);cprintf(":p g. siguiente ");
textcolor(15);cprintf (" Q");textcolor(0);cprintf(":salir de la ayuda");
break;
}
return(0);
}
+90
View File
@@ -0,0 +1,90 @@
// Prog2
// Programadores:
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
// Imprimir, contar y sumar los elementos m£ltiplos de 7 comprendidos
// entre 1 y un n£mero introducido por teclado previamente.
#include <stdio.h>
#include <conio.h>
int con,sum,j,num,pant,conpag;
char pausa;
void main()
{
clrscr();
fflush (stdin);
gotoxy (20,12);
printf("Introduce un N£mero: ");
scanf ("%d", &num);
while (num < 1)
{
clrscr();
fflush (stdin);
gotoxy (12,12);
printf("Introduce un N£mero correcto (mayor o igual que 1): ");
scanf ("%d", &num);
}
con=0;
sum=0;
j=7;
pant=0;
conpag=0;
clrscr();
if (num>=j)
{
printf ("\t\t Lista de los m£ltiplos de siete entre 1 y %d.\n",num);
while (j<=num)
{
pant++;
if (pant<=219)
{
printf ("\t%d",j);
con++;
sum=sum+j;
j=j+7;
}
else
{
conpag++;
pant=0;
printf ("\n P gina: %d.\t\t\t\t\tPulsa ENTER para continuar...",conpag);
fflush (stdin);
scanf ("%c",&pausa);
clrscr();
printf ("\t\t Lista de los m£ltiplos de siete entre 1 y %d.\n",num);
}
}
conpag++;
gotoxy (1,25);
printf (" P gina: %d.\t\t\t\t\tPulsa ENTER para continuar...",conpag);
fflush(stdin);
scanf("%c",&pausa);
clrscr();
gotoxy (20,11);
if (con==1)
{
printf("Hay %d m£ltiplo de siete.",con);
}
else
{
printf("Hay %d m£ltiplos de siete.",con);
}
gotoxy (20,12);
printf("Su suma es: %d",sum);
fflush(stdin);
scanf("%c",&pausa);
}
else
{
clrscr();
gotoxy (20,11);
printf("Hay %d m£ltiplos de siete.",con);
gotoxy (20,12);
printf("Su suma es: %d",sum);
fflush(stdin);
scanf("%c",&pausa);
}
clrscr();
}
+105
View File
@@ -0,0 +1,105 @@
// Prog3
//
// Programadores:
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
// Pedir n£meros hasta que se introduzca un cero, y de todos los valores
// introducidos, calcular la media de los m£ltiplos de 5 menores que 500,
// sumar los impares comprendidos entre -10 y 10, contar los m£ltiplos de
// 13 y calcular la media de todos los n£meros introducidos.
#include <stdio.h>
#include <conio.h>
int con,sum,con5,sum5,sumimpar,con13,num;
char pausa;
void main()
{
clrscr();
gotoxy (20,13);
printf (" (Introduzca 0 para finalizar)");
gotoxy (20,12);
printf (" Introduce un n£mero: ");
fflush(stdin);
scanf ("%d",&num);
while (num!=0)
{
if (num %5==0 && num <500)
{
con5++;
sum5=sum5+num;
}
if (num>-10 && num<10 && num %2!=0)
{
sumimpar=sumimpar+num;
}
if (num %13==0)
{
con13++;
}
con++;
sum=sum +num;
clrscr();
gotoxy (20,13);
printf (" (Introduzca 0 para finalizar)");
gotoxy (20,12);
printf (" Introduce un n£mero: ");
fflush(stdin);
scanf ("%d",&num);
}
clrscr();
if (con==0)
{
gotoxy (20,12);
printf (" No se ha introducido ning£n n£mero.");
}
else
{
if (con5==0)
{
gotoxy (13,10);
printf (" No hay m£ltiplos de 5.");
}
else
{
gotoxy (13,10);
printf (" La media de los m£ltiplos de 5 menores que 500 es: ");
printf ("%d.",sum5/con5);
}
if (sumimpar==0)
{
gotoxy (13,11);
printf (" No hay impares comprendidos entre -10 y 10.");
}
else
{
gotoxy (13,11);
printf (" La suma de los impares entre -10 y 10 es: %d.",sumimpar);
}
if (con13==0)
{
gotoxy (13,12);
printf (" No hay m£ltiplos de 13.");
}
else
{
gotoxy (13,12);
printf (" Hay %d m£ltiplo(s) de 13.",con13);
}
gotoxy (13,13);
printf (" La media de todos los n£meros introducidos es: %d.",sum/con);
}
fflush (stdin);
scanf ("%c",&pausa);
}
+112
View File
@@ -0,0 +1,112 @@
// Prog4
//
// Programadores:
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
// Pedir n£meros hasta que se introduzca un cero. Imprimir el mayor de todos
// los pares y la posici¢n en que se introdujo, el menor de los m£ltiplos
// de 6 y la posici¢n en que se introdujo, el mayor de todos los valores
// y la posici¢n en que se introdujo.
#include <stdio.h>
#include <conio.h>
int mayorpar,pospar,menor6,posmenor6,mayor,posmayor,con,num;
char pausa;
void main()
{
mayorpar=-32768;pospar=0;menor6=32767;posmenor6=0;mayor=-32768;
posmayor=0;con=0;num=0;
clrscr();
gotoxy (20,13);
printf (" (Introduzca 0 para finalizar)");
gotoxy (20,12);
printf (" Introduce un n£mero: ");
fflush(stdin);
scanf ("%d",&num);
while (num!=0)
{
con++;
if (num %2==0 && num>mayorpar)
{
mayorpar=num;
pospar=con;
}
if (num %6==0 && num<menor6)
{
menor6=num;
posmenor6=con;
}
if (num>mayor)
{
mayor=num;
posmayor=con;
}
clrscr();
gotoxy (20,13);
printf (" (Introduzca 0 para finalizar)");
gotoxy (20,12);
printf (" Introduce un n£mero: ");
fflush(stdin);
scanf ("%d",&num);
}
clrscr();
if (con==0)
{
gotoxy (20,12);
printf (" No se ha introducido ning£n n£mero.");
}
else
{
if (pospar==0)
{
gotoxy (15,11);
printf (" No se han introducido n£meros pares.");
}
else
{
gotoxy (15,10);
printf (" El mayor par introducido es: %d.",mayorpar);
gotoxy (15,11);
printf (" Se ha introducido en la %d¦ posici¢n.",pospar);
}
if (posmenor6==0)
{
gotoxy (15,12);
printf (" No se han introducido m£ltiplos de 6.");
}
else
{
gotoxy (15,13);
printf (" El menor m£ltiplo de 6 introducido es: %d.",menor6);
gotoxy (15,14);
printf (" Se ha introducido en la %d¦ posici¢n.",posmenor6);
}
if (posmayor==0)
{
gotoxy (15,13);
printf (" Los n£meros introducidos son iguales.");
}
else
{
gotoxy (15,16);
printf (" El mayor n£mero introducido es: %d.",mayor);
gotoxy (15,17);
printf (" Se ha introducido en la %d¦ posici¢n.",posmayor);
}
}
fflush (stdin);
scanf ("%c",&pausa);
}
+96
View File
@@ -0,0 +1,96 @@
// Prog5
//
// Programadores:
//
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
// Pedir n£meros hasta que se introduzcan tres m£ltiplos de 7 (no
// necesariamente consecutivos) ¢ dos n£meros impares consecutivos.
// Imprimir el mayor valor introducido y su posici¢n.
#include <stdio.h>
#include <conio.h>
int mayor,posmayor,con,con7,conimpar,sw,num;
char pausa;
void main()
{
mayor=-32768;posmayor=0;con=0,con7=0;conimpar=0;sw=0;num=0;
clrscr();
gotoxy (20,16);
printf ("(Para finalizar introduzca");
gotoxy (20,17);
printf ("tres m£ltiplos de siete o");
gotoxy (20,18);
printf ("dos impares consecutivos)");
gotoxy (20,13);
printf (" Introduce un n£mero: ");
textcolor (4);
fflush(stdin);
cscanf ("%d",&num);
textcolor(7);
while (sw==0)
{
con++;
if (num %7==0)
{
con7++;
if (con7==3)
{
sw=1;
}
}
if (num %2!=0)
{
conimpar++;
if (conimpar==2)
{
sw=1;
}
}
else
{
conimpar=0;
}
if (num>mayor)
{
mayor=num; posmayor=con;
}
if (sw==0)
{
clrscr();
gotoxy (20,16);
printf ("(Para finalizar introduzca");
gotoxy (20,17);
printf ("tres m£ltiplos de siete o");
gotoxy (20,18);
printf ("dos impares consecutivos)");
gotoxy (20,13);
printf (" Introduce un n£mero: ");
textcolor (4);
fflush(stdin);
cscanf ("%d",&num);
textcolor(7);
}
}
clrscr();
gotoxy (20,12);
printf (" El mayor n£mero introducido es: ");
textcolor (14);
cprintf ("%d",mayor);
printf (".");
gotoxy (20,13);
printf (" Se ha introducido en la ");
cprintf ("%d¦",posmayor);
printf (" posici¢n.");
fflush (stdin);
scanf ("%c",&pausa);
}
+177
View File
@@ -0,0 +1,177 @@
// Prog6
//
// Programadores:
//
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
// Imprime una pir mide de asteriscos seg£n las opciones tecleadas
// por el usuario.
//
// Descripci¢n de las variables:
// num: N£mero de asteriscos de la base.
// altura: N£mero de filas de la pir mide.
// posx, posy: Posici¢n del cursor para imprimir asteriscos.
// conposx: Contador que lleva el n£mero de asteriscos imprimidos por fila.
// conposy: Contador que lleva el n£mero de filas imprimidas.
// color, color2, colorg: Guarda colores introducidos por usuario.
// conveces: Cuenta las veces que se introduce un color
// nveces: Marca las veces que se realiza el bucle dependiendo si es
// Monocolor o Bicolor.
// tipo: Tipo de pir mide (normal o invertida)
// pausa: Para hacer una pausa al final del programa.
// ncolores: Guarda si es Monocolor o Bicolor.
// tipocolor: Forma de colorearlo (por filas o asteriscos).
#include <stdio.h>
#include <conio.h>
int num;
int altura;
int posx,posy;
int conposx,conposy;
int color,color2,colorg;
int conveces,nveces;
char tipo,pausa,ncolores,tipocolor;
void main()
{
do
{
clrscr();
gotoxy (17,13);
printf ("Introduce el N§ de asteriscos de la base: ");
fflush (stdin);
scanf ("%d",&num);
}
while (num %2!=0 || num<1 || num>50);
do
{
clrscr();
gotoxy(20,12);
printf (" Tipo de pir mide (Normal o Invertida): ");
fflush (stdin);
scanf ("%c",&tipo);
}
while (tipo!='n' && tipo!='i');
do
{
clrscr();
gotoxy (20,12);
printf (" Monocolor o Bicolor: ");
fflush (stdin);
scanf ("%c",&ncolores);
}
while (ncolores!='m' && ncolores!='b');
if (ncolores=='m')
{
nveces=1;
}
else
{
nveces=2;
do
{
clrscr();
gotoxy(20,12);
printf (" Colorear por Filas o por Asteriscos: ");
fflush(stdin);
scanf ("%c",&tipocolor);
}
while (tipocolor!='f' && tipocolor!='a');
}
conveces=1;
do
{
if (nveces==2)
{
color2=color;
}
clrscr();
gotoxy (25,8); printf (" 1.- Azul");
gotoxy (25,9); printf (" 2.- Verde");
gotoxy (25,10); printf (" 3.- Cyan");
gotoxy (25,11); printf (" 4.- Rojo");
gotoxy (25,12); printf (" 5.- Morado");
gotoxy (25,13); printf (" 6.- Marr¢n");
gotoxy (25,14); printf (" 7.- Gris claro");
gotoxy (25,15); printf (" 8.- Gris oscuro");
gotoxy (25,16); printf (" 9.- Azul claro");
gotoxy (25,17); printf ("10.- Verde claro");
gotoxy (25,18); printf ("11.- Cyan claro");
gotoxy (25,19); printf ("12.- Rojo claro");
gotoxy (25,20); printf ("13.- Morado claro");
gotoxy (25,21); printf ("14.- Amarillo");
gotoxy (25,22); printf ("15.- Blanco");
gotoxy (20,6);
printf (" Elige color %d§: ",conveces);
fflush(stdin);
scanf ("%d",&color);
conveces++;
}
while (color<1 || color>15 || conveces<=nveces);
altura=(num/2);
posx=((80-num)/2);
if (tipo=='n')
{
posy=(25-((25-altura)/2));
}
else
{
posy=((26-(altura-1))/2);
}
clrscr();
textcolor(color);
for (conposy=1;conposy<=altura;conposy++)
{
gotoxy(posx,posy);
if (tipocolor=='f')
{
colorg=color;color=color2;color2=colorg;
textcolor(colorg);
}
for (conposx=1;conposx<=num;conposx++)
{
if (tipocolor=='a')
{
colorg=color;color=color2;color2=colorg;
textcolor (colorg);
}
cprintf ("*");
}
if (tipo=='n')
{
posy--;
}
else
{
posy++;
}
num=num-2;
posx++;
}
textcolor(7);
gotoxy(80,25);
fflush (stdin);
scanf ("%c",&pausa);
}
+124
View File
@@ -0,0 +1,124 @@
// Prog7
//
// Programadores:
//
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
// Pinta una espiral con el caracter introducido y pinta sus diagonales.
#include <stdio.h>
#include <conio.h>
char direccion;
char caracter;
int pos_x,pos_y,avanza,con,veces,avanzamas,sw;
void main()
{
clrscr();
gotoxy (20,11);
printf ("Introduzca el car cter a imprimir: ");
fflush (stdin);
cscanf ("%c", &caracter);
//gotoxy (20,12);
//printf ("Introduzca el sentido inicial: ");
//fflush(stdin);
//scanf("%c",&direccion_inicial);
clrscr();
direccion='e';
pos_x=40;
pos_y=12;
avanza=1;
//avanzamas=15;
gotoxy (pos_x,pos_y);
printf ("%c",caracter);
do
{
for (con=1;con<=2;con++)
{
for (veces=1;direccion=='e' && veces<=avanza;veces++)
{
gotoxy(pos_x,pos_y);
printf("%c",caracter);
pos_x++;
if (pos_x==50)
{
sw=1;
direccion='p';
}
}
for (veces=1;direccion=='o' && veces<=avanza;veces++)
{
gotoxy(pos_x,pos_y);
printf("%c",caracter);
pos_x--;
}
for (veces=1;direccion=='n' && veces<=avanza;veces++)
{
gotoxy(pos_x,pos_y);
printf("%c",caracter);
pos_y--;
}
for (veces=1;direccion=='s' && veces<=avanza;veces++)
{
gotoxy(pos_x,pos_y);
printf("%c",caracter);
pos_y++;
}
getch();
// Cambio de direcciones.
if (direccion=='e')
{
direccion='s';
}
else
{
if (direccion=='o')
{
direccion='n';
}
else
{
if (direccion=='n')
{
direccion='e';
}
else
{
if (direccion=='s')
{
direccion='o';
}
}
}
}
}
//avanzamas++;
avanza++;
}
while (sw==0);
gotoxy(80,25);
getch();
pos_x=31;
pos_y=3;
for(con=1;con<=19;con++,pos_x++,pos_y++)
{
gotoxy (pos_x,pos_y);
textcolor(14);
cprintf ("%c",caracter);
}
getch();
pos_x=49;
pos_y=3;
for(con=1;con<=19;con++,pos_x--,pos_y++)
{
if (pos_x!=40)
{
gotoxy (pos_x,pos_y);
textcolor(1);
cprintf ("%c",caracter);
}
}
getch();
}
+63
View File
@@ -0,0 +1,63 @@
// Prog8
//
// Programadores:
//
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
#include <stdio.h>
#include <conio.h>
char direccion;
char caracter;
int pos_x,pos_y,con;
void main()
{
clrscr();
gotoxy (20,11);
printf ("Introduzca el car cter a imprimir: ");
fflush (stdin);
cscanf ("%c", &caracter);
clrscr();
direccion='d';
pos_x=1;
pos_y=1;
for (;pos_y<=24;pos_y++)
{
for (con=1;con<=80;con++)
{
if (direccion=='d')
{
gotoxy(pos_x,pos_y);
printf ("%c",caracter);
pos_x++;
}
else
{
gotoxy(pos_x,pos_y);
printf ("%c",caracter);
pos_x--;
}
if (con==40)
{
getch();
}
}
getch();
if (direccion=='d')
{
direccion='i';
pos_x--;
}
else
{
direccion='d';
pos_x++;
}
}
gotoxy(1,25);
printf ("Pulse una tecla para finalizar...");
getch();
}
+613
View File
@@ -0,0 +1,613 @@
// Prog9
//
// Programadores:
//
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
// Juego de las tres en raya.
#include<stdio.h>
#include<conio.h>
int pos_x,pos_y,jfila,jcolumna;
int sw1,sw2,sw3,sw4,sw5,sw6,sw7,sw8,sw9;
int con,conaux;
int turno,turnoaux;
int lugar,tablalugar [3][3];
int ganar;
int vaciaf,vaciac;
char jugador1[8],jugador2[8];
char continua;
int limpia;
char fichaX [5][5],ficha0 [5][5];
int win1,win2;
void main()
{
// Inicializaci¢n de funciones.
char pintar(int pos_x,int pos_y, int turno, int color);
char tablero();
char borrar(int pos_y);
int comprobar(int turno);
char leerdatos();
char pantalla(char jugador1[8],char jugador2[8]);
// Inicializaci¢n de la ficha X.
fichaX [0][0]='Û';fichaX [0][4]='Û';fichaX [1][1]='Û';fichaX [1][3]='Û';
fichaX [3][1]='Û';fichaX [3][3]='Û';fichaX [4][0]='Û';fichaX [4][4]='Û';
fichaX [2][2]='Û';
// Inicializaci¢n de la ficha 0.
ficha0 [0][2]='Û';ficha0 [1][1]='Û';ficha0 [1][3]='Û';ficha0 [2][0]='Û';
ficha0 [2][4]='Û';ficha0 [3][1]='Û';ficha0 [3][3]='Û';ficha0 [4][2]='Û';
// Introducci¢n de datos
leerdatos();
do
{
// Pantalla general
if (continua!='s')
{
pantalla(jugador1,jugador2);
}
tablero();
if (turno==1 && continua=='s')
{
if (ganar==1)
{
win1++;
gotoxy (17,2);
printf ("Partidas ganadas: %d",win1);
}
turno=2;
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(2+BLINK);
cprintf ("%s",jugador2);
}
else
{
if (turno==2 && continua=='s')
{
if (ganar==2)
{
win2++;
gotoxy (45,2);
printf ("Partidas ganadas: %d",win2);
}
turno=1;
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(14+BLINK);
cprintf ("%s",jugador1);
}
}
// El programa.
for (vaciaf=0;vaciaf<3;vaciaf++)
{
for (vaciac=0;vaciac<3;vaciac++)
{
tablalugar[vaciaf][vaciac]=0;
}
}
sw1=0;sw2=0;sw3=0;sw4=0;sw5=0;sw6=0;sw7=0;sw8=0;sw9=0;
conaux=1;
lugar=0;
for (con=1,ganar=0;con<=9;con++)
{
con=conaux;
gotoxy (79,25);
fflush(stdin);
textcolor(0);
cscanf("%1d",&lugar);
if (lugar==1 && sw1==0)
{
pos_x=22;pos_y=17;
sw1=1;
if (turno==1)
{
tablalugar [0][2]=1;
}
else
{
tablalugar [0][2]=2;
}
}
else
{
if (lugar==2 && sw2==0)
{
pos_x=38;pos_y=17;
sw2=1;
if (turno==1)
{
tablalugar [1][2]=1;
}
else
{
tablalugar [1][2]=2;
}
}
else
{
if (lugar==3 && sw3==0)
{
pos_x=54;pos_y=17;
sw3=1;
if (turno==1)
{
tablalugar [2][2]=1;
}
else
{
tablalugar [2][2]=2;
}
}
else
{
if (lugar==4 && sw4==0)
{
pos_x=22;pos_y=11;
sw4=1;
if (turno==1)
{
tablalugar [0][1]=1;
}
else
{
tablalugar [0][1]=2;
}
}
else
{
if (lugar==5 && sw5==0)
{
pos_x=38;pos_y=11;
sw5=1;
if (turno==1)
{
tablalugar [1][1]=1;
}
else
{
tablalugar [1][1]=2;
}
}
else
{
if (lugar==6 && sw6==0)
{
pos_x=54;pos_y=11;
sw6=1;
if (turno==1)
{
tablalugar [2][1]=1;
}
else
{
tablalugar [2][1]=2;
}
}
else
{
if (lugar==7 && sw7==0)
{
pos_x=22;pos_y=5;
sw7=1;
if (turno==1)
{
tablalugar [0][0]=1;
}
else
{
tablalugar [0][0]=2;
}
}
else
{
if (lugar==8 && sw8==0)
{
pos_x=38;pos_y=5;
sw8=1;
if (turno==1)
{
tablalugar [1][0]=1;
}
else
{
tablalugar [1][0]=2;
}
}
else
{
if (lugar==9 && sw9==0)
{
pos_x=54;pos_y=5;
sw9=1;
if (turno==1)
{
tablalugar [2][0]=1;
}
else
{
tablalugar [2][0]=2;
}
}
else
{
borrar (24);
textcolor (7);
gotoxy (17,24);
cprintf ("Esa casilla est  ocupada, pierde turno.");
fflush (stdin);
getch();
conaux=con;
turnoaux=turno;
turno=0;
}
}
}
}
}
}
}
}
}
comprobar(turno);
// Pintar la ficha correspondiente.
if (turno==1 && ganar==0)
{
pintar(pos_x,pos_y,turno,14);
}
else
{
if (turno==2 && ganar==0)
{
pintar(pos_x,pos_y,turno,2);
}
}
// Siguiente turno.
if (turno==2 && con!=9 && ganar==0)
{
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(14+BLINK);
cprintf ("%s",jugador1);
turno=1;
conaux++;
}
else
{
if (turno==1 && con!=9 && ganar==0)
{
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(2+BLINK);
cprintf ("%s",jugador2);
turno=2;
conaux++;
}
else
{
if (turnoaux==2 && con!=9 && ganar==0)
{
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(14+BLINK);
cprintf ("%s",jugador1);
turno=1;
}
else
{
if (turnoaux==1 && con!=9 && ganar==0)
{
borrar(24);
textcolor (7);
gotoxy (17,24);
cprintf ("Es el turno de ");
textcolor(2+BLINK);
cprintf ("%s",jugador2);
turno=2;
}
}
}
}
if (con==9 && ganar==0)
{
borrar(24);
gotoxy (17,24);
textcolor(7);
cprintf ("Partida finalizada.");
fflush(stdin);
getch();
}
if (ganar==1)
{
borrar(24);
gotoxy (17,24);
textcolor (14+BLINK);
cprintf ("­­ Ha ganado %s !!",jugador1);
con=10;
fflush (stdin);
getch();
}
else
{
if (ganar==2)
{
borrar(24);
gotoxy (17,24);
textcolor (10+BLINK);
cprintf ("­­ Ha ganado %s !!",jugador2);
con=10;
fflush (stdin);
getch();
}
}
}
borrar(24);
gotoxy (17,24);
textcolor(7);
cprintf ("¨Desea jugar otra vez? ");
fflush(stdin);
cscanf ("%s",&continua);
}
while (continua!='n');
fflush (stdin);
getch();
clrscr();
textcolor (7);
}
// Funci¢n pintar
char pintar(int pos_x,int pos_y,int turno,int color)
{
for (jfila=0;jfila<=4;jfila++)
{
for (jcolumna=0;jcolumna<=4;jcolumna++)
{
gotoxy (jcolumna+pos_x,jfila+pos_y);
if (turno==1)
{
if (fichaX[jfila][jcolumna]=='Û')
{
textcolor (color);
cprintf ("%c",fichaX[jfila][jcolumna]);
}
}
else
{
if (turno==2)
{
if (ficha0[jfila][jcolumna]=='Û')
{
textcolor (color);
cprintf ("%c",ficha0[jfila][jcolumna]);
}
}
}
}
}
return(0);
}
// Funci¢n tablero
char tablero()
{
// Fondo tablero.
for (pos_x=15,pos_y=4;pos_y<=22;)
{
textcolor(7);
gotoxy(pos_x,pos_y);
cprintf("Û");
if (pos_x!=65)
{
pos_x++;
}
else
{
pos_x=15;
pos_y++;
}
}
// Recuadro tablero y lineas interior.
for (pos_x=15;pos_x<=65;pos_x++)
{
textcolor (1);
gotoxy (pos_x,4);cprintf ("Û");
gotoxy (pos_x,22);cprintf ("Û");
gotoxy (pos_x,10);cprintf ("Û");
gotoxy (pos_x,16);cprintf ("Û");
}
for (pos_y=4;pos_y<=22;pos_y++)
{
textcolor (1);
gotoxy (15,pos_y);cprintf ("Û");
gotoxy (16,pos_y);cprintf ("Û");
gotoxy (65,pos_y);cprintf ("Û");
gotoxy (64,pos_y);cprintf ("Û");
gotoxy (32,pos_y);cprintf ("Û");
gotoxy (48,pos_y);cprintf ("Û");
}
return(0);
}
// Borrador de l¡nea
char borrar(int pos_y)
{
for (limpia=1;limpia<=80;limpia++)
{
gotoxy (limpia,pos_y);
textcolor (0);
cprintf ("Û");
}
return (0);
}
// Comprobaci¢n de tres en raya
int comprobar(int turno)
{
if (turno!=0)
{
if (tablalugar[0][0]==turno)
{
if (tablalugar[1][0]==turno)
{
if (tablalugar[2][0]==turno)
{
ganar=turno;
pintar(22,5,turno,4+BLINK);pintar(38,5,turno,4+BLINK);
pintar(54,5,turno,4+BLINK);
}
}
else
{
if (tablalugar[1][1]==turno)
{
if (tablalugar[2][2]==turno)
{
ganar=turno;
pintar(22,5,turno,4+BLINK);pintar(38,11,turno,4+BLINK);
pintar(54,17,turno,4+BLINK);
}
}
else
{
if (tablalugar[0][1]==turno)
{
if (tablalugar[0][2]==turno)
{
ganar=turno;
pintar(22,5,turno,4+BLINK);pintar(22,11,turno,4+BLINK);
pintar(22,17,turno,4+BLINK);
}
}
}
}
}
if (tablalugar[2][0]==turno)
{
if (tablalugar[2][1]==turno)
{
if (tablalugar[2][2]==turno)
{
ganar=turno;
pintar(54,5,turno,4+BLINK);pintar(54,11,turno,4+BLINK);
pintar(54,17,turno,4+BLINK);
}
}
else
{
if (tablalugar[1][1]==turno)
{
if (tablalugar[0][2]==turno)
{
ganar=turno;
pintar(54,5,turno,4+BLINK);pintar(38,11,turno,4+BLINK);
pintar(22,17,turno,4+BLINK);
}
}
}
}
if (tablalugar[2][2]==turno)
{
if (tablalugar[1][2]==turno)
{
if (tablalugar[0][2]==turno)
{
ganar=turno;
pintar(22,17,turno,4+BLINK);pintar(38,17,turno,4+BLINK);
pintar(54,17,turno,4+BLINK);
}
}
}
if (tablalugar[1][0]==turno)
{
if (tablalugar[1][1]==turno)
{
if (tablalugar[1][2]==turno)
{
ganar=turno;
pintar(38,5,turno,4+BLINK);pintar(38,11,turno,4+BLINK);
pintar(38,17,turno,4+BLINK);
}
}
}
if (tablalugar[0][1]==turno)
{
if (tablalugar[1][1]==turno)
{
if (tablalugar[2][1]==turno)
{
ganar=turno;
pintar(22,11,turno,4+BLINK);pintar(38,11,turno,4+BLINK);
pintar(54,11,turno,4+BLINK);
}
}
}
}
return(ganar);
}
// Datos
char leerdatos()
{
clrscr();
textcolor(7);
gotoxy (20,11);
cprintf ("Nombre jugador 1: ");
fflush(stdin);
cscanf("%8s",&jugador1);
gotoxy (20,13);
cprintf ("Nombre jugador 2: ");
fflush(stdin);
cscanf("%8s",&jugador2);
return (jugador1[8],jugador2[8]);
}
// Pantalla general
char pantalla(char jugador1[8],char jugador2[8])
{
clrscr();
gotoxy (17,1);
textcolor(14);
cprintf ("X ");textcolor (7);cprintf ("-> %s",jugador1);
gotoxy (53,1);
textcolor (2);
cprintf ("O ");textcolor (7);cprintf ("-> %s",jugador2);
gotoxy (17,24);
printf ("Es el turno de ");
textcolor(14+BLINK);
cprintf ("%s",jugador1);
turno=1;
return(turno);
}
+5
View File
@@ -0,0 +1,5 @@
#include <stdio.h>
void main(){
printf("Hola Mundo");
}
+59
View File
@@ -0,0 +1,59 @@
// Prog10
//
// Programadores:
//
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
// Program que introducido un n£mero decimal, lo cambia a la base
// introducida.
#include<stdio.h>
#include<conio.h>
#define A 10
#define B 11
#define C 12
#define D 13
#define E 14
#define F 15
#define a 10
#define b 11
#define c 12
#define d 13
#define e 14
#define f 15
int tabla[15];
void leer_datos ();
void main () {
leer_datos;
//verificar
//pasar_base10
//pasar_base_elegida
//mostrar_resultados
fflush(stdin);
getch();
}
// Funci¢n de leer datos.
void leer_datos () {
int num,con=0;
do {
fflush(stdin);
cscanf("%1d",&num);
if (num>=0 && num <=15) {
tabla[con]=num;
con++;
}
}
while (num<=0 && num >=15 && con >15);
}
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+39
View File
@@ -0,0 +1,39 @@
#include<stdio.h>
#include<conio.h>
#include<dos.h>
void borrar(int pos_y);
void main(){
int i=0,*p,tabla[10];int x,y;
textcolor(7);textbackground(0);
clrscr();
for (i=0;i<10;i++)
tabla[i]=i+1;
for (i=0;i<10;i++){
printf("\n Inizializaci¢n de la cuenta atras... %2d",tabla[i]);delay(100);
}
printf("\n");
p=&tabla[9];
for (;p>=&tabla[0];p--){
printf("\n Cuenta atras... %2d",*p);delay(1000);
}
printf("\n\n CERO, DESPEGUE");
for (i=60;i>1;i--){
printf(".");delay(i);
if (i==50){
x=wherex();y=wherey();
gotoxy(3,25);textcolor(12+BLINK);cprintf("Lo perdemos, lo perdemos...");
gotoxy(x,y);
}
}
borrar(25);textcolor(7);gotoxy(3,24);cprintf(" Se nos fue...");
getch();
}
void borrar(int pos_y){
for (int limpia=1;limpia<=80;limpia++){
gotoxy (limpia,pos_y);
textcolor (0);
cprintf ("Û");
}
}
+20
View File
@@ -0,0 +1,20 @@
// PROGRAMA QUE IMPLEMENTA LAS FUNCIONES
#include <stdio.h>
#include <conio.h>
char var,c;
void main()
{
textbackground(2);
clrscr();
textcolor(4);
gotoxy(20,10);
cprintf("Hola Tron, dame un valor: ");
cscanf("%c", &var);
gotoxy(20,12);
printf("El valor es: %c",var);
scanf("%c",&c);
}
+102
View File
@@ -0,0 +1,102 @@
// Prog7
//
// Programadores:
//
// Juan L¢pez Fern ndez
// Moiss Virumbrales Cuenca
// DAI 1§A
//
#include <stdio.h>
#include <conio.h>
char direccion;
char caracter;
int pos_x,pos_y,avanza,con,veces;
void main()
{
clrscr();
gotoxy (20,11);
printf ("Introduzca el car cter a imprimir: ");
fflush (stdin);
cscanf ("%c", &caracter);
//gotoxy (20,12);
//printf ("Introduzca el sentido inicial: ");
//fflush(stdin);
//scanf("%c",&direccion_inicial);
clrscr();
direccion='e';
pos_x=40;
pos_y=12;
avanza=1;
gotoxy (pos_x,pos_y);
printf ("%c",caracter);
textcolor(14);
do
{
for (con=1;con<=2;con++)
{
for (veces=1;direccion=='e' && veces<=avanza;veces++)
{
gotoxy(pos_x,pos_y);
textcolor(2);
cprintf("%c",caracter);
pos_x++;
}
for (veces=1;direccion=='o' && veces<=avanza;veces++)
{
gotoxy(pos_x,pos_y);
textcolor(14);
cprintf("%c",caracter);
pos_x--;
}
for (veces=1;direccion=='n' && veces<=avanza;veces++)
{
gotoxy(pos_x,pos_y);
textcolor(13);
cprintf("%c",caracter);
pos_y--;
}
for (veces=1;direccion=='s' && veces<=avanza;veces++)
{
gotoxy(pos_x,pos_y);
textcolor(12);
cprintf("%c",caracter);
pos_y++;
}
getch();
// Cambio de direcciones.
if (direccion=='e')
{
direccion='s';
}
else
{
if (direccion=='o')
{
direccion='n';
}
else
{
if (direccion=='n')
{
direccion='e';
}
else
{
if (direccion=='s')
{
direccion='o';
}
}
}
}
}
avanza++;
}
while (pos_y>0);
gotoxy(80,25);
getch();
}
+128
View File
@@ -0,0 +1,128 @@
// ************************************************************************************************
//
// Direct X TEST.
//
// ************************************** (c) Pedro Díez López ************************************
#include "DXVideo.h"
#define ID_NOMBRE "Test"
#define ID_TITULO "Test"
#define ID_TEMP 1
CDXVideo *DXVideo;
BOOL Par;
int Temporizador;
BOOL AppActiva;
//
// El TEST
//
void Test ()
{
if(Par==TRUE)
{
memset(DXVideo->pBuffer.bpp,064,DXVideo->DimBuffer);
Par = FALSE;
}
else
{
memset(DXVideo->pBuffer.bpp,128,DXVideo->DimBuffer);
Par = TRUE;
}
}
//
//
// W i n d o w P r o c
//
//
long FAR PASCAL WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch( message )
{
case WM_ACTIVATEAPP:
AppActiva = (wParam == WA_ACTIVE) || (wParam == WA_CLICKACTIVE);
break;
case WM_CREATE:
break;
case WM_SETCURSOR:
SetCursor(DXVideo->mDDCursorShape);
return TRUE;
case WM_TIMER:
if (AppActiva && ID_TEMP == wParam)
{
Test();
DXVideo->Pinta();
}
break;
case WM_KEYDOWN:
switch( wParam )
{
case VK_ESCAPE:
PostMessage(hWnd, WM_CLOSE, 0, 0);
break;
}
break;
case WM_PAINT:
break;
case WM_DESTROY:
DXVideo->Fin();
delete DXVideo;
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
//
//
// W i n M a i n
//
//
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS wc;
HWND hwnd;
MSG msg;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = NULL;
wc.lpszMenuName = ID_NOMBRE;
wc.lpszClassName = ID_NOMBRE;
RegisterClass(&wc);
hwnd = CreateWindowEx(WS_EX_TOPMOST,ID_NOMBRE,ID_TITULO,WS_POPUP,0,0,
GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),
NULL, NULL, hInstance, NULL);
if (!hwnd) return FALSE;
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
Temporizador = 100;
if(!SetTimer(hwnd,ID_TEMP,Temporizador,NULL)) return FALSE;
DXVideo = new CDXVideo;
DXVideo->Inicio (hwnd,640,480,16);
DXVideo->Cursor(NULL);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
+36
View File
@@ -0,0 +1,36 @@
#include<stdio.h>
#include<conio.h>
char ventana (int ancho,int largo,int color_g,int color_borde,char titulo,
int color_titulo,int posx,int posy);
void main() {
clrscr();
ventana(40,10,7,1,'P',14,30,7);
fflush(stdin);
getch();
}
// Funci¢n ventana.
char ventana (int ancho,int largo,int color_g,int color_borde,char titulo,
int color_titulo,int posx,int posy) {
int x,y,cony,conx;
char dib;
dib='Û';
for (cony=0,y=posy;cony<largo;cony++,y++){
for (conx=0,x=posx;conx<ancho;conx++,x++) {
gotoxy(x,y);
if (x==posx || y==posy || y==(posy+(largo-1)) || x==(posx+1)
|| x==(posx+(ancho-2)) || x==(posx+(ancho-1)))
textcolor(color_borde);
else
textcolor(color_g);
cprintf ("%c",dib);
}
}
gotoxy((posx+2),posy);
textcolor(color_titulo);
textbackground(color_borde);
cprintf("%c",titulo);
return(0);
}
+375
View File
@@ -0,0 +1,375 @@
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <time.h>
#include "d:\progs_c\gui.h"
char titulo[80]={"Programa Gesti¢n del VideoClub Alfa. Juan L¢pez Fern ndez"};
int estoy_en=1;// Indica el men£ en el que me encuentro.
int select_actual=1; // Indica que opci¢n est  seleccionada actualmente.
int n_op_menu=5; // N£mero de opciones del menu. (default menu1=5)
int refresco=1; // Para el calor... Refresca la pantalla :-).
int *p_estoy_en=&estoy_en;// -- Punteros a sus respectivas variables. --
int *p_select_actual=&select_actual;
int *p_n_op_menu=&n_op_menu;
int *p_refresco=&refresco;
// -------- Definici¢n de los patrones o "templates" ---------------------
struct peliculas {
char titulo[20];
char tema[10];
int duracion;
int n_alquileres;
};
struct clientes {
int codigo;
char nombre[25];
};
struct alquileres {
struct peliculas lista_pelis[5];
struct clientes socios;
float fecha_dev;
char finalizado;
};
// ---------------- Fin de la definici¢n de los patrones. -----------------
struct peliculas existencias[230]; // Declaraci¢n de arrays
struct clientes socios[100]; // de estructuras.
struct alquileres prestamos[100]; // A nivel global.
void modo_grafico();
void menu(int, int);
void miga(int*, int*);
void localizacion(int, int, int);
void reloj(int, int);
void introcad(char cad[],int a,int x,int y,int c,int s,int t);
void altas_clientes(int);
//int bajas_clientes(struct, int, int);
//void modificar_clientes(struct, int, int);
// ***********************************************************************
// PROGRAMA PRINCIPAL
// ***********************************************************************
void main() {
// struct peliculas existencias[500]; // probablemente no est aqu¡.
// struct clientes socios[200];
// struct alquileres prestamos[200];
// <..inicializar las tablas..>.
modo_grafico();
//presentacion(); // Me pregunto si llegar a hacerla... ;-).
menu(estoy_en, select_actual);
int tecla1, tecla12, sw=1;
while(sw==1){
reloj(423,100);
tecla1=getch();
if(tecla1==0) // leemos tecla especial.
{
tecla12=getch();
switch(tecla12) {
case 72: // Flecha arriba
if (select_actual<=1)
select_actual=1;
else {
select_actual--;
menu(estoy_en, select_actual);
}
break;
case 80: // Flecha abajo
if (select_actual>=n_op_menu)
select_actual=n_op_menu;
else{
select_actual++;
menu(estoy_en, select_actual);
}
break;
} // fin del switch-case
}// fin del if
else
if (tecla1==13) // MIGA DEL ASUNTO
{
miga(p_estoy_en, p_select_actual);
menu(estoy_en, select_actual);
}
else
if (tecla1==27)
if (estoy_en==1) // Se acab¢ la funci¢n...
sw=0;
else // Navegaci¢n descendente por men£s.
{
*p_estoy_en/=10;
*p_n_op_menu=5;
*p_select_actual=1;
*p_refresco=1;
menu(estoy_en,select_actual);
}
} // fin del while
// getch();
closegraph();
}
// ***********************************************************************
// --- FUNCIONES DEL PROGRAMA ---
// ***********************************************************************
// ------------------------------------------------------------------------
// FUNCIàN MIGA (MIGA DEL ASUNTO)
// (con punteros!, como mola...)
// ------------------------------------------------------------------------
void miga(int *p_estoy_en,int *p_select_actual) {
*p_refresco=1; // antes de nada tomemos una coca-cola... ;-)
switch (*p_estoy_en) // veamos que hay que hacer:
{
case 1: // naveguemos por los men£s: ir a menu 1.x
switch (*p_select_actual)
{
case 1:
*p_estoy_en=11;
*p_select_actual=1;
*p_n_op_menu=5;
break;
case 2:
*p_estoy_en=12;
*p_select_actual=1;
*p_n_op_menu=5;
break;
case 3:
*p_estoy_en=13;
*p_select_actual=1;
*p_n_op_menu=3;
break;
case 4:
*p_estoy_en=14;
*p_select_actual=1;
*p_n_op_menu=3;
break;
} // fin del switch-case(select_actual) de navegaci¢n de men£s.
break;//fin del case 1 general.
case 11: // Estamos en las opciones del menu1.
switch (select_actual) // veamos que hay que hacer.
{
case 1: // ALTAS DE CLIENTES.
altas_clientes(200);
break;
}
break;
} // fin del switch-case(estoy_en) general (TOCHO).
} // fin de la funci¢n miga
// -----------------------------------------------------------------------
// FUNCIàN QUE INICIA EL MODO GRµFICO
// -----------------------------------------------------------------------
void modo_grafico(){
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk){
printf("Error al iniciar el modo gr fico: %s\n",
grapherrormsg(errorcode));
printf("Pulse cualquier tecla1 para finalizar...");
getch();
exit(1);
}
}
// -----------------------------------------------------------------------
// FUNCION MENU
// -----------------------------------------------------------------------
void menu(int estoy_en, int select_actual) {
//-------------------- CABECERA DE LA PANTALLA -----------------------
if (*p_refresco) // tomamos otro refresco... (ahora una fanta lim¢n).
{
setviewport(0, 0, getmaxx(), getmaxy(), 0);
settextstyle(2, 0, 5);
ventana(1, 1, getmaxx(), getmaxy(), 1, 9, titulo);
boton(5, 30, getmaxx()-5, 80, 3, 0, "", 9);
setcolor(8); line(5, 90, getmaxx()-5, 90); // dibujamos una doble
setcolor(15); line(5, 91, getmaxx()-5, 91); // l¡nea.
settextstyle(7,0,6); setcolor (1); // caja central con nuestro
outtextxy(110,23,"Video Club ALFA"); // logo del videoclub.
setcolor(8); line(5, 134, getmaxx()-5, 134); // dibujamos otra doble
setcolor(15); line(5, 135, getmaxx()-5, 135); // l¡nea.
localizacion(estoy_en,125,105); // mostramos en una barra donde estamos
*p_refresco=0; // demasiadas burbujas...
}
//----------------- fin de la cabecera de la pantalla ------------------
setviewport(110, 180, 600, 300, 0); // zona de los botones.
switch (estoy_en) // Mostramos un men£ seg£n donde estemos.
{
case 1: // ------------- MENU PRINCIPAL ------------------------------
settextstyle(2,0,6);
boton(0, 5, 250, 30, 7, 0, "1.- Gesti¢n de Clientes", 16);
boton(0, 45, 250, 70, 7, 0, "2.- Gesti¢n de Pedidos", 16);
boton(0, 85, 250, 110, 7, 0, "3.- Alquileres", 16);
boton(0, 125, 250, 150, 7, 0, "4.- Devoluciones", 16);
boton(0, 165, 250, 190, 7, 0, "5.- Salir", 16);
break;
case 11: // ---------------- MENU CLIENTES ---------------------------
settextstyle(2,0,6);
boton(0, 5, 250, 30, 7, 0, "1.- Altas de Clientes", 16);
boton(0, 45, 250, 70, 7, 0, "2.- Bajas de Clientes", 16);
boton(0, 85, 250, 110, 7, 0, "3.- Modificaciones", 16);
boton(0, 125, 250, 150, 7, 0, "4.- Listado de clientes", 16);
boton(0, 165, 250, 190, 7, 0, "5.- Salir", 16);
break;
case 12: // ------------- MENU GESTION DE PEDIDOS ---------------------
settextstyle(2,0,6);
boton(0, 5, 250, 30, 7, 0, "1.- Altas de Pel¡culas", 16);
boton(0, 45, 250, 70, 7, 0, "2.- Bajas de Pel¡culas", 16);
boton(0, 85, 250, 110, 7, 0, "3.- Modificaciones", 16);
boton(0, 125, 250, 150, 7, 0, "4.- Listado de datos", 16);
boton(0, 165, 250, 190, 7, 0, "5.- Salir", 16);
break;
case 13: //------------------ MENU 3: ALQUILERES --------------------
settextstyle(2,0,6);
boton(0, 5, 250, 30, 7, 0, "1.- Altas de Alquiler", 16);
boton(0, 45, 250, 70, 7, 0, "2.- Modificar", 16);
boton(0, 85, 250, 110, 7, 0, "3.- Volver", 16);
break;
case 14:// ------------------- MENU 4: DEVOLUCIONES ------------------
settextstyle(2,0,6);
boton(0, 5, 250, 30, 7, 0, "1.- Devoluciones", 16);
boton(0, 45, 250, 70, 7, 0, "2.- Modificaciones", 16);
boton(0, 85, 250, 110, 7, 0, "3.- Volver", 16);
break;
} //fin del switch-case(estoy_en).
setlinestyle(1,0,2);
switch (select_actual)// Ahora pintamos un recuadro al bot¢n seleccionado.
{
case 1:
rectangle(5,9,245,26);
setlinestyle(0,0,2);rectangle(0,5,250,30);
break;
case 2:
rectangle(5,49,245,66);
setlinestyle(0,0,2);rectangle(0,45,250,70);
break;
case 3:
rectangle(5, 89, 245, 106);
setlinestyle(0,0,2);rectangle(0,85,250,110);
break;
case 4:
rectangle(5, 129, 245, 146);
setlinestyle(0,0,2);rectangle(0,125,250,150);
break;
case 5:
rectangle(5,169, 245, 186);
setlinestyle(0,0,2);rectangle(0,165,250,190);
break;
} // fin del switch-case(select_actual).
setlinestyle(0,0,0); // volvemos a poner el estilo de l¡nea normal.
} // fin de la funci¢n men£.
// ------------------------------------------------------------------------
// FUNCIàN LOCALIZACIàN
// ------------------------------------------------------------------------
void localizacion(int estoy_en, int x, int y) {
settextstyle(2,0,5);
boton(5,100,getmaxx()-225,124,7,1,"Localizaci¢n:",8);
setcolor(1);
switch (estoy_en) {
case 1:
outtextxy(x,y,"Men£ General");
break;
case 11:
outtextxy(x,y, "Men£ General / Gesti¢n de Clientes");
break;
case 12:
outtextxy(x,y, "Men£ General / Gesti¢n de Pedidos");
break;
case 13:
outtextxy(x,y, "Men£ General / Alquileres");
break;
case 14:
outtextxy(x,y, "Men£ General / Devoluciones");
break;
} // fin del switch-case
} // fin de la funci¢n.
// ------------------------------------------------------------------------
// FUNCIàN RELOJ
// ------------------------------------------------------------------------
void reloj (int x, int y) {
setviewport(0,0,getmaxx(),getmaxy(),1);
time_t t;
time(&t);
settextstyle(2,0,5);
boton (x,y,x+210,y+25,7,0,ctime(&t),1);
}
// ------------------------------------------------------------------------
// FUNCIàN ALTAS DE CLIENTES
// ------------------------------------------------------------------------
void altas_clientes(int n) {
int j=0;
while (j<n && socios[j].codigo>0) j++;
if (j<n){
setviewport(300,150,getmaxx(),getmaxy(),0);
ventana(0,20,250,200,0,0,"Alta de Clientes");
introcad(socios[j].nombre,24,100,100,1,2,6);
socios[j].codigo=j;
}
else{
// imprimir tabla llena
}
} // fin de la funci¢n altas_clientes
void introcad(char cad[],int a,int x,int y,int c,int s,int t){
int i;
for (i=0;i<=a-1;i++) {
if (i<a-1){
cad[i]=getche();cad[i+1]=NULL;
setcolor(c);settextstyle(s,0,t);outtextxy(x,y,cad);
}
else
if (i==a-1 && cad[i]!=13){
cad[i]=getche();
if (cad[i]!=13){
sound(1000);delay(50);nosound();
}
i--;
}
if (cad[i]==13){
cad[i]=NULL;
break;
}
}
}
+1383
View File
File diff suppressed because it is too large Load Diff
+308
View File
@@ -0,0 +1,308 @@
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <time.h>
#include "d:\progs_c\lib\gui.h"
char titulo[80]={"Programa Gesti¢n del VideoClub Alfa. Juan L¢pez Fern ndez"};
int estoy_en=1;// Indica el men£ en el que me encuentro.
int select_actual=1; // Indica que opci¢n est  seleccionada actualmente.
int n_op_menu=5; // N£mero de opciones del menu. (default menu1=5)
int refresco=1; // Para el calor... Refresca la pantalla :-).
int *p_estoy_en=&estoy_en;// -- Punteros a sus respectivas variables. --
int *p_select_actual=&select_actual;
int *p_n_op_menu=&n_op_menu;
int *p_refresco=&refresco;
struct peliculas {
char titulo[20];
char tema[10];
int duracion;
int alquileres;
};
struct clientes {
int codigo;
char nombre[25];
};
struct alquileres {
struct peliculas lista_pelis[5];
struct clientes socio;
float fecha_dev;
char finalizado;
};
void modo_grafico();
void menu(int, int);
void miga(int*, int*);
void localizacion(int, int, int);
void reloj(int, int);
// ***********************************************************************
// PROGRAMA PRINCIPAL
// ***********************************************************************
void main() {
modo_grafico();
//presentacion(); // Me pregunto si llegar a hacerla... ;-).
menu(estoy_en, select_actual);
int tecla1, tecla12, sw=1;
while(sw==1){
reloj(423,100);
tecla1=getch();
if(tecla1==0) // leemos tecla especial.
{
tecla12=getch();
switch(tecla12) {
case 72: // Flecha arriba
if (select_actual<=1)
select_actual=1;
else {
select_actual--;
menu(estoy_en, select_actual);
}
break;
case 80: // Flecha abajo
if (select_actual>=n_op_menu)
select_actual=n_op_menu;
else{
select_actual++;
menu(estoy_en, select_actual);
}
break;
} // fin del switch-case
}// fin del if
else
if (tecla1==13) // MIGA DEL ASUNTO
{
miga(p_estoy_en, p_select_actual);
menu(estoy_en, select_actual);
}
else
if (tecla1==27)
if (estoy_en==1) // Se acab¢ la funci¢n...
sw=0;
else // Navegaci¢n descendente por men£s.
{
*p_estoy_en/=10;
*p_n_op_menu=5;
*p_select_actual=1;
*p_refresco=1;
menu(estoy_en,select_actual);
}
} // fin del while
// getch();
closegraph();
}
// ***********************************************************************
// --- FUNCIONES DEL PROGRAMA ---
// ***********************************************************************
// ------------------------------------------------------------------------
// FUNCIàN MIGA (MIGA DEL ASUNTO)
// (con punteros!, como mola...)
// ------------------------------------------------------------------------
void miga(int *p_estoy_en,int *p_select_actual) {
*p_refresco=1; // antes de nada tomemos una coca-cola... ;-)
switch (*p_estoy_en) // veamos que hay que hacer:
{
case 1: // naveguemos por los men£s: ir a menu 1.x
switch (*p_select_actual)
{
case 1:
*p_estoy_en=11;
*p_select_actual=1;
*p_n_op_menu=5;
break;
case 2:
*p_estoy_en=12;
*p_select_actual=1;
*p_n_op_menu=5;
break;
case 3:
*p_estoy_en=13;
*p_select_actual=1;
*p_n_op_menu=3;
break;
case 4:
*p_estoy_en=14;
*p_select_actual=1;
*p_n_op_menu=3;
break;
} // fin del switch-case de navegaci¢n de men£s.
break;//fin del case 1 general.
} // fin del switch-case general.
} // fin de la funci¢n miga
// -----------------------------------------------------------------------
// FUNCIàN QUE INICIA EL MODO GRµFICO
// -----------------------------------------------------------------------
void modo_grafico(){
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "d:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk){
printf("Error al iniciar el modo gr fico: %s\n",
grapherrormsg(errorcode));
printf("Pulse cualquier tecla1 para finalizar...");
getch();
exit(1);
}
}
// -----------------------------------------------------------------------
// FUNCION MENU
// -----------------------------------------------------------------------
void menu(int estoy_en, int select_actual) {
//-------------------- CABECERA DE LA PANTALLA -----------------------
if (*p_refresco) // tomamos otro refresco... (ahora una fanta lim¢n).
{
setviewport(0, 0, getmaxx(), getmaxy(), 0);
settextstyle(2, 0, 5);
ventana(1, 1, getmaxx(), getmaxy(), 1, 9, titulo);
boton(5, 30, getmaxx()-5, 80, 3, 0, "", 9);
setcolor(8); line(5, 90, getmaxx()-5, 90); // dibujamos una doble
setcolor(15); line(5, 91, getmaxx()-5, 91); // l¡nea.
settextstyle(7,0,6); setcolor (1); // caja central con nuestro
outtextxy(110,23,"Video Club ALFA"); // logo del videoclub.
setcolor(8); line(5, 134, getmaxx()-5, 134); // dibujamos otra doble
setcolor(15); line(5, 135, getmaxx()-5, 135); // l¡nea.
localizacion(estoy_en,125,105); // mostramos en una barra donde estamos
*p_refresco=0; // demasiadas burbujas...
}
//----------------- fin de la cabecera de la pantalla ------------------
setviewport(110, 180, 600, 300, 0); // zona de los botones.
switch (estoy_en) // Mostramos un men£ seg£n donde estemos.
{
case 1: // ------------- MENU PRINCIPAL ------------------------------
settextstyle(2,0,6);
boton(0, 5, 250, 30, 7, 0, "1.- Gesti¢n de Clientes", 16);
boton(0, 45, 250, 70, 7, 0, "2.- Gesti¢n de Pedidos", 16);
boton(0, 85, 250, 110, 7, 0, "3.- Alquileres", 16);
boton(0, 125, 250, 150, 7, 0, "4.- Devoluciones", 16);
boton(0, 165, 250, 190, 7, 0, "5.- Salir", 16);
break;
case 11: // ---------------- MENU CLIENTES ---------------------------
settextstyle(2,0,6);
boton(0, 5, 250, 30, 7, 0, "1.- Altas de Clientes", 16);
boton(0, 45, 250, 70, 7, 0, "2.- Bajas de Clientes", 16);
boton(0, 85, 250, 110, 7, 0, "3.- Modificaciones", 16);
boton(0, 125, 250, 150, 7, 0, "4.- Listado de clientes", 16);
boton(0, 165, 250, 190, 7, 0, "5.- Salir", 16);
break;
case 12: // ------------- MENU GESTION DE PEDIDOS ---------------------
settextstyle(2,0,6);
boton(0, 5, 250, 30, 7, 0, "1.- Altas de Pel¡culas", 16);
boton(0, 45, 250, 70, 7, 0, "2.- Bajas de Pel¡culas", 16);
boton(0, 85, 250, 110, 7, 0, "3.- Modificaciones", 16);
boton(0, 125, 250, 150, 7, 0, "4.- Listado de datos", 16);
boton(0, 165, 250, 190, 7, 0, "5.- Salir", 16);
break;
case 13: //------------------ MENU 3: ALQUILERES --------------------
settextstyle(2,0,6);
boton(0, 5, 250, 30, 7, 0, "1.- Altas de Alquiler", 16);
boton(0, 45, 250, 70, 7, 0, "2.- Modificar", 16);
boton(0, 85, 250, 110, 7, 0, "3.- Volver", 16);
break;
case 14:// ------------------- MENU 4: DEVOLUCIONES ------------------
settextstyle(2,0,6);
boton(0, 5, 250, 30, 7, 0, "1.- Devoluciones", 16);
boton(0, 45, 250, 70, 7, 0, "2.- Modificaciones", 16);
boton(0, 85, 250, 110, 7, 0, "3.- Volver", 16);
break;
} //fin del switch-case(estoy_en).
setlinestyle(3,0,2);
switch (select_actual)// Ahora pintamos un recuadro al bot¢n seleccionado.
{
case 1:
rectangle(5,9,245,26);
setlinestyle(0,0,2);rectangle(0,5,250,30);
break;
case 2:
rectangle(5,49,245,66);
setlinestyle(0,0,2);rectangle(0,45,250,70);
break;
case 3:
rectangle(5, 89, 245, 106);
setlinestyle(0,0,2);rectangle(0,85,250,110);
break;
case 4:
rectangle(5, 129, 245, 146);
setlinestyle(0,0,2);rectangle(0,125,250,150);
break;
case 5:
rectangle(5,169, 245, 186);
setlinestyle(0,0,2);rectangle(0,165,250,190);
break;
} // fin del switch-case(select_actual).
setlinestyle(0,0,0); // volvemos a poner el estilo de l¡nea normal.
} // fin de la funci¢n men£.
// ------------------------------------------------------------------------
// FUNCIàN LOCALIZACIàN
// ------------------------------------------------------------------------
void localizacion(int estoy_en, int x, int y) {
settextstyle(2,0,5);
boton(5,100,getmaxx()-225,124,7,1,"Localizaci¢n:",8);
setcolor(1);
switch (estoy_en) {
case 1:
outtextxy(x,y,"Men£ General");
break;
case 11:
outtextxy(x,y, "Men£ General / Gesti¢n de Clientes");
break;
case 12:
outtextxy(x,y, "Men£ General / Gesti¢n de Pedidos");
break;
case 13:
outtextxy(x,y, "Men£ General / Alquileres");
break;
case 14:
outtextxy(x,y, "Men£ General / Devoluciones");
break;
} // fin del switch-case
} // fin de la funci¢n.
// ------------------------------------------------------------------------
// FUNCIàN RELOJ
// ------------------------------------------------------------------------
void reloj (int x, int y) {
setviewport(0,0,getmaxx(),getmaxy(),1);
time_t t;
time(&t);
settextstyle(2,0,5);
boton (x,y,x+210,y+25,7,0,ctime(&t),1);
}
Binary file not shown.
+149
View File
@@ -0,0 +1,149 @@
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#define seleccionado color_numero=color_menu=9;settextstyle(7,0,4);
#define no_seleccionado color_numero=3;color_menu=8;settextstyle(8,0,3);
void ventana(int x1, int y1, int x2, int y2, char titulo[80]);
void boton(int x1, int y1, int x2, int y2,int, char titulo[80]);
void main(){
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "d:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk){
printf("Error al iniciar el modo gr fico: %s\n",
grapherrormsg(errorcode));
printf("Pulse cualquier tecla1 para finalizar...");
getch();
exit(1);
}
int midx, midy, i;
midx = getmaxx() / 2;
midy = getmaxy() / 2;
/* loop through the fill patterns */
// for (i=0; i<12; i++)
// {
/* set the fill style */
setfillstyle(1,1);bar(1,1,getmaxx(),getmaxy());
setcolor(8);
bar3d(midx-153, midy-148, midx+153, midy+153, 0, 1);
setcolor(7);
bar3d(midx-152, midy-147, midx+152, midy+152, 0, 1);
setcolor(16);
bar3d(midx-151, midy-146, midx+151, midy+151, 0, 1);
setfillstyle(1,9);
bar3d(midx-150, midy-145, midx+150, midy+150, 0, 1);
setfillstyle(1, 1);
bar3d(midx-150, midy-145, midx+150, midy-120, 0, 1);
settextstyle(2,0,5);
setcolor(15);outtextxy(midx-140,midy-140,"Ooohh.. It`s Fun !!");
getch();
setfillstyle(1,1);bar(1,1,getmaxx(),getmaxy());
ventana(midx-150,midy-150,midx+150,midy+150,"Microsoft Word _OX");
boton(midx-15,midy-15,midx+60,midy+10,0,"Acepta?");
// }
getch();
boton(midx-15,midy-15,midx+60,midy+10,1,"Acepta?");delay(305);
int o=1;
for ( o; o<200;o+=5){
ventana(midx-o,midy-o,midx+o,midy+o,"Se Sale...");
// setfillstyle(1,1);bar(midx-o,midy-o,midx+o,midy+o);
}
ventana(midx-o,midy-o,midx+o,midy+o,"Se Sale...");
getch();
/* int x1=midx-o+3, y1=midy-o+3, x2=midx+o-4, y2=midy-o+20;
bar(x1,y1,x2,y2);
for (int k=0; y1<getmaxy() && x2>(x1+10);k+=10){
bar(x1,y1+k,x2,y2+20);
} */
getch();
closegraph();
}
void ventana(int x1, int y1, int x2, int y2,char titulo[]){
// ventana normal -----------------------------------------------
setcolor(7); rectangle(x1,y1,x2,y2); // cuadro gris claro
setcolor(16);
line(x1,y2,x2,y2); // linea negra -- abajo
line(x2,y2,x2,y1); // linea negra | derecha
setcolor(15); rectangle(x1+1,y1+1,x2-1,y2-1); //cuadro blanco dentro
setcolor(8);
line(x1+1,y2-1,x2-1,y2-1); // gris -- abajo
line(x2-1,y1+1,x2-1,y2-1); // gris | derecha
setfillstyle(1,7);
bar(x1+2,y1+2,x2-2,y2-2);// interior gris de la ventana
setfillstyle(1,1);
bar(x1+3,y1+3,x2-4,y1+20);// fondo azul del titulo
setcolor(15);
outtextxy(x1+10,y1+4,titulo);
//--------------------------------------------------------------
}
// --------------------------------------------------------------------
// FUNCIàN BOTON
// --------------------------------------------------------------------
void boton(int x1,int y1, int x2,int y2,int pulsado,char titulo[]) {
setcolor(7); rectangle(x1,y1,x2,y2); // cuadro gris claro
if (pulsado)
{
setcolor(16);
line(x1, y1, x2, y1); // linea negra -- arriba
line(x1, y2, x1, y1); // linea negra | izquierda
setcolor(15);
rectangle(x1+1,y1+1,x2-1,y2-1); //cuadro blanco dentro
setcolor(8);
line(x1+1, y1+1, x2-1, y1+1); // gris -- arriba
line(x1+1, y1+1, x1+1, y2-1); // gris | izquierda
}
else {
setcolor(16);
line(x1, y2, x2, y2); // linea negra -- abajo
line(x2, y2, x2, y1); // linea negra | derecha
setcolor(15);
rectangle(x1+1, y1+1, x2-1, y2-1); //cuadro blanco dentro
setcolor(8);
line(x1+1, y2-1, x2-1, y2-1); // gris -- abajo
line(x2-1, y1+1, x2-1, y2-1); // gris | derecha
}
setfillstyle(1,7);
bar(x1+2, y1+2, x2-2, y2-2);// interior gris de la ventana
outtextxy(x1+10,y1+4,titulo);
} // FIN DE LA FUNCIàN ----------------------------------------------------
Binary file not shown.
File diff suppressed because it is too large Load Diff
+45
View File
@@ -0,0 +1,45 @@
// ************************************************************************************************
//
// Soporte para video Direct X.
//
// ************************************** (c) Pedro Díez López ************************************
#ifndef __DIRECTX_SUPPORT__
#define __DIRECTX_SUPPORT__
#include <ddraw.h>
class CDXVideo
{
public:
int hres; // Resolucion horizontal.
int vres; // Resolucion vertical
int bpp; // bpp de la resolucion.
int DimBuffer; // Dimension del buffer.
int ElmBuffer; // Elementos del buffer.
union Buffer // Distintos tipos de resolucion.
{
void *bpp;
BYTE *bpp8;
WORD *bpp16;
DWORD *bpp32;
}pBuffer;
HCURSOR mDDCursorShape;
private:
LPDIRECTDRAW lpDD; // Puntero a Direct Draw.
LPDIRECTDRAWSURFACE lpDDSView; // Puntero a la superficie.
LPDIRECTDRAWSURFACE lpDDSBack; // Puntero a la 2º superficie.
void *lpDXBuffer;// Puntero al LFB.
DDSURFACEDESC ddsd; // Descriptor de Superficie.
DDSCAPS ddscaps; // Descriptor de capabilities.
HRESULT ddrval; // Resultado de la llamada DD.
public:
BOOL Inicio(HWND hwnd,int Ancho,int Alto,int BPP);
void Cursor(HCURSOR nCursor);
void Pinta ();
void Fin();
};
#endif
+96
View File
@@ -0,0 +1,96 @@
void modo_grafico(char ruta[]){
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, ruta);
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Error grafico: %s\n", grapherrormsg(errorcode));
printf("Pulse una tecla para finalizar:");
getch();
exit(1);
}
}
// -----------------------------------------------------------------------
// FUNCIàN VENTANA CON TITULO
// -----------------------------------------------------------------------
void ventana(int x1, int y1, int x2, int y2,char titulo[],
int fondo_titulo, int fondo_ventana )
{
setcolor(7);
rectangle(x1, y1, x2, y2); // cuadro gris claro
setcolor(16);
line(x1, y2, x2, y2); // linea negra -- abajo
line(x2, y2, x2, y1); // linea negra | derecha
setcolor(15);
rectangle(x1+1, y1+1, x2-1, y2-1); // cuadro blanco dentro
setcolor(8);
line(x1+1, y2-1, x2-1, y2-1); // gris -- abajo
line(x2-1, y1+1, x2-1, y2-1); // gris | derecha
int fv= (fondo_ventana) ? fondo_ventana : 7; // color del interior de
setfillstyle(1,fv); // la ventana, por defecto
bar(x1+2, y1+2, x2-2, y2-2); // (0) es el gris.
int ft= (fondo_titulo) ? fondo_titulo : 1; // color del fondo del
setfillstyle(1,ft); // t¡tulo, por defecto (0)
bar(x1+3, y1+3, x2-4, y1+20); // es azul oscuro.
setcolor(15);
outtextxy(x1+10, y1+4, titulo); // t¡tulo de la ventana
} // FIN VENTANA ---------------------------------------------------------
// -----------------------------------------------------------------------
// FUNCIàN BOTON
// -----------------------------------------------------------------------
void boton(int x1,int y1, int x2,int y2, int pulsado, char titulo[],
int color_titulo, int fondo_boton) {
setcolor(7); rectangle(x1,y1,x2,y2); // cuadro gris claro
if (pulsado)
{
setcolor(16);
line(x1, y1, x2, y1); // linea negra -- arriba
line(x1, y2, x1, y1); // linea negra | izquierda
setcolor(15);
rectangle(x1+1,y1+1,x2-1,y2-1); //cuadro blanco dentro
setcolor(8);
line(x1+1, y1+1, x2-1, y1+1); // gris -- arriba
line(x1+1, y1+1, x1+1, y2-1); // gris | izquierda
}
else {
setcolor(16);
line(x1, y2, x2, y2); // linea negra -- abajo
line(x2, y2, x2, y1); // linea negra | derecha
setcolor(15);
rectangle(x1+1, y1+1, x2-1, y2-1); //cuadro blanco dentro
setcolor(8);
line(x1+1, y2-1, x2-1, y2-1); // gris -- abajo
line(x2-1, y1+1, x2-1, y2-1); // gris | derecha
}
int fb= (fondo_boton) ? fondo_boton : 7; // color del interior del
setfillstyle(1,fb); // bot¢n, por defecto (0)
bar(x1+2, y1+2, x2-2, y2-2); // es el gris.
int ct= (color_titulo) ? color_titulo : 15;
setcolor(ct);
// settextstyle(2,0,5);
outtextxy(x1+10,y1+4,titulo);
} // FIN BOTON -----------------------------------------------------------
+108
View File
@@ -0,0 +1,108 @@
// ************************************************************************
// **************** LIBRERÖA DE ICONOS ********************
// ************************************************************************
// ------------------------------------------------------------------------
// ---------------- LISTA DE ICONOS --------------------
// ------------------------------------------------------------------------
// ÉÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
// º Nombre º Especificaci¢n º
// ÌÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
// º icon1 º Es una cruz roja de 10x10 pixels. º
// ÌÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
// º icon2 º Es una flecha (->) azul de 10x10 pixels. º
// ÌÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
// º icon3 º Es un circulo con borde negro y pintado de verde de 10x10 º
// º º pixels. º
// ÌÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
// º icon4 º Es un c¡rculo blanco (completo incluido borde) de 10x10 º
// º º pixels. º
// ÌÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
// º icon5 º Es un c¡rculo negro (completo incluido borde) de 10x10 º
// º º pixels. º
// ÌÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
// º icon6 º Es un c¡rculo blanco (completo incluido borde) de 20x20 º
// º º pixels. º
// ÌÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
// º icon7 º Es un c¡rculo negro (completo incluido borde) de 20x20 º
// º º pixels. º
// ºÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
// º icon8 º Es una flecha (->) gris (con punta azul) de 10x10 pixels. º
// ºÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
// º *icon9 º Es una flecha (->) de color c de 10x10 pixels. º
// ºÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
// º icon10 º Es un triangulo amarillo con l¡neas negras y una exclama- º
// º º ci¢n negra dentro. Es de 20x20 pixels. º
// ÈÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
// ****** NOTA: A todos los iconos hay que pasarles la posici¢n X y la Y **
// ****** A los marcados con * hay que pasarles tambin el color **
void icon1(int x,int y){
setcolor(4);setlinestyle(0,1,3);
line(x,y,x+10,y+10);line(x+10,y,x,y+10);
setlinestyle(0,1,1);
}
void icon2(int x,int y){
setcolor(1);setlinestyle(0,1,3);
line(x,y+5,x+5,y+5);setlinestyle(0,1,1);
line(x+5,y,x+10,y+5);line(x+5,y+10,x+10,y+5);line(x+5,y,x+5,y+10);
setfillstyle(1,1);floodfill(x+6,y+6,1);
setlinestyle(0,1,1);
}
void icon3(int x, int y){
setlinestyle(0,1,1);
setcolor(0);circle(x+5,y+5,5);
setfillstyle(1,2);floodfill(x+5,y+5,0);
}
void icon4(int x, int y){
setlinestyle(0,1,1);
setcolor(15);circle(x,y,5);
setfillstyle(1,15); floodfill(x,y,15);
}
void icon5(int x, int y){
setlinestyle(0,1,1);
setcolor(0);circle(x,y,5);
setfillstyle(1,0); floodfill(x,y,0);
}
void icon6(int x, int y){
setlinestyle(0,1,1);
setcolor(15);circle(x,y,10);
setfillstyle(1,15); floodfill(x,y,15);
}
void icon7(int x, int y){
setlinestyle(0,1,1);
setcolor(0);circle(x,y,10);
setfillstyle(1,0); floodfill(x,y,0);
}
void icon8(int x,int y){
setcolor(7);setlinestyle(0,1,3);
line(x,y+5,x+5,y+5);setlinestyle(0,1,1);
line(x+5,y,x+10,y+5);line(x+5,y+10,x+10,y+5);line(x+5,y,x+5,y+10);
setfillstyle(1,1);floodfill(x+6,y+6,1);
setlinestyle(0,1,1);
}
void icon9(int x,int y,int c){
setcolor(c);setlinestyle(0,1,3);
line(x,y+5,x+5,y+5);setlinestyle(0,1,1);
line(x+5,y,x+10,y+5);line(x+5,y+10,x+10,y+5);line(x+5,y,x+5,y+10);
setfillstyle(1,c);floodfill(x+6,y+6,c);
setlinestyle(0,1,1);
}
void icon10(int x,int y){
setcolor(0);line(x,y+20,x+20,y+20);
line(x,y+20,x+10,y);line(x+20,y+20,x+10,y);
setfillstyle(1,14);floodfill(x+10,y+19,0);
setlinestyle(0,0,2);line(x+10,y+5,x+10,y+13);
setlinestyle(0,0,1);circle(x+10,y+17,1);
setfillstyle(1,0);floodfill(x+10,y+17,0);
}
+45
View File
@@ -0,0 +1,45 @@
void introcad(int x, int y, char cad[], int a,
int c, int s, int t, int col) {
int i;
for (i=0;i<=a-1;) {
if (i<a-1){
cad[i]=getche();
if (cad[i]==8){
if (i>0){
setcolor(col);settextstyle(s,0,t);outtextxy(x,y,cad);
cad[i-1]=NULL;i-=2;
}
else{
sound(1000);delay(50);nosound();i--;
}
}
setcolor(c);settextstyle(s,0,t);outtextxy(x,y,cad);
}
else {
if (i==a-1 && cad[i]!=13){
cad[i]=getche();
if (cad[i]!=13 && cad[i]!=8){
sound(1000);delay(50);nosound();
}
else{
if (cad[i]==8 && i>=0){
setcolor(col);settextstyle(s,0,t);outtextxy(x,y,cad);
cad[i-1]=NULL;i--;
setcolor(c);settextstyle(s,0,t);outtextxy(x,y,cad);
}
}
i--;
}
}
if (cad[i]==13 && i>0)
break;
else
if (cad[i]==13 && i==0)
i--;
if (cad[0]!=NULL)
i++;
if (i==-1)
i++;
}
cad[i]=NULL;
}
+31
View File
@@ -0,0 +1,31 @@
void imprimir_num(int j_resto) {
int numero,base;
int tabla[15];
clrscr();
gotoxy(10,12);
printf ("El n£mero %d en base %d es: ",numero,base);
for (;j_resto>=0;j_resto--) {
if (tabla[j_resto]<=9)
printf ("%d",tabla[j_resto]);
else
if (tabla[j_resto]==10)
printf ("A");
else
if (tabla[j_resto]==11)
printf ("B");
else
if (tabla[j_resto]==12)
printf ("C");
else
if (tabla[j_resto]==13)
printf ("D");
else
if (tabla[j_resto]==14)
printf ("E");
else
if (tabla[j_resto]==15)
printf ("F");
}
}
+16
View File
@@ -0,0 +1,16 @@
int modo_grafico(char ruta[80]) {
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
/* initialize graphics mode */
initgraph(&gdriver, &gmode, ruta);
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) {
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* return with error code */
}
return(0);
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More