sexta-feira, 22 de julho de 2011

Exercício


Criar um novo projeto para executar todos os exercícios propostos abaixo. O nome do projeto será Exercicio1 deverá ser gravado na pasta Aula criado no início do curso.

1.       Criar um outro projeto de nome Mat na solução, no projeto inicial Exercicio1 adicione a referência ao projeto Mat.

2.       No projeto Mat remova a classe Class1.cs e adicione uma nova classe de nome Geometria.
3.       Nesta classe adicione as propriedades Nome(literal), Area(real) e Lados(inteiro).

4.       Adicione o método CalculaArea onde pode ser sobrescrito.

5.       Adicione um outra classe de nome Triangulo onde será herança da classe Geometria e terá as seguintes propriedades: Lado1, Lado2 e Lado3 (inteiro). Adicione o método CalculaArea sobrescrevendo o método da classe pai.

6.       Adicione mais uma classe de nome Retangulo que também herdará Geometria e adicione as propriedades Lado1 e Lado2 (inteiro). Sobrescreva o método CalcularArea.

7.       Adicione mais uma classe de nome Circulo, que herdará Geometria. Adicione a propriedades: Raio e sobrescreva o método CalculaArea.

8.       Adicione a classe Cilindro, que herde Circulo e adicione a propriedade Altura (inteiro). Sobrescreva a propriedade CalculaArea.

9.       Na classe Program.cs do Exercicio1 crie código para testar os métodos feitos anteriormente.

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Linq;
 
namespace Wizard.Customization
{
   public partial class GenerateDuplicateTest : Form
   {
      // Properties of Forms      
      public List<Test> TestList { getset; }
      public string FileName { getset; }
 
      public GenerateDuplicateTest()
      {
         InitializeComponent();
         InitializeForm();
      }
 
      public GenerateDuplicateTest( List<Test> listTemperature )
      {
         InitializeComponent();
         TestList = listTemperature;
         InitializeForm();
         StartPosition = FormStartPosition.CenterScreen;
      }
 
      private void InitializeForm()
      {
         FillComboTemp();
         grid.Columns["TemperatureStr"].DefaultCellStyle.Alignment =
            DataGridViewContentAlignment.MiddleRight;
 
         bindTemperatureList.DataSource = TestList;
         grid.DataSource = bindTemperatureList;
      }
 
      private void FillComboTemp()
      {
         //cmbTemperature.Items.Clear();
         //cmbTemperature.Items.Add( "TEMP_FREE" );
         //for( int i = 20; i < 71; i++ )
         //{
         //   cmbTemperature.Items.Add( i.ToString() );
         //}
 
         List<TemperatureItem> listTempItem = new List<TemperatureItem>();
         listTempItem.Add( new TemperatureItem { Description = "TEMP_FREE", Value = 255 } );
         forint i = 1; i <= 99; i++ )
         {
            listTempItem.Add( new TemperatureItem { Description = i.ToString(), Value = i } );
         }
 
         bindTemperaturesCombo.DataSource = listTempItem;
      }
 
      private bool GenerateAndDuplicate()
      {
         if( saveFileDialog1.ShowDialog() == DialogResult.OK )
         {
            return true;
         }
         else
         {
            return false;
         }
      }
 
      private void btnApply_Click( object sender, EventArgs e )
      {
         int temperature = 0;
         if( cmbTemperature.Text == "TEMP_FREE" )
         {
            temperature = 255;
         }
         else
         {
            temperature = int.Parse( cmbTemperature.Text );
         }
 
         forint i = 0; i < grid.SelectedRows.Count; i++ )
         {
            ( ( Test )bindTemperatureList[grid.SelectedRows[i].Index] ).Temperature = temperature;
         }
         //bindTemperatureList.MoveFirst();
         grid.Refresh();
      }
 
      private void btnDuplicate_Click( object sender, EventArgs e )
      {
         bool TempCheckMsg = true;
 
         if( GenerateAndDuplicate() )
         {
            TemperatureCheck( grid );
            this.TestList = ( List<Test> )bindTemperatureList.DataSource;
            this.FileName = saveFileDialog1.FileName;
            this.DialogResult = DialogResult.OK;
         }
      }
 
      private void dataGridView1_SelectionChanged( object sender, EventArgs e )
      {
         panCombo.Visible = grid.SelectedRows.Count > 1;
         if( cmbTemperature.SelectedIndex < 0 )
         {
            //cmbTemperature.SelectedIndex = 1;
         }
      }
 
      public void TemperatureCheck( DataGridView grid )
      {
         bool TempCheckMsg = false;
 
         forint i = 0; i < grid.SelectedRows.Count; i++ )
         {
            int temperature = cmbTemperature.SelectedIndex;
 
            if( ( ( temperature < 20 ) || ( temperature > 70 ) ) && temperature != 255 )
            {
               TempCheckMsg = true;
            }
         }
 
         if( TempCheckMsg )
         {
            string error = "There are tests that have abnormal Temperature values";
            error += "\n\nThe temperature should fall between 20°C and 70°C.";
            error += "\n 20°C <= temperature <= 70°C";
            MessageBox.Show( error, "WARNING" );
         }
      }
 
      private void grid_CellContentClick( object sender, DataGridViewCellEventArgs e )
      {
 
      }
   }
 
   public class TemperatureItem
   {
      public int Value { getset; }
      public string Description { getset; }
   }
 
   public class Test
   {
      public string TestName { getset; }
      public int Temperature { getset; }
      public string TemperatureStr
      {
         get
         {
            if( Temperature != 255 )
               return Temperature.ToString();
            else
               return "TEMP_FREE";
 
         }
      }
   }
}