You are on page 1of 18

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE IN

FACULTAD DE INGENIERA EN SISTEMAS,


ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

INFORME DE INVESTIGACIN
Carrera:
rea Acadmica:
Lnea de Investigacin:
Nivel, Paralelo
Autor:
Mdulo y Docente:

Sistemas Computacionales e Informticos


Desarrollo de Software
Software
2do A Sistemas
Lpez Eddy
Programacin, Ing. Oswaldo E. Paredes O. M. Sc.

DESARROLLO
Ttulo
Sistema Basado en las notas de los Estudiantes.
Objetivos

Aplicar los conocimientos sobre la programacin orientada a objetos.


Desarrollar el sistema basado en objetos y clases.
Analizar su funcionamiento, su estructura, y como lo usamos.

Resumen
En esta aplicacin que se va a disear nos adentraremos con los temas vistos en el ao de
clases, como por ejemplo la utilizacin de encapsulamiento de los datos, el uso de mtodos
lecturas de los archivos y comparacin impresin de los mismos, uso de los conocimientos
sobre lo que son arreglos dinmicos y ciclos repetitivos, y el uso de lectura de archivos txt,
doc.
Palabras clave:
Mtodos, lectura, ciclos y arreglos.
Introduccin
Se realiz este sistema debido a la necesidad de aplicar los conocimientos adquiridos dentro
de un sistema en el lenguaje de programacin para as comprender ms sobre cada uno de
los temas, as vemos la utilizacin de lo que son arreglos, impresin de archivos lectura de
archivos y encapsulamiento de los datos para mayor proteccin de los mismos, analizando
el funcionamiento de estos para complementarlos dentro del sistema utilizando todo lo
tericamente vistos.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE IN

FACULTAD DE INGENIERA EN SISTEMAS,


ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

Materiales y Metodologa
Inicializaremos hablando sobre los mtodos y sus estructuras los cuales nos ayudara a la
creacin de este sistema.
Mtodo: podemos decir que un mtodo es un sub programa que es parte del mtodo
principal, es el cual que puede ser llamado dentro de la clase o dentro de otra clase diferente
es decir dentro de un programa en cualquier momento si lo necesitamos, un mtodo en si es
una ayuda al momento de simplificar pasos dentro de lo que fueran operaciones
matemticas o por ejemplo condiciones lo que s if, switch, etc.
Cabe recalcar que un mtodo es aquel que un su estructura puede ser privado, protegido,
pblico y default. Estas palabras citadas anteriormente nos indica el grado de accesibilidad
de un mtodo.
En un meto consta lo que es el tipo de dato o valor devuelto el cual me dice que este
mtodo me va a devolver un dato (void, entero, doble, flotante, carcter, booleano y string),
Aparte de tomar cualquiera de estos valores lo que nosotros nos orientamos es a crear
objetos y as poder devolver a travs del mtodo un objeto.
Cada mtodo tendr un nombre el cual nos ayuda a identificar al mtodo para asi poder
llamarlo.
En si un mtodo nos ayuda a simplificar un programa que nosotros realicemos en algn
momento diciendo asi que estos mtodos simplificaran las lneas de codificado.
Un metodo tiene la palabra return que esta puede ir en cualquier parte del codificado.
Estructura del mtodo:
public static tipo de dato nombre de la clase(argumentos) {
Sentencias;
}
Dentro de los mtodos tenemos diferentes tipos de mtodos los cuales los vamos a
nombrar:
Mtodos de instancia.
Mtodos de clase.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE IN

FACULTAD DE INGENIERA EN SISTEMAS,


ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

Sin parmetros y sin valor devuelto.


Sin parmetros y con valor devuelto.
Con parmetros y con valor devuelto.
Con parmetros y sin valor devuelto.
Mtodos de instancia: Los mtodos de instancia son aquellos que no requieren que tengan
la palabra static y este tendr que tomar los valores, variables declarados dentro del mismo
mtodo creado y no podr trabajar con las variables, valores del mtodo principal.
Mtodos de instancia: Este mtodo es el que tiene la libertad de tomar los valores,
variables del mtodo principal.
Sin parmetros y sin valor devuelto: este mtodo es aquel que no me pide nada y no
me devuelve nada. Este mtodo se lo podra usar para imprimir los datos personales de
una persona, formatos etc.
public static void vacio(){
system.out,println(hola);
return;
}
Sin parmetros y con valor devuelto: este mtodo es aquel que no me va a pedir nada
pero me va a devolver algo un valor. Podemos decir que este mtodo va hacer utilizado para
darme una suma de dos variables las cuales debern ser ingresadas dentro del mtodo y este
me devolver el valor de la suma con el tipo del mtodo asignado.
public static int suma(){
float x,y,suma;
Scanner asignar= newScanner(Sytem.in);
x= Float.valueOf(asignar.readLine());
y= Float.valueOf(asignar.readLine());
suma=x+y;
return(suma);
}

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE IN

