Member 12173667 Ответов: 1

Проблема проекта банковской системы C++


Эй ребята я работаю над проектом банковской системы и все работает хорошо
за исключением того, что когда я пытаюсь напечатать введенные значения, я получаю странные строки и случайные числа, вот код :
#include <iostream>
using namespace std;

struct Address{
	char stName[10];
	int houseNum;
};

struct Account{
	char name[10];
	int accnumber;
	double balance;
	Address addr;
};
// ------------------------------------------------------------------------------------------------- //
void getData( Account accounts[], int size , int *counter);


// ------------------------------------------------------------------------------------------------ //
int main(){
int choice;
int i = 0;
int size = 10;
Account a[size];
while (true){

	cout << "\t\t\t --- Enter your choise --- " << endl;
	cout << endl;
	cout << "\t\t\t 1 - Create Account\n";
	cout << endl;
	cout <<"\t\t\t 2 - Deposit Money" <<endl;
	cout << endl;
	cout << "\t\t\t 3 - Withdraw Money" <<endl;
	cout << endl;
	cout << "\t\t\t 4 - Display" << endl;
	cout << endl;
	cout << "\t\t\t 5 - Exit" << endl;
	cout << endl;
	cout << "\t\t\t choice is :  ";
	cin >> choice;
	if (choice == 1)
	getData(a , size ,&i);
	
	// printnig the value -> just checking
	cout << endl << endl;
	cout << "Name: " << a[i].name << endl;
	cout << "Account number : " << a[i].accnumber << endl;
	cout << "Balance: " << a[i].balance << endl;
	cout << "House num: " << a[i].addr.houseNum << endl ;
	cout << "Street name: " << a[i].addr.stName << endl;
	
}
	
}

void getData(Account accounts[], int size,int *counter ){
	int i = *counter;
	
	cout << "Name: ";
	cin >> accounts[i].name;
	
	cout << "acc number : " ;
	cin >> accounts[i].accnumber;
	cout << "balance : " ;
	cin >> accounts[i].balance;
	cout << "Address info " << endl;
	cout << "House number : " ;
	cin >> accounts[i].addr.houseNum;
	cout << "Street name : ";
	cin >> accounts[i].addr.stName ;
	i++;
	*counter = i;
	cout << endl;
	cout << "Done ...." << endl;
	system("pause");
}


Что я уже пробовал:

я понятия не имею, что заставляет его так себя вести !!

Richard MacCutchan

Не использовать double типы для финансовых сумм, так как вы получите проблемы. Используйте целочисленные типы (преобразуйте значения во все центы, пенсы, пайсы и т. д.).

1 Ответов

Рейтинг:
7

Kornfeld Eliyahu Peter

Ваша проблема в том i++... Вы сохраняете значения в позиции i, но увеличивает его и печатает значения в позиции i++...


Member 12173667

это правильно, исправил его
спасибо тебе большое человек :)