|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - dadevil_g
1
« en: Jueves 6 de Diciembre de 2007, 06:10 »
Weno una vez dicho esto, me pongo a buscar algún manual, si alguien sabe de alguna recomendación, pues bienvenida.
Gracias por tu respuesta
2
« en: Jueves 6 de Diciembre de 2007, 00:31 »
Que tal, saludos a todos, mi problema es el siguiente, tengo que desarrollar un programa para manejar una biblioteca, tiene que dar de alta libros, audiolibros, revistas y usuarios, y tiene que hacer busquedas por titulo, editorial y categoria, tengo el esqueleto grafico (las ventanas, los botones) ya funcionando bien, pero ahora viene la pregunta importante, ¿cómo es mejor manejar un programa asi, con base de datos o con algun tipo de estructura ? si a alguien le interesa hecharme una mano con el proyecto y desea que le envie lo que tengo de codigo hecho en netbeans 6 que me mande un emilio, gracias de antemano.
3
« en: Jueves 3 de Mayo de 2007, 05:12 »
hola a todos, como ven tengo muchas inquietudes y el otro dia me puse a hacer un programita que hiciera lo siguiente Sin uso de argumentos, realizar un programa que lea un archivo origen.txt y escriba el texto con puntos a un archivo destino.txt Por ejemplo. origen.txt Iniciar una nueva discusión en C/C++ destino.txt Iniciar.una.nueva.discusion.en.C/C++ Y esto lo logre mediante el siguiente codigo while ((ch=fgetc(fp)) != EOF) if (ch==' ') fputc('.',fp2); else fputc(ch,fp2);
Pero eso es trabajando con archivos, mi pregunta es como se debe de hacer para trabajar con una cadena de texto ingresada desde el teclado? Tengo algo de codigo pero no se porque no me funciona. #include "stdafx.h" #include "stdio.h" #include "conio.h" #include "stdlib.h" #include "string.h" void adiciona(char *ptrS); int _tmain(int argc, _TCHAR* argv[]) { char palabra[150]; int i=0, t; printf("Escriba una frase para añadir un caracter\n"); scanf("%s", palabra); while(("%s",palabra)!='\0') { t=strlen(palabra); for(i=0; i<=t; i++) { if((palabra[i])==' ') { puts("a ",palabra ); } } } printf("Palabra transformada\n"); printf("%s",palabra); getchar(); }
Si alguien me puede decir onta el error le agradecería bastante.
4
« en: Jueves 3 de Mayo de 2007, 04:52 »
Bueno, de hecho, es cierto lo que comenta RadicalEd, ya que yo uso Visual Studio 2005 y efectivamente no puedo utilizar el gotoxt, bueno ahora si ya que desde la pagina de microsoft en los foros se puede bajar una libreria tool.h donde viene declarada la funcion gotoxy, aunque ya he solucionado el problema gracias de todas formas a ustedes que se tomaron la molestia de leer el post, de cualquier forma aqui pongo el codigo por si a alguien le sirve. #include "stdafx.h" #include "string.h" #include "stdlib.h" #define MAX 10 void di(int n); int _tmain(int argc, _TCHAR* argv[]) { int numero, linea, columna; for( linea = 1; linea <= MAX; linea++ ) { for( columna = MAX; columna > linea; columna-- ) printf(" "); for( columna = linea; columna < 2*linea; columna++ ) { numero = columna % 10; printf("%d",numero); } for( columna = 2*(linea-1); columna >= linea; columna-- ) { numero = columna % 10; printf("%d",numero); } printf ("\n"); } printf("\n\n"); system ("pause"); return 0; }
5
« en: Lunes 30 de Abril de 2007, 07:34 »
Perdon, se supone que deberia ser un triangulo 1 232 34543 4567654 567898765 67890109876 7890123210987 890123454321098 90123456765432109 0123456789876543210
6
« en: Lunes 30 de Abril de 2007, 07:30 »
Hola amigos, acudo a ustedes en desesperacion, tengo el problema de realizar un programa que imprima algo asi: 1 232 34543 4567654 567898765 67890109876 7890123210987 890123454321098 90123456765432109 0123456789876543210
y ya tengo algo de codigo, de hecho ya funciona el problema es que despues del 9 en lugar de poner 0 me pone 10 y 11, y asi sucesivamente, y tampoco he podido centrarlo cuando lo corro no me aparece un triangulo, me aparece pegado al lado izquierdo de la pantalla, aqui les dejo el codigo si alguien tubiera alguna idea o me pudiera corregir se los agradecería bastante. int numero, linea, columna; for( linea = 1; linea <= MAX; linea++ ) { for( columna = MAX; columna >= linea; columna-- ) printf(" "); for( columna = linea; columna < 2*linea; columna++ ) { numero = columna % 10; printf("%d",numero); } for( columna = 2*(linea-1); columna >= linea; columna-- ) { numero = columna % 10; printf("%d",numero); } getchar(); return 0; } }
Por cierto estoy programando en Visual Studio 2005 si sirve de algo....
7
« en: Domingo 25 de Febrero de 2007, 19:29 »
Muchas gracias, eso me da una idea de como debo empezar, lo que pasa es que es un sistema de altas, bajas, actualizaciones, seguridad, reporte impreso, y pues a mi me toco el reporte impreso y a otro equipo las altas, y asi sucesivamente, creo que eso se llama programacion extrema o algo por el estilo. Gracias por el aporte se agradece mucho.
8
« en: Sábado 24 de Febrero de 2007, 21:43 »
Bueno, tal vez parezca un poco fuera de idea pero pudieras utilizar una pausa en el sistema, algo asi como: system( "PAUSE" ); no recuerdo la libreria a utilizar, pero ha de ser una de las basicas stdio.h, conio.h, dependiendo de tu compilador, espero te sirva de ayuda.
Si no te queda claro aqui tienes un pequeño ejemplo:
#include <stdio.h> #include <conio.h>
int main() { printf("\nPrograma de prueba, es sabado, bebamos, salu2"); system( "PAUSE" ); // Aqui pausamos el programa. return 0; }
9
« en: Sábado 24 de Febrero de 2007, 06:42 »
Hola, que tal, soy yo otra vez, y esta vez si estoy en un aprieto total, no se ni como empezar ni nada... el problema es que tengo que hacer una funcion que imprima un cheque, pero en el cheque tiene que venir cuantas horas trabajo el empleado X, si se trabajaron 40 horas a la semana recibe su paga completa, al dia trabaja 8 horas, y el salario minimo es de 47 pesos. Cualquier sugerencia es bienvenida, desde algun codigo existente hasta alguna orientacion que me pudieran dar, o pseudocodigo, lo que sea.... hasta alguna mentada de jefa.
10
« en: Viernes 23 de Febrero de 2007, 19:44 »
Pues es algo asi, ya que estamos programando con el Visual Studio 2005 pero estamos haciendo aplicaciones en C para Win 32 en modo consola, todavia no vemos nada visual, ni mucho menos con botones ni nada parecido.
11
« en: Viernes 23 de Febrero de 2007, 18:06 »
Bueno, se resolvio el problema, el profesor tambien se rindió, nos pidio que investigaramos eso para hacer un programa que mostrara la hora y la fecha del sistema, al ultimo terminamos haciendolo con estructuras, si alguien quiere el codigo que me diga y lo posteo.
12
« en: Miércoles 21 de Febrero de 2007, 23:51 »
Weno, gracias por tomarte la molestia en contestarme, me puse a leer, pero aun asi no me quedo claro , estamos trabajando en Visual Studio 2005, y ya muchos compañeros nos hemos topado con la misma problematica, si union regs es algo que introdujo borland y no es muy estandar quiere decir que no vamos a poder trabajarlos en Visual Studio 2005?
13
« en: Miércoles 21 de Febrero de 2007, 05:45 »
Hail, nuevamente estoy preguntando, cosas que tal vez no tienen sentido, pero que no entiendo, he buscado en el google algo sobre uniones que tiene que ver son estructuras, pero solamente encuentro codigo que maneja con ensamblador, y pues eso yo ya no lo entiendo, alguien podria dar un ejemplo de union regs, no se, como por ejemplo obtener la hora y fecha del sistema, o algo por el estilo??? o si saben de una pagina donde expliquen bien esas cosas me pudieran decir, se los agradeceria.
14
« en: Domingo 18 de Febrero de 2007, 20:36 »
A ver si entendi, la entrada es en grados, y hay que transformarla a radianes, y mandarlo a la funcion sin, o cos, y despues volver a convertir a grados o ya con el simple hecho de mandarlo en gradianes a la funcion debe de dar el resultado esperado?
15
« en: Sábado 17 de Febrero de 2007, 22:31 »
Wenas a todos los programadores y programadoras de este foro, hace mucho que estoy registrao aqui, y hace mucho que no me topaba con un problema como este, sucede que un profe de fisica nos dejo hacer un programa que descomponga las fuerzas y todo ese chou, agarre papel, lapiz, y empece a solucionar el problema, ahora, ya tengo el codigo, hice el programa y corre perfectamente, pero el problema me viene con el resultado, le he preguntado otro profe y no me supo decir mas que "hay un problema con los radianes y grados" he investigado como hacer la conversion y la pongo en mi programa pero todos los resultados distan mucho de ser los esperados, si alguien pudiera y quiciera ayudarme aqui les dejo el codigo y muchas gracias de antemano por molestarse en leer este post #include "stdafx.h" #include "math.h" #include "stdio.h" #include "stdlib.h" #define conver 360/2*3.1415926535 void sistema_ingles (); void sistema_internacional (); void ayuda(); int _tmain(int argc, _TCHAR* argv[]) { int menu; float a,b,c,d; float u,v,w,x; printf("===============================================================\n"); printf(" U N I V E R S I D A D A U T O N O M A D E Z A C A T E C A S\n"); printf("\n\n\n"); printf("1.- Sistema Internacional\n"); printf("2.- Sistema Ingles\n"); printf("3.- Ayuda\n"); printf("4.- Salir"); printf("\n\nSelecciona una opcion a utilizar: "); scanf("%d",&menu); switch(menu){ case 1: printf("1.- Sistema Internacional\n"); system("cls"); sistema_internacional(); break; case 2: printf("2.- Sistema Ingles\n"); system("cls"); sistema_ingles(); break; case 3: printf("3.- Ayuda\n"); system("cls"); ayuda(); getchar(); break; case 4: printf("4.- Salir"); break; default: printf("Opcion no valida"); } } void sistema_ingles () { float u,v,w,x; printf("Da la magnitud en libras"); printf("\nMagnitud: "); scanf("%f",&u); printf("\nDa la direccion en grados"); printf("\nDireccion: "); scanf("%f",&v); w=cos(v); x=sin(v); getchar(); printf("\nResultante en 1: %1.5f Lb",w*conver); printf("\nResultante en 2: %1.5f Lb",x*conver); printf("\n\nLOS RESULTADOS SON EXPRESADOS EN RADIANES"); getchar(); } void sistema_internacional () { float a,b,c,d,e,f; printf("Da la magnitud en newtons"); printf("\nMagnitud: "); scanf("%f",&a); printf("\nDa la direccion en grados"); printf("\nDireccion: "); scanf("%f",&b); getchar(); c = cos (B); d = sin (B); e= c; f= d; printf("\nResultante en 1: %1.5f Newtons",e*a); printf("\nResultante en 2: %1.5f Newtons",f*a); printf("\n\nLOS RESULTADOS SON EXPRESADOS EN RADIANES"); getchar(); } void ayuda() { printf("Programa diseñado para la asignatura de Fisica 1 (Estatica)\n\n"); printf("Impartida por el Ing. Jose Antonio Rodriguez Rodriguez\n"); printf("La opcion 1 ayuda a resolver por medio del sistema ingles\n"); printf("un sistema de dos fuerzas en libras\n\n"); printf("La opcion 2 ayuda a resolver por medio del sistema internacional\n"); printf("un sistema de dos fuerzas en newtons\n\n"); printf("La opcion 3 despliega esta ayuda\n"); printf("\nLa opcion 4 sale del programa"); getchar(); }
P.D. el programa esta escrito en C, y estoy utilizando el Visual Studio 2005
16
« en: Domingo 15 de Mayo de 2005, 00:24 »
Bueno, me dió curiosidad por que habla de vida artificial en C, y pues quiciera el codigo, para observar como es que funciona dicha vida artificial.
17
« en: Sábado 14 de Mayo de 2005, 06:21 »
Wenas, esta tarde me he encontrado navegando por distintas webs de programacion en C y me he encontrado en varias que hablan sobre un juego llamado LIFE (VIDA) y que este, simula vida artificial, y me he quedao con la curiosidad de saber que onda con ese juego, si alguien tiene el codigo para C, se lo agradezco de antemano.
18
« en: Sábado 27 de Marzo de 2004, 05:57 »
Muchas gracias a dreadlock, y a desorden me sirvieron mucho sus explicaciones y links, ayunque como todavia no manejo linux y no soy muy experto en C, vere el link que me pones desorden. Muchas gracias a los 2.
19
« en: Viernes 26 de Marzo de 2004, 22:58 »
Buenas a todo el que se moleste en ver mi post, necesito crear una libreria que tenga una funcion de desea continuar s/n y otra pa limpiar pantalla, lo malo es que no se crear muy bien funciones pero tengo un libro que me ayudara con eso, pero necesito que me ayuden con la creacion de la libreria "mi nombre.h" no se cual sea la estructura pa eso, si alguien tiene un ejemplillo o algún link o si me puede ayudar se lo agradecería basante. De antemano gracias
20
« en: Jueves 26 de Febrero de 2004, 20:07 »
Buenas tardes a todos los compañeros del foro... me presento con una duda, tengo un programa hecho en Turbo C, que utiliza sonidos y funciona muy bien, pero a la hora de compilarlo en mi Borland C/C++ 5.02 me da error, ¿alguien sabe que libreria debo utilizar?; tambien me marca "Too many types in declaration... como puedo resolver ese mensaje de error. Esperando respuesta, un cordial saludo y gracias de antemano.
21
« en: Viernes 6 de Febrero de 2004, 08:09 »
Es el borland C++ 5.02
22
« en: Miércoles 4 de Febrero de 2004, 06:26 »
Porcierto toy utilizando Borland C/C++ de compilador.... sorry
23
« en: Miércoles 4 de Febrero de 2004, 06:18 »
Wenas compañeros... hace muxo que no venia por estos rumbos pero ahora se me presenta un problema tengo muchos errores en el codigo que anexo... si alguien pudiera ayudarme se lo agradeceria muxo.... porcierto es una base de datos de un almacen imaginario #include"stdio.h" #include"conio.h" //Tan feo ke suena si o no;-) #include"alloc.h" //Tambien suena horrible #include"ctype.h" #include"time.h" #include"dos.h" #include"process.h" #include"string.h" #include"io.h" #include"dir.h" #define alo (struct nodo *)malloc(sizeof(struct nodo)); #define gopri(a,b,c) gotoxy(a,b); cprintf(c); #define color(a,b) textcolor(a);textbackground(b); typedef struct nodo{ char codigo[10];//codigo de articulo char nom_art[20];//nombre del articulo char desc[60];//descripcion el articulo char cant[40]; char valor[10];//precio unitario del articulo struct nodo *sig; struct nodo *ant; }; void cargar(); void guardar(); void agregar(); void buscar(); void inserta_reg(struct nodo *p); void elimina(struct nodo *p); void modifica(struct nodo *aux); void mostrar(); void impri_code_c(); void impri_code_n(); void menu(); void boseto(); void listar_act_nodo(); void verifica_cod(); void verifica_val(); void vent_menu(); void vent_busc(); void verif_guard(); char *minus(char nombre[]); struct nodo *localiza(char pnombre[]); void ayuda(); void sonido(int frecuencia,int tiempo); struct nodo *cab,*p,*n,*ap; int n_art=0,guardado=0; void main() { clrscr(); /*sonido(150,150); sonido(350,350); sonido(550,550); sonido(750,750);*/ sonido(750,750); sonido(550,550); sonido(350,350); sonido(150,150); cargar(); menu(); } /*-------------------------SONIDO MAQUILLAJE--------------------*/ void sonido(int frecuencia,int tiempo) { if (frecuencia > 0) { sound(frecuencia); delay(tiempo); nosound(); } } /*---------------------MENU PRINCIPAL DEL PROYECTO------------------*/ void menu() { int d,c,s,flar=25,flab=24,fder=17,fizq=16; d=1; while(d!=5) { time_t timer; struct tm *tblock; /* coge el tiempo actual */ timer = time(NULL); /* convierte el dato del tiempo a una estructura */ tblock = localtime(&timer); //-------------------------------- textmode(2); color(0,6);//7 clrscr(); color(6+BLINK,0); gotoxy(1,25); cprintf("PRESIONA FLECHA %c ¢ %c, Y PRESIONA ENTER PARA ESCOJER TU OPCION ->> ART_Pako 1.0",flab,flar); color(0,6); vent_menu(); d=1; c=1; do{ color(6,0); gotoxy(1,24); cprintf("HAY %d CLASES DE ARTICULOS EN LA LISTA. FECHA Y HORA -> %s",n_art,asctime(tblock)); gopri(27,2," MENU DE ENTRADA "); color(0,6); gopri(29,4," ADICIONAR "); gopri(29,6," MOSTRAR "); gopri(29,8," BUSCAR "); gopri(29,10," GUARDAR "); gopri(29,12," SALIR "); gopri(29,14," AYUDA "); if(d==0) d=6; if(d==7) d=1; color(6,0); switch(d) { case 1 :gopri(29,4," ADICIONAR "); break; case 2 :gopri(29,6," MOSTRAR "); break; case 3 :gopri(29,8," BUSCAR "); break; case 4 :gopri(29,10," GUARDAR "); break; case 5 :gopri(29,12," SALIR "); break; case 6 :gopri(29,14," AYUDA "); break; } c=getch(); if(c==72) d=d-1; if(c==80) d=d+1; }while(c!=13); switch(d) { case 1 :agregar(); break; case 2 :if(n_art>0) { p=cab; if(n_art<2) { clrscr(); color(6+BLINK,0); gotoxy(20,12); cprintf("PRESIONA FLECHA %c- ¢ -%c, Y PRESIONA",fder,fizq); gotoxy(20,13); cprintf("ENTER PARA ESCOJER TU OPCION ART_Pako 1.0"); gotoxy(20,14); cprintf("PRESIONA CUALQUIER TECLA PARA CONTINUAR"); getch(); } mostrar(); } else{ gopri(27,22," NO HAY DATOS QUE MOSTRAR "); sleep(2); } break; case 3 :if(n_art>0) { buscar(); } else{ gopri(27,22," NO HAY DATOS PARA BUSCAR "); sleep(2); } break; case 4 :guardar(); break; case 5 :verif_guard(); break; case 6 :ayuda(); break; } } } void vent_menu() { gopri(27,3,"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿"); gopri(27,4,"³ ³²²"); gopri(27,5,"³ ³²²±±"); gopri(27,6,"³ ³²²±±°°"); gopri(27,7,"³ ³²²±±°°"); gopri(27,8,"³ ³²²±±°°"); gopri(27,9,"³ ³²²±±°°"); gopri(27,10,"³ ³²²±±°°"); gopri(27,11,"³ ³²²±±°°"); gopri(27,12,"³ ³²²±±°°"); gopri(27,13,"³ ³²²±±°°"); gopri(27,14,"³ ³²²±±°°"); gopri(27,15,"³ ³²²±±°°"); gopri(27,16,"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ²²±±°°"); gopri(27,17," ²²²²²²²²²²²²²²²²²²²²²²±±°°"); gopri(27,18," ±±±±±±±±±±±±±±±±±±±±±±°°"); gopri(27,19," °°°°°°°°°°°°°°°°°°°°°°"); } /*-----------------------MENU DE BUSQUEDA-----------------------*/ void buscar() { int d,c,s,flar=25,flab=24; d=1; while(d!=3) { textmode(2); color(0,6);//7 clrscr(); color(6+BLINK,0); gotoxy(1,25); cprintf("PRESIONA FLECHA %c ¢ %c, Y PRESIONA ENTER PARA ESCOJER TU OPCION ->> ART_Pako 1.0",flab,flar); color(0,6); vent_busc(); d=1; c=1; do{ color(6,0); gopri(28,2," MENU DE BUSQUEDA "); color(0,6); gopri(30,4," POR CODIGO "); gopri(30,6," POR NOMBRE "); gopri(30,8," SALIR "); if(d==0) d=3; if(d==4) d=1; color(6,0); switch(d) { case 1 :gopri(30,4," POR CODIGO "); break; case 2 :gopri(30,6," POR NOMBRE "); break; case 3 :gopri(30,8," SALIR "); break; } c=getch(); if(c==72) d=d-1; if(c==80) d=d+1; }while(c!=13); switch(d) { case 1 :impri_code_c(); if(n_art<1) { gopri(12,22," SE ELIMINARON TODOS LOS DATOS "); sleep(2); flushall(); cab=p=ap=NULL; //guardar(); d=3; } break; case 2 :impri_code_n(); if(n_art<1) { gopri(12,22," SE ELIMINARON TODOS LOS DATOS "); sleep(2); flushall(); cab=p=ap=NULL; //guardar(); d=3; } break; } } } void vent_busc() { gopri(28,3,"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿"); gopri(28,4,"³ ³²²"); gopri(28,5,"³ ³²²±±"); gopri(28,6,"³ ³²²±±°°"); gopri(28,7,"³ ³²²±±°°"); gopri(28,8,"³ ³²²±±°°"); gopri(28,9,"³ ³²²±±°°"); gopri(28,10,"³ ³²²±±°°"); gopri(28,11,"³ ³²²±±°°"); gopri(28,12,"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ²²±±°°"); gopri(28,13," ²²²²²²²²²²²²²²²²²²²±±°°"); gopri(28,14," ±±±±±±±±±±±±±±±±±±±°°"); gopri(28,15," °°°°°°°°°°°°°°°°°°°"); } /*-----------IMPRIME EL ARTICULO BUSCADO POR MEDIO DEL CODIGO---------*/ void impri_code_c() { clrscr(); char code[10]; int jur=0; gotoxy(12,15);printf("Codigo a buscar: "); gets(code); p=cab; /*if(p!=NULL) { if(strcmp(code,p->codigo)==0) { jur=1; } if(jur!=1){ p=p->sig; }*/ while(p->sig!=cab && jur!=1) { if(strcmp(code,p->codigo)==0) { jur=1; break; } p=p->sig; } //} if(jur==1) { mostrar(); } if(jur!=1) { gotoxy(12,17);printf("EL CODIGO %s NO EXISTE INTENTA POR EL NOMBRE",code); sleep(2); } } /*---------------IMPRIME EL ARTICULO POR MEDIO DEL NOMBRE----------------*/ void impri_code_n() { clrscr(); struct nodo *aux; char code[10]; //int jur=0; gotoxy(12,15);printf("Nombre a buscar: "); gets(code); //----------------------------------- aux=localiza(code); if(aux){ p=aux; mostrar(); } else{ gotoxy(12,17);printf("EL NOMBRE %s NO EXISTE INTENTA POR EL CODIGO",code); sleep(2); } } /*-------------MUESTRA LOS DATOS EN LA LISTA------------------*/ void mostrar() { int d,c,s; char elim; d=1; while(d!=5) { flushall(); textmode(2); color(0,6);//7 if(n_art<=0) { clrscr(); gopri(25,12," SE ELIMINARON TODOS LOS DATOS "); sleep(2); cab=p=ap=NULL;//guardar(); break; } clrscr(); boseto(); listar_act_nodo(); color(6,0); gopri(10,2," MOSTRANDO ARTICULOS CON SUS OPCIONES CORRESPONDIENTES "); color(0,6); gopri(1,24,"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ"); gopri(2,25," SIGUIENTE ANTERIOR ELIMINAR MODIFICAR SALIR "); d=1; c=1; do{ //color(6+BLINK,0); //gopri(8,3," MENU DE BUSQUEDA "); color(0,6); gopri(6,25," SIGUIENTE "); gopri(20,25," ANTERIOR "); gopri(33,25," ELIMINAR "); gopri(46,25," MODIFICAR "); gopri(61,25," SALIR "); if(d==0) d=5; if(d==6) d=1; color(6,0); switch(d) { case 1 :gopri(6,25," SIGUIENTE "); break; case 2 :gopri(20,25," ANTERIOR "); break; case 3 :gopri(33,25," ELIMINAR "); break; case 4 :gopri(46,25," MODIFICAR "); break; case 5 :gopri(61,25," SALIR "); break; } c=getch(); if(c==75) d=d-1; if(c==77) d=d+1; }while(c!=13); switch(d) { case 1 :p=p->sig; boseto(); listar_act_nodo(); break; case 2 :p=p->ant; boseto(); listar_act_nodo(); break; case 3 : gotoxy(10,20); printf("Esta totalmente seguro de eliminar estos datos si(S), no(N):"); elim=tolower(getch()); if (elim=='s') { elimina(p); n_art--; guardado=1; if(n_art>0) { p=p->sig; } } break; case 4 : modifica(p); break; } } } /*-----------------IMPRIME SILOCITANDO LOS DATOS---------------------*/ void boseto() { clrscr(); gopri(2,3,"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿"); gopri(2,4,"³ Codigo: ³±±"); gopri(2,5,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±"); gopri(2,6,"³ Nombre: ³±±"); gopri(2,7,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±"); gopri(2,8,"³ Descripci¢n: ³±±"); gopri(2,9,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±"); gopri(2,10,"³ Cantidad: ³±±"); gopri(2,11,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±"); gopri(2,12,"³ Valor: ³±±"); gopri(2,13,"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±"); gopri(2,14," ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±"); } /*----------IMPRIME EL NODO ACTUAL TOMANDO COMO REFERENCIA A p -----------*/ void listar_act_nodo() { gotoxy(18,4);printf("%s",p->codigo); gotoxy(18,6);printf("%s",p->nom_art); gotoxy(18,8);printf("%s",p->desc); gotoxy(18,10);printf("%s",p->cant); gotoxy(18,12);printf("%s",p->valor); } /* -----------------ELIMINA UN REGISTRO DE LA LISTA---------------------- */ void elimina(struct nodo *p) { flushall(); //fflush(fp); struct nodo *q; q = p->ant; q->sig = p->sig; p->sig->ant = q; free(p); // p=q->sig; // if (!(cab)) // { // cab=q->sig; // } } /*-------------------PIDE LOS DATOS CORRESPONDIENTES---------------------*/ void agregar() { p=alo flushall(); //fflush(stdin); /* vac¡a el buffer del archivo stdin */ clrscr(); verifica_cod(); gotoxy(18,6);gets(p->nom_art); gotoxy(18,8);gets(p->desc); gotoxy(18,10);gets(p->cant);//verifica_cant(); verifica_val();//gotoxy(16,12);gets(p->valor); inserta_reg(p); } /* fin de la funcion */ /*---------VERIFICA SI HAY CARCTERES EN EL CODIGO DEL PRODUCTO-------*/ void verifica_cod() { int i,jur=0; char code[10]; struct nodo *aux; for(;;) { //jur=0; boseto(); gopri(27,2," REGISTRANDO ARTICULO "); gotoxy(18,4);gets(p->codigo);//Pide codigo for(i=0;i<strlen(p->codigo);i++)//Verifica hay caracteres en Codigo { if(p->codigo[i]>=48 && p->codigo[i]<=57) { jur++; } if((p->codigo[i]<48 || p->codigo[i]>57) && (p->codigo[i]!=164 || p->codigo[i]!=165)){//else{ gotoxy(9,20); printf("TU CODIGO TIENE EL CARACTER %c INTENTA DE NUEVO...",p->codigo[i]); sleep(2); jur=0; break; } } if(n_art>0) { aux=cab; strcpy(code,p->codigo); if(aux!=NULL) { if(strcmp(code,aux->codigo)==0) { jur=0; gotoxy(21,20);printf("EL CODIGO %s YA EXISTE INTENTA DE NUEVO",aux->codigo); sleep(2); } if(jur!=0){ aux=aux->sig; } while(aux!=cab && jur!=1) { if(strcmp(code,aux->codigo)==0) { jur=0; gotoxy(21,20);printf("EL CODIGO %s YA EXISTE INTENTA DE NUEVO",aux->codigo); sleep(2); break; } aux=aux->sig; } } } if (jur>0){ //si esto se cumple rompe el for(;;) break; } flushall(); }//fin for(;;) } /*---------VERIFICA SI HAY CARACTERES EN EL VALOR DEL PRODUCTO---------*/ void verifica_val() { int i,jur=0; for(;;) { boseto(); gopri(27,2," REGISTRANDO ARTICULO "); gotoxy(18,4);printf("%s",p->codigo); gotoxy(18,6);printf("%s",p->nom_art); gotoxy(18,8);printf("%s",p->desc); gotoxy(18,10);printf("%s",p->cant); gotoxy(18,12);gets(p->valor); for(i=0;i<strlen(p->valor);i++)//Verifica hay caracteres en Codigo { if((p->valor[i]>=48 && p->valor[i]<=57) || (p->valor[i]==46)) { jur++; } if((p->valor[i]<48 || p->valor[i]>57) && (p->valor[i]!=46) && (p->valor[i]!=164 || p->valor[i]!=165)){//else{ gotoxy(13,20); printf("DIGITASTE SIN QUERER EL CARACTER %c INTENTA DE NUEVO...",p->valor[i]); sleep(2); jur=0; break; } } if (jur>0){ //si esto se cumple rompe el for(;;) break; } flushall(); }//fin for(;;) } /*----------------INSERTA LOS DATOS DE FORMA ORDENADA------------------*/ void inserta_reg(struct nodo *p /* nuevo registro a insertar */) { fflush(stdin); struct nodo *aux; /* puntero auxiliar */ aux=cab; if (cab == NULL) /* insertar el primer registro de una lista */ { cab = p; cab->ant = cab; ap = p; ap->sig = cab; } else for (;;) { if (strcmp(p->codigo, aux->codigo) < 0) { if (aux == cab) /* insertar registro al principio de la lista */ { p->sig = aux; p->ant = ap; aux->ant = p; cab = p; ap->sig = p; break; } else { p->ant = aux->ant; /* insertar registros en el medio de la lista */ p->sig = aux; aux->ant->sig = p; aux->ant = p; break; } } else{ if (aux->sig == cab) /* insertar registros al final de la lista */ { aux->sig = p; p->sig = cab; cab->ant = p; p->ant = aux; ap = p; break; } } aux = aux->sig; } /* fin de for(;;) */ n_art++; guardado=1; } /* fin de la funci¢n */ /*-----------MODIFICA LOS TODOS LOS DATOS DEL NODO ACTUAL-------------*/ void modifica(struct nodo *aux) { struct nodo info; char op; flushall(); fflush(stdin);//o FLUSHALL() LIMPIA EL BUFFER clrscr(); boseto(); gopri(26,2," MODIFICANDO LOS DATOS "); gotoxy(18,4);gets(info.codigo); gotoxy(18,6);gets(info.nom_art); gotoxy(18,8);gets(info.desc); gotoxy(18,10);gets(info.cant); gotoxy(18,12);gets(info.valor); for (;;) { gotoxy(6,20); printf("Seguro que desea realizar los cambios s/n: "); op = tolower(getch()); if (op == 's') { strcpy(aux->codigo,info.codigo); strcpy(aux->nom_art,info.nom_art); strcpy(aux->desc,info.desc); strcpy(aux->cant,info.cant); strcpy(aux->valor,info.valor); guardado=1; break; }else if (op == 'n') break; } /* fin de for(;;) */ } /* fin de la funcion */ /*--------------------FUNCION DE CARGAR EL ARCHIVO---------------------*/ void cargar() { flushall(); FILE *fp; fflush(fp); cab = p = ap = NULL; fp = fopen("pro2002.txt","rb"); rewind(fp); //recorre el archivo y se devuelve al principio del archivo //if(n_art!=0){ n_art = 0; for(;;)//while(feof(fp)) { p = (struct nodo *) malloc (sizeof(struct nodo)); if (fread(p,sizeof(struct nodo),1,fp) != 1) break; //n_art++; inserta_reg(p); } /* termina for */ // } fclose(fp); if (n_art == 0) { cab = p = ap = NULL; } guardado=0; } /*-----------------FUNCION DE GUARDAR EN EL ARCHIVO---------------------*/ void guardar() { FILE *fp; int tam; tam = sizeof(struct nodo); fp = fopen("pro2002.txt","wb"); p = cab; if(n_art<=0) { remove("pro2002.txt"); } else{ for (;;) { fwrite(p,sizeof(struct nodo),1,fp); p = p->sig; if (p == cab) break; } } fclose(fp); guardado=0; } /*----------BANDERA QUE VERIFICA SI SE HA MODIFICADO LOS DATOS-----------*/ void verif_guard() { clrscr(); char res; if(n_art>0) { if(guardado==1) { for(;;) { gopri(10,12," HAS MODIFICADO ALGUN DATO EN EL ARCHIVO DESEAS GURADAR [S/N] "); res=tolower(getch()); if(res=='s') { guardar(); sonido(150,150); sonido(350,350); sonido(550,550); sonido(750,750); break; } if(res=='n') { break; } } } } else{ if(n_art<=0) { remove("pro2002.txt"); } } clrscr(); gopri(29,12," QUE TENGA UN BUEN DIA "); sleep(2); clrscr(); gopri(68,25," By Dare... "); sleep(1); } /*-------------ENCUENTRA EN NOMBRE SI EXISTE O NO----------------------*/ struct nodo *localiza(char pnombre[])//busca si esta el nombre en la lista... { struct nodo *aux; register char temp2[50]; char temp1[50]; aux = cab; strcpy(temp1,minus(pnombre)); do { strcpy(temp2,minus(aux->nom_art)); if (!strcmp(temp1,temp2)) return (aux); else aux = aux->sig; } while (aux != cab); return (aux = NULL); } /*-------------------PASA DE MAYUSCULAS A MINUSCULAS------------------*/ char *minus(char nombre[]) { register int i; register char *temp; for (i = 0; i <= strlen(nombre) + 1; i++) temp[i] = tolower(nombre[i]); return(temp); } /*------------MUESTRA UN MARCO TEORICO O AYUDA PARA EL USUARIO-----------*/ void ayuda() { clrscr(); puts("ADICIONAR:"); puts("Codigo = Es el numero de registro que tiene el articulo, solamente puede ser"); puts(" numerico y unico en la lista."); puts("Nombre = Es el nombre principal del producto."); puts("Descripcion = Es la referencia o descripcion del producto o articulo"); puts("Cantidad = Se puede tomar como valor numerico o alfa-numerico, por ejemplo:"); puts(" 10.000 toneladas, 10.000 pacas, 10.000 bultos, etc."); puts("Valor= Es el valor unitario del articulo dependiendo de la cantidad como se tome\n"); puts("MOSTRAR:"); puts("Tiene un submenu que le permite al usuario hacer modificaciones, eliminar,"); puts("avanzar hacia adelante o atras, como desee el usuario.\n"); puts("BUSCAR:"); puts("Tiene la flexibilidad de buscar el articulo por el codigo de registro o por el"); puts("nombre, no importa si el nombre esta en minusculas o mayusculas de todos modos"); puts("lo encuentra.\n"); puts("GUARDAR:"); puts("Almacena la imformacion digitada en un archivo.\n"); puts("SALIR:"); puts("Sale del programa y a su vez verifica si el usuario guardo las modificaciones."); getch(); }
De antemano gracias
24
« en: Miércoles 4 de Febrero de 2004, 05:47 »
Weno no comprendí nada sobre lo que hablaron.... y ya entrados en el tema ¿me podrían sacar de dudas? tengo el siguiente codigo... #include <stdio.h> #include <conio.h> main() { char nomfich[21]; int n; FILE *salida; printf("Nombre del fichero a crear:"); scanf("%20s", nomfich); salida= fopen(nomfich, "wb"); do { printf("Introduzca un numero:"); scanf("%d", &n); if(n) fwrite (&n, 2, 1, salida); } while (n); fclose(salida); } que necesito para que me pueda crear el archivo ???? (es un archivo que me encontré de ejemplo rondandola en inter y no entiendo como hacerlo funcionar)
25
« en: Miércoles 4 de Febrero de 2004, 05:04 »
Según mi profe de lenguajes de programación... NO se pueden introducir funciones dentro de otras esto es posible ?
|
|
|