Prooof
عدد المساهمات : 12 نقاط : 5731 تاريخ التسجيل : 21/04/2009
| موضوع: برنامج تسيير الحساب البريدي الجاري الأحد مايو 24, 2009 3:04 pm | |
| برنامج حول Liste و Pointeur يقوم يجميع العمليات على Liste من الإنشاء و الحذف و التغيير و هذا على الحسابات البريدية زوروني على: { ********************************************************************* \\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////////// \\\\\\\\\\\\\\\\\//////////////////// \\\\\\\\\////////// \\\\\////// * bienvuenu dans le programme de: * * SERVICE CCP * * ===SAADEDDINE MOHAMED NADJIB=== * * ===HAMMADI MOHAMED EL-HABIB=== * * Proposé par l''enseignant : * * ===BENMIR ABD EL KADER=== * /////\\\\\\ /////////\\\\\\\\\\ /////////////////\\\\\\\\\\\\\\\\\\\\ ////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ************************************************************************ }
program ccp_service; uses crt; type ccp_liste=^ccp; ccp=record num_compte:integer; nom:string; prenom:string; montant:real; suiv:ccp_liste; end; var t,p,u,q:ccp_liste; {*********************************************************} procedure header; begin writeln(' ***********************************************************'); writeln(' \\\\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////////////'); writeln(' \\\\\\\\\\\\\\\\\//////////////////// '); writeln(' \\\\\\\\\////////// '); writeln(' \\\\\////// '); writeln(' * bienvuenu dans le programme de: *'); writeln(' * SERVICE CCP *'); writeln(' * ===SAADEDDINE MOHAMED NADJIB=== *'); writeln(' * ===HAMMADI MOHAMED EL-HABIB=== *'); writeln(' * Proposé par l''enseignant : *'); writeln(' * ===BENMIR ABD EL KADER=== *'); writeln(' /////\\\\\\ '); writeln(' /////////\\\\\\\\\\ '); writeln(' /////////////////\\\\\\\\\\\\\\\\\\\\ '); writeln(' ////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\''''); writeln(' ***********************************************************'); end; {*********************les procedure de creation*********************} procedure creation_premier_compte; begin clrscr; header; new(t); u:=t; write('numero de compte:'); readln(u^.num_compte); write('nom:'); readln(u^.nom); write('prenom:'); readln(u^.prenom); write('montant:'); readln(u^.montant); while u^.montant<0 do begin writeln; writeln ('votre montant est un nbr negative!!'); writeln; writeln('donner le montant deuxieme fois'); readln(u^.montant); end; u^.suiv:=nil; writeln; writeln; writeln(' appuller sur n''import qu''une touche.....'); readln; clrscr; end; {**************} function check_repeted(num_compte:integer):integer; begin q:=t; while (q^.num_compte<>num_compte) and (q<>nil) do begin q:=q^.suiv; end; if q^.num_compte=num_compte then begin check_repeted:=1; writeln; writeln; writeln('cet numero de compte est exist deja.'); writeln('entrez un autre numero:'); end; if q=nil then begin check_repeted:=0; end; end; {***************} procedure creation_nouvelle_compte; var y:integer; i:integer; begin clrscr; y:=1; while y<>0 do begin new(p); repeat write('numero de compte:'); readln(p^.num_compte); i:=check_repeted(p^.num_compte); until i<>1 ; write('nom:'); readln(p^.nom); write('prenom:'); readln(p^.prenom); write('montant:'); readln(p^.montant); while p^.montant<0 do begin writeln ('votre montant est un nbr negative!!'); writeln('donner le montant deuxieme fois'); readln(p^.montant); end; u^.suiv:=p; u:=p; writeln; writeln; writeln('appuller sur <1> pour creer un autre compte.'); writeln('appuller sur <0> pour sortir...'); readln(y); clrscr; end; p^.suiv:=nil; end; {***************************les procedure de manipulation***************************} procedure supprimer_un_compte; var num_compte:integer; begin p:=t; write('donner le numero de compte pour supprimer:'); readln(num_compte); if p^.num_compte=num_compte then begin if p^.montant=0 then t:=t^.suiv; end; while (p^.num_compte<>num_compte) and (p<>nil) do begin q:=p; p:=p^.suiv; end; if p^.num_compte=num_compte then begin if p^.montant=0 then begin q^.suiv:=p^.suiv; writeln('le compte est supprimer avec succes....'); readln; end; if p^.montant<>0 then begin writeln('le compte n''est pas vide!!.'); readln; end; end; if p=nil then begin writeln('le compte n''existe pas.'); readln; end; end; {********} procedure modification_un_compte; var num_compte:integer; begin p:=t; write('donner le numero de compte pour modifier:'); readln(num_compte); while (p^.num_compte<>num_compte) and (p<>nil) do begin p:=p^.suiv; end; if p^.num_compte=num_compte then begin write('entrer le nouveau nom:'); readln(p^.nom); write('entrer le nouveau prenom:'); readln(p^.prenom); writeln;writeln; writeln('le compte est modifier avec succes....'); readln; end; if p=nil then begin writeln('le compte n''existe pas.'); readln; end; end; {********} {********} procedure avoir; var num_compte:integer; begin write('donner le numero de compte:'); readln(num_compte); writeln; writeln;
p:=t; while (p^.num_compte<>num_compte) and (p<>nil) do begin p:=p^.suiv; end; if p^.num_compte=num_compte then begin p^.montant:=p^.montant-10; writeln;writeln;writeln; writeln(' votre montant actuelle est:',p^.montant:6:2); readln; end; if p=nil then begin writeln('le compte n''existe pas.'); readln; end; end; {*******} procedure retrait; var num_compte:integer; retrait_montant:real; begin write('donner le numero de compte:'); readln(num_compte); write('entrer le montant que vous veuler retrait:'); readln(retrait_montant); while retrait_montant<0 do begin writeln ('votre montant que vous veuler retrait est un nbr negative!!'); writeln('donner le montant que vous veuler retrait deuxieme fois'); readln(retrait_montant); end; writeln; writeln;
p:=t; while (p^.num_compte<>num_compte) and (p<>nil) do begin p:=p^.suiv; end; if p^.num_compte=num_compte then begin if p^.montant >=retrait_montant then begin p^.montant:=p^.montant-retrait_montant; writeln;writeln;writeln; writeln('votre montant actuelle:',p^.montant:6:2); readln; end; if p^.montant < retrait_montant then begin writeln('votre montant n''est contient pas plus d''argent.'); readln; end; end; if p=nil then begin writeln('le compte n''existe pas.'); readln; end; end; {*******} procedure versement; var num_compte_1:integer; num_compte_2:integer; ch:integer; versement_montant:real; begin writeln('< 1 >:pour ajouter de votre montant'); writeln('< 2 >:pour verser a partir d''un autre compte'); readln(ch); if ch=2 then begin write('donner le numero de compte d''envoit:'); readln(num_compte_1); writeln; write('entrer le montant que vous vouler verser:'); readln(versement_montant); while versement_montant<0 do begin writeln ('votre montant que vous veuler verser est un nbr negative!!'); writeln; writeln('donner le montant que vous veuler verser deuxieme fois'); readln(versement_montant); end; writeln;
p:=t; while (p^.num_compte<>num_compte_1) and (p<>nil) do begin p:=p^.suiv; end; if p^.num_compte=num_compte_1 then begin if p^.montant >= versement_montant then begin p^.montant:=p^.montant-versement_montant; writeln;writeln; readln; end; if p^.montant < versement_montant then begin writeln('votre montant n''est contient pas plus d''argent.'); readln; end; end; if p=nil then begin writeln('le compte n''existe pas.'); readln; end; end; {******} writeln; if ((ch=2) and (p^.montant>=versement_montant)) or (ch=1) then begin write('donner le numero de compte de reception:'); readln(num_compte_2); end; {************} if ch=1 then begin write('entrer le montant que vous vouler verser:'); readln(versement_montant); while versement_montant<0 do begin writeln ('votre montant que vous veuler verser est un nbr negative!!'); writeln; writeln('donner le montant que vous veuler verser deuxieme fois'); readln(versement_montant); end; end; {*********} writeln; writeln;
p:=t; while (p^.num_compte<>num_compte_2) and (p<>nil) do begin p:=p^.suiv; end; if p^.num_compte=num_compte_2 then begin p^.montant:=p^.montant+versement_montant; writeln;writeln; writeln('votre montant apprer le reception:',p^.montant:6:2); readln; end; if p=nil then begin if ch=1 then begin writeln('le compte n''existe pas.'); readln; end; end; end; {************************les procedure de affichage*******************************} procedure affichage_toute; var compteur :integer; begin compteur:=0; p:=t; while p<>nil do begin writeln('le numero de compte est:',p^.num_compte); writeln('le nom est:',p^.nom); writeln('le prenom est:',p^.prenom); writeln('le montant est:',p^.montant:6:2); writeln('********************'); p:=p^.suiv; compteur:=compteur+1; if compteur mod 4=0 then begin writeln;writeln; writeln('Appllyer sur n''import qu''une tauche pour continuer !!.'); readln; clrscr; end; end; if compteur mod 4<>0 then readln; end; {*********} procedure affichage_un_compte; var num_compte:integer; begin write('donner le numero de compte:'); readln(num_compte); writeln; writeln;
p:=t; while (p^.num_compte<>num_compte) and (p<>nil) do begin p:=p^.suiv; end; if p^.num_compte=num_compte then begin writeln('le numero de compte est:',p^.num_compte); writeln('le nom est:',p^.nom); writeln('le prenom est:',p^.prenom); writeln('le montant est:',p^.montant:6:2); readln; end; if p=nil then begin writeln('le compte n''existe pas.'); readln; end; end; {*********************************************************} {**********************the main program********************} var chois:integer; begin creation_premier_compte; chois:=1; while chois<>0 do begin clrscr; header; writeln('choiser une operation:'); writeln('appuller sur <1> pour cree un autre compte.'); writeln('appuller sur <2> pour supprimer un compte.'); writeln('appuller sur <3> pour modifier un compte.'); writeln('appuller sur <4> pour avoir un compte (service:10 DA).'); writeln('appuller sur <5> pour retrait.'); writeln('appuller sur <6> pour verser.'); writeln('appuller sur <7> pour afficher un specifier compte.'); writeln('appuller sur <8> pour afficher toute les comptes.'); writeln('appuller sur <0> pour quiter.'); writeln; writeln; write('choise:'); readln(chois); clrscr; header; case chois of 1: creation_nouvelle_compte; 2: supprimer_un_compte; 3: modification_un_compte; 4: avoir; 5: retrait; 6: versement; 7: affichage_un_compte; 8: affichage_toute; end; end; end. | |
|