Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

davidlg

[Resolvido] Calculadora PHP

Recommended Posts

Eu estou começando a 2 semanas com php e queria saber se minha calculadora esta funcionando porque eu acho que ela so funciona no PHP5 como aqui é PHP4 dai eu peço que vcs testes ai e me diga se fico boa e se nao fico diga oque eu estou errando.

Minha Classe.

<? 
class Calc () {
var $visor;
var $operacao;


//Metodo computar o numero digitado do primeiro conjunto de numeros
function numeroDigitado ($visor , $numero){
$this-> visor =  $visor . $numero;
setcookie("Visor" , " $this-> visor ");
}
//Metodo guarda primeiro conjunto de números e guarda a operação feita
function operacao ($visor , $operacao){
setcookie("Visor","$visor");
$this-> visor = null;
$this-> operação = $operacao;
}
//Metodo computar o numero digitado do segundo conjunto de numeros
function numeroDigitado2 ($visor , $numero){
$this-> visor = $visor . $numero;
setcookie("Visor2","$this-> visor");
}
function igualdade ($visor){
$numero1 = $_COOKIE["Visor"];
$numero2 = $_COOKIE["Visor2"];
switch ($this-> operacao){
case '+' :
$this-> visor = $numero1   +  $numero2;
break;
case '-' :
$this-> visor = $numero1    -   $numero2;
break;
case '*' :
$this-> visor = $numero1    *   $numero2;
break;
case '/' :
$this-> visor = $numero1    /   $numero2;
break;
}
setcookie("Visor");
setcookie("Visor2");
}
}
?>

E o index.php

<? 
include calc.class.php;
$calc = new Calc();
if (! isset($_POST["visor"])){
$this-> visor = null;
}else{
$calc-> numeroDigitado($_POST["visor"] , $_POST["numero"]); 
} 
if (isset($_POST["operacao"])){
$calc-> operacao($_POST["visor"] , $_POST["operacao"]);
}
if(isset($_POST["visor"])){
if($this->visor == null){
$calc-> numeroDigitado2 ($_POST["visor" ], $_POST["numero"]);
}
}
if (isset($_POST["igualdade"])){
$calc-> igualdade ($_POST["visor"]);
}
?>
<html>
<head>
<title>:: Calculadora ::</title>
</head>
<body>
<form name="calc" method="post" action="" >
<input type="text" name="visor" value"<? print $this-> visor; ?>" >
<input type="submit" name="numero" value="9">
<input type="submit" name="numero" value="8">
<input type="submit" name="numero" value="7">
<input type="submit" name="numero" value="6">
<input type="submit" name="numero" value="5">
<input type="submit" name="numero" value="4">
<input type="submit" name="numero" value="3">
<input type="submit" name="numero" value="2">
<input type="submit" name="numero" value="1">
<input type="submit" name="numero" value="0">
<input type="submit" name="operacao" value="+">
<input type="submit" name="operacao" value="-">
<input type="submit" name="operacao" value="*">
<input type="submit" name="operacao" value="/">
<input type="submit" name="igualdade" value="=">
</form>
 </body>
</html>

Os Botoes estao desorganizados mai so vou deixa pra ajeitar depois que eu souber que esta funcionando.(como eu nao usao nenhuma editor faço num bloco de notas dai fika cansativo fazer as tabelas.)

 

Brigadao ai..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que achei um erro na minha classe , na function operacao onde eu atribui o $_POST["operecao"] em uma variavel $operacao depois essa variavel atribui a variavel operacao da class($this-> operacao = $operacao) so que eu estou atualizando a pagina toda vez que eu digito um numero dai essa variavel iai perde seu valor dai eu atribui essa operacao ao valor de um cookie.Chamando depois o cookie na function igualdade .

 

vo colocar o codigo como fico por favor postem se tiver algum erro , e se tiver como posso resolve-lo.

