Weiß jemand wie man ein Buchhaltungsprogramm schreiben könnte? Ich finde leider keinen Ansatz und bräuchte dringend hilfe.
Tja es tut mir leid, aber solche Fragen gibt es in vielen Foren immer massenhaft und die Antwort ist immer: „Stell eine konkrete Frage oder schildere ein konkretes Problem!“
Das hört sich an wie eine Hausaufgabe, die dir gestellt wurde! Frag doch deine Mitschüler/Mitstudenten nach Hilfe!
Meistens besitzen die Personen, die solche Fragen stellen, nicht mal annähernd die Programmierkenntnisse, die sie für ihr gewünschtes Programm benötigen. Also stell dir selbst die Frage kann ich das wirklich. Programmieren ist nicht einfach und auch nicht schnell gelernt und wenn du jetzt ein Buchungsprogramm programmieren willst, muss du dich zu aller erst genausten damit auskennen wie deine Buchungen funktionieren und die Spezifikationen festlegen.
Ich für meinen Teil würde zumindest so beginnen.
Dann würde ich vielleicht zuerst die Oberfläche bauen und speichern würde ich die ganzen Daten dann in einer Datenbank.
mfg Daniel
PS: Wenn du es nicht selber schreiben musst gibt es im Internet auch bestimmt Freeware Buchungsprogramme und wenn du es unbedingt selber schreiben muss, kannst du dort schauen was du so alles brauchst und beachten musst.
Ja das stimmt, ich bemüh mich auch die programmiersprache zu lernen , nur bei manchen sachen klappt es halt leider nicht so wie man es sich vorstellt
ich hab jetzt mal ein Buchhaltungsprogramm mit eclipse geschrieben und es ist ein wenig umständig, aber es funktioniert:
import java.util.Scanner;
public class Konto {
double h = 0.0;
double s = 0.0;
double ha;
double sa;
double saldo;
public static void main(String[] args) {
Scanner einfsoll = new Scanner(System.in);
Scanner einfhaben = new Scanner(System.in);
System.out.println(„Dies ist ein Buchhaltungsprogramm, geben sie nun als erstes die Soll-Buchungen an“);
//SOLL - LISTE
//Buchung1
System.out.println(„Geben Sie das Datum an“);
String datumS= einfsoll.next();
System.out.println(„Geben Sie einen Text an“);
String textS= einfsoll.next();
System.out.println(„Geben Sie den Betrag an“);
double betragS=einfsoll.nextDouble();
//Buchung2
System.out.println(„Geben Sie das Datum an“);
String datumS1= einfsoll.next();
System.out.println(„Geben Sie einen Text an“);
String textS1= einfsoll.next();
System.out.println(„Geben Sie den Betrag an“);
double betragS1=einfsoll.nextDouble();
//Soll-Berechnung
double s = betragS1+betragS;
double sa=s;
//***************************************************
//HABEN - Liste
//Buchung1
System.out.println(„Geben sie nun eine Haben-Buchung an“);
System.out.println(„Geben Sie das Datum an“);
String datumH= einfhaben.next();
System.out.println(„Geben Sie einen Text an“);
String textH= einfhaben.next();
System.out.println(„Geben Sie den Betrag an“);
double betragH=einfhaben.nextDouble();
//Buchung2
System.out.println(„Geben sie nun eine Haben-Buchung an“);
System.out.println(„Geben Sie das Datum an“);
String datumH1= einfhaben.next();
System.out.println(„Geben Sie einen Text an“);
String textH1= einfhaben.next();
System.out.println(„Geben Sie den Betrag an“);
double betragH1=einfhaben.nextDouble();
//Berechnung
double h= betragH1+betragH;
double ha=h;
//GesamtSaldo Berechnung
double saldo=ha-sa;
//KONTORAHMEN
System.out.print("--------------------Schlussbilanz-----------------");
System.out.println("");
System.out.println(„SOLL-Buchungen“);
System.out.println("");
System.out.println(datumS+","+textS+","+betragS+„€“);
System.out.println(datumS1+","+textS1+","+betragS1+„€“);
System.out.println("");
System.out.println("--------------------------------------------------");
System.out.println(„HABEN-Buchungen“);
System.out.println("");
System.out.println(datumH+","+textH+","+betragH+„€“);
System.out.println(datumH1+","+textH1+","+betragH1+„€“);
System.out.println("");
System.out.println("--------------------------------------------------");
System.out.println("");
System.out.println(„Gesamtsaldo:“+saldo+„€“);
}
}
Mein Problem ist jetzt, wenn ich eine Soll buchung gebucht habe, möchte ich eine if bedingung einbauen die entscheid ob eine neue Soll Buchung erscheinen soll oder weiter zu einer Haben Buchung. Hättest du vlt eine idee ?
Also, es ist ja schon mal schön das du Code postest und es folglich selbst schon sehr weit gebracht hast. Ich tippe hier mal auf Schulinformatik.
Erstmal: Weiter so!
Dann sehe ich das dein Programm komplett linear verläuft. Also du steigst oben ein durchläufst das Programm Zeile für Zeile und beendest es zum Schluss. Eine Schleife ist somit sicherlich angebracht wenn du an einem Punkt entscheiden möchtest das du weiter oben im Programm wieder einsteigen willst, um so z.B. mehrere Soll-Buchungen hintereinander auszuführen eine IF-Bedingung ist wahrscheinlich machbar, aber ich mache dir den Vorschlag einer do-while Schleife:
do {
//Hier eine Soll Buchung inklusive der Berechnung rein
//Eine Benutzterabfrage ob noch eine weitere Sollbuchung fehlen! z.B. (y/n)
}while(abfrage!=„n“); //Das bedeutet Solange bzw. wenn abfrage nicht gleich n ist, starte wieder bei do.
Wir starten hier immer wieder bei do solange die Bedingung bei while nicht erfüllt ist. Also solange du nicht „n“ in diesem Fall eingegeben hast.
Also sollte, wenn du alles richtig machst das Ganze so funktionieren, dass du nach einer Soll-Buchung eine Abfrage bekommst, die dich nach weiteren Buchungen fragt, solange du bei der Abfrage kein „n“ für „no“ eingibst.
Ich hoffe ich konnte dir weiterhelfen. Wenn du soweit bist und alles funktionierst hast du vielleicht Lust ein komplettest Menü um dein Buchungsprogramm zu bauen.
Viel Erfolg
Erst mal vielen Dank, dass du überhaupt mein quelltext angeschaut hast. Ich werde das jetzt mal umsetzen sowie du es beschreiben hast.
Eine Frage hätte ich noch, wenn ich die Schleife eingebaut habe, müsste ich auch was an der Berechnung ändern oder?
Also was ich meinte , an der erste zeile wird ja nichts geändert, aber wenn ich die Do while schleife habe brauch ich ja die Zweite Zeile ja nicht mehr , richtig?
„System.out.println(datumS+“,"+textS+","+betragS+„€“);
System.out.println(datumS1+","+textS1+","+betragS1+„€“);"
Vielen Dank für dein Support !
Also du kannst die zweite Soll-Buchung weglassen, da du mit der Schleife beliebig viele Buchungen hintereinander ausführen kannst, wenn du die alle Speichern möchtest ist wahrscheinlich ein dir noch unbekannter Datentyp angebracht. In einem array ließen sich die einzelnen Buchungen speichern und dann auch wieder ausgeben. Wenn dir das zu schnell geht. Vergiss es erstmal wieder.
Also du könntest zur Berechnung des Saldos einfach in jedem Schleifendurchlauf deine Soll-Buchung s zu deinem Soll-Betrag sa hinzu addieren. sa = sa + s
Alle, auch die Besten Programmieren, verbringen einen riesigen Teil der Programmierarbeit damit, ihr Programm systematisch zu testen. Das solltest du auch tun und dann kannst du schauen ob deine Berechnungen alle richtig funktionieren.
Was den Rest angeht da solltest du dir selber Gedanken machen und dir klar werden, welche Variablen du beschreibst und welche nicht, ich habe den Eindruck nachfragen fällt dir im Moment leichter als Nachdenken.
Hallo,
Weiß jemand wie man ein Buchhaltungsprogramm schreiben könnte?
Ich finde leider keinen Ansatz und bräuchte dringend hilfe.
Naja ein bisschen mehr Infos braucht man schon.
Soll es eine Web- oder Desktopapplikation werden?
Was für eine Datenbank stellst du dir vor?
Welche Frameworks willst du verwenden?
Was für ein Funktionsumfang soll die Applikation haben?
Hast du dich schon für ein Designpattern entschieden?
Ich könnte ewig so weiter machen…
Du siehst, es sind zu viele Fragen offen um dir eine qualifizierte Antwort zu geben…
Vlt helfen dir ja die Fragen um einen Ansatz zu finden.
Grüße
@ Daniel : okay vielen dank für die Tipps , ich werd mich mal damit beschäftigen. Die schleifen hab ich eingebaut.
jetzt muss es nur noch richtig funktionieren.
@ Dark Element : Es sollte ein Buchhaltungsprogramm mit Java (Eclipse) programmiert werden. Datenbank oder ne html ist dafür nicht notwendig. also reiner javacode.
Hallo
und wie stellst du dir vor soll die Hilfe jetzt aussehen?
Für mich liest sich deine Frage immer noch wie „Ich will ein Auto kaufen“ nur jetzt mit dem Zusatz „Es soll Räder haben“ - Das ist einfach zu allgemein gehalten.
Ich kann dir im Moment maximal sagen:
Du erzeugst ein Javaprojekt, legst dir eine Packagestruktur an erzeugst Klassen befüllst diese mit Variablen und Methoden. Eine Klasse hat eine eine Main mit der das Programm gestartet wird.
Das ist denke ich nicht die Hilfe die du brauchst bzw dir wünschst.
Warum machst du nicht einfach mal den Mund auf und sagst was genau Sache ist? Du bist doch der jenige der Hilfe braucht!
Liegt es an:
Generell am mangelden Javawissen?
Beim grundlegenden Softwaredesign?
Beim Deklarieren der Variablen?
Beim Erzeugen von Objekten?
Beim Aufbau eines Frames?
Bei der Umsetzung einer Methode?
Beim feuern von Events?
Oder bekommst du irgendwo eine Exception?
…
…
…
…
Beschreib doch einfach mal GENAU dein Problem
Grüße
ja das hab ich gemerkt, dass ich mein problem nicht wirklich geschildert habe. nun hab ich mich in den letzten tagen damit beschäftigt und bin erstmal soweit gekommen :
Es handelt sich hier um ein Buchhaltungsprogramm und die funktionsweise ist :
1.abgefrage um wie viele buchungssätze es sich handelt
2.um welche buchungsart es sich handelt
3.der benutzer wählt eine buchungsart aus
4.name und betrag wird eigegeben
5.Später soll er die Werte zusammen addieren und in der schlussbilanz auslesen. doch da bin ich noch nicht so weit.
Mein problem ist momentan, ich kann die werte eintragen doch wenn ich die hashmap auslese, bekomme ich nur die letzten zwei werte (obwohl es 4 sein müssen). Ich hab es mal mit einer schleife um den hashmap entry probiert. doch leider hat es auch nicht funktioniert.
Dies ist mein Quellcode
import java.util.*;
public class Buchhaltung {//KLASSE
static int zahl=0;
static int anzahlbu=0;
static int auswahl=0;
static HashMap buchungsarten;
static String nameAK;
static Double betragAK;
static String nameAK1;
static Double betragAK1;
static int s=0;
/*
//Create a hash map
HashMap hm = new HashMap();
for(versuche=0;versuche
Hallo,
ich hoffe ich hab dein Programm richtig verstanden, falls ja hab ich deinen Fehler gefunden.
for(int schleife=0;schleifeHashMap buchungsarten = new HashMap();
Da liegt der Fehler.
Du erzeugst deine Hashmap jedes mal in der Schleife neu - Sprich die Werte du ausgeben magst, löschst du durch das neuerzeugen wieder raus. Somit kann nur der letzte Datensatz angezeigt werden.
Versuchs mal so:
HashMap buchungsarten = new HashMap();//HASHMAP wird erzeugt
for(int schleife=0;schleife
Grüße
Vielen dank das habe ich gemeint.
ich hätte vlt noch eine kleine bitte: könntest du mein Programm testen und mir kleines Feedback geben ? damit ich vlt weiß was ich besser machen kann um mehr programmierungkenntnise zu erlangen.
import java.util.ArrayList;
import java.util.Scanner;
public class Buchhaltung{
// Deklaration
static double saldo1;
static double saldo2;
static int anzahlbuchungen4=0;
static int anzahlbuchungen3=0;
static int anzahlbuchungen2=0;
static int anzahlbuchungen1=0;
static int anzahlkonten1=0;
static int anzahlkonten2=0;
//AKTIVA
static ArrayList nameA = new ArrayList();
static ArrayList textS1 = new ArrayList();
static ArrayList betragS1 = new ArrayList();
static double SummeSoll1;
static ArrayList nameB = new ArrayList();
static ArrayList textH1 = new ArrayList();
static ArrayList betragH1 = new ArrayList();
static double SummeHaben1;
//PASSIVA
static ArrayList nameC = new ArrayList();
static ArrayList textS2 = new ArrayList();
static ArrayList betragS2 = new ArrayList();
static double SummeSoll2;
static ArrayList nameD = new ArrayList();
static ArrayList textH2 = new ArrayList();
static ArrayList betragH2 = new ArrayList();
static double SummeHaben2;
public static void main(String[] args) { // Programm wird gestartet
Scanner einfaktiva = new Scanner(System.in);
Scanner wahl = new Scanner(System.in);
Scanner einfpassiva = new Scanner(System.in);
//AKTIVA-SOLLLISTE
System.out.println(„AKTIVA“);
System.out.println(„Geben Sie die Anzahl der AktivaKonten an:“);
anzahlkonten1=wahl.nextInt();
for(int q=0;qAKTIVA
double saldo1=SummeSoll1-SummeHaben1;
//Gesamtsaldo Berechnung: Haben - Soll–>:stuck_out_tongue_winking_eye:ASSIVA
double saldo2=SummeHaben2-SummeSoll2;
if(saldo1==saldo2)
{
//KONTORAHMEN**********BEGINN***************************************************
System.out.println("--------------------Schlussbilanz---------------");
System.out.println(„AKTIVA-SEITE“);
System.out.println(„SOLL-Buchungen:“);
System.out.println("");
for( int c =0 ;c
Hallo,
naja also von Buchhaltung verstehe ich nicht viel - aber was das Programmieren angeht:
- Dein Quelltext ist be…scheiden zu lesen. Lager Teile deiner Main in Funktionen (und ggf in eigene Klassen) aus. Dann kann man den Quelltext viel besser lesen. Kurz gesagt achte auf Coderedundanz.
Bspw. der Teil mit der PASSIVA / AKTIVA Beginn - die machen ja das gleiche.
Warum alles X Mal schreiben wenn mans auch mit einem mal abfrühstücken kann? So ist dein Programm leichter zu warten und nicht so Fehleranfällig
- Rein interessehalber: Warum deklarierst du alle Variablen als static?
Wenn du das Programm etwas gesäubert hast, les ichs mir gern noch mal durch - aber immo ist mir der Quelltext echt zu unordentlich… Sorry
Grüße
kleine Änderung meines Posts
Hallo,
den zweiten Punkt ziehe ich zurück dafür geb ich dir da einen Tip
Lies dir durch wofür Konstruktoren da sind erzeuge dir ein Objekt aus deiner Klasse in der Main und greif über Getter und Setter auf die Variablen zu
Grüße