Vous êtes sur la page 1sur 22

Facultad de Ingeniera

Programa de Ingeniera de Sistemas Programacin I

Hacer hoja de presentacion


Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

CASO DE ESTUDIO: PROYECTO FINAL


SPRINT 1
1. ENUNCIADO
El programa deber definir una estructura o registro (struct articulos) con los
siguientes campos:
1. Cdigo, (int codigo)
2. Nombre, (string nombre)
3. Tipo producto , (char tipo ) (aseo,alimento,bebida,ropa)
4. Fecha vencimiento (int dia,int mes,int anio)
5. Marca(int marca)
6. Presentacin (int presentacin)

El arreglo artculos [100] almacenar los datos de mximo 100 articulos Utilizar el
siguiente men principal:
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

2. ESTRUCTURAS DE DATOS
Tipo de dato definido por el usuario (programador)
struct articulos
{

int codigo;
string nombre;
int marca;
int dia,mes,anio;
string presentacion;

char tipo;

} articulo[100];

struct Inventario
{

int codigo;
int cantidad;
int precio;

} producto[100];
//Definiendo el arreglo del tipo de articulos y productos : estructura
articulos

struct ingresos{

int numero;

int total;

}Ventas[100];
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

3. REQUERIMIENTOS FUNCIONALES

cout<<"\n\nQue Desea Realizar?"<<endl;

cout<<"1. Crear articulo."<<endl;


cout<<"2. eliminar articulo."<<endl;
cout<<"3. actualizar articulo."<<endl;
cout<<"4. vender articulo"<<endl;
cout<<"5. mostrar."<<endl;
cout<<"6. Buscar."<<endl;
cout<<"7. Guardar en archivo"<<endl;
cout<<"8. Mostrar reporte general"<<endl;
cout<<"\n\nIngrese Su Respuesta: "<<endl

RF1: se solicita ingresar los datos del articulo si se dese agregar un artculo al
inventario
Para la opcin 1. , el programa deber crear un artculo dentro del vector con cierto
tipo de caractersticas

void llenar(int a)
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

RF2: Se pedir borrar un artculo existente o en el inventario


Para la opcin 2. El programa deber eliminar uno de los artculos

void borrar(int a)

RF3.Se pedir actualizar o modificar alguna de las caractersticas del articulo


seleccionado
Para la opcin 3. El programa debera modificar y actualizar uno de los artculos
antes creados y sus respectivas caractersticas

for (int k=1; k<i; k++)

