Simulation d'un crédit à intérêts composés

Soyez le premier à donner votre avis sur cette source.

Vue 37 103 fois - Téléchargée 1 145 fois

Description

Bon voila! c'est un programme qui calcul l'échéance d'un crédit sur une durée avec un taux d'intérêts.
Le fichier texte générer vous donnera les informations et le tableau d'amortissements de votre prêt.

C'est mon premier programme que je mets sur site... j'attend vos commentaires !!!!

Merci.

Source / Exemple :


static void Main(string[] args)
		{
			/* N'oublier pas m'envoyer un email si quelque chose cloche avec le programme.

  • Benbekka Mohamed: mailto:contact@mbenbekka.ecv.ms
  • Début du programme: Modifier le 06/03/2007 à ALGER */
float credit=MontantCredit(); int duree=DureeCredit(); float taux=TauxCredit(); result(credit,duree,taux); Console.Read(); } static float MontantCredit() { bool ok=false; float _credit=0; do { Console.Write("Montant de l'emprunt [Min:1000] ? "); try { _credit=float.Parse(Console.ReadLine().Replace(".",",").Trim()); if(_credit<1000) { Console.WriteLine("Montant non valide [Min:1000], Recommencez..."); ok=false;} else {ok=true;} // if/else } catch(Exception e) { Console.WriteLine(e.GetType().ToString()); Console.WriteLine("Montant non valide ! Recommencez..."); } // try/catch } while(ok==false); // do/while return _credit; // Montant du crédit validé } // MontantCredit() static int DureeCredit() { bool ok=false; int _duree=0; do { Console.Write("Durée du crédit en mois [Min:2 - Max:360]? "); try { _duree=int.Parse(Console.ReadLine().Trim()); if((_duree<2) | (_duree>360)) { Console.WriteLine("Durée non valide [Min:2 - Max:360], Recommencez..."); ok=false;} else {ok=true;} // if/else } catch(Exception e) { Console.WriteLine(e.GetType().ToString()); Console.WriteLine("Durée non valide ! Recommencez..."); } // try/catch } while(ok==false); // do/while return _duree; // Durée du crédit validée } // DureeCredit() static float TauxCredit() { bool ok=false; float _taux=0; do { Console.Write("Taux d'intérêts du crédit [Min:1.5 - Max:20.5]? "); try { _taux=float.Parse(Console.ReadLine().Replace(".",",").Trim()); if((_taux<1.5f) | (_taux>20.5f)) { Console.WriteLine("Taux non valide [Min:1.5 - Max:20.5], Recommencez..."); ok=false; } else {ok=true;} // if/else } catch(Exception e) { Console.WriteLine(e.GetType().ToString()); Console.WriteLine("Durée non valide ! Recommencez..."); } // try/catch } while(ok==false); // do/while return _taux; // Taux du crédit validé } // TauxCredit() static void result(float credit, int duree, float taux) { /* La formule du calcul je l'est trouvée sue le site: http://www.cbanque.com/
  • /
// Juste pour le calcul du montant de l'échéance (Mensualité à payer) float Tp=((taux/100)/12); // Taux périodique du crédit float Tpx=1+Tp; // Pour le tableau d'amortissement du crédit: float reste=credit; // Le reste du crédit float capital=0; // Le capital du crédit float interet=0; // Intérêt du crédit Tpx=(float)Math.Pow(Tpx,duree); float mensualite=(credit*Tpx*Tp)/(Tpx-1); // Le montant de l'échéache try { System.IO.StreamWriter fichier = new System.IO.StreamWriter("c:\\simulation.html"); fichier.AutoFlush=true; fichier.WriteLine("<html><head><title>Simulation</title></head>"); fichier.WriteLine("<body leftmargin=10 topmargin=10 rightmargin=10 bottommargin=10>"); fichier.WriteLine("<font size=3 color='#000080' face='Arial'>"); fichier.WriteLine("<b>&#160&#187&#160&#160Montant de l&#146emprunt : " + credit.ToString()+"<br>"); fichier.WriteLine("&#160&#187&#160&#160Dur&#233e : "+duree.ToString()+" Mois<br>"); fichier.WriteLine("&#160&#187&#160&#160Taux annuel du pr&#234t : "+taux.ToString()+"%<br>"); fichier.WriteLine("<font color='red'>&#160&#187&#160&#160Mensualit&#233 du cr&#233dit : "+mensualite.ToString()+"</font><br>"); fichier.WriteLine("&#160&#187&#160&#160Assurance mensuelle : 0<br>"); fichier.WriteLine("&#160&#187&#160&#160Frais additionnelles : 0</font></b><br><br>"); fichier.WriteLine("<table width='65%' border=1 bordercolor='#000080'>"); fichier.WriteLine("<caption><font color='#000080' size=3><b>TABLEAU D&#146AMORTISSEMENT CREDIT</b></font></caption>"); fichier.WriteLine("<tr bgcolor='#99ccff'><font color='#000080' size=2 face='Arial'><td><b>N&#186 Ech&#233ance</b></td>"); fichier.WriteLine("<td><b>Cr&#233dit</b></td><td><b>Capital</b></td><td><b>Int&#233r&#234t</b></td><td><b>Mensualit&#233</b></td></font></tr>"); for(int i=1; i<=duree; i++) // Tableau d'amortissement { interet=((reste*(taux/100))/12); capital=mensualite-interet; reste-=capital; string L; // Les colonnes du tableau L="<tr><td>"+i.ToString()+"</td>"; // L'actuelle échéance L+="<td>"+reste.ToString()+"</td>"; // Reste crédit pour l'actuelle échéance L+="<td>"+capital.ToString()+"</td>"; // Capital prélevé pour l'actuelle échéance L+="<td>"+interet.ToString()+"</td>"; // Intérêt prélevé pour l'actuelle échéance L+="<td>"+mensualite.ToString()+"</td></tr>"; // Mensualité fichier.WriteLine(L); } // for fichier.WriteLine("</table></body></html>"); fichier.Close(); Console.WriteLine("\r\n"+"Les informations sont stockés dans un fichier texte."); Console.WriteLine("Chemin du fichier est: C:\\simulation.html"); } catch(Exception e){ Console.WriteLine("L'erreur suivante c'est produite:"); Console.WriteLine(e.GetType().ToString()); Console.WriteLine(e.Message); } // try/catch } // result()

Codes Sources

A voir également

Ajouter un commentaire Commentaires
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
4 mars 2007 à 14:06
Salut le pb de ton code c'est que c'est assez reutilisable tel quel, il vaudrait peut etre mieux creer des fonctions qui remplissent une tache et qui renvoient un resultat ainsi on peut tres facilement reprendre le code pour l'integrer dans un autre programme qui remplirait une tache similaire
++
cs_Mimo24 Messages postés 3 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 5 mars 2007
4 mars 2007 à 14:23
C'est vrai !! je pouvais créer une class, qui fait le boulot, et c'est ce que je vais faire, en ajoutant les autres types du crédits .... et biensur implémenter tout ça dans une interface
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
4 mars 2007 à 14:26
oui
ou juste une fonction qui fait le calcul complet (donc il faut quelle recoive les parametres necessaire) , cette fonction effectuer le calcul (avec tous les tests) et retourne le resultat

imagine ainsi une personne qui aurait besoin de ce meme calcul il fait une recherche,tombe sur le code, et n'a plus qu'a le reutiliser !! merveilleux

++
cs_Mimo24 Messages postés 3 Date d'inscription dimanche 15 mai 2005 Statut Membre Dernière intervention 5 mars 2007
4 mars 2007 à 15:01
tout à fait d'accord avec toi !!! merci du conseil
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
5 mars 2007 à 09:25
et puis... faire un zip de la source ;)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.