Jump to content
Sign in to follow this  
Profth3tic

[PASCAL]Bankomāts

Recommended Posts

Rakņājoties ,pa savu datoru atradu no pirmā kursa darbu ,kurā bija jāuztaisa bankomāts ar Pascal. Šāds darbs jau te ir ,bet šis ir uzlabots un ejošā stāvoklī.

 

Galvenais uzdevums: Izveidot bankomāta sistēmu ,ar paroles ievadīšanu ,bilances saglabāšanu diskā ,naudas izņemšanu(10,20,50,100Ls), naudas izņemšanu un valūtas konvertēšanu un protams arī programmas beigšanu.

Mani plusi un mīnusi darbā:

Plusi:

·         Bankomāta imitācija (uzgaida ,kad ieliks naudu ,kad izņems, kad izņems karti u.c.);

·         Izņemot naudu ,uzspiežot “Cita summa” var ievadīt tikai tādus ,skaitļus ,kas beidzas ar 0 vai 5 jeb tādu summu ,kuru var izņemt;

·         Var uzstādīt ieskaitīšanas, izņemšanas limitu (abiem viens un tas pats);

·         Nevar izņemt vairāk naudas nekā tev ir bilancē;

·         Paliku pie latiem ,jo tā man likās labāk;

·         Pēc darbībām vari izvēlēties vai turpināt vai atdot karti;

·         Bilance saglabājas failā;

·         Ja tavā kontā nav naudas ,tad apskatot bilanci uzrāda ,ka tev nepietiek līdzekļu;

Mīnusi:

·         Garš programmas kods (224 rindas) ar nenozīmīgiem saīsinājumiem;

·         Ieliekot naudu var ievadīt jebkuru summu ,kaut vajadzētu tikai skaitļus ,kuri beidzas ar 0 vai 5;

·         Var ievadīt nepareizu paroli neskaitāmas reizes un konts netiks bloķēts;

·         Ir tikai apaļas bilances summas ,bez santīmiem;

·         Nav konvertēšanas no eiro uz dolāriem;

Programmas kods

