-
Posts
47 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que Joanderson Pereira postou
-
Java Rejeitar letras em int/double
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em Java/Android SDK
Nunca usei try e o catch (nem o Buffered e o throw new), só sei que se ele falha na execução de alguma instrução do bloco try ele pula para o bloco catch, se puder me explicar como o código funciona me ajudaria muito. Pelo que eu entendi por padrão é sempre ler como String, faz a validação para então converter para o formato desejado. Para o meu problema eu usei esse dois códigos aí embaixo, que deram para o gasto. public static boolean valida(String k) { boolean numero = k.matches("[0-9]+");//Se houver apenas números nesta String retorna true return numero; } public static boolean valida(String k) { boolean numero = k.matches("[0-9]+");//Se conter apenas números na String retorna true int pos = k.indexOf("-");//Se "-" é o primeiro caractere retorna 0 if (!numero && pos == 0)// Fiz algo parecido com relação ao ponto/vírgula para validar double numero = true; return numero; } -
Sou iniciante em Java, estou testando como fazer validação de dados, até o momento eu pegava o que o usuário digitava e jogava em switch, case, if e tralala... Agora me deparei com isso: " double b = scanner.nextDouble(); Ao executar esse tipo de linha de código o programa só prossegue se receber a informação do usuário; Caso seja fornecido caracteres não numéricos, o programa da pau (não é possível guardar letras nesse formato obviamente) e encerra, não sendo possível realizar a validação da mesma forma que eu vinha fazendo. Noto que existe um espaço para parâmetros em: scanner.nextDouble(); É possível realizar esse tipo de verificação com algum parâmetro? Seja qual for a forma, quero descobrir maneiras de impedir que variáveis numéricas tentem receber letras.
-
C++ C++ Enter to continue e Problemas com Loop
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
Resolveu todos os problemas relacionados ao loop. Declaro por tanto encerrado esse tópico. Agradeço aos envolvidos -
C++ C++ Enter to continue e Problemas com Loop
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
Tentei adicionar o <limits>, acontece que ele deu problema com o <windows.h>, ambos utilizam terminações como max e min em suas bibliotecas, para resolver precisava usar #infdef, #define, #endif (meio que definindo qual é qual). Coisas complicadas até demais para mim no momento, então optei por abandonar o windows.h. Só usava o windows.h por causa de Sleep, que por sua vez eu usava por não conseguir usar o sleep normal (vários post na internet estão desatualizados e para usuários com esse problema eles indicam usar o windows.h) no fim descobri que a forma correta no C++ é usleep. Agora vamos para o código: #include <iostream> #include <stdlib.h> // alterações no início e no fim #include <unistd.h> #include <time.h> #include <limits> using namespace std; int wait = 50000; int createZombie() { if (rand() % 67 > 65) { return 21; } if (rand() % 67 < 10) return 11; else return rand() %10 + 1; } int chance() { return rand() % 100; } int main() { srand(time(NULL)); char again; // game stats int playerAlive = true; int playerSkill = 9; int playerScore = 1; string playerName = ""; int zombieCount = 0; int zombiesKilled = 0; again = 'y'; int revive = false; char restart; int deathlyZombie = false; int hugeZombie = false; int skinnyZombie = false; while (again == 'y') { // title cout << "Welcome to Zombie War 1.0" << endl << "Press [ENTER] to start."; char temp = 'x'; while (temp != '\n') cin.get(temp); // player name cout << "Please enter your name: "; cin >> playerName; //ask how many zombies cout << "How many zombies do you wish to fight? "; cin >> zombieCount; cout << "Get ready to fight for your life, " << playerName << "!" << endl; // main game loop while (playerAlive && zombiesKilled < zombieCount) { // create a random zombie int zombieSkill = createZombie(); int luck = chance(); // battle sequence if (zombieSkill > 20) { cout << endl << "Here comes a deathly warrior zombie!!!" << endl; deathlyZombie = true; usleep (wait); } else { if (zombieSkill > 10 && zombieSkill < 20) { cout << endl << "Here comes a huge zombie!" << endl; hugeZombie = true; usleep (wait); } else { cout << endl << "Here comes zombie " << zombiesKilled + 1 << endl; skinnyZombie = true; usleep (wait); } } cout << "Fighting"; usleep (wait / 2); cout << "." ; usleep (wait / 2); cout << "." ; usleep (wait / 2); cout << "." << endl; usleep(wait); //balance if (playerSkill > 50 && luck < 50) { zombieSkill = zombieSkill + 40; playerSkill = playerSkill - 1; cout << "The battle is so hard..." << endl; usleep (2 * wait); } if (playerSkill > 100 && luck < 20) { zombieSkill = zombieSkill + 90; cout << "You keep fighting, but the end is coming..." << endl; usleep (2 * wait); } if (zombieCount > 100 && luck < 10) { playerSkill = playerSkill - 10; cout << "You suffer from accumulated fatigue..."; usleep (2 * wait); } // two if (hugeZombie == true || deathlyZombie == true) { if (luck > 85) { playerSkill = playerSkill +1; zombieSkill = zombieSkill -1; cout << endl << "The zombie tries to grab you."; usleep (wait); cout << endl << "You dodge and knock him down"<< endl; usleep (wait); } if ( luck > 10 && luck < 20 ) { cout << "You lost one of yours tooth!" << endl; usleep (wait); } } // one if (skinnyZombie == true) { //events if (luck < 5 && playerSkill > 12) { zombieSkill = zombieSkill * 2; zombieCount = zombieCount + 1; cout << "Two zombies appeared this time!!" << endl; usleep (wait); } if ( luck > 60 && playerSkill > 40) { playerSkill = playerSkill + 1; cout << "Your hatred for zombies gave you strength." << endl; usleep (wait); } if ( luck > 70 && zombieCount > 10 ) { playerSkill = playerSkill + 1; cout << "The pain you feel increases your focus!!" << endl; usleep (wait); } if ( luck < 3 ) { playerSkill = playerSkill - 2; cout << "The zombie goes into frenzy!!" << endl; usleep (wait); } if ( luck < 10 && zombieSkill > 8 ) { cout << "The zombie bit your ear" << endl; usleep (wait); } if ( playerSkill > zombieSkill ) { skinnyZombie = false; } } if (hugeZombie == true) { if (luck < 30 && playerScore < 50) { cout << endl << "He eats your arm!" << endl; playerSkill = playerSkill -3; usleep (wait); } if (luck > 85 && zombieSkill < 14 && playerScore > 5) { zombieSkill = zombieSkill - 4; cout << "You got a critical hit!!" << endl; usleep (wait); cout << "The zombie became blind!" << endl; usleep (wait); } if (luck > 80 && playerSkill > 20) { zombieSkill = zombieSkill - 2; cout << "You cut off the zombie's hands!!" << endl; usleep (wait); } if (luck < 10) { zombieSkill = zombieSkill + 2; cout << "The zombie kick your face!!" << endl; usleep (wait); } if (luck > 80 && playerSkill < 11) { zombieSkill = zombieSkill - 2; cout << "The zombie grabbet you!" << endl; usleep (wait); cout << "You broke free with a butt in the zombie." << endl; usleep (wait); } if (luck > 98) { playerSkill = playerSkill + 5; cout << "You found a rifle!!" << endl; usleep (wait); } if (playerSkill > zombieSkill) { hugeZombie = false; } } if (deathlyZombie == true) { if (luck < 20 ) { zombieSkill = zombieSkill + 2; playerSkill = playerSkill -2; cout << "The zombie break your leg!!" << endl; usleep (wait); cout << "He threw you on the ground like it was nothing" << endl; usleep (wait); } if (luck > 20 ) { zombieSkill = zombieSkill + 1; cout << "You got away with a blow." << endl; usleep (wait); cout << "He predicted yours movements!!" << endl; usleep (wait); } if (playerSkill > 20 && luck > 80) { playerSkill = playerSkill +2; cout << "You still have not given up hope."; usleep (wait); } if (playerSkill > zombieSkill) { cout << "The deathly warrior zombie will remember you" << endl; deathlyZombie = false; usleep (wait); } } // others if (luck > 50) { if (luck > 85 && zombieSkill < 30) { playerSkill = playerSkill + 1; cout << "You ate some cookies! " << endl; usleep (wait); } if (luck > 99 && playerSkill > 30) { revive = true; cout << "You found a mysterious red ring!!" << endl; usleep (3 * wait); } if (luck > 92 && zombieCount > 10) { zombieSkill = zombieSkill - 2; playerSkill = playerSkill + 1; cout << endl << "You cut off his leg!! " << endl; usleep (wait); cout << "You found some bandage!" << endl; usleep (wait); } } if (luck < 5) { zombieSkill = zombieSkill + 2; cout << "The zombie has a sword!" << endl; usleep (wait); } usleep (wait); //zombie killed the player if (playerSkill < zombieSkill) { playerAlive = false; cout << "You have died." << endl; usleep (5 * wait); if (revive == true) { playerAlive = true; cout << "The mysterious red ring revive you!!" << endl; usleep (wait); cout << "The ring became useless!!" << endl; usleep (wait); } } // player killed the zombie else { if (playerSkill - zombieSkill > 11){ cout << "You blew the zombie's head!"<< endl; playerScore = playerScore + 1; usleep (2 * wait); } if (playerSkill - zombieSkill > 7 && playerSkill - zombieSkill < 12) { cout << "You wasted the zombie!" << endl; playerScore = playerScore + 2; usleep (2 * wait); } if (playerSkill - zombieSkill > 5 && playerSkill - zombieSkill < 8) { cout << "You decapitated the zombie!" << endl; playerScore = playerScore + 3; usleep (2 * wait); } if (playerSkill - zombieSkill > 2 && playerSkill - zombieSkill < 6 ) { cout << "You killed the zombie!" << endl; playerScore = playerScore + 4; usleep (2 * wait); } if (playerSkill > zombieSkill && zombieSkill > 10 && zombieSkill <20) { playerScore = playerScore + 5; usleep (2 * wait); } if (playerSkill > zombieSkill && zombieSkill > 20) { playerScore = playerScore + 20; usleep (2 * wait); } else if (playerSkill - zombieSkill < 3){ cout << "You killed the zombie, but suffered injuries." << endl; playerSkill = playerSkill - 1; usleep (2 * wait); } zombiesKilled++; } cout << endl; usleep (wait * 10); } // end game if (zombiesKilled == zombieCount) { // victory cout << "You have survived the onslaught! \n" << "Congratulations " + playerName + "!" << endl; } else { // lost cout << "You did not survive the zombie war. \n" << "Try to come back stronger next time " + playerName + "!" << endl; } usleep (wait); cout << "Zombies killed: " << zombiesKilled << endl; cout << "Your power this round: " << playerSkill << endl; cout<< "Final score: " << playerScore << endl << endl; cout << "Do you wanna play again? y/n" << endl; cin >> restart; cin.ignore(numeric_limits<streamsize>::max(), '\n'); while ( restart != 'y' || restart != 'n' ) { if ( restart == 'n' ){ again = 'n'; cout << "Thanks for playing!!"; playerAlive = false; return 0; break; } if ( restart == 'y') { playerAlive = true; zombiesKilled = 0; zombieCount = 0; skinnyZombie = false; hugeZombie = false; deathlyZombie = false; cout << "Restart y on"; break; } else { cout << "Please insert a valid character! \n"; cin >> restart; cin.ignore(numeric_limits<streamsize>::max(), '\n'); } } return 0; } } "Porém se ao invés de apenas um caractere o usuário digitar (shampu) uma palavra de 6 letras, 6 mensagens serão exibidas na tela, uma para cada letra que não for 'y' ou 'n'. Como corrigir isso para que não importando o número de caracteres usuário digitar apenas uma mensagem de alerta seja exibida na tela?" Resolveu esse problema porém o loop não está mais funcionando... o if (restart == 'n') continua funcionando, porém o if (restart == 'y') apesar de aparentemente executar os códigos, não está continuando com o loop. -
C++ C++ Enter to continue e Problemas com Loop
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
Para mim você não foi muito claro em como usar o cin.ignore(), tive que pesquisar e descobri que era para adicionar ele logo abaixo do "cin >> restart;": cin >> restart; cin.ignore(); Resolveu o problema, agora outra coisa que quero alterar no código é : while ( restart != 'y' || restart != 'n' ) { if ( restart == 'n' ){ again = 'n'; cout << "Thanks for playing!!"; playerAlive = false; return 0; break; } if ( restart == 'y') { playerAlive = true; zombiesKilled = 0; zombieCount = 0; skinnyZombie = false; hugeZombie = false; deathlyZombie = false; break; } else { cout << "Please insert a valid character! \n"; cin >> restart; cin.ignore(); } } Quando o usuário digita qualquer tecla que não seja 'y' ou 'n' o else é ativado exibindo a mensagem "Please insert a valid character!". Porém se ao invés de apenas um caractere o usuário digitar (shampu) uma palavra de 6 letras, 6 mensagens serão exibidas na tela, uma para cada letra que não for 'y' ou 'n'. Como corrigir isso para que não importando o número de caracteres usuário digitar apenas uma mensagem de alerta seja exibida na tela? -
Sou iniciante em C++, fiz esse código a caráter de estudo, o programa pede o nome do usuário (playerName) e um número inteiro (zombieCount), e enquanto playerAlive for verdadeiro o zombieCount define o número de rodadas e em cada rodada dois números aleatórios (createZombie, chance) são gerados definindo texto que será mostrado para o usuário e realizando ou não alterações nos int (playerScore, playerSkill, zombieSkill, zombiesKilled). No fim são exibidos os int (zombiesKilled, playerScore) e a string playerName. E o programa pode reiniciar caso o usuário tecle 'y'. O porém é que quando o programa reinicia ele ignora o "Press [ENTER] to start.". Exibindo ele concatenado com o próximo texto: Press [ENTER] to start.Please enter your name:. Gostaria que quando o loop for feito o programa esperasse o usuário teclar o enter para prosseguir com a aplicação. Suspeito que quando o usuário tecla "y + ENTER]" para reiniciar o programa esse Enter vai parar no char temp, gerando esse erro. #include <iostream> #include <stdlib.h> #include <unistd.h> #include <time.h> #include <windows.h> using namespace std; int wait = 180; int createZombie() { if (rand() % 67 > 65) { return 21; } if (rand() % 67 < 10) return 11; else return rand() %10 + 1; } int chance() { return rand() % 100; } int main() { srand(time(NULL)); char again; // game stats int playerAlive = true; int playerSkill = 9; int playerScore = 1; string playerName = ""; int zombieCount = 0; int zombiesKilled = 0; again = 'y'; int revive = false; char restart; int deathlyZombie = false; int hugeZombie = false; int skinnyZombie = false; while (again == 'y') { // title cout << "Welcome to Zombie War 1.0" << endl << "Press [ENTER] to start."; char temp = 'x'; while (temp != '\n') cin.get(temp); // player name cout << "Please enter your name: "; cin >> playerName; //ask how many zombies cout << "How many zombies do you wish to fight? "; cin >> zombieCount; cout << "Get ready to fight for your life, " << playerName << "!" << endl; // main game loop while (playerAlive && zombiesKilled < zombieCount) { // create a random zombie int zombieSkill = createZombie(); int luck = chance(); // battle sequence if (zombieSkill > 20) { cout << endl << "Here comes a deathly warrior zombie!!!" << endl; deathlyZombie = true; Sleep (wait); } else { if (zombieSkill > 10 && zombieSkill < 20) { cout << endl << "Here comes a huge zombie!" << endl; hugeZombie = true; Sleep (wait); } else { cout << endl << "Here comes zombie " << zombiesKilled + 1 << endl; skinnyZombie = true; Sleep (wait); } } cout << "Fighting"; Sleep (wait / 2); cout << "." ; Sleep (wait / 2); cout << "." ; Sleep (wait / 2); cout << "." << endl; Sleep(2000); //balance if (playerSkill > 50 && luck < 50) { zombieSkill = zombieSkill + 40; playerSkill = playerSkill - 1; cout << "The battle is so hard..." << endl; Sleep (2 * wait); } if (playerSkill > 100 && luck < 20) { zombieSkill = zombieSkill + 90; cout << "You keep fighting, but the end is coming..." << endl; Sleep (2 * wait); } if (zombieCount > 100 && luck < 10) { playerSkill = playerSkill - 10; cout << "You suffer from accumulated fatigue..."; Sleep (2 * wait); } if (skinnyZombie == true) { //events if (luck < 5 && playerSkill > 12) { zombieSkill = zombieSkill * 2; zombieCount = zombieCount + 1; cout << "Two zombies appeared this time!!" << endl; Sleep (wait); } if ( luck > 60 && playerSkill > 40) { playerSkill = playerSkill + 1; cout << "Your hatred for zombies gave you strength." << endl; Sleep (wait); } if ( luck > 70 && zombieCount > 10 ) { playerSkill = playerSkill + 1; cout << "The pain you feel increases your focus!!" << endl; Sleep (wait); } if ( luck < 3 ) { playerSkill = playerSkill - 2; cout << "The zombie goes into frenzy!!" << endl; Sleep (wait); } if ( luck < 10 && zombieSkill > 8 ) { cout << "The zombie bit your ear" << endl; Sleep (wait); } if ( playerSkill > zombieSkill ) { skinnyZombie = false; } } if (hugeZombie == true) { if (luck < 30 && playerScore < 50) { cout << endl << "He eats your arm!" << endl; playerSkill = playerSkill -3; Sleep (wait); } if (luck > 85) { zombieSkill = zombieSkill - 4; cout << "You got a critical hit!!" << endl; Sleep (wait); cout << "The zombie became blind!" << endl; Sleep (wait); } if (luck > 80 && playerSkill > 20) { zombieSkill = zombieSkill - 2; cout << "You cut off the zombie's hands!!" << endl; Sleep (wait); } if (luck < 10) { zombieSkill = zombieSkill + 2; cout << "The zombie kick your face!!" << endl; Sleep (wait); } if (luck > 80 && playerSkill < 11) { zombieSkill = zombieSkill - 2; cout << "The zombie grabbet you!" << endl; Sleep (wait); cout << "You broke free with a butt in the zombie." << endl; Sleep (wait); } if (luck > 98) { playerSkill = playerSkill + 5; cout << "You found a rifle!!" << endl; Sleep (wait); } if (playerSkill > zombieSkill) { hugeZombie = false; } } if (deathlyZombie == true) { if (luck < 20 ) { zombieSkill = zombieSkill + 2; playerSkill = playerSkill -2; cout << "The zombie break your leg!!" << endl; Sleep (wait); cout << "He threw you on the ground like it was nothing" << endl; Sleep (wait); } if (luck > 20 ) { zombieSkill = zombieSkill + 1; cout << "You got away with a blow." << endl; Sleep (wait); cout << "He predicted yours movements!!" << endl; Sleep (wait); } if (playerSkill > 20 && luck > 80) { playerSkill = playerSkill +2; cout << "You still have not given up hope."; Sleep (wait); } if (playerSkill > zombieSkill) { cout << "The deathly warrior zombie will remember you" << endl; deathlyZombie = false; Sleep (wait); } } if (hugeZombie == true || deathlyZombie == true) { if (luck > 85) { playerSkill = playerSkill +1; zombieSkill = zombieSkill -1; cout << endl << "The zombie tries to grab you."; Sleep (wait); cout << endl << "You dodge and knock him down"<< endl; Sleep (wait); } if ( luck > 10 && luck < 20 ) { cout << "You lost one of yours tooth!" << endl; Sleep (wait); } } if (luck > 50) { if (luck > 85 && zombieSkill < 30) { playerSkill = playerSkill + 1; cout << "You ate some cookies! " << endl; Sleep (wait); } if (luck > 99 && playerSkill > 30) { revive = true; cout << "You found a mysterious red ring!!" << endl; Sleep (3 * wait); } if (luck > 92 && zombieCount > 10) { zombieSkill = zombieSkill - 2; playerSkill = playerSkill + 1; cout << endl << "You cut off his leg!! " << endl; Sleep (wait); cout << "You found some bandage!" << endl; Sleep (wait); } } if (luck < 5) { zombieSkill = zombieSkill + 2; cout << "The zombie has a sword!" << endl; Sleep (wait); } Sleep (wait); //zombie killed the player if (playerSkill < zombieSkill) { playerAlive = false; cout << "You have died." << endl; Sleep (5 * wait); if (revive == true) { playerAlive = true; cout << "The mysterious red ring revive you!!" << endl; Sleep (wait); cout << "The ring became useless!!" << endl; Sleep (wait); } } // player killed the zombie else { if (playerSkill - zombieSkill > 11){ cout << "You blew the zombie's head!"<< endl; playerScore = playerScore + 1; Sleep (2 * wait); } if (playerSkill - zombieSkill > 7 && playerSkill - zombieSkill < 12) { cout << "You wasted the zombie!" << endl; playerScore = playerScore + 2; Sleep (2 * wait); } if (playerSkill - zombieSkill > 5 && playerSkill - zombieSkill < { cout << "You decapitated the zombie!" << endl; playerScore = playerScore + 3; Sleep (2 * wait); } if (playerSkill - zombieSkill > 2 && playerSkill - zombieSkill < 6 ) { cout << "You killed the zombie!" << endl; playerScore = playerScore + 4; Sleep (2 * wait); } if (playerSkill > zombieSkill && zombieSkill > 10 && zombieSkill <20) { playerScore = playerScore + 5; Sleep (2 * wait); } if (playerSkill > zombieSkill && zombieSkill > 20) { playerScore = playerScore + 20; Sleep (2 * wait); } else if (playerSkill - zombieSkill < 3){ cout << "You killed the zombie, but suffered injuries." << endl; playerSkill = playerSkill - 1; Sleep (2 * wait); } zombiesKilled++; } cout << endl; Sleep (3000); } // end game if (zombiesKilled == zombieCount) { // victory cout << "You have survived the onslaught! \n" << "Congratulations " + playerName + "!" << endl; } else { // lost cout << "You did not survive the zombie war. \n" << "Try to come back stronger next time " + playerName + "!" << endl; } Sleep (wait); cout << "Zombies killed: " << zombiesKilled << endl; cout << "Your power this round: " << playerSkill << endl; cout<< "Final score: " << playerScore << endl << endl; cout << "Do you wanna play again? y/n" << endl; cin >> restart; while ( restart != 'y' || restart != 'n' ) { if ( restart == 'n' ){ again = 'n'; cout << "Thanks for playing!!"; playerAlive = false; return 0; break; } if ( restart == 'y') { playerAlive = true; zombiesKilled = 0; zombieCount = 0; skinnyZombie = false; hugeZombie = false; deathlyZombie = false; break; } else { cout << "Please insert a valid character! \n"; cin >> restart; } } } return 0; }
-
Sou iniciante em C++, fiz esse código a caráter de estudo, o programa pede o nome do usuário (playerName) e um número inteiro (zombieCount), e enquanto playerAlive for verdadeiro o zombieCount define o número de rodadas e em cada rodada dois números aleatórios (createZombie, chance) são gerados definindo texto que será mostrado para o usuário e realizando ou não alterações nos int (playerScore, playerSkill, zombieSkill, zombiesKilled). No fim são exibidos os int (zombiesKilled, playerScore) e a string playerName. E o programa pode reiniciar caso o usuário tecle 'y'. Enfim, gostaria de dividir esse código em algumas classes se possível, porém não sei por onde começar... Segue em anexo o código #include <iostream> #include <stdlib.h> #include <unistd.h> #include <time.h> #include <windows.h> using namespace std; int wait = 170; int createZombie() { if (rand() % 67 > 65) { return 21; } if (rand() % 67 < 10) return 11; else return rand() %10 + 1; } int chance() { return rand() % 100; } int main() { srand(time(NULL)); char again; // game stats int playerAlive = true; int playerSkill = 9; int playerScore = 1; string playerName = ""; int zombieCount = 0; int zombiesKilled = 0; again = 'y'; while (again == 'y') { // title cout << "Welcome to Zombie War 1.3" << endl << "Press [ENTER] to start."; cin.get(); // player name cout << "Please enter your name:"; cin >> playerName; //ask how many zombies cout << "How many zombies do you wish to fight? "; cin >> zombieCount; cout << "Get ready to fight for your life, " << playerName << "!" << endl; // main game loop while (playerAlive && zombiesKilled < zombieCount) { // create a random zombie int zombieSkill = createZombie(); int luck = chance(); // battle sequence if (zombieSkill > 20) { cout << endl << "Here comes a warrior deathly zombie!!!" << endl; Sleep (wait); } else { if (zombieSkill > 10 && zombieSkill < 20) { cout << endl << "Here comes a huge zombie!" << endl; Sleep (wait); } else { cout << endl << "Here comes zombie " << zombiesKilled + 1 << endl; Sleep (wait); } } cout << "Fighting..." << endl; Sleep(2000); //droping itens if (luck > 80) { playerSkill = playerSkill + 1; cout << "You ate some cookies! " << endl; Sleep (wait); } if (luck > 98 && zombieSkill > 10) { playerSkill = playerSkill + 5; cout << "You found a rifle!!" << endl; Sleep (wait); } if ( luck > 60 && zombieSkill < 5) { playerSkill = playerSkill + 1; cout << "Your hatred for zombies gave you strength." << endl; Sleep (wait); } if ( luck > 70 && zombieSkill < 11 && playerScore > 3) { playerSkill = playerSkill + 1; cout << "The pain you feel increases your focus!!" << endl; Sleep (wait); } if ( luck < 3 && zombieSkill < 6) { playerSkill = playerSkill - 2; cout << "The zombie goes into frenzy!!" << endl; Sleep (wait); } if (luck < 5) { zombieSkill = zombieSkill + 2; cout << "The zombie has a sword!" << endl; Sleep (wait); } if (luck > 91) { zombieSkill = zombieSkill - 2; playerSkill = playerSkill + 1; cout << endl << "You cut off his leg!! "; Sleep (wait); cout << "You found some bandage!" << endl; } if (zombieSkill > 10 && zombieSkill < 20 && luck < 35) { cout << endl << "He eats your arm!" << endl; playerSkill = playerSkill -1; Sleep (wait); } if (zombieSkill > 10 && zombieSkill < 20 && luck > 85) { playerSkill = playerSkill +1; zombieSkill = zombieSkill -1; cout << endl << "The zombie tries to grab you."; Sleep (wait); cout << endl << "You dodge and knock him down"<< endl; Sleep (wait); } if (zombieSkill > 11 && luck > 85) { zombieSkill = zombieSkill - 4; cout << "You got a critical hit!!" << endl; Sleep (wait); cout << "The zombie became blind!" << endl; Sleep (wait); } if (zombieSkill > 9 && luck > 80 && playerSkill < 11) { zombieSkill = zombieSkill - 2; cout << "The zombie grabbet you!" << endl; Sleep (wait); cout << "You broke free with a butt in the zombie." << endl; Sleep (wait); } if (zombieSkill > 20 && luck < 20 ) { zombieSkill = zombieSkill + 2; cout << "The zombie break your leg!!" << endl; Sleep (wait); cout << "He threw you on the ground like it was nothing" << endl; Sleep (wait); } Sleep (wait); //events if ( luck < 20 ) { cout << "You lost one of yours tooth!" << endl; Sleep (wait); } if ( luck < 10 && zombieSkill < 10) { cout << "The zombie bit your ear" << endl; Sleep (wait); } Sleep (wait); //zombie killed the player if (playerSkill < zombieSkill) { playerAlive = false; cout << "You have died." << endl; } // player killed the zombie else { if (playerSkill - zombieSkill > 11){ cout << "You blew the zombie's head!"<< endl; playerScore = playerScore + 1; Sleep (2 * wait); } if (playerSkill - zombieSkill > 7 && playerSkill - zombieSkill < 12) { cout << "You wasted the zombie!" << endl; playerScore = playerScore + 2; Sleep (2 * wait); } else if (playerSkill - zombieSkill > 5 && playerSkill - zombieSkill < { cout << "You decapitated the zombie!" << endl; playerScore = playerScore + 3; Sleep (2 * wait); } else if (playerSkill - zombieSkill > 0 && playerSkill - zombieSkill < 6 ) { cout << "You killed the zombie!" << endl; playerScore = playerScore + 4; Sleep (2 * wait); } else if (playerSkill > zombieSkill && zombieSkill > 10 && zombieSkill <20) { playerScore = playerScore + 5; Sleep (2 * wait); } else if (playerSkill > zombieSkill && zombieSkill > 20) { playerScore = playerScore + 20; Sleep (2 * wait); } else { cout << "You killed the zombie, but suffered injuries." << endl; playerSkill = playerSkill - 1; Sleep (2 * wait); } zombiesKilled++; } cout << endl; Sleep (3000); } // end game if (zombiesKilled == zombieCount) { // victory cout << "You have survived the onslaught! \n" << "Congratulations " + playerName + "!" << endl; } else { // lost cout << "You did not survive the zombie war. \n" << "Try to come back stronger next time " + playerName + "!" << endl; } Sleep (wait); cout << "Zombies killed: " << zombiesKilled << endl; cout<< "Final score: " << playerScore << endl << endl; cout << "Do you wanna play again? y/n" << endl; cin >> again; if ( again != 'y'){ break; } else { playerAlive = true; zombiesKilled = 0; zombieCount =0; } } return 0; } Game.rar
-
Java Comparação de strings em Java
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em Java/Android SDK
Resolveu o problema com maestria. -
Sou iniciante em Java, pretendo fazer um programa capaz de efetuar a adição/subtração/multiplicação/divisão de dois números fornecidos pelo usuário conforme a operação desejada. Na parte em que o usuário digita o operador, optei por guardá-lo em uma string para tentar validar com "if". // Quest1.java exibe um número que o usuário digitar na tela import java.util.Scanner; public class Quest2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Scanner scanner2 = new Scanner(System.in); Scanner scanner3 = new Scanner (System.in); //Entrada System.out.println("Seja Bem vindo ao Java Calculator"); System.out.println("Digite um número"); double n1 = scanner.nextDouble(); System.out.println("Digite outro número"); double n2 = scanner2.nextDouble(); //Processamento double r1 = n1 + n2; double r2 = n1 - n2; double r3 = n1 * n2; double r4 = n1 / n2; System.out.println("Agora digite um operador correspondente a operação desejada: " + "Adição +, Subtração -, Multiplicação *, Divisão /"); String op1 = scanner3.nextLine(); //Saída if ( op1 == "+") System.out.println("A soma deles é :" + r1 ); if (op1 == "/") System.out.println("O quociente deles é :" + r4 ); if (op1 == "*") System.out.println("O produto deles é :" + r3 ); if (op1 == "-") System.out.println("A subtração deles é :" + r2 ); else { System.out.println("Digite um operador válido!"); } Porém na saída apenas else é exibida, o programa não foi capaz de reconhecer que a string recebida estava igual. Alguém alma caridosa pode me socorrer?
-
C++ C++ Adicionando parâmetros e funções-membros à uma classe
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
Passei a usar o eclipse e o código rodou de boas. Fiz as alterações que precisava no main e no GradeBook.cpp, praticamente courseTutor é courseName com outro nome. Agradeço por ter sanado minhas dúvidas. Que Jesus esteja com você. Main // Figura 3.17: fig03_17.cpp // Cria e manipula um objeto GradeBook; ilustra a validação. using namespace std; #include <iostream> #include "GradeBook.hpp" // inclui a definição de classe GradeBook // a função main inicia a execução do programa int main() { // cria dois objetos GradeBook; // nome inicial de curso de gradeBook1 é muito longo GradeBook *gradeBook1 = new GradeBook( "CS101 Introduction to Programming in C++", "Matheo Ruan" ); GradeBook *gradeBook2 = new GradeBook( "CS102 C++ Data Structures","Michelangelo Lindo" ); gradeBook1->displayMessage(); gradeBook2->displayMessage(); // exibe courseName de cada GradeBook cout << "\ngradeBook1's initial course name is:" << gradeBook1->getCourseName() << "\ngradeBook2's initial course name is: " << gradeBook2->getCourseName() << "\ngradeBook1's initial tutor name is: " << gradeBook1->getCourseTutor() << "\ngradeBook2's initial tutor name is: " << gradeBook2->getCourseTutor() << endl; // modifica courseName do myGradeBook (com uma string de comprimento válido) gradeBook1->setCourseName( "CS101 C++ Programming" ); gradeBook2->setCourseTutor( "Michelangelo"); // exibe courseName de cada GradeBook cout << "\ngradeBook1's course name is: " << gradeBook1->getCourseName() << "\n This course is present by: " << gradeBook1->getCourseTutor() << "\ngradeBook2's course name is: " << gradeBook2->getCourseName() << "\n This course is present by: " << gradeBook2->getCourseTutor() << endl; delete gradeBook1; delete gradeBook2; return 0; // indica terminação bem-sucedida } // fim de main // Figura 3.16: GradeBook.cpp // Implementações das definições de função-membro de GradeBook. // A função setCourseName realiza a validação. #include <iostream> #include <string> using std::cout; using std::endl; #include "GradeBook.hpp" // inclui a definição de classe GradeBook // construtor inicializa courseName com String fornecido como argumento GradeBook::GradeBook() { } GradeBook::GradeBook ( string name, string tutor ) // fim do construtor GradeBook : courseName (name), courseTutor (tutor) { setCourseName (name); setCourseTutor (tutor); } // função que configura o nome do curso; // assegura que o nome do curso tenha no máximo 25 caracteres void GradeBook::setCourseName( string name ) { if ( name.length() <= 25 ) // se o nome tiver 25 ou menos caracteres this->courseName = name; // armazena o nome do curso no objeto if ( name.length() > 25 ) // se o nome tiver mais de 25 caracteres { // configura courseName como os primeiros 25 caracteres do parâmetro name this->courseName = name.substr( 0, 25 ); // inicia em 0, comprimento de 25 cout << "Name \'" << name << "\" exceeds maximum length (25).\n" << "Limiting courseName to first 25 characters.\n" << endl; } // fim do if } // fim da função setCourseName // função para obter o nome do curso string GradeBook::getCourseName() { return this->courseName; // retorna courseName do objeto } // fim da função getCourseName void GradeBook::setCourseTutor (string tutor) { if (tutor.length() <= 15 ) this->courseTutor = tutor; if (tutor.length() > 15 ) { this->courseTutor = tutor.substr(0 , 15); cout << endl; cout << "Name \"" << tutor << "\" exceeds maximum length 15.\n" << "Limiting courseTutor to first 15 characters. \n" << endl; } } string GradeBook::getCourseTutor() { return courseTutor; } void GradeBook::displayMessage() { // chama getCourseName para obter o courseName cout << "Welcome to the grade book for\n" << getCourseName() << "!" << endl; // exibe uma mensagem de boas-vindas para o usuário GradeBook // chama getCourseTutor para obter o courseTutor cout << "This course is presented by: "<< getCourseTutor() << "!" << endl; }; // fim da função displayMessage // Figura 3.15: GradeBook.hpp // Definição de classe GradeBook apresenta a interface public da // classe. Definições de função-membro aparecem em GradeBook.cpp. #pragma once #include <string> // o programa utiliza classe de string padrão do C++ using std::string; // definição da classe GradeBook class GradeBook { public: GradeBook( ); // construtor que inicializa um objeto GradeBook GradeBook (string name, string tutor); void setCourseName( string name ); // função que configura o nome do curso void setCourseTutor( string tutor ); string getCourseName(); // função que obtém o nome do curso string getCourseTutor(); void displayMessage(); // função que exibe uma mensagem de boas-vindas private: string courseName; // nome do curso para esse GradeBook string courseTutor; string name; string tutor; }; // fim da classe GradeBook -
C++ C++ Adicionando parâmetros e funções-membros à uma classe
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
Desculpe a demora, agradeço a ajuda, fiquei tão preocupado em adiciona novos parâmetros que esqueci de chama-los na função main, o código foi bastante explicador para mim, gostaria de pedir explicações sobre o uso de "->" ao invés do "." e sobre a declaração do construtor no reader. O código não rodou no Dev c++ apresentando o erro :C:\Users\Gatão\Documents\collect2.exe [Error] ld returned 1 exit status -
C++ C++ Adicionando parâmetros e funções-membros à uma classe
Joanderson Pereira postou um tópico em C/C#/C++
Aqui temos a classe GradeBook. 1- Ela possui a string courseName e as funções-membros setCourseName, getCourseName e displayMessage (que permitem, respectivamente, configurar o nome do curso, obter o nome do curso e exibir uma mensagem de boas-vindas). 2- O objetivo é criar a string courseTutor e as funções-membros setCourseTutor, getCourseTutor (que permitem configurar o nome do instrutor e obter o nome do instrutor). E isso dentro da mesma classe GradeBook. Com certeza tem muitos erros no código em relação a declaração de parâmetros e algumas outras coisas, sinceramente já não tenho mais cabeça para isso. O código da maneira que está agora apresenta basicamente os seguintes erros: ‘getCourseTutor’ was not declared in this scope */ isso para quase class ‘GradeBook’ does not have any field named ‘courseTutor’ todas as ‘std::string GradeBook::courseTutor’ conflicts with a previous declaration funções-membros \* O código estava funcionando apenas com as funções 1. Tentei adicionar as funções 2 seguindo o mesmo padrão e não deu muito certo. E aí está a criança: // Figura 3.16: GradeBook.cpp // Implementações das definições de função-membro de GradeBook. // A função setCourseName realiza a validação. #include <iostream> using std::cout; using std::endl; #include "GradeBook.hpp" // inclui a definição de classe GradeBook // construtor inicializa courseName com String fornecido como argumento GradeBook::GradeBook( string name, string tutor ) : courseName( name ), courseTutor( tutor ) { setCourseName( name ); // valida e armazena courseName setCourseTutor( tutor ); } // fim do construtor GradeBook // função que configura o nome do curso; // assegura que o nome do curso tenha no máximo 25 caracteres void GradeBook::setCourseName( string name ) { if ( name.length() <= 25 ) // se o nome tiver 25 ou menos caracteres courseName = name; // armazena o nome do curso no objeto if ( name.length() > 25 ) // se o nome tiver mais de 25 caracteres { // configura courseName como os primeiros 25 caracteres do parâmetro name courseName = name.substr( 0, 25 ); // inicia em 0, comprimento de 25 cout << "Name \'" << name << "\" exceeds maximum length (25).\n" << "Limiting courseName to first 25 characters.\n" << endl; } // fim do if } // fim da função setCourseName // função para obter o nome do curso string GradeBook::getCourseName() { return courseName; // retorna courseName do objeto } // fim da função getCourseName // função que configura o nome do instrutor; // assegura que o nome do curso tenha no máximo 25 caracteres void GradeBook::setCourseTutor( string tutor ) { if ( tutor.length() <= 25 ) // se o nome tiver 25 ou menos caracteres courseName = name; // armazena o nome do curso no objeto if ( tutor.length() > 25 ) // se o nome tiver mais de 25 caracteres { // configura courseTutor como os primeiros 25 caracteres do parâmetro name courseTutor = tutor.substr( 0, 25 ); // inicia em 0, comprimento de 25 cout << "Name \'" << tutor << "\" exceeds maximum length (25).\n" << "Limiting courseName to first 25 characters.\n" << endl; } // fim do if } // fim da função setCourseTutor // função para obter o nome do instrutor string GradeBook::getCourseTutor() { return courseTutor; // retorna courseTutor do objeto } // fim da função getCourseTutor // exibe uma mensagem de boas-vindas para o usuário GradeBook void GradeBook::displayMessage() { // chama getCourseName para obter o courseName cout << "Welcome to the grade book for\n" << getCourseName() << "!" << endl; // exibe uma mensagem de boas-vindas para o usuário GradeBook // chama getCourseTutor para obter o courseTutor cout << "This course is presented by: "<< getCourseTutor() << "!" << endl; }; // fim da função displayMessage // Figura 3.15: GradeBook.hpp // Definição de classe GradeBook apresenta a interface public da // classe. Definições de função-membro aparecem em GradeBook.cpp. #include <string> // o programa utiliza classe de string padrão do C++ using std::string; // definição da classe GradeBook class GradeBook { public: GradeBook( string name, string tutor ); // construtor que inicializa um objeto GradeBook : courseName( name ), courseTutor( tutor ) void setCourseName( courseName ); // função que configura o nome do curso string getCourseName(); // função que obtém o nome do curso void setCourseTutor ( courseTutor ); string getCouseTutor (); void displayMessage(); // função que exibe uma mensagem de boas-vindas private: string courseName; // nome do curso para esse GradeBook string courseTutor; }; // fim da classe GradeBook // Figura 3.17: main.cpp // Cria e manipula um objeto GradeBook; ilustra a validação. #include <iostream> using std::cout; using std::endl; #include "GradeBook.hpp" // inclui a definição de classe GradeBook // a função main inicia a execução do programa int main() { // cria dois objetos GradeBook; // nome inicial de curso de gradeBook1 é muito longo GradeBook gradeBook1( "CS101 Introduction to Programming in C++" ); GradeBook gradeBook2( "CS102 C++ Data Structures" ); // exibe courseName de cada GradeBook cout << "gradeBook1's initial course name is:" << gradeBook1.getCourseName() << "\ngradeBook2’s initial course name is: " << gradeBook2.getCourseName() << endl; // modifica courseName do myGradeBook (com uma string de comprimento válido) gradeBook1.setCourseName( "CS101 C++ Programming" ); // exibe courseName de cada GradeBook cout << "\ngradeBook1's course name is: " << gradeBook1.getCourseName() << "\ngradeBook2's course name is: " << gradeBook2.getCourseName() << endl; return 0; // indica terminação bem-sucedida } // fim de main -
C++ C++ Deitel >> Exemplo incorreto?
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
O problema todo era não saber usar o Dev C++, antes eu usava o Gdb online, mas justamente por não saber como implementar arquivos no site (Hoje eu sei) que eu baixei o Dev C++. Segui o seu "tutorial" de como criar projetos no Dev C++ e tudo funcionou nos conformes. No fim o exemplo do livro "C++ Como Programar - 5ª edição -" da Deitel não está incorreto, a estratégia de ensino utilizada é mostrar um código bruto e posteriormente o otimizar. -
C++ C++ Deitel >> Exemplo incorreto?
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
Se linkar o GradeBook.cpp (em qualquer um dos casos) o arquivo de cabeçalho perde o sentido, isso tudo é justamente para que o cliente possa utilizar das funções-membros de GradeBook sem saber como são implementadas. O Dev está apenas compilando, clico em Executar ou Compilar e Executar, mas nada acontece. Quando tentei compilar incluindo suas modificações o GradeBook.cpp provavelmente não carregou o GradeBook.hpp e tive que adicionar #include <string> using namespace std; a ele. Agora aparece esta mensagem de erro quando tento compilar/executar o arquivo. -
C++ C++ Deitel >> Exemplo incorreto?
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
Usando o Gbd online, o código inicial (o primeiro lá de cima com #pragma once) roda perfeitamente, no Dev C++ os arquivos não estavam reunidos em um projeto, quando eu os reuni não houve problemas com implementação, a compilação aponta 0 erros. Porém não consigo executar o projeto no Dev C++, vou no arquivo que possui a função main (fig03_17.cpp) clico em executar (F10) e nada acontece. Esse agora é um simples problema de uso da plataforma, pode responder como devo proceder? -
C++ C++ Deitel >> Exemplo incorreto?
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
O problema realmente está no compilador, eu reexecutei o código inicial e ele funcionou também, porém ao compilar "teclando f9" ele começa a demonstrar os mesmos erros de antes e se recusa a rodar o código novamente. Estou usando o Dev C++, tem alguma maneira de o fazer ignora erros, ou algum outro compilador que ignore? -
C++ C++ Deitel >> Exemplo incorreto?
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
Funcionou, pode me explicar porque não rodou antes e qual é a função do #pragma once? -
C++ C++ Deitel >> Exemplo incorreto?
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
Ainda estou na batalha para rodar essa classe. adicionei ao fig03_17 o #include "GradeBook.cpp", creio que resolveu os problemas de implementação de arquivos com o dev c++. Porém a classe continua dando erro [Error: redefition of "class of GradeBook"] Mesmo salvando o Gradebook.h como header file mas continua sem rodar. Percebi que ele estava salvo como arquivo C, então salvei ele com a extensão .hpp Porém o mesmo erro persiste. _________________________________________ // Figura 3.17: fig03_17.cpp // Cria e manipula um objeto GradeBook; ilustra a validação. #include <iostream> using std::cout; using std::endl; #include "GradeBook.cpp" #include "GradeBook.hpp" // inclui a definição de classe GradeBook // a função main inicia a execução do programa int main() { // cria dois objetos GradeBook; // nome inicial de curso de gradeBook1 é muito longo GradeBook gradeBook1( "CS101 Introduction to Programming in C++" ); GradeBook gradeBook2( "CS102 C++ Data Structures" ); // exibe courseName de cada GradeBook cout << "gradeBook1's initial course name is: " << gradeBook1.getCourseName() << "\ngradeBook2's initial course name is: " << gradeBook2.getCourseName() << endl; // modifica courseName do myGradeBook (com uma string de comprimento válido) gradeBook1.setCourseName( "CS101 C++ Programming" ); // exibe courseName de cada GradeBook cout << "\ngradeBook1’s course name is: " << gradeBook1.getCourseName() << "\ngradeBook2's course name is: " << gradeBook2.getCourseName() << endl; return 0; // indica terminação bem-sucedida } // fim de main ___________________________________________________________ // Figura 3.16: GradeBook.cpp // Implementações das definições de função-membro de GradeBook. // A função setCourseName realiza a validação. #include <iostream> using std::cout; using std::endl; #include "GradeBook.hpp" // inclui a definição de classe GradeBook // construtor inicializa courseName com String fornecido como argumento GradeBook::GradeBook( string name ) { setCourseName( name ); // valida e armazena courseName } // fim do construtor GradeBook // função que configura o nome do curso; // assegura que o nome do curso tenha no máximo 25 caracteres void GradeBook::setCourseName( string name ) { if ( name.length() <= 25 ) // se o nome tiver 25 ou menos caracteres courseName = name; // armazena o nome do curso no objeto if ( name.length() > 25 ) // se o nome tiver mais de 25 caracteres { // configura courseName como os primeiros 25 caracteres do parâmetro name courseName = name.substr( 0, 25 ); // inicia em 0, comprimento de 25 cout << "Name \"" << name << "\" exceeds maximum length (25).\n" << "Limiting courseName to first 25 characters.\n" << endl; } // fim do if } // fim da função setCourseName // função para obter o nome do curso string GradeBook::getCourseName() { return courseName; // retorna courseName do objeto } // fim da função getCourseName // exibe uma mensagem de boas-vindas para o usuário GradeBook void GradeBook::displayMessage() { // chama getCourseName para obter o courseName cout << "Welcome to the grade book for\n" << getCourseName() << "!" << endl; } // fim da função displayMessage _________________________________________________ // Figura 3.15: GradeBook.hpp // Definição de classe GradeBook apresenta a interface public da // classe. Definições de função-membro aparecem em GradeBook.cpp. #include <string> // o programa utiliza classe de string padrão do C++ using std::string; // definição da classe GradeBook class GradeBook { public: GradeBook( string ); // construtor que inicializa um objeto GradeBook void setCourseName( string ); // função que configura o nome do curso string getCourseName(); // função que obtém o nome do curso void displayMessage(); // função que exibe uma mensagem de boas-vindas private: string courseName; // nome do curso para esse GradeBook }; // fim da classe GradeBook _____________________________________ -
C++ C++ Deitel >> Exemplo incorreto?
Joanderson Pereira respondeu ao tópico de Joanderson Pereira em C/C#/C++
Obrigado pela ajuda, eu descobri outro erro que ainda está me impedindo de executar a classe. O arquivo GradeBook.h está salvo como cpp, acredito que isso não esteja permitindo utilizar ele como header. Como posso salvá-lo como header? -
Estou estudando programação na linguagem C++ seguindo o livro "C++ Como programar 5° edição" da Deitel, até aí tudo bem. Na introdução de separando a interface da implementação, copiei de acordo com o exemplo que o livro fornece, porém o compilador não está rodando o programa, ele acusa os seguintes erros: Em GradeBook > 23 14 C:\Users\User\Downloads\Códigos Fontes\GradeBook.cpp [Error] 'std::string' has no member named 'lenght'; Em GradeBook.h > C:\Users\User\Downloads\Códigos Fontes\collect2.exe [Error] ld returned 1 exit status; Em main > C:\Users\User\AppData\Local\Temp\ccTQ0CPX.o main.cpp:(.text+0x48): undefined reference to `GradeBook::GradeBook(std::string)' esse utimo erro acontece em todas as funções-membro do objeto. Estou usando o Dev-C++ 5.11 _________________________ // Figura 3.15: GradeBook.h // Definição da classe GradeBook apresenta a interface public da // classe. Definições de função-membro aparecem em GradeBook.cpp. #include <string> // a classe GradeBook utiliza a classe de string padrão C++ using std::string; // definição da classe GradeBook class GradeBook { public: GradeBook ( string ); // construtor que inicializa courseName void setCourseName ( string ); // função que configura o nome do curso string getCourseName(); // função que obtém o nome do curso void displayMessage(); // função que exibe uma mensagem de boas-vindas private: string courseName; // nome do curso para esse GradeBook }; // fim da classe GradeBook _________________________________ // Figura 3.16: GradeBook.cpp // Implementações das definições da função-membro de GradeBook. // A função setCourseName realiza a validação. #include <iostream> using std::cout; using std::endl; #include "GradeBook.h.cpp"// inclui a definição da classe GradeBook // o construtor inicializa courseName com a string fornecida como argumento GradeBook::GradeBook ( string name ) { setCourseName ( name ); // chama a função set para inicializar courseName } // fim do construtor Gradebook // função para configurar o nome do curso // assegura que o nome do curso tenha no máximo 25 caracteres void GradeBook::setCourseName ( string name ) { if ( name.length() <= 25 ) // se o nome tiver 25 ou menos caracteres courseName = name; // armazena o nome do curso no objeto if ( name.lenght() > 25 ) // se o nome tiver mais que 25 caracteres { //configura courseName como os primeiros 25 caracteres do parâmetro name courseName = name.substr( 0, 25 ); // inicia em 0, comprimento de 25 cout << "Name\"" << name <<"\" exceeds maximum length (25).\n" << "Limiting courseName to first 25 characters.\n" << endl; } // fim do if } // fim da função setCourseName // função para obter o nome do curso string GradeBook::getCourseName() { return courseName; // retorna courseName do objeto } // fim da função getCourseName // exibe uma mensagem de boas-vindas para o usuário Gradebook void GradeBook::displayMessage() { // chama getCourseName para obter o courseName cout << "Welcome to the grade book for\n" << getCourseName() << "!" << endl; } // fim da função displayMessage ________________________________________________ // Figura 3.17: fig03_17.cpp // Cria e manipula um objeto GradeBook; ilustra a validação #include <iostream> using std::cout; using std::endl; #include "GradeBook.h.cpp" // inclui a definição GradeBook // a função main inicia a execução do programa int main () { // cria dois objetos GradeBook; // nome inicial de curso gradeBook1 é muito longo GradeBook gradeBook1("CS101 Introduction to Programming in C++"); GradeBook gradeBook2("CS102 Data structures in C++"); // exibe valor inicial de courseName para cada gradeBook cout << "gradeBook1 created for course: " << gradeBook1.getCourseName() << "\ngradeBook2 created for course: " << gradeBook2.getCourseName() << endl; // modifica courseName do myGradeBook (com uma string de comprimento válido) gradeBook1.setCourseName( "CS101 C++ Programming" ); //exibe courseName de cada GradeBook cout << "\ngradeBook1's course name is: " << gradeBook1.getCourseName() << "\ngradeBook2's course name is: " << gradeBook2.getCourseName() << endl; return 0; // indica terminação bem-sucedida } // fim de main
-
É o seguinte: Comprei um computador novo: I5; Gtx 1050; 8 ram; 1tb; "Não possuo indicativo da fonte dele" Mas ele veio sem um estabilizador (não era incluída na compra), mas veio com uma "Fonte adaptador"que é um algo que desconheço a funcionalidade, se assemelha com um carregador de celular e possui essas especificações: "LG AC ADAPTOR Model: LCAP43-B I/P: 100-240 V ~ 50-60 Hz 0.8 A O/P: 19V --- 0.84 A Deficiência level VI". Agora as perguntas: O que é e para quê serve a fonte adaptor? Precisarei comprar um estabilizador? Se sim, possuo um antigo (baratinho) que liga um PC mais fraco "i3, 4 ram, 1tb" poderia usá-lo?
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais