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

Soyez le premier à donner votre avis sur cette source.

Vue 36 119 fois - Téléchargée 1 096 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
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
58
Un goût de programmation?
Tu plaisantes j'espère ^^ (le seul qui pourrait être un goût de programmation c'est le !ok)

Pour le reste, c'est des grosses à très grosses erreurs de programmation.
Corriges vite!

Merci.
Messages postés
3
Date d'inscription
dimanche 15 mai 2005
Statut
Membre
Dernière intervention
5 mars 2007

Je suis d'accord avec Bidou pour le stream.......pour le reste ça reste juste un gout de programmation, mais merci quand même.
sebmafate voila le zip même en VB.NET l'interface et la classe si ça t'intéresse...
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
58
Après un rapide coup d'oeil:

Si on enlève les Console.WriteLine, il ne reste pas grand chose (un snippet aurait-il suffit?)
En plus:

- Ne pas utiliser Parse mais TryParse (plus besoin de bloc try-catch)
- String.Format au lieu de tout ces '+' !!!!!!!!!!!!
- Le stream 'fichier' n'est jamais fermé
- ok==false => !ok
- _credit=float.Parse(Console.ReadLine().Replace(".",",").Trim()); keskeCkesa !? => System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator

Dans l'état, je ne pense psa que cette source restera, merci donc de bien vouloir la mettre à jour!
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
et puis... faire un zip de la source ;)
Messages postés
3
Date d'inscription
dimanche 15 mai 2005
Statut
Membre
Dernière intervention
5 mars 2007

tout à fait d'accord avec toi !!! merci du conseil
Afficher les 8 commentaires

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.