Está en la página 1de 11

I N G EN I E R I A C I V I L

PROYECTO INFORMA TICO

I N FOR M A TI C A Y P ROG RA M AC I O N

R I C AR D O M AC HAC A
DA NI E L O B AN D O
A D RI A N A E SC O BE D O

1 E R S E M ES T RE

2017

Los alumnos declaran haber realizado el presente trabajo de


acuerdo a las normas de la Universidad Cato lica San Pablo

1
NDICE
1. OBJETIVOS DE PROYECTO ..............................................................................................................3
a) OBJETIVO GENRAL ......................................................................................................................3
b) OBJETIVOS ESPECFICOS ...........................................................................................................3
2. MARCO TERICO ..............................................................................................................................3
a) CONCEPTOS DE LA ESTRUCTURAS APLICADAS ..................................................................3
I. Estructuras de control repetitivas o iterativas ...............................................................................3
II. Estructuras secuenciales ...............................................................................................................4
III. Funciones .....................................................................................................................................4
IV. Arreglos bidimensionales .........................................................................................................4
3. DESARROLLO DEL PROYECTO ......................................................................................................5
a) LISTA DE VARIABLES .................................................................................................................5
b) CDIGO FUENTE ..........................................................................................................................8
4. CONCLUSIONES .................................................................................................................................9
5. RECOMENDACIONES ......................................................................................................................10

2
1. OBJETIVOS DE PROYECTO
a) OBJETIVO GENRAL
El objetivo principal en este proyecto es desarrollar un sistema con los
conocimientos aprendidos de cada clase sobre el manejo y control de
proyectos urbansticos en Arequipa mediante un lenguaje de
programacin (c++).

b) OBJETIVOS ESPECFICOS
Como objetivos secundarios u objetivos especficos dentro del proyecto
informativo encontramos los siguientes:

1. Aplicar lo aprendido ya sean estructuras while, for, if, etc de


maneda adecuada.

2. Utilizacin correcta del lenguaje de programacin C++ mediante


el programa Zinjai.

3. Utilizacin correcta de arreglos bidimensionales dentro del


programa.

2. MARCO TERICO
a) CONCEPTOS DE LA ESTRUCTURAS APLICADAS

I. Estructuras de control repetitivas o iterativas

Sentencia repetitiva o simplemente bucle como ms comnmente se le


denomina a esta clase de elementos de programacin, se refiere a un tipo
de estructura de control que permite la repeticin de la ejecucin de una
o varias sentencias internas, de tal modo que no sea necesario escribir
varias veces una misma instruccin o un mismo procedimiento, el cual
sea necesario ejecutar en mltiples ocasiones. A diferencia de las
estructuras de control condicionales o de seleccin, donde el flujo de
ejecucin del programa simplemente se bifurca o desva en un sentido u
otro segn el resultado que se obtenga de la evaluacin de una
interrogante o condicin, en este caso la condicin se evala en variadas
ocasiones con el fin de determinar cuntas veces se ejecutara el bloque de
instrucciones que en esta estructura est contenido.

3
II. Estructuras secuenciales

Es aquella en donde las instrucciones del programa se ejecutaran una tras


otra, en el orden en que estas aparecen sin que vare por alguna condicin.

Temp : Primeramente el temp es una variable auxiliar que se usa


para guardar el contenido de otra variable, pero puede tener
cualquier nombre.

III. Funciones

Una funcin es un conjunto de lneas de cdigo que realizan una tarea


especfica y puede retornar un valor. Las funciones pueden tomar
parmetros que modifiquen su funcionamiento. Las funciones son
utilizadas para descomponer grandes problemas en tareas simples y para
implementar operaciones que son comnmente utilizadas durante un
programa y de esta manera reducir la cantidad de cdigo. Cuando una
funcin es invocada se le pasa el control a la misma, una vez que esta
finaliz con su tarea el control es devuelto al punto desde el cual la
funcin fue llamada.

System: es una funcin del lenguaje de programacin C incluida en su


