Você está na página 1de 10

Engenharia Electrotécnica e Computadores

Algoritmia e Programação

Simulação de Funcionamento de Banco

Realizado por:

1070309 Samuel Ferreira

1070212 Daniel Batista

24/01/2010
Descrição das Funcionalidades

Este projecto, tem como objectivo a criação de um programa em C++,


que simule o funcionamento de uma instituição bancária.

Este programa permite, criar várias contas bancárias, onde será pedido
ao utilizador os dados necessários para a sua identificação e possibilitar um
acesso restrito e confidencial aos respectivos titulares.

O utilizador tem de escolher entre uma conta a prazo ou à ordem.


A conta a prazo é aplicada uma taxa de juro, que é negociada na altura
da criação e não permite levantar mais do que 40% do valor depositado
inicialmente no prazo de um ano desde a sua criação. Os juros vencem
anualmente.
A conta à ordem não tem juros associados mas pode ser movimentada
em qualquer altura.
Independente do tipo, a conta tem pelo menos, os seguintes dados:

I. Titular (es);
II. Saldo;
III. Tipo;
IV. Taxa de juro associada (no caso de conta a prazo);
V. Data de abertura;
VI. No caso das contas à ordem:

a) Números de cartões de débito associados e últimos 10 movimentos


de cada um dos cartões.

b) Números de cartões de crédito associados e todos os movimentos


desde a última vez que o saldo em dívida no cartão de crédito foi
integralmente pago.
Este programa para além de criar uma conta, permite ao utilizador fazer
várias outras operações, tais como :

I. Alterar os dados da conta;


II. Eliminar dados/conta;
III. Fazer levantamentos;
IV. Fazer depósitos;
V. Listar os dados da conta.
Código Fonte

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct data{
int dia;
int mes;
int ano;
}data_abertura;
typedef struct cliente{
char nome [30];
char nome2 [30];
char nome3 [30];
char nome4 [30];
float saldo;
int tipo;
int ta_juro;
char referencia[30];
data_abertura data;
}cliente_conta;

typedef struct moves{


int tipo;
int cartao_ordem[10];

}moves_cartoes;

void criar_conta(){
cliente_conta cliente[3];
int j=1,i,num,deb,dfd,mfd,afd,cred,dfc,mfc,afc;
do{
printf("Insira o número de titulares até um máximo de 4.");
scanf("%d",&num);
}while (num<0 || num>4);

if(j=1||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome);
j++;
}
if(j=2||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome2);
j++;
}
if(j=3||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome3);
j++;
}
if(j=4||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome4);
j++;
}
printf("Insira o saldo inicial.");
scanf("%d",&cliente[i].saldo);
do{
printf("Insira 1 para conta a prazo.");
printf("Insira 2 para conta 'a ordem");
scanf("%d",&cliente[i].tipo);
}while (cliente[i].tipo!=1 || cliente[i].tipo!=2);
if (cliente[i].tipo==1){
printf("Insira a taxa de juro associada em percentagem.");
scanf("%d",&cliente[i].ta_juro);
}
printf("Insira a referencia da conta.");
scanf("%d",&cliente[i].referencia);
printf("Insira o dia.");
scanf("%d",&cliente[i].data.dia);
printf("Insira o mes.");
scanf("%d",&cliente[i].data.mes);
printf("Insira o ano.");
scanf("%d",&cliente[i].data.ano);
if (cliente[i].tipo==2){
do{
printf("Insira o numero de cartoes de debito");
scanf("%d",&deb);
}while (deb<0 || deb>4);
printf("Insira o dia de fim da validade");
scanf("%d",&dfd);
printf("Insira o mes de fim da validade");
scanf("%d",&mfd);
printf("Insira o ano de fim da validade");
scanf("%d",&afd);
do{
printf("Insira o numero de cartoes de credito");
scanf("%d",&cred);
}while (cred<0 || cred>4);
printf("Insira o dia de fim da validade");
scanf("%d",&dfc);
printf("Insira o mes de fim da validade");
scanf("%d",&mfc);
printf("Insira o ano de fim da validade");
scanf("%d",&afc);
}

