Logo Studenta

Desarrollo de aplicacion fotografica Parte I

¡Este material tiene más páginas!

Vista previa del material en texto

Aplicación de ingresos por impresión de fotografías
Propuesta de aplicación
Un cliente ingresa a nuestra casa de desarrollo de software, y nos indica que requiere de un programa que 
controle los ingresos por la impresión de fotos que el cliente selecciona en 
Maneja diferentes tamaños de fotos y a color y blanco/negro, cada tamaño tiene su precio 
tanto en color como en blanco/negro.
Requiere una opción donde se capture lo que selecciono el cliente y guardarlo, imprimir el 
ticket con los datos del cliente, la fecha, etc.
Una opción de re impresión de ticket por si lo 
pierde el cliente
Un reporte donde se indique los ingresos del día
Un reporte donde capturemos 2 fechas y nos 
muestre lo que se vendió 
Un reporte donde se muestre en pantalla los clientes que han venido a 
imprimir sus fotos del día.
Los tamaños de fotos que maneja son:
color b/n
10 x 15 1.80 1.40
13 x 18 2.10 1.70
15 x 20 3.00 2.50
Análisis de sistema
General
1.- Captura de ingresos de acuerdo a los 
tamaños de las fotos y color
2.- Reimpresion de ticket
3.- reporte de ventas diarias
4.- Reporte de ventas en un rango de fechas
5.- Reporte de catalogo de clientes
Especifico
1.- En la CAPTURA se debe conocer los tipos de tañamos que 
maneja la empresa y sus precios, identificar los eleméntenos 
que intervendrán en la captura
2.- Solo si se capturo un ticket se puede re imprimir, el cliente 
debe dar su nombre para poder buscarlo y reimprimir
3.- Este reporte se debe enviar a pantalla y los datos los debe 
tomas del arreglo de fotos que se crea y solo deben mostrarse 
aquellos que sean del día que tenga marcada la computadora
4.- El programa debe pedirnos dos campos fechas para poder 
identificar aquellos ticket que cumplan con el rango de fechas 
capturado y mostrar en pantalla
5.- Item
Registro
Folio
Nombre
Fecha
Tam_10x15C
Tam_10x15N
Tam_13x18C
Tam_13x18N
Tam_15x20C
Tam_15x20N
Total
Registro
Folio Int
Nombre String
Fecha Date
Tam_10x15c Int
Tam_10x15n Int
Tam_13x18c Int
Tam_13x18n
Tam_15x20c
Tam_15x20n
Total
Int
int
Int
double
Identificamos estos datos 
Analizamos nuestro objeto, sus 
atributos y tipo de datos
Tamaños
Existe otra clase para esta aplicación 
Precio_10x15c
Precio_10x15n
Precio_13x18c
Precio_13x18n
Precio_15x20c
Precio_15x20n
Tamaños
Precio_10x15c double
Precio_10x15c double
Precio_13x18c Double
Precio_13x18n double
Precio_15x20c Double
Precio_15x20n double
class
{
Public double Precio_10x15c {get;set;} 
Public double Precio_10x15n {get;set;} 
Public double Precio_13x18c {get;set;} 
Public double Precio_13x18n {get;set;} 
}
Tamaño
Ejercicio 1a
Creamos una clase llamada “Registro” Busque el nombre del proyecto
Buscamos la opción “agregar” 
y seleccionamos la opción 
“clase” .
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FotoNet
{
class Registro
{
public int Folio { get; set; }
public string Nombre { get; set; }
public string Fecha { get; set; }
public int Tam_10x15c { get; set; }
public int Tam_10x15n { get; set; }
public int Tam_13x18c { get; set; }
public int Tam_13x18n { get; set; }
public int Tam_15x20c { get; set; }
public int Tam_15x20n { get; set; }
public double Total { get; set; }
}
}
Registro
Folio Int
Nombre String
Fecha Date
Tam_10x15c Int
Tam_10x15n Int
Tam_13x18c Int
Tam_13x18n
Tam_15x20c
Tam_15x20n
Total
Int
int
Int
double
Descriptores 
de acceso
Se activa cuando recibe 
un datos, sino se 
especifica , es de 
lectura
Se ejecuta cuando se lee el atributo, 
sino se especifica, será de solo escritura 
el atributo
FORM de CAPTURA
Busque el nombre del 
proyecto
Buscamos la opción “agregar” 
y seleccionamos la opción 
“Formulario (Windows form)” .
Creamos un nuevo FORM para la aplicación en curso, en este nuevo form
vamos a capturar información que se guardara primero en cada “propiedad” 
del registro en curso.
El nombre del “FORM” no lo
cambiaremos, vamos a dejar el
que nos muestre que es:
“Form2.cs”
Aparece este cuadro de dialogo para nombrar y 
confirmar el nuevo formulario
Esta imagen representa la INTERFAZ GRAFICA DE USUARIO (GUI)
Las herramientas que se usaran para el desarrollo de 
esta GUI son:
Label
Button
DatetimePicker
GroupBox
Desarrolle este formulario de tal forma que al 
termino quede igual que la imagen que esta a la 
izquierda
https://icon-icons.com/es/categoria/Comercio-electrónico-y-Compras/12
Link para bajar iconos para su aplicación
Ejecutar FORM 2 desde Menú Y 
CAMBIO DE IDIOMA 
PARTE 3
1.- Cambien los dos picturebox (las banderas) al PANEL llamado “PANELSIDEMENU”, colóquelo en la parte inferior a la derecha
2.- Cambie el LABEL de lenguaje a un costado a la izquierda de donde puso las “banderas”
3.- Agregar un nuevo panel sobre el “FORM1” (el principal)
3.1.- en la propiedad DOCK, seleccione FILL
3.2.- Cambie el nombre a “panelFormHijo”(respete las mayúsculas en el nombre)
4.- Creamos una “CLASE”, la llamamos  Idioma_del_sistema
4.1.- Codificamos una única “propiedad” llamada  Idioma (respete las mayúsculas), será de tipo BOOLEAN, debe indicar “get y set”.
5.- Codifique un constructor para esa clase, quedando codificado de la siguiente forma:
public class Idioma_del_sistema // Se crea una clase con ese nombre
{
public Boolean Idioma { get; set; } // solo contendra un atributo
public Idioma_del_sistema() // este es su constructor
{
this.Idioma = false; // El valor inicial del atributo de la clase se declara falso
// para indicar que empiece con lenguaje en español
}
}
6.- Creamos un objeto llamado “ingles” en el FORM1 dentro de la clase Fotografias como se muestra a continuación:
public partial class Fotografias : Form
{
Idioma_del_sistema ingles = new Idioma_del_sistema();
}
7.- Creamos una variable tipo “FORM” en la siguente línea , después del objeto llamado ingles
private Form FormActivo = null;
8.- VERIFIQUE que en el FORM1 , en el evento “CLIC” de los 2 picturebox(donde están las banderas) 
para la bandera de México este la instrucción: ingles.Idioma = false; y para la bandera de EU, sea, 
ingles.Idioma = true; antes de las instrucciones que ya existe en ese evento.
9.- Codificamos el siguiente método:
private void AbrirFormHijo(Form FormHijo)
{
if (FormActivo != null)
FormActivo.Close();
FormActivo = FormHijo; 
FormHijo.TopLevel = false; 
FormHijo.FormBorderStyle = FormBorderStyle.None;
FormHijo.Dock = DockStyle.Fill;
panelFormHijo.Controls.Add(FormHijo);
panelFormHijo.Tag = FormHijo;
FormHijo.BringToFront();
FormHijo.Show();
}
10.- PASAMOS A LA CODIFICACION EN EL FORM 2 (QUE ES EL DE CAPTURA)
11.- Vaya al modo DISEÑO del FORM2, identifique el BOTON “salir” , con el raton de doble “clic”
11.1.- Dentro de este EVENTO, teclee la instrucción  this.Close()
12.- Dentro del método principal de la clase del FORM2 el cual es :
public partial class Form2 : Form
{
12.1.- Creamos una variable de tipo boolean llamada lenguaje
boolean lenguaje;
13.- Identifique el EVENTO principal del FORM2, debe ser: public Form2()
13.1.- Entre los paréntesis, pasamos como parámetro la variable que se creo en el paso anterior  boolean lenguaje 
13.2.- Debe quedar de la siguiente forma: public Form2(boolean lenguaje)
14.- Localice la instrucción ya programada : InitializeComponent(); y debajo de esa instrucción 
escriba: this.lenguaje = lenguaje;
15.- Todas estas instrucciones (empezando por el punto 12) deben quedar de la siguiente forma:
public partial class Form2 : Form
{
Boolean lenguaje; 
public Form2(Boolean lenguaje)
{
InitializeComponent();
this.lenguaje = lenguaje;
}
Paso 12.1
Paso 13.1
Paso 14
16.- En el EVENTO Form2_Load(object sender, EventArgs e), codifique: 
if (lenguaje == true)
{
label1.Text = "Date:";
label2.Text = "Ticket:";
label3.Text = "Name customer:";
label7.Text = "Coulor:";
label8.Text = "Black/white";
label9.Text = "TOTAL";
groupBox1.Text = "Size of pictures";
groupBox2.Text= "Select";
groupBox3.Text = "General date";
button1.Text = "SAVE";
button2.Text = "PRINTER";
button3.Text = "CANCEL"; 
}
17.- Verifique que las bibliotecas para este FORM2 sean las mismas que se muestran aquí:
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Net.Mime.MediaTypeNames;
Si en su proyecto le falta una 
biblioteca, debe anexarla porque sino, 
algunas instrucciones no se 
reconoceran

Continuar navegando