Program Bankomats;
Uses CRT;
Var a,n,c,b,i,z,r,maxsum,bilas:Integer;
e,q:Char;
f:text;
Const D=9111;	{bankas parole}
Label 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,dodcash;

	Begin
	GoToXY (10,10);
	1:
	maxsum:=500;	{limits iznemsanai}
	ClrScr;
	assign(f, 'C:\paskals\bilance.txt');
	reset(f);
	ReadLn(f,;
	GoToXY (10,10);
	TextColor(2);
	Write ('Ievadiet paroli: ');ReadLn (a);
	TextColor(7);
	If (a=D) Then GoTo 2 Else GoTo 1;

2:
ClrScr;
WriteLn ('Bilance (1)');
WriteLn ('Naudas iznemsana (2)');
WriteLn ('Naudas ieliksana (3)');
WriteLn ('Iziet (4)');
q:=readkey;
case q of
'1':GoTo 3;
'2':GoTo 4;
'3':GoTo 12;
'4':GoTo 13;
else GoTo 2;
end;

3:
ClrScr;
If B<1 then
WriteLn('Tava konta nav lidzeklu') else WriteLn ('Jusu bilance: ',;
WriteLn('Doties atpakal (1)');
If (readkey='1') then GoTo 2 else GoTo 2;

4:
ClrScr;
WriteLn ('5Ls (1)');
WriteLn ('10Ls (2)');
WriteLn ('20Ls (3)');
WriteLn ('50Ls (4)');
WriteLn ('100Ls (5)');
WriteLn ('Cita summa (6)');
WriteLn('Doties atpakal (7)');
q:=readkey;
case q of
'1':GoTo 5;
'2':GoTo 7;
'3':GoTo 9;
'4':GoTo 19;
'5':GoTo 16;
'6':GoTo 11;
'7':GoTo 2;
else GoTo 4;
end;

5:
ClrScr;
GoToXY (10,10);
Write ('Ievadiet kodu: ');ReadLn(a);
ClrScr;
If (a=D) Then GoTo 6 Else GoTo 5;

6:
B:=B-5;
reWrite(f);
Writeln(f, ;
TextColor(14);WriteLn('No jusu konta atskaititi 5Ls');
TextColor(7);WriteLn('Iznemiet naudu no bankomata');
Delay(3000);
WriteLn;WriteLn('Turpinat kadu citu darbibu?');
Write('Turpinat (y)   '); Write('   Atdot karti (n)');
q:=readkey;
If q='y' then GoTo 2 else GoTo 13;

7:
ClrScr;
GoToXY (10,10);
Write ('Ievadiet kodu: ');ReadLn(a);
ClrScr;
If (a=D) Then GoTo 8 Else GoTo 7;

8:
B:=B-10;
reWrite(f);
Writeln(f, ;
TextColor(14);WriteLn('No jusu konta atskaititi 10Ls');
TextColor(7);WriteLn('Iznemiet naudu no bankomata');
Delay(3000);
WriteLn;WriteLn('Turpinat kadu citu darbibu?');
Write('Turpinat (y)   '); Write('   Atdot karti (n)');
q:=readkey;
If q='y' then GoTo 2 else GoTo 13;

9:
ClrScr;
GoToXY (10,10);
Write ('Ievadiet kodu: ');ReadLn(a);
ClrScr;
If (a=D) Then GoTo 10 Else GoTo 9;

10:
B:=B-20;
reWrite(f);
Writeln(f, ;
TextColor(14);WriteLn('No jusu konta atskaititi 20Ls');
TextColor(7);WriteLn('Iznemiet naudu no bankomata');
Delay(3000);
WriteLn;WriteLn('Turpinat kadu citu darbibu?');
Write('Turpinat (y)   '); Write('   Atdot karti (n)');
q:=readkey;
If q='y' then GoTo 2 else GoTo 13;

19:
ClrScr;
GoToXY (10,10);
Write ('Ievadiet kodu: ');ReadLn(a);
ClrScr;
If (a=D) Then GoTo 18 Else GoTo 17;

18:
B:=B-50;
reWrite(f);
Writeln(f, ;
TextColor(14);WriteLn('No jusu konta atskaititi 50Ls');
TextColor(7);WriteLn('Iznemiet naudu no bankomata');
Delay(3000);
WriteLn;WriteLn('Turpinat kadu citu darbibu?');
Write('Turpinat (y)   '); Write('   Atdot karti (n)');
q:=readkey;
If q='y' then GoTo 2 else GoTo 13;

16:
ClrScr;
GoToXY (10,10);
Write ('Ievadiet kodu: ');ReadLn(a);
ClrScr;
If (a=D) Then GoTo 15 Else GoTo 16;

15:
B:=B-100;
reWrite(f);
Writeln(f, ;
TextColor(14);WriteLn('No jusu konta atskaititi 100Ls');
TextColor(7);WriteLn('Iznemiet naudu no bankomata');
Delay(3000);
WriteLn;WriteLn('Turpinat kadu citu darbibu?');
Write('Turpinat (y)   '); Write('   Atdot karti (n)');
q:=readkey;
If q='y' then GoTo 2 else GoTo 13;

11:
ClrScr;
Write('Ievadiet summu: ');ReadLn(r);
bilas:=0;
If r>maxsum then
begin
TextColor(12);Writeln('Parsniegts ', maxsum, 'Ls limits');Textcolor(7);
ReadLn;
goto 11;
end;
repeat
bilas:=bilas+5;
If r=bilas then goto dodcash;
until bilas=maxsum;
If bilas=maxsum then goto 11;
goto 11;
dodcash:
B:=B-r;
reWrite(f);
Writeln(f, ;
ClrScr;
If r>B then GoTo 17 else
Begin
TextColor(14);WriteLn('No jusu konta atskaititi ', r,'Ls');
Textcolor(7);WriteLn('Iznemiet naudu no bankomata');
End;
Delay(5000);
ClrScr;
WriteLn('Turpinat kadu citu darbibu?');
Write('Turpinat (y)   '); Write('   Atdot karti (n)');
q:=readkey;
If q='y' then GoTo 2 else GoTo 13;

17:
If r>B then WriteLn('Tava konta nav tik daudz naudas!');
WriteLn('Doties atpakal (1)');
q:=readkey;
If q='1' then GoTo 2 else GoTo 11;

12:
ClrScr;
Write ('Cik daudz naudu jus ievietosiet: ');ReadLn(r);
ClrScr;
reWrite(f);
Writeln(f, ;
ClrScr;
WriteLn('Ievietojiet naudas zimes');
Delay(5000);
WriteLn('Skaita naudu...');
Delay(5000);
B:=B+r;
TextColor(14);WriteLn;WriteLn(r,'Ls tika parskaititi uz jusu kontu');
Delay(1000);
TextColor(7);WriteLn;WriteLn('Turpinat kadu citu darbibu?');
Write('Turpinat (y)   '); Write('   Atdot karti (n)');
q:=readkey;
If q='y' then GoTo 2 else GoTo 13;

13:
ClrScr;
Writeln('Iznemiet karti!');
Delay(5000);
close(f);
End.

PROGRAMMAS LEJUPIELĀDE - http://goo.gl/BEHUZy

 

Ja sāki mācīties RTK ,tad noteikti šis tev būs 1. kursa beigās. Jo šāds uzdevums jau ir 4 gadus pēc kārtas!

Share this post


Link to post
Share on other sites

Es kad atveru "bankomats.exe" viņš uzreiz aizveras.

vajag mēģināt caur pascal atvērt šo kodu un palaist. es nezinu ,kas tieši par problēmu. tagad mēs programmējam ar C# un ar Pascal galīgi nav sakara vairs. pamēģini atvērt caur Pascal :)

Share this post


Link to post
Share on other sites

 

 

 

Beigās pirms end. pieliec readln();

exe tad aizvērsies, kad nospiedīsi ENTER... #RtuAproved

 

tur ir label ,kas konkrētā brīdī tikai aizver programmu. piemēram ,kad tiek izdota karte vai nauda. viņš tā pat neaizveras.

Share this post


Link to post
Share on other sites

Rīgā šādu liek :D uj tad jau nav tik grūti :D
Ogres teķī uzdod, ja atmiņa neviļ - algas kalkulātorus (INN), kas aprēķina n-tos apgādājamos, piešķirt atvieglojumu vai nē :D, sviests :D

Share this post


Link to post
Share on other sites

Rīgā šādu liek biggrin.png uj tad jau nav tik grūti biggrin.png

Ogres teķī uzdod, ja atmiņa neviļ - algas kalkulātorus (INN), kas aprēķina n-tos apgādājamos, piešķirt atvieglojumu vai nē biggrin.png, sviests biggrin.png

Man nekas tads RTU nebija

Share this post


Link to post
Share on other sites

Man nekas tads RTU nebija

Pārlasot topiku var secināt, ka šīs programmas jākodē RTK, ne RTU (cerams neteiksi, ka @RTU neliek pascal mācīties, es būšu šokēts, jo tas ir tas, ko visu pirmo kursu tur liek darīt, pats tagad tur studēju un žēl paliek redzot RTU elektronikas fakultātes studentu programmēšanas mājasdarbus uz C, viņiem reāli tie darbi ir interesantāki un lietderīgāki nekā ditf`os, tiesa viņiem citi priekšmeti super smagi biggrin.png)

Share this post


Link to post
Share on other sites

GOTO? shake-head-no.gif

Mani klasē nelaistu, ja ieminētos, ka programmā izmantoju goto.

nu par prakses darbu gada beigās bija 10. katrs jau dara savādāk ,es tajā Pascal nemaz neiedziļinājos vienkārši programmēju pēc savas saprašanas.

 

Pārlasot topiku var secināt, ka šīs programmas jākodē RTK, ne RTU (cerams neteiksi, ka @RTU neliek pascal mācīties, es būšu šokēts, jo tas ir tas, ko visu pirmo kursu tur liek darīt, pats tagad tur studēju un žēl paliek redzot RTU elektronikas fakultātes studentu programmēšanas mājasdarbus uz C, viņiem reāli tie darbi ir interesantāki un lietderīgāki nekā ditf`os, tiesa viņiem citi priekšmeti super smagi biggrin.png)

tā ir, visu pirmo kursu mēs ņēmām Pascal, bet tas ir tehnikums ,nevis universitāte. Mums tagad 2. kursā sāka mācīt C# ,tas ir daudz lietderīgāks nekā Pascal.

+ kā nezinošiem programmētājiem ,kuri grib mācīties tas ir lietderīgi ,redzēt ,ko tas nozīmē, ja viņš tomēr to nevar pavilkt ,tad var iet prom. 

Share this post


Link to post
Share on other sites

Pascal ir pamtas visam, lai reāli apgūtu jau kādu citu programēšanas valodu.

Funkcijas, masīvi u.c

Nez man pirmās valodas bija jQuery (js frameworks, ja kāds nav dzirdējis :o :o), php un C++ (amxx plugini trollolol.png ) 

 

Bet man pascal nešķiet kā labs sākuma pamats, tad jau labāk to pašu C, kam sintakse +/- līdzīga lielai daļai mūsdienu valodu.

Līdz ar to tādiem, kam ir pieredze, būtu interesantāk un tiem, kam tādas nav varētu vienlaicīgi apgūt algoritmu veidošanu un pamazām pierast pie sintakses, kurā ir {}/%* nevis begin end div mod mul.

 

Just my opinion, bet ko māca tas jāmācās, jebkurā gadījumā iemācīs visu, kas jāzina :D

Share this post


Link to post
Share on other sites

nu par prakses darbu gada beigās bija 10. katrs jau dara savādāk ,es tajā Pascal nemaz neiedziļinājos vienkārši programmēju pēc savas saprašanas.

Just saying, tiksi pie Sisojevas un pēc savas saprašanas vairs nedrīkstēsi programmēt, neatkarīgi no tā, ka programma strādā pēc dotā uzdevuma, par goto viņa piesiesies.

Share this post


Link to post
Share on other sites

Just saying, tiksi pie Sisojevas un pēc savas saprašanas vairs nedrīkstēsi programmēt, neatkarīgi no tā, ka programma strādā pēc dotā uzdevuma, par goto viņa piesiesies.

gribētu uzzināt ,kādu valoda viņa māca? to pašu Pascal? ja jā, tad tā skola reāli sūkā...

 

 

Nez man pirmās valodas bija jQuery (js frameworks, ja kāds nav dzirdējis ohmy.pngohmy.png), php un C++ (amxx plugini trollolol.png ) 

 

Bet man pascal nešķiet kā labs sākuma pamats, tad jau labāk to pašu C, kam sintakse +/- līdzīga lielai daļai mūsdienu valodu.

Līdz ar to tādiem, kam ir pieredze, būtu interesantāk un tiem, kam tādas nav varētu vienlaicīgi apgūt algoritmu veidošanu un pamazām pierast pie sintakses, kurā ir {}/%* nevis begin end div mod mul.

 

Just my opinion, bet ko māca tas jāmācās, jebkurā gadījumā iemācīs visu, kas jāzina biggrin.png

nu man arī bija pretenzijas pret Pascal ,bet tagad 2. kursā beidzot sāk mācīt C# un tas ir daudz daudz lietderīgāk nekā Pascal...

Share this post


Link to post
Share on other sites

Nez man pirmās valodas bija jQuery (js frameworks, ja kāds nav dzirdējis :o :o), php un C++ (amxx plugini trollolol.png )

Bet man pascal nešķiet kā labs sākuma pamats, tad jau labāk to pašu C, kam sintakse +/- līdzīga lielai daļai mūsdienu valodu.

Līdz ar to tādiem, kam ir pieredze, būtu interesantāk un tiem, kam tādas nav varētu vienlaicīgi apgūt algoritmu veidošanu un pamazām pierast pie sintakses, kurā ir {}/%* nevis begin end div mod mul.

Just my opinion, bet ko māca tas jāmācās, jebkurā gadījumā iemācīs visu, kas jāzina :D

jQuery par programēšanas valodu saukt nevar, jo kā pats minēji tas ir frameworks, tikpat labi laravel arī ir programēšanas valoda, jo tas ir php freims. Un vaitad amxx nebija pawn?

Share this post


Link to post
Share on other sites

gribētu uzzināt ,kādu valoda viņa māca? to pašu Pascal? ja jā, tad tā skola reāli sūkā...

Viņa māca C/C++, beigās vēl nedaudz Java pastāstīja.

Share this post


Link to post
Share on other sites

Viņa māca C/C++, beigās vēl nedaudz Java pastāstīja.

nu skaidrs, Java mums jau ir iemācīta, jo C# ,cik pasniedzējs teica, ir identiska Java.

 

izskatās ,ka daudz mācās vai ir mācijušies RTK. Interesanti...

Share this post


Link to post
Share on other sites

Un vaitad amxx nebija pawn?

Jup, pawn bāzējas uz C sintaksi`n`shits, bet njā saukt to par pawn laikam būtu bijis pareizāk, paldies par labojumu ;)

Saputrojos meistarībā :D

 

mellow.png

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.