FACULTAD DE INGENIERA EN SISTEMAS,


ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

Con parmetros y sin valor devuelto: este mtodo es aquel que nos pide algo pero no nos
devuelve nada. este mtodo no sera tan apropiado su uso porque en si solo me a cumplir la
seccin de argumentos y solo imprimir el resultado dentro del mtodo.
public static void suma(int x, int y){
float suma;
suma=x+y;
Sytem.out.println(suma,suma);
return();
}

Con parmetros y con valor devuelto: este mtodo es aquel que nos pide algo y nos
devuelve algo. Esto sera que al momento de una condicin me retorne si es verdadero o
falso.
public static float verdadero (int x, int y){
float suma;
suma=x+y;
if(suma>0)
return(1);
}else{
return(0);
}
Despus veremos sobre lo que es el encapsulamiento de los datos el cual nos ayudara a dar
ms seguridad a nuestro sistema.
Es decir vamos a crear los mtodos para obtener y colocar los datos para as que nosotros
demos las ms altas posibilidades de que no cambien los datos si no que siempre sean los
que nosotros ingresemos.
Aqu unos ejemplos.
public String obtenerNombre(){

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE IN

FACULTAD DE INGENIERA EN SISTEMAS,


ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

return nombre;
}
public float obtenerSueldo(){
return sueldo;
}
public void asignarNombre(String nom){
nombre = nom;
}
public void asignarSueldo(float sue){
sueldo = sue;
}
Analizando esto nos damos cuenta que los datos siempre van a pasar por una clase que
contiene los mtodos para obtener y colocar los datos.
Para esto tambin utilizaremos los arreglos dinmicos en este caso utilizaremos lo que es el
array list el que nos ayudara a crear una lista con los datos dentro de ella.
ARRAYLIST: el ArrayList es una pate de la clase array este es un array especial debido a
que nos permite aadir mas elementos dentro de una arreglo normal es decir que en este
tambin tiene la capacidad de incluir datos de cualquier tipo. Ayudndonos as a ala
diferencia de los otros arreglos a tener un solo tipo de dato si no aadiendo otros ms para
as poder imprimirlos y obtener un resultado.
El ArrayList nos ayuda a incrementar las posibilidades de trabajar con ms datos dentro de
un programa pero esto depender de la capacidad de memoria que tenga disponible en el
disco local c donde estn los dems programas.
La estructura es la siguiente:

Mtodos de la clase ArrayList:


Estos mtodos son de mucha ayuda dentro de lo que es el ArrayList cada uno tendr una

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE IN

FACULTAD DE INGENIERA EN SISTEMAS,


ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

diferente funcin como lo vern a continuacin:

Al hablar sobre el sistema decimos que podemos organizarlo de diferentes formas as como
por un men de opciones ocupando los switchs as para poder trabajar organizadamente el
desarrollo de este sistema nos ayuda a la utilizacin de los mtodos en donde solo lo
podramos llamarlos y se ejecuten cuando los lamamos.
Adems de utilizar todas las estructuras anteriormente utilizaremos lo que es la salida a un
archivo como principio de muestra de que los datos generados dentro del programa.
Es decir que las cosas que hacemos dentro de pantalla lo podemos hacer en una hoja con los
diferentes tipos de archivo txt y doc.
Para lo cual nos basaremos en esta estructura.
System.out.println("Desea Guardar(S/N) = ");
char op=teclado.nextLine().toUpperCase().charAt(0);
if(op== 'S'){
File archivo=new File("datos1.txt");
if(archivo.exists()){
System.out.println("El archivo" + archivo + "ya EXISTE");
}else{
PrintWriter salida=new PrintWriter(archivo);
for(k=0;k<=n-1;k++){
temp = cod[k]+"::"+nom[k]+"::"+gen[k]+"::"+sue[k];
salida.println(temp);
}
salida.close();
}
}
Para concluir todos estos antecedentes nos da a notar como dentro de un sistema nos sirve

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE IN

FACULTAD DE INGENIERA EN SISTEMAS,


ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

para la utilizacin de nuevas maneras de presentar el sistema.


