2009-03-15 12 views
3

Sie benötigen einen Algorithmus zum Einlesen des Kontostandes eines Kunden am Anfang des Monats, eine Summe aller Auszahlungen für den Monat und eine Summe aller während des Monats getätigten Einzahlungen. Für alle im Laufe des Monats getätigten Transaktionen wird eine Steuerabgabe von 1% erhoben. Das Programm berechnet den Kontostand am Ende des Monats durch (1) Subtrahieren der gesamten Abhebungen vom Kontostand zu Beginn des Monats, (2) Addieren der gesamten Einlagen zu neuem Guthaben, (3) Berechnen der Bundessteuer (1% der gesamten Transaktionen - das heißt, insgesamt Abhebungen + Gesamteinlagen), und (4) diese Bundessteuer von dem neuen Guthaben subtrahieren. Drucken Sie nach diesen Berechnungen den endgültigen Monatsabschluss aus.Algorithmus für die folgenden Hausaufgaben

+0

Sieht aus wie eine Hausaufgabenfrage zu mee – oefe

+0

Sie haben vergessen, eine tatsächliche Frage zu stellen. Wenn Sie die Aufgabe nicht verstehen, müssen Sie genau angeben, was Sie nicht verstehen. – Guffa

+0

Im Titel fragen Sie nach einem Algorithmus, aber Ihre Frage enthält bereits den Algorithmus, also frage ich wie Guffa: Was ist die Frage? –

Antwort

0

Dies ist das Hausaufgabenproblem auf www.palinfonet.com/hw_java2008.pdf am 17. April 2008, Frage # 3.

1

Dies wird eine direkte Übersetzung in Pseudocode sein. Da es sich um eine Hausaufgabe handelt, musst du die Arbeit selbst erledigen. Nur bewerten jeden Schritt wiederum:

input: accountBalanceStart, totalDeposits, totalWithdrawals 
output: accountBalanceEnd 

Lassen Sie uns den ersten Schritt:

accountBalanceEnd <-- accountBalanceStart - totalWithdrawals 

nun die zweite:

accountBalanceEnd <-- accountBalanceEnd + totalDeposits 

nächstes die Steuer berechnen und subtrahieren sie:

accountBalanceEnd <-- accountBalanceEnd - (totalWithdrawals + totalDeposits) * 0.01 

Schließlich zeigen Sie das Ergebnis:

+0

Wäre es nicht eine sauberere Lösung, um in einer Tabelle mit (Betrag, Konto-ID, Datum) und nicht Einlagen und Abhebungen getrennt zu speichern, so könnte man einfach einen SUM (Betrag) machen? – Hamid

+0

So wurde die Eingabe für das Problem nicht definiert. Es ist ziemlich klar, dass Sie den Kontostand eines einzelnen Kunden, seine gesamten Abhebungen und seine gesamten Einzahlungen erhalten. Dann werden Sie gebeten (anhand dieser Informationen) das endgültige Gleichgewicht zu berechnen. –

0

Ich stimme den anderen Plakaten zu, dass dies weder eine Frage noch ein Ort ist, an dem Leute Ihre Hausaufgaben machen. Aber für den Fall, dass Sie wirklich keine Ahnung haben, gebe ich ein konkreteres Beispiel.

Was Sie am ehesten lesen benötigen:

PL/SQL

SQL Quickref

ich wahrscheinlich so etwas wie dies versuchen würde. Ich habe es nicht getestet oder kommentiert und die Syntax könnte auch falsch für mssql sein.

CREATE OR REPLACE FUNCTION Calculate_Balance(account_id long, account_balance float, date datetime) RETURNS float AS 
    DECLARE 
    transactions_sum float; 
    fed_tax float; 
    new_account_balance float;    
BEGIN 
    transactions_sum = SELECT SUM(amount) from transactions 
     WHERE transactions.account_id = account_id 
     AND month(transactions.date) = month(date) 
     AND year(transactions.date) = year(date); 

    fed_tax = transactions_sum * 0,01; 
    transactions_sum = transactions_sum - fed_tax; 
    new_account_balance = transactions_sum + account_balance; 

    RETURN new_account_balance; 
END;    
+0

Ich denke, es gibt einen logischen Fehler in Ihrer fed_tax-Linie. Wenn es 100 Transaktionen in einem Monat gäbe, würden Sie eine Bundessteuer in Höhe der vollen Summe verlangen! Die * Anzahl * der Transaktionen ist nicht relevant, nur die Gesamtgröße. –

+0

Ich habe mich auch darüber gewundert. Scheint, ich missverstanden "Eine bundesstaatliche Steuerbelastung von 1% gilt für alle Transaktionen im Laufe des Monats". Dachte das war eine andere "seltsame Steuer";) Bearbeitet. – Hamid

Verwandte Themen