<? 
class Calc () {
var $visor;

//Metodo computar o numero digitado do primeiro conjunto de numeros
function numeroDigitado ($visor , $numero){
$this-> visor =  $visor . $numero;
setcookie("Visor" , " $this-> visor ");
}
//Metodo guarda primeiro conjunto de números e guarda a operação feita
function operacao ($visor , $operacao){
setcookie("Visor","$visor");
$this-> visor = null;
setcookie("Operacao" , "$operacao");
}
//Metodo computar o numero digitado do segundo conjunto de numeros
function numeroDigitado2 ($visor , $numero){
$this-> visor = $visor . $numero;
setcookie("Visor2","$this-> visor");
}
function igualdade ($visor){
$numero1 = $_COOKIE["Visor"];
$numero2 = $_COOKIE["Visor2"];
$operacao = $_COOKIE["Operacao"];
switch ($operacao){
case '+' :
$this-> visor = $numero1   +  $numero2;
break;
case '-' :
$this-> visor = $numero1    -   $numero2;
break;
case '*' :
$this-> visor = $numero1    *   $numero2;
break;
case '/' :
$this-> visor = $numero1    /   $numero2;
break;
}
setcookie("Visor");
setcookie("Visor2");
setcookie("Operacao");
}
}
?>

Vlw ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu arranjei um servidor que aceitasse php5 fiz os testes achei alguns erros

concertei todos eles. Ela fico uma calculadora basica so falta eu criar o botao de zerar e tudo feito.

vo posta os codigo ela pronta(fiz algumas modificaçoes e o codigo esta sem o botao de zerar).

 

calc.php

<? 
class Calc {
var $visor;

//Metodo computar o numero digitado do primeiro conjunto de numeros
function numeroDigitado ($visor , $numero){
$this->visor =  $visor . $numero;
$visortemp = $this->visor;
setcookie("Visor" , "$visortemp");
}
//Metodo guarda primeiro conjunto de números e guarda a operação feita
function operacao ($visor , $operacao){
setcookie("Visor","$visor");
$this->visor = null;
setcookie("Operacao" , "$operacao");
}
//Metodo computar o numero digitado do segundo conjunto de numeros
function numeroDigitado2 ($visor , $numero){
$this->visor =  $visor . $numero;
$visortemp = $this->visor;
setcookie("Visor2" , "$visortemp");
}
function igualdade ($visor){
$numero1 = $_COOKIE["Visor"];
$numero2 = $_COOKIE["Visor2"];
$operacao = $_COOKIE["Operacao"];
switch ($operacao){
case '+' :
$this-> visor = $numero1   +  $numero2;
break;
case '-' :
$this-> visor = $numero1    -   $numero2;
break;
case '*' :
$this-> visor = $numero1    *   $numero2;
break;
case '/' :
$this-> visor = $numero1    /   $numero2;
break;
}
setcookie("Visor");
setcookie("Visor2");
setcookie("Operacao");
}
}
?>

index.php

<? 
include('calc.php');
$calc = new Calc();
if (! isset($_POST["visor"])){
$calc-> visor = null;
}else{
$calc-> numeroDigitado($_POST["visor"] , $_POST["numero"]); 
} 
if (isset($_POST["operacao"])){
$calc-> operacao($_POST["visor"] , $_POST["operacao"]);
}
if(isset($_POST["visor"])){
if($calc-> visor == null){
$calc-> numeroDigitado2 ($_POST["visor" ], $_POST["numero"]);
}
}
if (isset($_POST["igualdade"])){
$calc-> igualdade ($_POST["visor"]);
}

echo "<form name='calc' method='post' action='' >";
echo "<input type='text' name='visor' value='$calc->visor' >";
echo "<input type='submit' name='numero' value='9'>";
echo "<input type='submit' name='numero' value='8'>";
echo "<input type='submit' name='numero' value='7'>";
echo "<input type='submit' name='numero' value='6'>";
echo "<input type='submit' name='numero' value='5'>";
echo "<input type='submit' name='numero' value='4'>";
echo "<input type='submit' name='numero' value='3'>";
echo "<input type='submit' name='numero' value='2'>";
echo "<input type='submit' name='numero' value='1'>";
echo "<input type='submit' name='numero' value='0'>";
echo "<input type='submit' name='operacao' value='+'>";
echo "<input type='submit' name='operacao' value='-'>";
echo "<input type='submit' name='operacao' value='*'>";
echo "<input type='submit' name='operacao' value='/'>";
echo "<input type='submit' name='igualdade' value='='>";
echo "</form>";
?>

Algum erro ou alguma sugestao é so falar.

 

