- Lembrando que ela olha os trabalhos, se tiver igual, todos serão zerados. Ou seja, troca ao menos o nome das variáveis!!! - Citação :
- /*1) O programa abaixo esta na linguagem C++ e já teve o seu código corrigido.
Será mesmo? Implemente este programa no compilador e teste para ver se funciona corretamente.
Depois utilize as técnicas de modularização para utilizar funções e/ou procedimentos em sua solução.
Utilize uma função e/ou procedimento para resolver cada item do menu de opções.*/
2) Aumente o menu do programa criando uma opção para imprimir os
elementos do vetor e uma outra opção que permita que o saldo médio de todas as contas seja calculado e visualizado.
O novo menu deve ficar como mostrado abaixo:
Menu de opções:
1 – Cadastrar contas
2 – Visualizar todas as contas de determinado cliente.
3 – Excluir a conta com menor saldo (supondo a não-existência de saldos iguais)
4 – Imprimir informações de todas as contas
5 – Calcular o saldo médio das contas
6 – Sair
#include <iostream>
#include <string>
using namespace std;
struct dados{
int num ;
string nome;
float saldo ;
};
void cadastro_conta (dados d[]) // cadastra conta
{
int x = 0;
for (x = 0; x <15; x ++){
cout <<"\n Insira o nome do cliente: ";
fflush (stdin);
getline (cin, d[x].nome);
cout<<"\n Insira o numero da conta do cliente: ";
cin >> d[x].num;
cout<<"\n Insira o saldo do cliente: ";
cin >> d[x].saldo;}
system ("cls");
}
void pesquisa_conta (dados d[]) // pesquisar conta por nome
{
string nome;
cout<<"\n Insira o nome do cliente a ser pesquisado: ";
fflush (stdin);
getline (cin,nome);
for ( int i = 0; i<15; i++){
int x = 0;
while (nome == d[x].nome)
{
cout<<"\n";
cout <<"cliente"<< d[x].nome<<" "<<endl;
cout <<"conta"<< d[x].num<<" "<<endl;
cout <<"saldo"<< d[x].saldo<<" "<<endl;
x++;
}
}
system("pause");
system ("cls");
}
void apagar_conta (dados d []) // apagar conta registrada
{
int x ;
for (x = 0; x < 15; x++)
{
float saldo_menor = d[x].saldo;
if (d[x].saldo < saldo_menor)
{
d[x].saldo = saldo_menor;
x = 0;
}
}
cout<<"\n Conta apagada com sucesso.";
for (x = 0; x < 15; x++) {
d[x].num = d[x+1].num;
d[x].nome == d[x+1].nome;
d[x].saldo = d[x+1].saldo;
}
system("pause");
}
void exibe_conta (dados d[]) // exibe as contas, porem esta com bug, não sei porque exibe lixo eletronico.
{
int x = 0;
for (x = 0; x < 15; x++){
cout<<"\nConta: "<<d[x].num<<" "<<
cout<<"\nNome: "<<d[x].nome<<" "<<
cout<<"\nSaldo: "<<d[x].saldo<<" "<<endl;
}
system("pause");
}
void media_conta (dados d[]) // calcula media de todas as contas
{
int x;
float saldo = 0, media = 0;
for (x = 0; x < 15; x++)
{
saldo = saldo + d[x].saldo;
media = saldo/15;
}
cout <<" "<<"A media das contas e igual a: "<< media<<endl;
system("pause");
}
void exibe_menu (dados d[]){ // exibe menu
int op = 0;
do {
cout << "\nMenu de Opçoes";
cout << "\n1 - Cadastrar contas";
cout << "\n2 - Visualizar contas de um determinado cliente";
cout << "\n3 - Excluir conta de menor saldo";
cout << "\n4 - Imprimir informacoes de todas as contas";
cout << "\n5 - Calcular o saldo medio das contas";
cout << "\n6 - Sair";
cout << "\nDigite sua opçao ";
cin >> op ;
system ("cls");
if (op == 1)
{
cadastro_conta(d);
op = 0;
}
if (op == 2)
{
pesquisa_conta(d);
op = 0;
}
if (op == 3)
{
apagar_conta(d);
op = 0;
}
if (op == 4)
{
exibe_conta(d);
op = 0;
system ("cls");
}
if (op == 5)
{
media_conta(d);
op = 0;
}
}while(op!=6);
}
void limpa_cadastro(dados d[]) // void criada para zerar as variaves, porem não funcionou e ainda exibe lixo eletronico
{
int x = 0;
int null = 0;
for (x = 0; x < 15; x++)
{
d[x].nome = null;
d[x].num = null;
}
}
void main (int op = 0)
{
const int x = 15;
dados d[x];
limpa_cadastro(d);
exibe_menu(d);
system ("pause");
}