Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

ayuda con este programa

mart8903

Bovino adolescente
Desde
10 Sep 2007
Mensajes
71
alguien me puede ayudar con este programa se k para algunos es faicl pero a ver si me pueden echar la mano :S es echo en turbo c gracias de antemano :)


//programa de una tienda//
#include <stdio.h>
#include <string.h>
#include <conio.h>
void main()
{
int b[5],d[5],e[5],p,r,u,s,i=0;
int opc=0,t,k,c[5],m=0,l=0,g;
char h,q,z,res,w;
void llena_articulos();
{
res = ;
printf("No. de articulos: ");
scanf("%d", &b);
printf("Nombre: ");
scanf("%d", &c);
printf("Cantidad: ");
scanf("%d", &d);
printf("precio unitario: ");
scanf("%d", &e);
}
return 0 ;
void ventas ()
{
printf("No. de articulo");
scanf("%d",&p);
for(i=0;i<m;i++)
{
res=w;
q=c;
t=e;
if(b==p)
{
printf("%d",c);
printf("\nCuantos desea lcomprar?");
scanf("%d",&r);
if(r<=d);
{
s=e*r;
printf("El total a pagar es %d" ,s);
printf("\nDesea comprar el articulo [%d],1/o?\n",c");
scanf("%d",&u);
if(u)==1)
{
printf("Producto vendido gracias por su compra");
d=d-r;
}
}
else
{
printf("\nLo sentimos la compra no puede ser realizada ");
}
}
}
return 0;
{
mostrar ()
{
printf("Lista de Todos los Articulos en Existencia \n");
for(i=0;i<m;i++)
{
printf("%d", b);
printf("%d", c);
printf("%d", d);
printf("%d\n", e);
}
return 0;
}
void main()
{
printf("BIENVENIDOS AL MINISUPER jr");
printf("\nCuantos articulos seran:\n");
scanf("%d",& m);
while(g<1)
{
printf("\nQue es lo que desea hacer?\n");
printf("Oprima 1 para llenar los articulos\n");
printf("Oprima 2 para vender un articulos\n");
printf("Oprima 3 para consultar los articulos\n");
printf("Oprima 4 si desea salir\n");
scanf("%d",& opc);
if(opc==4)
printf("GRACIAS POR SU PREFERENCIA, REGRESE PRONTO...");
switch(opc)
{
case 1: llena_articulos();
break;
case 2: ventas();
break;
case 3: mostrar();
break;
case 4: g=1;
break;
}
}
}
 
Esta mal escrito mi compa, todo esta por ningun lugar, checate bien la sintaxis del c y date una vuelta por aca.

Tienes demas unos puntos y comas, te falta especificar en alguna parte que es una declaracion de una funcion osea almenos ponerle void, por alli unos return que no estan dentro de la fucion, para la otra usa una indentacion, te servira mucho para ver donde empieza y donde termina las funciones y programas.
Código:
//programa de una tienda//
#include <stdio.h>
#include <string.h>
#include <conio.h>
int b[5],d[5],e[5],p,r,u,s,i=0;
int opc=0,t,k,c[5],m=0,l=0,g;
char h,q,z,res,w;
void llena_articulos(){
    res = ;
    printf("No. de articulos: ");
    scanf("%d", &b[i]);
    printf("Nombre: ");
    scanf("%d", &c[i]);
    printf("Cantidad: ");
  scanf("%d", &d[i]);
  printf("precio unitario: ");
  scanf("%d", &e[i]);
  return 0 ;
}

void ventas (){
  printf("No. de articulo");
  scanf("%d",&p);
  for(i=0;i<m;i++){
    res=w;
    q=c[i];
    t=e[i];
    if(b[i]==p){
      printf("%d",c[i]);
      printf("\nCuantos desea lcomprar?");
      scanf("%d",&r);
      if(r<=d[i]){
        s=e[i]*r;
        printf("El total a pagar es %d" ,s);
        printf("\nDesea comprar el articulo [%d],1/o?\n",c[i]");
        scanf("%d",&u);
        if(u)==1){
          printf("Producto vendido gracias por su compra");
          d[i]=d[i]-r;
        }
      }else{
        printf("\nLo sentimos la compra no puede ser realizada ");
      }
    }
  }
  return 0;
}
void mostrar (){
  printf("Lista de Todos los Articulos en Existencia \n");
  for(i=0;i<m;i++){
    printf("%d", b[i]);
    printf("%d", c[i]);
    printf("%d", d[i]);
    printf("%d\n", e[i]);
  }
  return 0;
}
void main(){
    printf("BIENVENIDOS AL MINISUPER jr");
    printf("\nCuantos articulos seran:\n");
    scanf("%d",& m);
    while(g<1){
      printf("\nQue es lo que desea hacer?\n");
      printf("Oprima 1 para llenar los articulos\n");
      printf("Oprima 2 para vender un articulos\n");
      printf("Oprima 3 para consultar los articulos\n");
      printf("Oprima 4 si desea salir\n");
      scanf("%d",& opc);
      if(opc==4)
        printf("GRACIAS POR SU PREFERENCIA, REGRESE PRONTO...");
      switch(opc){
        case 1: llena_articulos();
        break;
        case 2: ventas();
        break;
        case 3: mostrar();
        break;
        case 4: g=1;
        break;
      }
  }
}
solo lo indente y elimine algunos corchetes y puntos y comas que no ivan, movi uno que otro return, y borre el main que tenias demas, no lo he probado pero es para que te des una idea de como es mas facil debugearlo.

(Por dios porque estos maestros no les enseñan en Pascal asi se estructuran porque se estructuran.)
 
bien, pero puede mejorar.

Ok. amigo buen trabajo, pero sabrás realmente lo dificil no es aprender a programar, es mas complejo tener buenos habitos en la codificacion. Mira lo siguiente:

-modularizar el codigo (que el main solo llame funciones, pero que haga lo mas mínimo)
-Parametrizar bien el sistema (garantizar que las estructuras que manejan los datos se puedan mantener integras todo el tiempo)
-Identificadores que si identifiquen (asingnar nombres claros y descriptivos, no tienen que ser cortos, pero si especificos de lo que van a hacer).
-Comentar cuando se necesite (comentar no es para cuando halla codigo que despues no quieras ejecutar, sino que cuando el algoritmo es algo complejo des una explicada sobre el, no importa que tan larto sea el comentario)
-Sangrar correctamente y estandar durante toda la aplicacion.

son solo algunas de las cosas que mas le falta incluso a los ingenieros ya egresados y que vale la pena vallas contemplando.

El sisguiente codigo es un archivo que pertenece un proyecto mas grande, pero debido a sus buenos habidos de codificacion es muy claro y facil de entender. Te recomiendo lo leas y lo compiles. Continua con tu buen trabajo:

Código:
#include <stdio.h>
#include <stdlib.h>

//Estructura de el registro
typedef struct registro{
    char nombre[40];
    char direccion[100];
    char email[70];
    char telefono[20];
    } registroDeAgenda;

//Archivo de resguardo
FILE *fd_resguardo;

//Prototipado de funciones
void muestraRegistro(registroDeAgenda registroAMostrar);
void capturaRegistro(registroDeAgenda *registroACapturar);
void guardaRegistroEnArchivo(registroDeAgenda registroAGuardar);


/*               Funcion Main             */

int main(void){
    registroDeAgenda nuevoRegistro;
    
    capturaRegistro(&nuevoRegistro);
    muestraRegistro(nuevoRegistro);
    guardaRegistroEnArchivo(nuevoRegistro);

    return 1;
}

/*     Funciones de manipulacion de registros   */

void muestraRegistro(registroDeAgenda registroAMostrar){
    printf("\n:: I m p r e s i o n ::\n\n");
    printf("Nombre: %s\n", registroAMostrar.nombre);
    printf("Direccion: %s\n", registroAMostrar.direccion);
    printf("E-mail: %s\n", registroAMostrar.email);
    printf("Telefono: %s\n", registroAMostrar.telefono);
}

void capturaRegistro(registroDeAgenda *registroACapturar){
    printf("Nombre: ");
    gets(registroACapturar->nombre);
    printf("Dirección: ");
    gets(registroACapturar->direccion);
    printf("E-mail: ");
    gets(registroACapturar->email);
    printf("Telefono: ");
    gets(registroACapturar->telefono);
}

void guardaRegistroEnArchivo(registroDeAgenda registroAGuardar){
    fd_resguardo = fopen("registro.dat", "a+");
    
    if (fd_resguardo == NULL){
        printf("Error al manipular el archivo: registro.dat");
        exit(1);
    }
    
    /*
    Esta funcion trata como un puntero el registro que almacenara, para tal usa la funcion fwrite solo que para engañarlo se pasa con el & su direccion y luego en el tercer argumento se le dice que lea 1 registro, aunque en verdad es el unico que existe. ñ_ñ
    */
    
    fwrite(&registroAGuardar, sizeof(struct registro), 1, fd_resguardo);
    fclose(fd_resguardo);
}
 
:O o gracias brother por tu ayuda :) me servira de mucho gracias neta :)
 
Volver
Arriba