You are not logged in.

  • Login

1

Tuesday, January 19th 2010, 9:02am

C++ IBAN berechnung, benötige Hilfe

Hallo miteinander....

ich habe folgendes problem ich müsste ein programm in c ++ schreiben, das einfach eine iban nummer prüft und auch iban nummer berechnet.

also ich bräuchte nur die funktionen mehr nicht, wäre wirklich sehr nett, da ich kaum ahnung von c++ habe!!

Vielen Dank schonmal!!

3

Tuesday, January 19th 2010, 12:33pm

ja so sollte es ablaufen einfach 2 funktionen :

die eine funktion prüft fertige ibannummern : länderkennung+blz+kontonummer
die andere funktion erzeugt aus länderkennung+blz+kontonummer eine ibannummer

4

Tuesday, January 19th 2010, 4:00pm

Da deine C++ Kenntnisse wenig von Ahnung getrübt sind, wäre die Aufgabe eine Möglichkeit dem abzuhelfen.

Komplette Lösungen von Schul- oder Studienaufgaben werden hier nicht gern gepostet, denn dann bleibt einigen Beitragsersteller die Motivation zum Lernen auf der Strecke ;)

Also da fängst du mal an mit deinem Quelltext, zeigst hier wie weit du kommst und bei konkreten Punkten schreiben wir etwas dazu, wenn du es möchtest ;)

Ausserdem lassen sich mit C und C++ zu einigen Aufgaben sehr unterschiedliche Lösungswege einschlagen - soll euer Lehrende eventuell zu dem Fehlschluss kommen ihr währt auf einmal zum Überflieger mutiert :?: ;) Was machst du, wenn der das Tempo im Unterricht dann steigert ?( Deshalb ist es besser, du beginnst den Quelltext damit wir etwa sehen wie du es realisieren würdest.

So und nun hau in die Tasten.

MfG bcc-fan

5

Wednesday, January 20th 2010, 9:14am

IBAN

okay also ich versuch mich an die aufgabe ja jetzt hin nur hänge ich jetzt an einer sache:

Um die iban nummer zu berechnen braucht man die länderkennung umgewandelt als zahl:

also z.B.: DE = nach dem normalen alphabet für D=4 und E=5 und diese werte werden noch mit 9 addiert

somit ergibt sich dann der wert : 1314

wie bekomm ich das hin? evtl mit ascii-code? aber ich weiß nicht wie ich da anfangen soll ....

6

Wednesday, January 20th 2010, 9:48am

Erst mal baust du den Basiscode, ich nenne den mal so:

header
1.Funktion Überprüfung IBAN
2.Funktion Demoerstellung einer IBAN - hier Demo, weil die einzelnen Banken noch Besonderheiten einbauen

dann noch eine main, die die Funktionen aufruft.


Es kann sich durchaus herausstellen, das das von mir skizzierte Grundgerüst erweitert werden muss, aber ein Schritt nach dem anderen, die Basis muss funktionieren und dann darauf aufbauen.
So, dann poste hier mal deinen Code mit Dummyfunktionen, denn wir wissen immer noch nicht auf welchem Level du die Sache angehen willst ?(

MfG bcc-fan

7

Wednesday, January 20th 2010, 9:51am

Soweit bin ich:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <stdafx.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <afx.h> 

CString plus(long BLZNr, long KtNr, char BZahl, char BZahlC);

CString ZErgebnis;
int main(int argc, char* argv[])
{
	long BLZNr, KtNr, nuller;
	CString LKennung;
	double i,i2;
	double BZahl,BZahlC;
	char b,c; 

	LKennung = "DE";
	BLZNr = 70090100;
	KtNr = 1234567890;
	nuller = 00;
	cout << LKennung << endl;
	cout << BLZNr << endl;
	cout << KtNr << endl;




	b = (char) LKennung.GetAt(0);	//Nimmt den ersten Buchstaben der Länderkennung
	c = (char) LKennung.GetAt(1);	//Nimmt den zweiten Buchstaben der Länderkennung
	char BuchstabeB = b;	// ASCII
	char BuchstabeC = c;	// ASCII
	i = BuchstabeB;
	i2 = BuchstabeC;
	
	BZahl = i -55;		// ASCII-Code - 55
	BZahlC = i2 -55;		// ASCII-Code - 55

	cout << BZahl << endl;	
	cout << BZahlC << endl;	

	CString test = plus(BLZNr, KtNr, BZahl, BZahlC);
/*	long double testl = atof(test);
	TRACE(test + "\r\n");
	TRACE("%f\r\n", testl);
*/

	return 0;
}



CString plus(long BLZNr, long KtNr, char BZahl, char BZahlC)
{
	CString s;						
	s.Format("%i%i%i%i00", BLZNr, KtNr, BZahl, BZahlC);
	cout << s << endl;	
	return s;
}


Bei dem Auskommentierten komm ich nicht mehr weiter..
Wie formatiere ich das ganze jetzt in eine Zahl um? Das Problem ist, das sie so lang ist..
Ideen?!

This post has been edited 1 times, last edit by "Tetesept" (Jan 20th 2010, 1:39pm)


8

Wednesday, January 20th 2010, 11:34pm

Oh, Quelltext der nur auf Mircosoft läuft, nicht so mein Hobby.

Aber egal - ein paar Fragen trotzdem:
schreibt ihr die C++Header alle mit .h in eurem Unterricht/eurer Vorlesung?
Was passiert, wenn du eine Kontonummer wie 3214567890 eingibst?
Was bei 9998887770?
Welche Folgen hat das bei den weiteren Berechnungen?

Und die Zeile 56 die wirst du dir auch noch mal sehr gründlich ansehen müssen.

Wenn du das schon selbst probiert hättest, hätte dir schon etwas auffallen müssen :D

MfG bcc-fan

9

Thursday, January 21st 2010, 8:50am

schreibt ihr die C++Header alle mit .h in eurem Unterricht/eurer Vorlesung?

Ja..

Was passiert, wenn du eine Kontonummer wie 3214567890 eingibst?
Was bei 9998887770?
Welche Folgen hat das bei den weiteren Berechnungen?

Hm dann funktioniert das ganze nicht mehr.. aber warum?

Und die Zeile 56 die wirst du dir auch noch mal sehr gründlich ansehen müssen.

Meinst du das mit %i00? Das ist Absicht weil nach der Länderkennung immer "00" angehängt werden soll..

10

Thursday, January 21st 2010, 9:29am

Was gibt denn dein Programm als Ergebnis von Zeile 56 aus :?: :?: :?:

Welches Institut lehrt denn noch C++ in dieser Variante?

MfG bcc-fan

11

Thursday, January 21st 2010, 9:46am

Was gibt denn dein Programm als Ergebnis von Zeile 56 aus :?: :?: :?:


Das gibt BLZ, Kontonummer, Länderkennung + 00 aus. Einfach alles zusammengehängt
Was ist daran falsch?

12

Thursday, January 21st 2010, 9:58am

Ich hab gedacht da soll die IBAN als Ergebnis erscheinen, mit 22 Zeichen für die Deutsche.

Mich interessiert jetzt was Microsoft als Ergebnis der Zeile 57 ausgibt - bitte nicht umschreiben - sondern das schreiben was dein Programm ausgibt :!:

MfG bcc-fan

13

Thursday, January 21st 2010, 10:42am

Zeile 57 gibt "700901001234567890131400" aus.
In der Zeile soll nur alles hintereinander geschrieben werden. Diese Zahl muss ich jetzt Modulo 97 machen um die Prüfziffer rauszubekommen.

Similar threads

Social bookmarks