Esta codificación utilizada da respuesta al problema del inventario, claro esta que tiene comentarios de diferentes opciones que verifique para dar con el resultado, el programa se puede mejorar, solo se requiere agregarle detalles propios de cada programador pero da solución a todo lo exigido en la pregunta.
/*programa problema 1 Inventario de una empresa*/
#include<iostream>//Biblioteca estándar de entrada y salida, para utilizar cout y cin
#include<stdlib.h>/*Biblioteca para utilizar system("cls") limpieza de pantalla y system("pause") que detiene la ejecución del programa hasta que el usuario digite una tecla */
#include <conio.h> //
#include <windows.h>// para utilizar la funcion sleep y copy
#include <string.h>// libreria para utilizar la funcion que compara dos cademas
using namespace std;/*Indica al compilador que utilizará el espacio de nombres
estandar para no incluirlos cada vez que se utilice cout y cin */
//Declaro arreglos globales
char articulo[30][100];
int cantidad[30];
int n;
//Declaracioon de las funciones
void registrararticulocantidad();
void listardatos();
void buscar();
//void mostrarexistenciascero();
int main()//Función principal
{ int opc;//Declaración de variable de tipo entero
do{ system("cls");
cout<<"\tUNIVERSIDAD ABIERTA Y A DISTANCIA"<<endl;
cout<<" Estudiante Jairo Alberto Guerrero Vargas"<<endl<<endl;
cout<<"\t Inventario empresa"<<endl<<endl<<endl;
cout<<"MENU"<<endl<<endl;
cout<<" 1. Registrar articulos. "<<endl;
cout<<" 2. Ver lista de articulos. "<<endl;
cout<<" 3. Consultar articulos en 0 de existencias. "<<endl;
cout<<" 4. Salir. "<<endl;
cout<<endl<<endl<<" Por favor eleja una de las opciones: "<<endl<<endl;
cin>>opc;
switch(opc)
{
case 1: system("cls");
cout <<endl<<"1. Registrar articulo " <<endl;
registrararticulocantidad();
system("pause");//Detiene la ejecución del programa hasta que el usuario digite una tecla
break;
case 2: system("cls");
cout<<endl<<"2. Ver lista de articulos. "<<endl;
listardatos();
system("pause");//Detiene la ejecución del programa hasta que el usuario digite una tecla
break;
case 3: system("cls");
cout<<endl<<" 3. Consultar articulos en 0 de existencias. "<<endl;
//mostrarexistenciascero();
buscar();
//cout<<"\n no hay exitencias en cero "<<endl<<endl;
system("pause");//Detiene la ejecución del programa hasta que el usuario digite una tecla
break;
default:
break;
}
}
while(opc!=4);
cout<<endl<<endl;
system("pause");//Detiene la ejecución del programa hasta que el usuario digite una tecla
return 0;
}
/*Funciones*/
void registrararticulocantidad()//Funcion que permite registrar los articulos y su cantidad
{ int i;
int j;
int rta;
system("cls");
//Inicializo los arreglos
cout<<" Por favor escriba la cantidad de articulos que desea ingresar "<<endl<<endl;
cin>>n;
for(i=1;i<n+1;i++)
{
cantidad[i]=0;
for(j=1;j<n+1;j++)
strcpy(articulo[i]," ");
}
cout<<endl<<" Registrar articulos "<<endl;
for(i=1;i<n+1;i++)
{
cout<<endl<<" digite el articulo, presione enter "<<endl<<endl;
cout<<" Articulo "<<i<<" ";
cin>>articulo[i];
cout<<endl<<" digite la cantidad de este articulo "<<endl<<endl;
cout<<" cantidad "<<i<<" ";
cin>>cantidad[i];
rta=strcmp(articulo[i-1],articulo[i]);//compara las cadenas
if(rta==0)
{cout<<"\n Articulo ya existe, por favor ingrese otro diferente \n";
for(i=i;i<n+1;i++)
{
cout<<" Articulo "<<i<<" ";
cin>>articulo[i];
cout<<endl<<" digite la cantidad de este articulo "<<endl<<endl;
cout<<" cantidad "<<i<<" ";
cin>>cantidad[i];
cout<<endl;
}
}
}
system("pause");
}
void listardatos()//Funcion que muestra los datos ingresados
{ int i;
system("cls");
cout<<endl<<" Listar los datos ingresados "<<endl<<endl;
for(i=1;i<n+1;i++)
{
cout<<" articulo "<<i<<" "<<articulo[i]<<endl<<" cantidad "<<i<<" "<<cantidad[i]<<endl;
}
}
void buscar( )
{ int i;
//char j='n';
int acum=0;
int valor=0; // Variable para el ciclo
for (i=1;i<n+1;i++)
{
if (valor==cantidad[i])// condicional para encontrar el elemento
{cout<<" los articulos con exitencias en cero son articulo "<<i<<" "<<articulo[i];
cout<<" cantidad "<<i;
cout<<endl;
}
}
for (i=1;i<n+1;i++)
{
if (valor!=cantidad[i])// condicional para encontrar el elemento
{
// j='s';
acum++;
}
}
if(acum==n)cout<<"\n no hay existencias en cerooooo "<<endl<<endl;
//if(j=='s')cout<<"\n no hay exitencias en cero "<<endl<<endl;
}