Respostas: mudanças entre as edições

De IFSC
Ir para navegação Ir para pesquisar
imported>Fargoud
imported>Fargoud
 
Linha 103: Linha 103:
         fat*=i;
         fat*=i;
     label2->Text = Convert::ToString(fat);
     label2->Text = Convert::ToString(fat);
     maskedTextBox1->Focus();
     maskedTextBox1->Focus();
  }
  }


==QUESTÃO 5==
==QUESTÃO 5==

Edição atual tal como às 17h26min de 4 de abril de 2018

QUESTÕES 1 A 3

Foram implementadas no mesmo programa, no aplicativo Codeblocks, com saída para Console:

#include <iostream>
#include <string>
using namespace std;
//QUESTÃO 1 DA PROVA ***********************
class Item     
{ public:
   string NomeItem;
   int Quantidade;
   float ValorUnitario;
   float TotalItem;
   Item();
   Item(string, int, float);
private:
   float CalculaTotal();
};
//Construtor:
Item::Item()
{
   cout<< "\nEntre com o nome do produto: ";
   cin >> NomeItem;
   cout<<"\nEntre com a quantidade de itens deste produto: ";
   cin >> Quantidade;
   cout<<"\nEntre com o preco do produto: ";
   cin >> ValorUnitario;
   cout<< "\nValor total do Item:    R$" << CalculaTotal() ;
   cout <<"\n\n\n"<< endl  ;
}
//método privado:
float Item::CalculaTotal()
{
   TotalItem = ValorUnitario * Quantidade;
   return TotalItem;
}        // FIM QUESTÃO 1 DA PROVA ***********************
  // QUESTÃO 2 DA PROVA ***********************
Item::Item(string Nome, int x, float y)   
{
   NomeItem= Nome;
   Quantidade=x;
   ValorUnitario=y;
   cout << "\nItem: " << NomeItem;
   cout << "\nNumero de itens: "<< Quantidade;
   cout << "\nValor unitario: "<< ValorUnitario;
   cout<< "\nValor total do Item:    R$" << CalculaTotal() ;
   cout <<"\n\n\n"<< endl  ;
}    // FIM QUESTÃO 2 DA PROVA ***********************
 // QUESTÃO 3 DA PROVA ***********************
class Estoque  
{   public:
   int NItens;
   Estoque();
   private:
  float CalculaTotalEstoque(Item []);
};
 //construtor:
Estoque::Estoque()
{
   cout << "************************" <<  endl;
   cout << " Cadastro de Produtos "<< endl;
   cout<< "\nEntre com o numero de diferentes produtos no estoque (maximo 20): ";
   cin >> NItens;
   Item Itens[NItens];
   cout<< "\nValor Total em Estoque:    R$" << CalculaTotalEstoque(Itens) <<"\n\n\n"<< endl  ;
}
//método privado:
float Estoque::CalculaTotalEstoque(Item TempItens[])
{ float ValorTotalEstoque=0;
  int i;
  for(i=0;i<NItens;i++)
       ValorTotalEstoque += TempItens[i].TotalItem;
   return ValorTotalEstoque;
}                  // FIM QUESTÃO 3 DA PROVA ***********************
//Código cliente:
int main()
{
   cout << "************************" <<  endl;
   cout << "** PROGRAMA DO ESTOQUE ***"<< endl;
   cout << "************************\n" << endl;
   Item  TestaSobrecarga("Item teste sobrecarga", 10, 2.5);
   Estoque Est1;
   return 0;
}

QUESTÃO 4

Foi criado um formulário contendo, principalmente, um controle do tipo maskedTextBox para a entrada do valor n, um rótulo (label2) para a saída do valor do fatorial e um botão (button1), para disparar o evento de cálculo:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    double fat = 1; //variavel para acumular o calculo do fatorial
    int n = Convert::ToInt16(maskedTextBox1->Text);  //valor a ser calculado o fatorial
//controle masketTextBox contem mascara "99", para limitar numeros inteiros de duas casas decimais
    if(n<0)
       label2->Text = "Apenas inteiros positivos!"; //label para saida
    for(int i=2;i<=n;i++)
       fat*=i;
    label2->Text = Convert::ToString(fat);
    maskedTextBox1->Focus();		
}

QUESTÃO 5

Interface gráfica:

InterGrafp1.png

Classe Pessoa.h:

#pragma once
using namespace System;
ref class Pessoa
{  
public:
   String^ Nome;
   int Idade;
   int Dia;
   int Mes;
   int Ano;
   String^ RG;
   Pessoa(String^, int, int, int, int, String^);
 };


Classe Pessoa.cpp:

#include "StdAfx.h"
#include "Pessoa.h"
#define ANOATUAL 2018
using namespace System;
using namespace System::Windows::Forms;
//construtor:
Pessoa::Pessoa(String^ nome, int i, int d, int m, int a, String^ rg)
{
   if(d>0 && d<32&& a<=ANOATUAL && m>0 && m<13 &&((i==(ANOATUAL - a))||(i==(ANOATUAL - a -1))))
  {	Nome = nome;
       Idade = i;
       Dia = d;
       Mes = m;
       Ano = a;
       RG = rg;
       MessageBox::Show("Cadastro efetuado com sucesso");
       }
       else
       MessageBox::Show("Erro de preenchimento!");
}


Código-Cliente - form1.h:

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    String^ temp1;
    String ^temp2;
    int x, y, z, w;
    temp1 = textBox1->Text;
    temp2 = textBox2->Text;
    x = Convert::ToInt16(maskedTextBox4->Text);
    y = Convert::ToInt16(maskedTextBox1->Text);
    z = Convert::ToInt16(maskedTextBox2->Text);
    w = Convert::ToInt16(maskedTextBox3->Text);
    Pessoa pessoa1(temp1, x, y, z, w, temp2);
 }