biblioteca estndar, dentro de la cabecera <stdlib.h>. Sirve para
ejecutar subprocesos o comandos del sistema operativo.
system permite ejecutar a su vez otras funciones como: cls,
dir o pause. Por ejemplo, al escribir system ("pause") se est
incorporando una pausa en el programa, es decir, que se espera a
que el usuario presione alguna tecla para continuar con la
ejecucin del mismo. La siguiente lnea de cdigo no se ejecutar
hasta que el usuario presione una tecla.

IV. Arreglos bidimensionales

Los arreglos bidimensionales son tablas de valores. Cada elemento de un


arreglo bidimensional est simultneamente en una fila y en una
columna.
En matemticas, a los arreglos bidimensionales se les llama matrices, y
son muy utilizados en problemas de Ingeniera.
En un arreglo bidimensional, cada elemento tiene una posicin que se
identifica mediante dos ndices: el de su fila y el de su columna.

4
3. DESARROLLO DEL PROYECTO
a) LISTA DE VARIABLES
a: Es un array de tipo string que almacena todos los datos a excepcin del
presupuesto.

f1: Guardara el nmero de proyectos existentes.

op: Guarda la opcin ingresada por el usuario en el men principal.

b: Guarda el presupuesto de todos los proyectos existentes.

bus: Se iniciliza en -1 y cambiara si es que se encuentra el cdigo ingresado


por el usuario en la opcin 2.

pos(opcin 3): Cumple la misma funcin que la variable bus, pero esta actua en
la opcin 3.

cod: Almacena el cdigo ingresado por el usuario en la opcin 2 y 3.

tem1: Almacenara temporalmente el valor de a[i][k] para ser intercambiado


en la opcin 4.

nombre: Guarda el nombre del usuario al inicio del programa.

cdigo: Guarda la contrasea que permite acceder al programa.

r: Mientras r sea s permitir al usuario seguir ingresando proyectos en la


opcin 1, 2 y 3.

f: Es un contador de tipo int que va desde 0 hasta 9.

i: Es un contador de tipo int que va desde 0 hasta 9.

j: Es un contador de tipo int que va desde i+1 hasta f1.

k: Es un contador de tipo int que va desde 0 hasta 9.

pos(opcin 4): Actuara como un contador que va desde 0 hasta f1.

Opcin 1:

5
El programa pedir todos los datos del proyecto, se incrementara el contador
f1 en 1 y se preguntara al usuario si desea ingresar otro proyecto.

Opcin 2:

Solicita un cdigo ingresado por teclado para ser buscado, se utiliza un mtodo
de bsqueda simple donde comparara el cdigo ingresado con cada uno de los
proyectos existentes con la ayuda de un for, despus si se ha encontado el
cdigo se pasara a mostrar su cdigo y nombre, permitir al usuario cambiar el

estado de proyecto y su fecha de aprobacin o cancelacin; de no haberse


encontrado el cdigo permitir al usuario registrar un nuevo proyecto.

Opcin 3:

Se utiliza el mismo algoritmo de bsqueda que se utiliz en la opcin 4 a


diferencia de que el programa pasara a mostrar todos los datos del proyecto
segn el cdigo encontrado, tambin permitir ingresar un nuevo proyecto si es
que el cdigo no ha sido encontrado.

6
Opcin 4:
Para la opcin 4 primero se guardara todos los presupuestos al array b
mediante un for en la lnea de cdigo:

b[i]=atoi(a[i][9].c_str());

atoi sirve para transformer un carcter tipo array de char a int y c_str()
devolver el valor dentro de a[i][9].

Despus se pasara a hacer un ordenamiento mediante el mtodo burbuja que


comparara en este caso dos presupuestos ordenndolos de mayor a menor:

if (b[i]&lt;b[j])

Dentro de esta condicin se pasara a hacer el intercambio, no solo de


presupuestos sino de todos los datos dentro del proyecto:

for (int k=0;k&lt;=9;k++)

tem1=a[i][k];

a[i][k]=a[j][k];

a[j][k]=tem1;

Despus con un for que ira desde 0 hasta f1 donde se mostraran todos los
datos de todos los proyectos existentes.

7
b) CDIGO FUENTE

#include <iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;