{if (articulo[k].codigo=b)

{llenar(k); }

else

{cout<<"producto desconocido"<<endl;

RF4.Para la opcin 4 el programa deber vender de alguno de los articulos


guardados, los cuales afectaran directamente la variable cantidad de la estructura

void Vender(int C);


Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

RF5:

Para la opcin 5 el programa deber mostrar en pantalla los documentos hasta el


momento creado, modificado o eliminado.

for (int j=0; j<=i; j++)


{
if(articulo[j].codigo!=0){
DATOS DE LOS ARTICULOS
}}

RF6.
Para la opcin 6 el programa deber buscar alguna de los artculos anteriormente
guardados con un mnimo de 3 criterios de bsqueda si estos 3 encajan
perfectamente con alguno de los artculos se mostrara en pantalla.
cout<<"Digite el criterio de busqueda"<<endl;

cout<<"1. Nombre."<<endl;
cout<<"2. Codigo."<<endl;
cout<<"3. Marca."<<endl;
cin>>t;

switch(t)
{ EJECUTARAN DEPENDIENDO DE LA OPCION
}
RF8: Se mostraran los datos de los artculos antes creados y modificados
Para la opcin 8 el programa mostrar el reporte de ventas el cual mostrra los artculos
que se han vendido la cantidad y el total de venta
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

cout<<"Reporte general de ventas"<<endl;

for (int y=0;y<=i;y++){

cout<<"Articulo #"<<y<<endl;

if (Ventas[y].total!=0){

cout<<"El nombre es:"<<articulo[y].nombre<<endl;

cout<<"La cantidad vendidad es: "<<Ventas[y].numero<<endl;

cout<<"El ingresos es:"<<Ventas[y].total<<endl;

}}

4. REQUERIMIENTOS INSTRUCCIONALES

RI1: Entrar los datos al arreglo


void llenar(int a)
{
cout<<"---------------------------------------------"<<endl;
cout<<"Digite el nombre del articulo #"<<i<<endl;
cin>> articulo[a].nombre;
cout<<endl;
cout<<"---------------------------------------------"<<endl;
cout<<"Digite el codigo del articulo"<<endl;
cin>>articulo[a].codigo;
cout<<endl;

cout<<"---------------------------------------------"<<endl;

cout<<"\n\ntipo de articulo?"<<endl;
cout<<"\n\nA. Aseo."<<endl;
cout<<"B. Alimento."<<endl;
cout<<"C. Bebida."<<endl;
cout<<"D. Ropa."<<endl;

cout<<"\n\nIngrese Su Respuesta: ";


Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

cin>>articulo[a].tipo;

switch (articulo[a].tipo)
{

case 'A':
cout<<"aseo"<<endl;
break;
case 'B':
cout<<"Bebida"<<endl;
break;
case 'C':
cout<<"Alimentos"<<endl;
break;
case 'D':
cout<<"Ropa"<<endl;
break;

}
cout<<"\n\nIngrese Fecha de vencimiento "<<endl;
cout<<"\nDia: ";
cin>>articulo[a].dia;
cout<<"\nMes: ";
cin>>articulo[a].mes;
cout<<"\nAnio: ";
cin>>articulo[a].anio;

RI2: eliminar un articulo


void borrar(int a){

for (int k=1; k<i; k++)


{

if (articulo[k].codigo=a)
{

articulo[k].nombre ="";
articulo[k].codigo=0;
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

articulo[k].marca="";
articulo[k].dia=0;
articulo[k].mes=0;
articulo[k].anio=0;
articulo[k].tipo=0;
producto[k].precio=0;
producto[k].cantidad=0;

}
else
{
cout<<"producto desconocido"<<endl;
}

RI3: actualizar un elemento


int b;
cout<<"Digite el codigo del articulo que desea actualizar"<<endl;
cin>>b;
for (int k=1; k<i; k++)
{

if (articulo[k].codigo=b)
{

llenar(k);

}
else
{
cout<<"producto desconocido"<<endl;
}
}

RI4.vendera uno de los artculos existentes afectando la cantidad en inventario


void Vender(int C)
{
int N,w;
for (int z=0; z<=i; z++)
{

if (z==C)
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

{
cout<<"Digite la cantidad"<<endl;
cin>>N;
if (producto[z].cantidad>N)
{
producto[z].cantidad= producto[z].cantidad-N;
Ventas[z].numero=N;
w=N*producto[z].precio;
Ventas[z].total=w;

}
else
{
cout<<"No hay suficientes articulos"<<endl;
}

}
}

RI5: mostrar los articulos actualmente existentes

for (int j=1; j<i; j++)


{

cout<<"---------------------------------------" <<endl;
cout<<"Articulo #"<<j<<endl;
cout<<"---------------------------------------" <<endl;
cout<<"El nombre es"<<articulo[j].nombre<<endl;
cout<<"El codigo es"<<articulo[j].codigo<<endl;
cout<<"LA fecha de vencimiento
es:"<<articulo[j].dia<<"/"<<articulo[j].mes<<"/"<<articulo[j].anio<<endl;
cout<<"1. aseo."<<endl;
cout<<"2. alimento."<<endl;
cout<<"3. bebida."<<endl;
cout<<"4. ropa."<<endl;
cout<<"El tipo de producto es:"<<articulo[j].tipo<<endl;
}
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

RI6. Buscar algn artculo almacenado con un mnimo de 3 criterios de bsqueda

cout<<"Digite el criterio de busqueda"<<endl;

cout<<"1. Nombre."<<endl;
cout<<"2. Codigo."<<endl;
cout<<"3. Marca."<<endl;
cin>>t;

switch(t)
{
case 1:

cout<<"Digite el Nombre del articulo."<<endl;


cin>>N;
for (int j=0; j<=i; j++)
{

if ( articulo[j].nombre==N )
{

cout<<"---------------------------------------" <<endl;
cout<<"Articulo #"<<j<<endl;
cout<<"---------------------------------------" <<endl;
cout<<"El nombre es:"<<articulo[j].nombre<<endl;
cout<<"El codigo es:"<<articulo[j].codigo<<endl;
cout<<"La marca es:"<<articulo[j].marca<<endl;
cout<<"LA fecha de vencimiento
es:"<<articulo[j].dia<<"/"<<articulo[j].mes<<"/"<<articulo[j].anio<<endl;
cout<<"EL precio es :"<<producto[j].precio<<endl;
cout<<"LA cantidad en inventario es:"<<producto[j].cantidad<<endl;
cout<<"1. aseo."<<endl;
cout<<"2. alimento."<<endl;
cout<<"3. bebida."<<endl;
cout<<"4. ropa."<<endl;
cout<<"El tipo de producto es:"<<articulo[j].tipo<<endl;
cout<<"-----------------------------------------"<<endl;

}
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

break;

case 2:

cout<<"Digite el Codigo del articulo."<<endl;


cin>>c;
for (int j=0; j<=i; j++)
{

if ( articulo[j].codigo==c )
{

cout<<"---------------------------------------" <<endl;
cout<<"Articulo #"<<j<<endl;
cout<<"---------------------------------------" <<endl;
cout<<"El nombre es:"<<articulo[j].nombre<<endl;
cout<<"El codigo es:"<<articulo[j].codigo<<endl;
cout<<"La marca es:"<<articulo[j].marca<<endl;
cout<<"LA fecha de vencimiento
es:"<<articulo[j].dia<<"/"<<articulo[j].mes<<"/"<<articulo[j].anio<<endl;
cout<<"EL precio es :"<<producto[j].precio<<endl;
cout<<"LA cantidad en inventario es:"<<producto[j].cantidad<<endl;
cout<<"1. aseo."<<endl;
cout<<"2. alimento."<<endl;
cout<<"3. bebida."<<endl;
cout<<"4. ropa."<<endl;
cout<<"El tipo de producto es:"<<articulo[j].tipo<<endl;
cout<<"-----------------------------------------"<<endl;

}
break;
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

case 3:
cout<<"Digite la Marca del articulo."<<endl;
cin>>M;
for (int j=0; j<=i; j++)
{

if ( articulo[j].marca==M )
{

cout<<"---------------------------------------" <<endl;
cout<<"Articulo #"<<j<<endl;
cout<<"---------------------------------------" <<endl;
cout<<"El nombre es:"<<articulo[j].nombre<<endl;
cout<<"El codigo es:"<<articulo[j].codigo<<endl;
cout<<"La marca es:"<<articulo[j].marca<<endl;
cout<<"LA fecha de vencimiento
es:"<<articulo[j].dia<<"/"<<articulo[j].mes<<"/"<<articulo[j].anio<<endl;
switch (articulo[a].tipo)
{

case 1:
cout<<"aseo"<<endl;
break;
case 2:
cout<<"Bebida"<<endl;
break;
case 3:
cout<<"Alimentos"<<endl;
break;
case 4:
cout<<"Ropa"<<endl;
break;

}
cout<<"LA cantidad en inventario es:"<<producto[j].cantidad<<endl;
cout<<"1. aseo."<<endl;
cout<<"2. alimento."<<endl;
cout<<"3. bebida."<<endl;
cout<<"4. ropa."<<endl;
cout<<"El tipo de producto es:"<<articulo[j].tipo<<endl;
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

cout<<"-----------------------------------------"<<endl;

}
break;

RI7 EL programa guardara los artculos y todas su caractersticas en diferente


archivos, para poder as almacenar y tener un registro

bool guardarArticulosArchivos(articulos articulo[]){


string ArticulosS = "";//Esta variable guarda la cadena que se colocar en el
archivo
for(int e = 0; e < i; e++){
if(articulo[e].codigo!= 0){
ArticulosS +=
articulo[e].nombre+","+convertidorNumeroaCadena(articulo[e].codigo)+","+articulo[e
].marca+","+convertidorNumeroaCadena(articulo[e].tipo)+";"+convertidorNumeroaCaden
a(articulo[e].dia)+","+convertidorNumeroaCadena(articulo[e].mes)+","+convertidorNu
meroaCadena(articulo[e].anio)+"\n";//Por cada cliente agrego una nueva linea a la
cadena
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

}
}
ofstream o;
o.open("Articulos.txt");//Abro el archivo
o<<ArticulosS;//Le coloco la cadena con la informacin de los clientes
o.close();//Cierro el archivo
}

RI8 se muestra el reporte de ventas dependiendo del producto que se halla


vendido y la cantidad de este mismo

cout<<"Reporte general de ventas"<<endl;

for (int y=0;y<=i;y++){

cout<<"Articulo #"<<y<<endl;

if (Ventas[y].total!=0){
cout<<"El nombre es:"<<articulo[y].nombre<<endl;
cout<<"La cantidad vendidad es: "<<Ventas[y].numero<<endl;
cout<<"El ingresos es:"<<Ventas[y].total<<endl;
}}

A. Pruebas:.
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

Diagrama especifico de llenar

DIAGRAMA ESPECFICO DE ELIMINAR


Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

DIAGRAMA ESPECIFICO DE ACTUALIZAR

DIAGRAMA ESPECIFICO DE VENDER


Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

DIAGRAMA ESPECIFICO DE BUSCAR

DIAGRAMA ESPECIFICO DE MOSTRAR


Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

CONCLUSIONES

El rol de la programacin en los ltimos sesenta aos ha sido crucial para


comprender la evolucin que ha tenido la sistematizacin de tareas y el manejo de
la informacin que hoy en da damos como un hecho. En efecto, la misma tiene
como principal funcin el hecho de conseguir que innumerables trabajos que antes
ejercamos de forma manual y con un alto costo sean ejecutados por un ordenador
con un ahorro significativo de tiempo. Por otro lado, dada la increble cantidad de
informacin que hoy en da se maneja para distintas tareas, la programacin es una
herramienta de enorme valor porque permite bucear en la misma con muchsima
facilidad.
Facultad de Ingeniera
Programa de Ingeniera de Sistemas Programacin I

NOTA DE AUTO Y COEVALUCIONES 4.8

Vous aimerez peut-être aussi