Check your Money

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Markus2

Betreff: Check your Money

BeitragFr, März 18, 2005 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Simples Programm was eure Unkosten jeden Monat ausrechnet
und in einer Tabelle als Jahresübersicht darstellt .
Bei jedem Monat seht ihr eure Gesamtausgaben und euren verbleibenden Kontostand .
Das Prog. habe ich damals auf dem Amiga in BB geschrieben und aus Spaß konvertiert Smile
In den Datas stehen die Kosten für z.B. Miete und danach eine 0 wenn
schon bezahlt oder eine 1 wenn diese Kosten noch anfallen für alle 12 Monate .

BlitzBasic: [AUSKLAPPEN]

;-----------------------------------------------------------------
; Money bei M.Rauch (C) 1999,15.03.2005 zu PC BB
;-----------------------------------------------------------------
Global scx=1024,scy=768
Graphics scx,scy,16,1

Global ver$=\"15.03.2005\"

Global cx,cy ;für Locate
Global xoff,yoff ;Origin hätte es auch getan
Global spx=72 ;Spaltenbreite je Monat
Global fy=18 ;Zeilenabstand

mFont=LoadFont(\"Tahoma\",14,1)
SetFont mFont

Type IType
Field name$
Field Betrag#
Field m[12]
End Type
Global Inhalt.IType

;-----------------------------------------------------------------
Main()
End
;-----------------------------------------------------------------
Function Main()

ClsColor 64,64,64
Cls

Local anz
anz=Lesen()

xoff=scx/2-(spx*12)/2
yoff=scy/2-anz*fy/2-fy*2

Raster anz
Zeigen anz

While Not KeyHit(1) ;ESC
Delay 20
If JoyHit(1)>0 Then Exit
Wend

End Function
;-----------------------------------------------------------------
Function Lesen()
Restore Geld
Local anz
Local name$
Local Betrag#
Repeat
Read name$,Betrag
If name$=\"\" Then Exit
anz=anz+1
Inhalt.IType=New IType
Inhalt\name=name$:Inhalt\Betrag=Betrag
For m=1 To 12:Read Inhalt\m[m]:Next
Forever
Return anz
End Function
;-----------------------------------------------------------------
Function Zeigen(anz)

Local konto_mo,geld#
Local konto#,geldges#
Local i,y,mo,d$

;-------------------------------------------
;Monats Spaltenköpfe
Restore Monate
For i=0 To 11
Read d$
WColour 6:wloc (i*(spx), 0):Text cx,cy,i+1
WColour 5:wloc (i*(spx),fy):Text cx,cy,d$
Next
;-------------------------------------------
Restore Kontostand
Read konto
Read konto_mo
;
For mo=1 To 12
geldges=0
y=0
For Inhalt.IType=Each IType
y=y+1
If Inhalt\m[mo]=1 Then
WColour 3
wloc -1*spx,fy+y*fy
Text cx,cy,Inhalt\name
EndIf
If Inhalt\m[mo]=1 Then
wloc (mo-1)*spx,fy+y*fy
pgeld Inhalt\Betrag
geldges=geldges+Inhalt\Betrag
EndIf
Next
;Monatsergebnis
WColour 3
wloc -1*spx,(anz+2)*fy
Text cx,cy,\"=\"
If mo=>konto_mo Then
wloc (mo-1)*spx,(anz+2)*fy
pgeld geldges
End If
;Kontostand
wloc -1*spx,(anz+4)*fy
Text cx,cy,\"Konto\"
If mo=>konto_mo Then
konto=konto+geldges
wloc (mo-1)*spx,(anz+4)*fy
pgeld konto
End If
Next ;Alle Monate durch rechnen

End Function
;-----------------------------------------------------------------
Function Raster(anz)

WColour 4
Local te$=\"Check your Money - Programm von M.Rauch (C) 2005 - Version \"+ver$
Text scx/2,fy,te$,True,False

Local ab,i

;Hintergrund
WColour 7
Rect xoff,yoff,spx*12,2*fy,True
WColour 0
Rect xoff,yoff+2*fy,spx*12,(anz+1)*fy,True

;Monatstrenner
For i=0 To 12
ab=xoff+spx*i
Wline ab,yoff,ab,yoff+(anz+3)*fy,1
Next
;Spaltenkopf Zeilentrenner & Monatsergebnis
For i=-1 To anz+2
If i<>0 Then Hline fy*i+fy
Next
;Kontostand
;...

End Function
;-----------------------------------------------------------------
Function WLocate(x,y)
cx=x
cy=y
End Function
;-----------------------------------------------------------------
Function WColour(f)

Select f
Case 0:Color 0, 0, 0 ; Hintergrund Zeilen
Case 1:Color 64,128, 64 ; Raster
Case 2:Color 240, 0, 0 ; -Minus
Case 3:Color 255,255,255 ; Data Schrift
Case 4:Color 255,255,100 ; Titel
Case 5:Color 100,255,255 ; Monate
Case 6:Color 100,255,100 ; Monat 1-12
Case 7:Color 32, 64, 32 ; Hintergrund Monat
End Select

End Function
;-----------------------------------------------------------------
Function WLine(x1,y1,x2,y2,c)
WColour c
Line x1,y1,x2,y2
End Function
;-----------------------------------------------------------------
Function HLine(ho)
WLine xoff,yoff+ho,xoff+spx*12,yoff+ho,1
End Function
;-----------------------------------------------------------------
Function pgeld(Betrag#)
If Sgn(Betrag)=-1 Then WColour 2 Else WColour 3
Local w
Local tx$=Str(Betrag)
w=StringWidth(tx$)+8
Text cx+spx-w,cy,tx$
End Function
;-----------------------------------------------------------------
Function WLoc(x,y)
WLocate xoff+x+4,yoff+y+2
End Function
;-----------------------------------------------------------------
.Monate
Data \"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\"
Data \"September\",\"Oktober\",\"November\",\"Dezember\"
;-----------------------------------------------------------------
.Kontostand
Data 3000 ;Kontostand
Data 3 ;Monat
.Geld
Data \"Verdie.\"
Data 1350,0,0,0,1,1,1,1,1,1,1,1,1
;
Data \"Miete\"
Data -350,0,0,0,0,0,1,1,1,1,1,1,1
Data \"A.Vers.\"
Data -150,0,0,0,1,0,0,1,0,0,1,0,0
Data \"A.Steu.\"
Data -134,0,0,0,0,0,0,0,0,0,0,0,0
Data \"Strom\"
Data -100,0,0,0,0,1,0,1,0,1,0,0,0
Data \"Str.aus.\"
Data -100,0,0,0,0,0,0,0,0,0,0,1,0
Data \"Telefon\"
Data -55,0,0,0,1,1,1,1,1,1,1,1,1
Data \"KampNet\"
Data -11,0,0,0,1,1,1,1,1,1,1,1,1
Data \"Sprit\"
Data -100,0,0,1,1,1,1,1,1,1,1,1,1
Data \"Essen\"
Data -200,0,0,1,1,1,1,1,1,1,1,1,1
Data \"Frisör\"
Data -10,0,0,0,1,1,1,1,1,1,1,1,1
Data \"Urlaub\"
Data -1300,0,0,0,0,0,1,0,0,0,0,0,0
Data \"\"
Data 0
;
;-----------------------------------------------------------------

Suco-X

Betreff: .......

BeitragFr, März 18, 2005 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Komisch. Das zeigt mir ständig : "Du Wirst verhungern" an.
Hoffe nicht das es so gewollt ist Laughing
Aber sonst sehr nice das Proggi.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, März 18, 2005 23:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht echt gut aus,

allerdings gehts in B+ nicht, da nur der Frontbuffer genutzt wird!
[BB2D | BB3D | BB+]

Markus2

BeitragSa, März 19, 2005 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
@Suco-X
dann verdienst du zu wenig Wink

Rallimen hat Folgendes geschrieben:
Sieht echt gut aus,
allerdings gehts in B+ nicht, da nur der Frontbuffer genutzt wird!


Ist doch eh nur ein Standbild , sollte aber kein Problem für B+ sein ,
wären nur 2 Zeilen mehr für deinen Backbuffer .

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, März 19, 2005 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
1 Zeile reicht schon, da der Backbuffer schon automatisch eingestellt wird!
Das habe ich auch nicht wegen mir geschrieben, sondern für andere,
um diverse Antworten wie"bei mir gehts nicht!" zu sparen!
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group