int main(int argc, char *argv[]) {

string tabla1[10][10];
float pre[10];
string codigo;
int k,i=0,pos;
char r;

int op;
while(op!=5){
system("cls");
cout<<"*****MENU*****"<<endl;
cout<<"1.Registrar proyecto"<<endl;
cout<<"2.Ingresar estado de proyecto"<<endl;
cout<<"3.Buscar proyecto"<<endl;
cout<<"4.reporte"<<endl;
cout<<"5.Salir"<<endl;
cout<<"INGRESE OPCION"<<endl;
cin>>op;

if(op==1){
op1:
//cls limpia pantalla
system("cls");

cout<<"Opcion 1: Registrar Proyecto: "<<endl;


cout<<"Ingrese Codigo:";
cin>>tabla1[i][0];
cout<<"Ingrese nombre del proyecto";
cin>>tabla1[i][1];
cout<<"Ingrese Fecha 1";
cin>>tabla1[i][2];
cout<<"Ingrese estado del proyecto";
cin>>tabla1[i][3];
cout<<"Ingrese Fecha 2";
cin>>tabla1[i][4];
cout<<"Ingrese Jefe del Proyecto: ";
cin>>tabla1[i][5];
cout<<"Ingrese Ingeniero 1: ";
cin>>tabla1[i][6];
cout<<"Ingrese Ingeniero 2: ";
cin>>tabla1[i][7];
cout<<"Ingrese Arquitecto: ";
cin>>tabla1[i][8];
cout<<"Ingrese Presupuesto ";
cin>>tabla1[i][9];

i=i+1;
}else {
if(op==2){

pos=-1;
system("cls");

8
cout<<"2.Ingresar estado de proyecto"<<endl;
cout<<"Ingrese El codigo del Proyeco";
cin>>codigo;
for(k=0;k<i;k++){
if(codigo==tabla1[k][0]){
pos=k;
}
}
if(pos!=-1)// si pos es diferente de -1 significa que encontro el
producto y muestra los todos los datos del arreglo en posicin pos
{
cout<<"\nCOD"<<"\t"<<"Nombre Proyecto"<<endl;
cout<<tabla1[pos][0]<<"\t"<<tabla1[pos][1];
cout<<"Ingrese el Estado del proyecto: (aprobado o
cancelado)";
cin>>tabla1[i][3];
cout<<"Ingrese fecha de aprobacin o cancelacin.";
cin>>tabla1[i][4];

}else

{
cout<<"PRODUCTO NO ENCONTRADO"<<endl;
}
getch();
}else{

if(op==3){
pos=-1;
system("cls");
cout<<"3.Buscar proyecto"<<endl;
cout<<"Ingrese El codigo del Proyeco";
cin>>codigo;
for(k=0;k<i;k++){
if(codigo==tabla1[k][0]){
pos=k;
}

if(pos!=-1){ // != es diferente
cout<<"\nCOD"<<"\t"<<"Nombre
Proyecto"<<"\t"<<"Fecha 1"<<"\t"<<"Estado"<<"\t"<<"Fecha2"<<"\t"<<"Jefe"<<"\t"<<"Ing 1"<<"\t"<<"Inge
2"<<"\t"<<"Arquitecto"<<"\t"<<"Presupuesto"<<"\t"<<endl;

cout<<tabla1[pos][0]<<"\t"<<tabla1[pos][1]<<"\t"<<tabla1[k][pos]<<"\t"<<tabla1[pos][3]<<"\
t"<<tabla1[pos][4]<<"\t"<<tabla1[pos][5]<<"\t"<<tabla1[pos][6]<<"\t"<<tabla1[pos][7]<<"\t"<<tabla1[po
s][8]<<"\t"<<tabla1[pos][9];
getch();
}else{
cout<<"No se encontrado"<<endl;
cout<<endl<<"Desea Registrarlo? s/n------>";
cin>>r;
if (r=='s' or r=='S' ){
goto op1;
}
}

}else{
if(op==4){
system("cls");
cout<<"4.reporte"<<endl;
cout<<"\nCOD"<<"\t"<<"Nombre
Proyecto"<<"\t"<<"Fecha 1"<<"\t"<<"Estado"<<"\t"<<"Fecha2"<<"\t"<<"Jefe"<<"\t"<<"Ing 1"<<"\t"<<"Inge
2"<<"\t"<<"Arquitecto"<<"\t"<<"Presupuesto"<<"\t"<<endl;
getch();
}
}
}
}
}//fin del while
}