Resultados y Discusin
Bueno como resultados que obtenemos es que cada operacin que hacemos dentro del
sistema se ejecuta correctamente dentro del sistema es decir que el ingreso de datos estn
bien estructuradas.
Conclusiones
Los conocimientos adquiridos en clases nos dan una buena estructura para la formacin del
sistema ayudndonos as de una mejor manera a la optimizacin del cdigo.
Hemos desarrollado este sistema con todos los conocimientos previamente adquiridos
concluyendo que todos estos son necesarios para la elaboracin de un buen sistema.
Concluimos que tanto los mtodos y los arreglos son una manera de obtener una mejor
presentacin y un buen desempeo del sistema.
Referencias bibliogrficas

http://java.com/es/

Anexos.
package proyecto;
public class Asignatura {
private float nota;
private String nombre;
public Asignatura() {
package proyecto;
import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE IN

FACULTAD DE INGENIERA EN SISTEMAS,


ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

import proyecto.Estudiante;
public class Menu {
static ArrayList<Estudiante> estudiantes;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner tecla = new Scanner(System.in);
String temp = "";
estudiantes = new ArrayList<Estudiante>();
ImprimirTexto("UNIVERSIDAD TECNICA DE AMBATO");
ImprimirTexto("INGENIERIA EN SISTEMAS, ELECTRNICA E INDUSTRIAL");
ImprimirTexto("CARRERA DE INGENIERIA EN SISTEMAS");
ImprimirTexto("TRABAJO FINAL");
ObtenerDatosEstudiantes();
ObtenerNotasDeEstudiantes();
do {
System.out.print("\n");
ImprimirTexto("Menu Principal");
System.out.printf("%20s1. Buscar por Identificacion\n", "");
System.out.printf("%20s2. Ver notas de Programacion \n", "");
System.out.printf("%20s3. Ver notas de Calculo\n", "");

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS,
ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

System.out.printf("%20s4. Ver notas de Algebra Lineal\n", "");


System.out.printf("%20s5. Salir\n", "");
System.out.printf("%20sSeleccionar opcion...", "");
temp = tecla.nextLine();
if (!temp.equals("1") && !temp.equals("2") && !temp.equals("3")
&& !temp.equals("4") && !temp.equals("5")) {
System.out.printf("%20sSeleccion no valida...", "");
}
if (temp.equals("1")) {
System.out.printf("%20sIngresar identificacion...", "");
temp = tecla.nextLine();
ImprimirEstudiantes(Integer.parseInt(temp));
}
if (temp.equals("2")) {
ImprimirNotasDeMateria("Programacion I");
}
if (temp.equals("3")) {
ImprimirNotasDeMateria("Calculo");
}
if (temp.equals("4")) {
ImprimirNotasDeMateria("Algebra Lineal");
}
} while (!temp.equals("5"));
Archivar();

FACULTAD DE IN

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS,
ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

ImprimirTexto("Se archivo las notas de los estudiantes....");


}
private static void ObtenerDatosEstudiantes() {
File archivo = new File("estudiantes.txt");
Scanner s = null;
try {
// Enlazar s al archivo de ingreso
s = new Scanner(archivo);
// Leer el contenido del archivo
while (s.hasNextLine()) {
// Lee una lnea del archivo
String linea = s.nextLine();
// separa la lnea en sus partes (separadas por ::)
String[] partes = linea.split("::");
// Crear un objeto de tipo Estudiantes
Estudiante est = new Estudiante();
// Colocar la informacin obtenida en el objeto
est.colocarIdentificador(Integer.parseInt(partes[0]));
est.colocarNombre(partes[1]);
est.colocarGenero(partes[2].charAt(0));
// Aadir el objeto estudiante al ArrayList resultado
estudiantes.add(est);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (s != null)
s.close();

FACULTAD DE IN

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS,
ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

} catch (Exception e2) {


e2.printStackTrace();
}
}
}
private static void ImprimirEstudiantes(int codigo) {
Estudiante estudiante = BuscarEstudiante(codigo);
System.out.print("\n");
ImprimirTexto("ESTUDIANTE:" + estudiante.obtenerIdentificador()
+ " " + estudiante.obtenerNombre());
// Crea un iterador para recorrer el ArrayList
Iterator<Asignatura> arreglo = estudiante.obtenerMaterias().iterator();
while (arreglo.hasNext()) {
Asignatura mat = arreglo.next();
// Crear objeto mat
System.out.printf("%25s%10.2f%10s\n", mat.obtenerNombre(),
mat.obtenerNota(), mat.obtenerResultado());
}
}
private static void ObtenerNotasDeEstudiantes() {
File archivo = new File("notas.txt");
Scanner s = null;
try {
int limite = estudiantes.size();

FACULTAD DE IN

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS,
ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

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


s = new Scanner(archivo);
Estudiante est = estudiantes.get(i);
while (s.hasNextLine()) {
// Lee una lnea del archivo
String linea = s.nextLine();
// separa la lnea en sus partes (separadas por ::)
String[] partes = linea.split("::");
if (est.obtenerIdentificador() == Integer
.parseInt(partes[0])) {
Asignatura materia = new Asignatura();
materia.colocarNombre(partes[1]);
materia.colocarNota(Float.parseFloat(partes[2]));
est.colocarMateria(materia);
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (s != null)
s.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}

FACULTAD DE IN

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS,
ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

private static void ImprimirNotasDeMateria(String nombreMat) {


ImprimirTexto("NOTAS de " + nombreMat);
System.out.printf("%5s%25s%20s%10s%10s\n", "ID", "NOMBRE", "MATERIA",
"NOTA", "RESULTADO");
// Crea un iterador para recorrer el ArrayList
Iterator<Estudiante> arreglo = estudiantes.iterator();
while (arreglo.hasNext()) {
Estudiante estudiante = arreglo.next();
Iterator<Asignatura> mts = estudiante.obtenerMaterias().iterator();
while (mts.hasNext()) {
Asignatura materia = mts.next();
if (materia.obtenerNombre().equals(nombreMat)) {
System.out.printf("%5d%25s%20s%10.2f%10s\n",
estudiante.obtenerIdentificador(),
estudiante.obtenerNombre(),
materia.obtenerNombre(), materia.obtenerNota(),
materia.obtenerResultado());
}
}
}
}
private static void ImprimirTexto(String texto) {

FACULTAD DE IN

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE IN

FACULTAD DE INGENIERA EN SISTEMAS,


ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

int largo = texto.length();


int espacio = (80 - largo) / 2;
for (int i = 1; i <= espacio; i++) {
System.out.print(" ");
}
System.out.println(texto + "\n");
}
private static Estudiante BuscarEstudiante(int codigo) {
Estudiante est = null;
int limite = estudiantes.size();
for (int i = 0; i < limite; i++) {
if (estudiantes.get(i).obtenerIdentificador() == codigo) {
est = estudiantes.get(i);
break;
}
}
return est;
}
private static void Archivar() {
File archivo = new File("resultado.txt");

try {
FileWriter escribir = new FileWriter(archivo, true);
escribir.write("UNIVERSIDAD TECNICA DE AMBATO" + "\n");
escribir.write("INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL" + "\n");
escribir.write("CARRERA DE INGENIERIA EN SISTEMAS" + "\n");

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS,
ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

escribir.write("LISTADO DE ESTUDIANTES" + "\n");

// Crea un iterador para recorrer el ArrayList


Iterator<Estudiante> it = estudiantes.iterator();
while (it.hasNext()) {
escribir.write("Estudiante: \n");
Estudiante est = it.next();
escribir.write(" " + est.obtenerIdentificador() + " "
+ est.obtenerNombre() + "

"

+ est.obtenerGenero() + "\n");
escribir.write("Materias: \n");
Iterator<Asignatura> its = est.obtenerMaterias().iterator();
while (its.hasNext()) {
Asignatura asig = its.next();
escribir.write(" " + asig.obtenerNombre() + " "
+ asig.obtenerNota() + "

"

+ asig.obtenerResultado() + "\n");
}
escribir.write("\n");
}
escribir.close();

FACULTAD DE IN

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS,
ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

} catch (Exception ex) {


System.out.println("Hubo un error al guardar el archivo");
}
}
}
}
public void colocarNota(float id) {
this.nota = id;
}
public void colocarNombre(String nom) {
this.nombre = nom;
}
public float obtenerNota() {
return this.nota;
}
public String obtenerNombre() {
return this.nombre;
}
public String obtenerResultado() {
if(this.nota >= 7f){
return "Aprobado";
}
else{
return "Reprobado";
}

FACULTAD DE IN

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS,
ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

}
}
package proyecto;
import java.util.ArrayList;
public class Estudiante {
private int identificacion;
private char genero;
private String nombre;
private ArrayList<Asignatura> materias;
public Estudiante() {
materias = new ArrayList<Asignatura>();
}
public void colocarIdentificador(int id) {
this.identificacion = id;
}
public void colocarGenero(char gn) {
this.genero = gn;
}
public void colocarNombre(String nom) {
this.nombre = nom;
}
public void colocarMateria(Asignatura mts) {
this.materias.add(mts);
}

FACULTAD DE IN

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS,
ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: octubre/2014 marzo/2015

public int obtenerIdentificador() {


return this.identificacion;
}
public char obtenerGenero() {
return this.genero;
}
public String obtenerNombre() {
return this.nombre;
}
public ArrayList<Asignatura> obtenerMaterias() {
return this.materias;
}
}

FACULTAD DE IN

You might also like