VLW.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O de cima esta errado depois q fiz mais testes alguns deram errado. Mas eu ja ajeitei e adicionei o ponto , o crl(zera) e o ce(volta a operaçao)

e coloquei tudo em uma pagina so. ficava mais facil na hora de editar .

Index.php

<? 
class Calc {
public $visor;

//Metodo computar o numero digitado do primeiro conjunto de numeros
function numeroDigitado ($visor , $numero){
$visortemp =  $visor . $numero;
$this-> visor = $visortemp;
setcookie("Visor" , "$visortemp");
}
//Metodo guarda primeiro conjunto de números e guarda a operação feita
function operacao ($operacao){
setcookie("Operacao" , "$operacao");
}
//Metodo computar o numero digitado do segundo conjunto de numeros
function numeroDigitado2 ($visor , $numero){
$visortemp =  $visor . $numero;
$this-> visor = $visortemp;
setcookie("Visor2" , "$visortemp");
}
//Metodo que efetua o calculo e mostra o resultado no visor
function igualdade (){
$numero1 = $_COOKIE["Visor"];
$numero2 = $_COOKIE["Visor2"];
$operacao = $_COOKIE["Operacao"];
switch ($operacao){
case '+' :
$this-> visor = $numero1 + $numero2;
break;
case '-' :
$this-> visor = $numero1 - $numero2;
break;
case '*' :
$this-> visor = $numero1 * $numero2;
break;
case '/' :
$this-> visor = $numero1 / $numero2;
break;
}
setcookie("Visor");
setcookie("Visor2");
setcookie("Operacao");
}
//Metodo que zera o visor e os cookies
function zerarCookies(){
setcookie("Visor");
setcookie("Visor2");
setcookie("Operacao");
$this-> visor = null;
}
//Metodo que anula a operaçao e volta a mostrar o primeiro conjunto de numeros no visor
function ce(){
setcookie("Operacao");
$this-> visor = $_COOKIE["Visor"];
}
}
?>
<? 
$calc = new Calc();
if (isset($_POST["visor"]) and $_COOKIE["Operacao"] == null and ! isset($_POST["igualdade"])){
$calc-> numeroDigitado ($_POST["visor"],$_POST["numero"]);
} 
if (isset($_POST["operacao"])){
$calc-> operacao($_POST["operacao"]);
}
if ($_COOKIE["Operacao"] != null and ! isset($_POST["igualdade"])){
$calc-> numeroDigitado2 ($_COOKIE["Visor2"],$_POST["numero"]); 
}
if (isset($_POST["igualdade"])){
$calc-> igualdade ();
}
if (isset($_POST["ce"])){
$calc-> ce();
}
if (isset($_POST["crl"])){
$calc-> zerarCookies();
}
echo "<form name='calc' method='post' action='' >";
echo "<table border='1'>";
echo "<tr>";
echo "<td><input type='text' name='visor' value='$calc->visor' >";
echo "</tr><tr>";
echo "<td><input type='submit' name='ce' value='CE'>";
echo "<td><input type='submit' name='crl' value='Crl'>";
echo "<td><input type='submit' name='operacao' value='/'>";
echo "</tr><tr>";
echo "<td><input type='submit' name='numero' value='7'>";
echo "<td><input type='submit' name='numero' value='8'>";
echo "<td><input type='submit' name='numero' value='9'>";
echo "<td><input type='submit' name='operacao' value='*'>";
echo "</tr><tr>";
echo "<td><input type='submit' name='numero' value='4'>";
echo "<td><input type='submit' name='numero' value='5'>";
echo "<td><input type='submit' name='numero' value='6'>";
echo "<td><input type='submit' name='operacao' value='-'>";
echo "</tr><tr>";
echo "<td><input type='submit' name='numero' value='1'>";
echo "<td><input type='submit' name='numero' value='2'>";
echo "<td><input type='submit' name='numero' value='3'>";
echo "<td><input type='submit' name='operacao' value='+'>";
echo "</tr><tr>";
echo "<td><input type='submit' name='numero' value='0'>";
echo "<td><input type='submit' name='numero' value='.'>";
echo "<td><input type='submit' name='igualdade' value='='>";
echo "</tr></table>";
echo "</form>";
?>
estarei colocando ele na sessao laboratorio php.

 

fui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.