4. CONCLUSIONES
Para concluir, el proyecto final trajo consigo muchas dificultades, pero a
pesar de estas fue muy interesante y confortante utilizar las tcnicas

9
aprendidas en clase y algunas tcnicas aprendidas mediante internet, para
poder llegar al final del proyecto.

Se usaron diferentes comandos para las distintas opciones tales como el


"if - else", "while", "for", que fueron aprendidas durante las secciones de
clase y tambin comandos nuevos tales como arreglos bidimensionales,
que tuvieron que ser aprendidas mediante internet, que permitan
almacenar datos de una manera ordena, ya que estas trabajan como
matrices es decir iban de filas a columnas.

Esto permitan almacenar una seria de datos segn el programa se le


indicaba. En el programa se usaron [10][10] lo que permita ingresar hasta
diez proyectos y de cada proyecto diez datos diferentes los cuales eran:
Cdigo, Nombre de Proyecto, Fecha de Presentacin, Estado, Fecha de
Aprobacin, Jefe de Proyecto, Ing. Civil1, Ing. Civil2, Arquitecto,
Presupuesto.

Se debieron utilizar diferentes variables nuevas (como se menciona al


comienzo) las cuales permitieron que el programa logre funcionar
correctamente, como para hacer que la pantalla se congele, o el uso de
cuadros, etc.

Las estructuras while, for, if, etc de maneda adecuada nos conllevo a
lograr la estructura general del programa.

Se solicit usar y aprender del lenguaje de programacin C++ mediante


el programa Zinjai lo que fue especficamente el programa en el cual se
elabor el proyecto

El uso de los arreglos bidimensionales fueron correctos y permitieron


poder hacer casi todo el proyecto con este metodo

El Programa funciona correctamente y sigue los trminos solicitados los


cuales son: La identificacin del Usuario, Registrar Proyecto, Ingresar
Estado de Proyecto, Buscar Proyecto, Reporte.

Los objetivos del proyecto fueron cumplidos al final de este. Ya que el


programa desarrollo un sistema acerca del manejo y control de proyectos
urbansticos en Arequipa mediante un lenguaje de programacin (c++).

Para culminar todos los trminos pedidos se cumplen con total


normalidad es decir el programa es eficiente.

5. RECOMENDACIONES

Los arreglos bidimensionales nos permitieron almacenar los datos de una


manera muy ordenada y muy fcil de entender, ya que actuaron como una
base de datos en el programa pero de una manera mucho ms siempre de
hacerla y de entenderla.

10
Al trabajar como matrices hizo que de una manera muy rpida se ingresen
filas y las columnas, como se puso en el proyecto [10][10], esto hacia que
se ingresen 10 proyectos de diez datos cada uno.

Lo que nos lleva a decir que el usar los arreglos bidimensionales facilitan
el trabajo de una manera enorme, permitindonos organizar de una
manera ordenada y eficaz diferente cantidad de datos.

El uso de nuevos comandos fue lo que un poco complicado en la


elaboracin del proyecto ya que algunos fueron muy simples de aplicar,
pero otros demandaron diferente tipo de esfuerzo y mucha complejidad,
pero por suerte se logran entender y utilizar de manera correcta.

Estos nuevos comandos debieron ser explicadas, aunque sea de una


manera rpida ya que dichos comandos hicieron que la elaboracin del
proyecto se haya retrasado un poco, ya que nuestro grupo tuvo que buscar,
analizar y aprender dichas variables para saber cundo usarlas, para que
usarlas.

Sin este conocimiento no se hubiera podido realizar el programa de una


manera correcta.

Tambin en el proyecto se solicitaron diferentes puntos, en algunos de


estos se tuvieron que usar casi nuevas variables en la programacin y esto
tambin puso mayor dificultad en el programa, pero se puso solucionar
esto ya que el grupo investigo y analizo algunas variables nuevas y
compartiendo todos los conocimientos aprendidos, todos lograron obtener
la informacin correcta y saber usar correctamente las variables.

Para finalizar el proyecto tuvo diferentes dificultades, pero por medio


del inters del grupo, se logr superar todas estas barreras y poder llegar
al objetivo ms importante, que el programa funcin eficazmente.

11

También podría gustarte