void modificar_conta (criar_cliente){


int j=1;
do{
printf("Insira o número de titulares até um máximo de 4.");
scanf("%d",&num);
}while (num<0 || num>4);

if(j=1||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome);
j++;
}
if(j=2||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome2);
j++;
}
if(j=3||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome3);
j++;
}
if(j=4||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome4);
j++;
}
printf("Insira o saldo inicial.");
scanf("%d",&cliente[i].saldo);
do{
printf("Insira 1 para conta a prazo.");
printf("Insira 2 para conta 'a ordem");
scanf("%d",& cliente[i].tipo);
}while (cliente[i].tipo!=1 || cliente[i].tipo!=2);
if (cliente[i].tipo==1){
printf("Insira a taxa de juro associada em percentagem.");
scanf("%d",&cliente[i].ta_juro);
}
printf("Insira a referencia da conta.");
scanf("%d",&cliente[i].referencia);
printf("Insira o dia.");
scanf("%d",&cliente[i].data.dia);
printf("Insira o mes.");
scanf("%d",&cliente[i].data.mes);
printf("Insira o ano.");
scanf("%d",&cliente[i].data.ano);
if (cliente[i].tipo==2){
do{
printf("Insira o numero de cartoes de debito");
scanf("%d",&deb);
}while (deb<0 || deb>4);
printf("Insira o dia de fim da validade");
scanf("%d",&dfd);
printf("Insira o mes de fim da validade");
scanf("%d",&mfd);
printf("Insira o ano de fim da validade");
scanf("%d",&afd);
do{
printf("Insira o numero de cartoes de credito");
scanf("%d",&cred);
}while (cred<0 || cred>4);
printf("Insira o dia de fim da validade");
scanf("%d",&dfc);
printf("Insira o mes de fim da validade");
scanf("%d",&mfc);
printf("Insira o ano de fim da validade");
scanf("%d",&afc);
}

int verificar_identidade (){


cliente_conta cliente[3];
char nome2[30],ref2[30];
int a,b;
printf("Insira o nome ");
scanf("%s",&nome2);
printf("Insira a referencia");
scanf("%d",&ref2);
a=strcmp(cliente[i].nome,nome2);
b=strcmp(cliente[i].referencia,ref2);
if (a==0 || b==0){
printf("Dados correctos.");
return 1;
}
else {
printf("\a Dados incorrectos!");
return 0;
}}

void actualiza_saldo (int valor){


cliente_conta cliente[3];
cliente_conta[i].saldo = cliente_conta[i].saldo + valor;
printf("O seu saldo actual e de %f",cliente_conta[i].saldo);
}

