INTRODUCCIÓN A LA ESTRUCTURA PROGRAMADA-------RETO INSIDE------

Iniciado por eseleon, 7 Diciembre 2012, 00:00 AM

0 Miembros y 1 Visitante están viendo este tema.

eseleon

sinceramente no sé  por donde empezar, es complicadisimo. Tengo que utilizar punteros, arrays, cadenas, funciones basicas, I/O y estructura básica . Llevo 3 semanas y no sé por donde cogerlo, haber si alguien se interesa y me echa una mano. Gracias de todas maneras saludos ;

AQUI ESTA EL TRABAJO  :-(
Se desea realizar un programa que controle el uso de diferentes elementos químicos puros disponibles en un laboratorio de investigación. Para ello se guarda en un array unidimensional la siguiente información sobre 21 elementos disponibles para su uso por los distintos investigadores:

Símbolo del elemento químico
Nombre y apellidos de la persona que pide el material
Cantidad del elemento que se pide (gr)
Cantidad de elemento que queda disponible (gr)
Precio total previsto (€)

La información de este array se guarda usando los símbolos de los elementos en orden alfabético.

Usaremos otro array unidimensional para guardar la siguiente información sobre los 9 tipos de elementos existentes (gases nobles, alcalinos, alcalino_térreos, térreos, carbonoideos, nitrogenoideos, anfígenos, halógenos y tierras raras):

Tipo del elemento
Elementos disponibles (sus símbolos)
Coste (Euros/gr)
Gasto total realizado de elementos de ese tipo (Euros)
Informática y Diseño Gráfico, curso académico 2011/2012, 2ª convocatoria .Los datos de tipos de elementos y elementos disponibles que aparecen en la siguiente tabla deben ser incorporados en la etapa de programación:
-Tipo Coste
(€/gr)

-Disponibilidad
inicial (gr)

-Elementos disponibles

Alcalinos 15 180 Li, Na, K
Alcalino_térreos 90 100 Mg, Ca
Térreos 78 140 B, Al
Carbonoideos 60 160 C
Nitrogenoideos 65 160 N, As, Sb
Anfígenos 40 190 O, S
Halógenos 40 200 F, Cl, Br
Tierras raras 125 125 La, Ac
Gases nobles 100 140 He, Ne, Ar

Al principio, el programa pedirá el coste y la disponibilidad de cada tipo de
elemento (estos datos se deberán rellenar por teclado a partir de lo que se muestra en la tabla anterior).

A continuación seguirá ejecutándose bajo el control del siguiente MENÚ:

1. Petición de un elemento
2. Devolución de un elemento
3. Cambio en el precio de un tipo de elemento
4. Visualizar la información global de tipos y elementos
5. Salir del programa

Opción 1:
Pedirá información del elemento que se pide (SIMBOLO del elemento,
NOMBRE, APELLIDO1 y APELLIDO2 del peticionario, CANTIDAD de
elemento que se solicita) y comprobará que existe en la base de datos y que además está disponible en la cantidad solicitada:

Si no existe en la base de datos, alertará al usuario sobre este hecho y
le permitirá solicitar un nuevo elemento.

Si no está disponible en la cantidad solicitada, alertará al usuario de
la cantidad que queda y le permitirá actualizar la cantidad
solicitada.

Si está disponible, partiendo de los datos introducidos, el programa
calculará y visualizará el precio total previsto para esta operación,
luego lo guardará en el array que guarda los tipos de elementos
(apartado GASTOS). Posteriormente, actualizará la disponibilidad
del elemento.

Opción 2:
Pedirá el símbolo del elemento, el nombre y apellidos del solicitante y si
devuelve alguna cantidad del elemento que retiró (en gr). Con esa información, borrará del array de datos el nombre y apellidos del que pidió el material y actualizará el dato de cantidad de elemento disponible.


Opción 3:
Pedirá el tipo de elemento (de entre la lista de los nueve existentes) y la
nueva tarifa. Luego esa tarifa se actualizará para ser tenida en cuenta en
posteriores solicitudes.

Opción 4: Visualizará la información general de todos los tipos de elementos pedidos, así como la que corresponde, dentro de cada tipo, a todos los elementos que se encuentran bajo préstamo en el formato que considere más conciso y elegante (aquí se valorará también el formato).

Opción 5:Ejecución del programa en cuestión

twins

Amigo el solo hecho de hacer un arreglo de tipo cadena unidimencional ya es vastante complejo por ejemplo para asignar directamente los datos seria asi

char *var[50];
var[0]="Casa";
var[1]="Perro"
//pero para ingresar tu los datos por teclado por ejemplo asi
char *var[50];
scanf("%s",var[0]);
printf("%s",var[0]);
//no es posible tiene que ser un arreglo de tipo var[][]


twins

aaaa pero ahora que lo pienso se puede usar una estructura  ;)

twins

Hola bueno aqui una pequeña introduccion ojala te sirva.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct{
char Simbolo[30];
    char Nombre_y_apellidos[30];
    int Cantidad_pide;
    int Cantidad_disponible;
    int Precio_total;
}cantidad;
void llena(cantidad total[],int *cont){
*cont=*cont+1;
printf("ingrese simbolo\n");
fflush(stdin);
gets(total[*cont].Simbolo);
printf("ingrese nombre y apellido\n");
fflush(stdin);
gets(total[*cont].Nombre_y_apellidos);
printf("ingrese cantidad a pedir\n");
scanf("%i",&total[*cont].Cantidad_pide);
printf("ingrese precio\n");
scanf("%i",&total[*cont].Precio_total);
}
void imprime(cantidad total[],int *cont){
int i;
for(i=0;i<*cont;i++){
printf("simbolo\n");
    puts(total[i].Simbolo);
    printf("nombre y apellido\n");
    puts(total[i].Nombre_y_apellidos);
    printf("cantidad a pedir\n");
    printf("%i\n",total[i].Cantidad_pide);
    printf("precio total\n");
    printf("%i\n",total[i].Precio_total);
}
}
int menu(){
int opc;
printf("Menu\n1 llena elementos\n2 imprime elementos\n3 salir\n ingrese opcion\n");
scanf("%i",&opc);
return(opc);
}
int main(void){
int opc,contador=-1;
cantidad total[3];
do{
opc=menu();
switch(opc){
case 1:
llena(total,&contador);
       break;
        case 2:
imprime(total,&contador);
break;
case 3:
return(0);
                default:
printf("error la opcion no esta disponible\n");
}

}while(opc!=0);
return(0);
}