6 svar
139 visningar
Kaptenstein är nöjd med hjälpen
Kaptenstein 14
Postad: 20 jan 2022 14:37

Spara rätt summa till rätt användare

Tjenare! 

Jag håller på att skriva ett program som fungerar som bank.

Man skapar konto osv dock vet jag inte hur jag ska få till Array funktionen till summorna för rätt konot om man säger så.

Jag vet inte hur jag använder mig av samma metod som jag har till namnen och kontonummer till depositen och uttagen så det inte blir för alla användare utan bara för den som vill göra insättningen eller uttaget. Hoppas någon kan hjälpa mig med lite tips!

// Här kommer koden som jag har än så länge.

 

#include <iostream>
#include <string>

 

using namespace std;

class Bank {
private:
const int m = 100;
string Name[100] = {};
string AccNum[100] = {};
string AccType[100] = {};

double Initial, Withdraw, Deposit;

 

public:
Bank() {
const int m = 100;
string Name[100] = {};
string AccNum[100] = {};
string AccType[100] = {};
Withdraw = 0;
Deposit = 0;
Initial = 0;



}
void meny();
void create();
void depo();
void check();
void wdraw();
void display();
void Exit();

};

void Bank::meny() {
int choice;
cout << "*****************************************************************\n" << endl;
cout << "\t\t Bank Management System \n\n " << endl;
cout << "\t Choose from the meny below: " << endl;
cout << "\t\t 1. Create an account " << endl;
cout << "\t\t 2. Deposit money " << endl;
cout << "\t\t 3. Check Balance " << endl;
cout << "\t\t 4. Withdraw Money " << endl;
cout << "\t\t 5. All Accountholders detail " << endl;
cout << "\t\t 6. Exit " << endl;

cout << "*****************************************************************\n" << endl;
cin >> choice;
if (choice == 1) {
create(); meny();
}
if (choice == 2) {
depo(); meny();
}
if (choice == 3) {
check(); meny();
}
if (choice == 4) {
wdraw(); meny();
}
if (choice == 5) {
display(); meny();
}
if (choice == 6) {
Exit();
}

}
void Bank::create() {
char name[50];
char accnum[50];
char acctype[50];

 

cin.ignore();

cout << "\n\t Enter First Name: ";
cin.getline(name, 50);
cout << "\n\t Enter Accountnumber: ";
cin.getline(accnum, 50);
cout << "\n\t Enter Account type: ";
cin.getline(acctype, 50);
cout << "\n\t Enter Amount to Deposit: ";
cin >> Deposit;

for (int x = 0; x < m; x++)
{
if (Name[x] == "\0")
{
Name[x] = name;
AccNum[x] = accnum;
AccType[x] = acctype;


break;

}
}

}

void Bank::depo() {

cout << "\t Enter deposit amount :kr ";
cin >> Deposit;
Initial += Deposit;
}
void Bank::check() {

 


cin.ignore();

cout << "\t Your current balace is: " << Initial << " kr" << endl;


}
void Bank::wdraw() {


cout << "\t Enter withdraw amount: kr ";
cin >> Withdraw;
Initial -= Withdraw;
}
void Bank::display() {

int counter = 0;
cout << "\t\t TRANSACTION DETAIL \n\n";
for (int x = 0; x < m; x++)
{
if (Name[x] != "\0")
{
counter++;
cout << " " << counter << " Name: " << Name[x] << " Accountnumber: " << AccNum[x] << " AccountType: " << AccType[x] << endl;
cout << "\t Deposit: " << Deposit << " Withdraw: " << Withdraw << " Balance: " << Initial << endl;
}
}
if (counter == 0)
{
cout << "No Accounts Found!" << endl;
}
}

void Bank::Exit() {
cout << "\n\t\t Thanks For Using The International Bank Of Stein" << endl;
}

int main()
{
Bank B;
B.meny();

return 0;

}

Peter_ 470 – Avstängd
Postad: 20 jan 2022 15:07 Redigerad: 20 jan 2022 15:13

Du ska i princip skapa en databas eftersom det är fler än en kontohavare.
I ditt fall är det lämpligt med en struct som du kan definiera så här:
typedef struct 
{
 string accountHolder;                  // Namn på kontohavaren
 int accountBalance;                     // Saldo på kontot
// (ytterligare variabler vid behov)
} ACCOUNT;

I class Bank deklarerar du sedan denna struct:
ACCOUNT accounts[10]; 
Sedan skriver du in värdena:
accounts[0].accountHolder = "Namn på kontohavaren";
accounts[0].accountBalance = 1000;

Kommer du vidare?

Kaptenstein 14
Postad: 20 jan 2022 15:15

Fattar inte riktigt men funkar det som så att jag ger dom namn och så eller kan man få deras input som visas där me?

accounts[0].accountHolder = " " << name[0] ; skulle de funka eller fattar jag fel?

Peter_ 470 – Avstängd
Postad: 20 jan 2022 15:22 Redigerad: 20 jan 2022 16:22

Du deklarerar string Name[100] 
Sedan läser du ett värde som name[0]. Name och name är två olika variabler. Du måste vara konsekvent med gemener/versaler i C++.

Du kan tilldela kontonamnet så här: accounts[0].accountHolder = Name[0] ; 

Det är en rätt svår uppgift att få till allt i "banken". 

Kaptenstein 14
Postad: 20 jan 2022 15:29

Ja för sen ska jag lägga till ränta och ränteökning och en sökfunktion så man kan söka på kontonummer..

Men fastnar på att jag inte får till de med insättningarna. Jag ska testa ditt sett en stund och se om jag klurar ut hur man gör med det. Tack

Kaptenstein 14
Postad: 20 jan 2022 15:58

Skulle man kunna göra så att om man vill sätta in pengar måste Ange sitt kontonummer först för att om man hade en array deposit få den att spara de på rätt index?

Eller är detta ett önske tänkande?

Peter_ 470 – Avstängd
Postad: 20 jan 2022 16:17 Redigerad: 20 jan 2022 16:20

Inget önsketänkande. Allting är möjligt. Men som jag skrev, detta är en svår uppgift och om du vill ro den i land så bör du skapa en fungerande infrastruktur från grunden.
Ett tips när jag programmerar: Jag använder aldrig std::cin utan jag definierar konstanter för alla ingångsvärden. Då blir varje testrunda mycket snabbare och enklare att genomföra.
Istället för "cin.getline(name, 50);" skriver du istället strcpy(name, "Kalle Kula");     osv ...

Svara Avbryt
Close