listar_dados_conta (cliente_conta cliente[i]){


{
printf("Nome do primeiro titular %ds.",cliente[i].nome);
printf("Nome do segundo titular %ds.",cliente[i].nome2);
printf("Nome do terceiro titular %ds.",cliente[i].nome3);
printf("Nome do quarto titular %ds.",cliente[i].nome4);
actualiza_saldo(0);
if (cliente[i].tipo==1)
printf("A conta e a prazo");
else
printf("A conta e a ordem");
printf("A taxa de juro associada em percentagem e %d.",cliente[i].ta_juro);
printf("A referencia da conta e %d.",&cliente[i].referencia);
printf("Dia de criacao %d.",cliente[i].data.dia);
printf("Mes de criacao %d.",cliente[i].data.mes);
printf("Ano de criacao %d.",cliente[i].data.ano);
if (cliente[i].tipo==1){
printf("O numero de cartoes de debito");
scanf("%d",&deb);
}while (deb<0 || deb>4);
printf("Insira o dia de fim da validade");
scanf("%d",&dfd);
printf("Insira o mes de fim da validade");
scanf("%d",&mfd);
printf("Insira o ano de fim da validade");
scanf("%d",&afd);
do{
printf("Insira o numero de cartoes de credito");
scanf("%d",&cred);
}while (cred<0 || cred>4);
printf("Insira o dia de fim da validade");
scanf("%d",&dfc);
printf("Insira o mes de fim da validade");
scanf("%d",&mfc);
printf("Insira o ano de fim da validade");
scanf("%d",&afc);
}

void modificar_conta (cliente_conta[i] cliente){


int j=1;
do{
printf("Insira o número de titulares até um máximo de 4.");
scanf("%d",&num);
}while (num<0 || num>4);

if(j=1||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome);
j++;
}
if(j=2||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome2);
j++;
}
if(j=3||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome3);
j++;
}
if(j=4||j<=num){
printf("Insira o nome do titular nº %d.",j);
scanf("%d",& cliente[i].nome4);
j++;
}
printf("Insira o saldo inicial."o 1
scanf("%d",&cliente.saldo);
do{
printf("Insira 1 para conta a prazo.");
printf("Insira 2 para conta 'a ordem");
scanf("%d",& tipo_tipo);
}while (tipo_tipo!=1 || tipo_tipo!=2);
if (tipo_tipo==1){
printf("Insira a taxa de juro associada em percentagem.");
scanf("%d",&cliente[i].ta_juro);
}
printf("Insira a referencia da conta.");
scanf("%d",&cliente.referencia);
printf("Insira o dia.");
scanf("%d",&cliente[i].data.dia);
printf("Insira o mes.");
scanf("%d",&cliente[i].data.mes);
printf("Insira o ano.")
scanf("%d",&cliente[i].data.ano);
if (tipo_tipo==2){
do{
printf("Insira o numero de cartoes de debito");
scanf("%d",&deb);
}while (deb<0 || deb>4);
printf("Insira o dia de fim da validade");
scanf("%d",&dfd);
printf("Insira o mes de fim da validade");
scanf("%d",&mfd);
printf("Insira o ano de fim da validade");
scanf("%d",&afd);
do{
printf("Insira o numero de cartoes de credito");
scanf("%d",&cred);
}while (cred<0 || cred>4);
printf("Insira o dia de fim da validade");
scanf("%d",&dfc);
printf("Insira o mes de fim da validade");
scanf("%d",&mfc);
printf("Insira o ano de fim da validade");
scanf("%d",&afc);
}}

main ()
{
int ins;
printf("Simulação de funcionamento de um banco.\n");
do{
printf("Insira 0 para sair do simulador.\n");
printf("Insira 1 para criar conta.\n");
printf("Insira 2 para alterar dados de conta.\n");
printf("Insira 3 para eliminar conta.\n");
printf("Insira 4 para levantar de conta.\n");
printf("Insira 5 para depositar em conta.\n");
printf("Insira 6 para listar dados de conta.\n");
scanf("%d",&ins);
}while (ins!=0 && ins!=1 && ins!=2 && ins!=3 && ins!=4 && ins!=5 && ins!=6);
system("cls");

if (ins==1){
system("cls");
printf("Seleccionou a opcao criar conta.");
criar_conta();
}

if (ins==2){
system("cls");
printf("Selecionou a opcao alterar dados de conta.\n");
x=verificar_identidade ()
if (x)
modificar_conta (cliente_conta[i]);
}

if (ins==3){
printf("Selecionou a opcao eliminar conta.\n");
x=verificar_identidade ()
if (x)

if (ins==4){
printf("Selecionou a opcao levantar de conta.\n");
x=verificar_identidade ();
if (x);
}

if (ins==5){
printf("Selecionou a opcao depositar em conta.\n");
x=verificar_identidade ();
if (x);
actualiza_saldo (depo);

if (ins==6){}
printf("Selecionou a opcao listar dados de conta.\n");
x=verificar_identidade ()
if (x)
}

Você também pode gostar