1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
| # include <iostream>
# include "Classe_fenetre.hpp"
# include "Classe_formule_credit.cpp"
Fenetre::Fenetre () :
Tableau (10,15,false),
/* Données des widgets de la partie Vos revenus */
Titre_1 ("",Gtk::ALIGN_LEFT),
Etiquette_1 ("Paie du 1er emprunteur :", Gtk::ALIGN_RIGHT, Gtk::ALIGN_TOP),
Etiquette_2 ("Paie du 2ème emprunteur :", Gtk::ALIGN_RIGHT, Gtk::ALIGN_TOP),
Tolerance_sal_1 (1000,0,99999,10),
Tolerance_sal_2 (1000,0,99999,10),
Btn_compteur_sal_1 (Tolerance_sal_1),
Btn_compteur_sal_2 (Tolerance_sal_2),
Etiquette_euro_1 ("",Gtk::ALIGN_LEFT),
Etiquette_euro_2 ("",Gtk::ALIGN_LEFT),
/* Données des widgets de la partie Votre pret */
Titre_2 ("",Gtk::ALIGN_LEFT),
Etiquette_3 ("Taux d'intérêt :", Gtk::ALIGN_RIGHT, Gtk::ALIGN_TOP),
Etiquette_4 ("Durée de l'emprunt:", Gtk::ALIGN_RIGHT, Gtk::ALIGN_TOP),
Etiquette_5 ("Somme empruntée :", Gtk::ALIGN_RIGHT, Gtk::ALIGN_TOP),
Tolerance_pourcent (3.50,1.00,20.00,0.01),
Tolerance_duree (10,1,30,1),
Tolerance_montant (100000,1000,9999999,100),
Btn_compteur_pourcent (Tolerance_pourcent,1.0,2),
Btn_compteur_duree (Tolerance_duree),
Btn_compteur_montant (Tolerance_montant),
Etiquette_pourcent ("%",Gtk::ALIGN_LEFT),
Etiquette_duree ("ans",Gtk::ALIGN_LEFT),
Etiquette_montant ("",Gtk::ALIGN_LEFT),
/* Données des widgets de la partie résultats */
Titre_3 ("",Gtk::ALIGN_LEFT),
Etiquette_6 ("Votre mensualité est de :", Gtk::ALIGN_RIGHT, Gtk::ALIGN_TOP),
Etiquette_7 ("Votre mensualité maxi est de :", Gtk::ALIGN_RIGHT, Gtk::ALIGN_TOP),
Etiquette_8 ("Votre capacité d'emprunt est de :", Gtk::ALIGN_RIGHT, Gtk::ALIGN_TOP),
Etiquette_9 ("Les intérêts total pour votre prêt :", Gtk::ALIGN_RIGHT, Gtk::ALIGN_TOP),
Tolerance_mensualite (0,0,20000.00,1),
Btn_compteur_mensualite (Tolerance_mensualite,1.0,2),
Etiquette_mensualite ("",Gtk::ALIGN_LEFT),
Etiquette_mensualite_maxi ("",Gtk::ALIGN_LEFT),
Etiquette_capacite_emprunt ("",Gtk::ALIGN_LEFT),
Etiquette_interet ("",Gtk::ALIGN_LEFT),
/* Les boutons */
Btn_calculer ("Calculer"),
Btn_quit ("Quitter")
{
/* Configuration de la fenetre */
resize(700, 500);
set_title("Calcul de votre prêt immobilier");
set_border_width(10);
set_position(Gtk::WIN_POS_CENTER);
add(Tableau);
/* Les éléments pour la rubrique "Vos revenus" */
/* 1er ligne */
Tableau.attach(Titre_1,0,3,0,1,Gtk::FILL, Gtk::FILL,5,5);
Titre_1.set_markup("<u>Vos revenus</u>");
/* 2ème ligne */
/* information par bulle */
Btn_compteur_sal_1.set_tooltip_text("--- Champs de saisie obligatoire ---\nEntrer directement la paie du premier emprunteur");
Tableau.attach(Etiquette_1,0,1,1,2,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Btn_compteur_sal_1,1,2,1,2,Gtk::FILL, Gtk::FILL,0,0);
Tableau.attach(Etiquette_euro_1,2,3,1,2,Gtk::FILL, Gtk::FILL,5,5);
/* 3ème ligne */
Tableau.attach(Etiquette_2,0,1,2,3,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Btn_compteur_sal_2,1,2,2,3,Gtk::FILL, Gtk::FILL,0,0);
Tableau.attach(Etiquette_euro_2,2,3,2,3,Gtk::FILL, Gtk::FILL,5,5);
/* Les éléments pour la rubrique "Le prêt" */
/* 1er ligne */
Tableau.attach(Titre_2,0,3,3,4,Gtk::FILL, Gtk::FILL,5,5);
Titre_2.set_markup("<u>Votre Prêt</u>");
/* 2ème ligne */
Tableau.attach(Etiquette_3,0,1,4,5,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Btn_compteur_pourcent,1,2,4,5,Gtk::FILL, Gtk::FILL,0,0);
Tableau.attach(Etiquette_pourcent,2,3,4,5,Gtk::FILL, Gtk::FILL,5,5);
/* 3ème ligne */
Tableau.attach(Etiquette_4,0,1,5,6,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Btn_compteur_duree,1,2,5,6,Gtk::FILL, Gtk::FILL,0,0);
Tableau.attach(Etiquette_duree,2,3,5,6,Gtk::FILL, Gtk::FILL,5,5);
/* 4ème ligne */
Tableau.attach(Etiquette_5,0,1,6,7,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Btn_compteur_montant,1,2,6,7,Gtk::FILL, Gtk::FILL,0,0);
Tableau.attach(Etiquette_montant,2,3,6,7,Gtk::FILL, Gtk::FILL,5,5);
/* Les éléments pour les résultats */
/* 1er ligne */
Tableau.attach(Titre_3,5,10,0,1,Gtk::FILL, Gtk::FILL,5,5);
Titre_3.set_markup("<u>Résultats</u>");
/* 2ème ligne */
Tableau.attach(Etiquette_6,5,8,1,2,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Btn_compteur_mensualite,8,9,1,2,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Etiquette_mensualite,9,10,1,2,Gtk::FILL, Gtk::FILL,5,5);
/* 3ème ligne */
Tableau.attach(Etiquette_7,5,8,2,3,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Resultat_mensualite_maxi,8,9,2,3,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Etiquette_mensualite_maxi,9,10,2,3,Gtk::FILL, Gtk::FILL,5,5);
/* 4ème ligne */
Tableau.attach(Etiquette_8,5,8,3,4,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Resultat_capacite_emprunt,8,9,3,4,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Etiquette_capacite_emprunt,9,10,3,4,Gtk::FILL, Gtk::FILL,5,5);
/* 5ème ligne */
Tableau.attach(Etiquette_9,5,8,4,5,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Resultat_interet,8,9,4,5,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Etiquette_interet,9,10,4,5,Gtk::FILL, Gtk::FILL,5,5);
/* Les éléments pour le tableau amortissement */
barredefilement.add(m_Tableau_pret);
barredefilement.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS);
Tableau.attach(barredefilement,0,10,7,14);
m_refTreeModel = Gtk::ListStore::create(Tableau_amortissement);
m_Tableau_pret.set_model(m_refTreeModel);
m_Tableau_pret.append_column(" Echéance N° ", Tableau_amortissement.m_col_echeance);
m_Tableau_pret.append_column(" Mensualité ", Tableau_amortissement.m_col_mensualite);
m_Tableau_pret.append_column(" Intérêt de la période ", Tableau_amortissement.m_col_interet);
m_Tableau_pret.append_column(" Amortissement de la période ", Tableau_amortissement.m_col_restant);
m_Tableau_pret.append_column(" Capital restant à rembourser ", Tableau_amortissement.m_col_rembourser);
/* Les boutons */
Tableau.attach(Btn_calculer,2,5,14,15,Gtk::FILL, Gtk::FILL,5,5);
Tableau.attach(Btn_quit,5,6,14,15,Gtk::FILL, Gtk::FILL,5,5);
Btn_calculer.signal_clicked().connect(sigc::mem_fun(this, &Fenetre::Calculer_pret));
Btn_quit.signal_clicked().connect(sigc::ptr_fun(&Gtk::Main::quit));
show_all();
}
Fenetre::~Fenetre ()
{
}
void Fenetre::Calculer_pret ()
{
/* Récupération des valeurs */
int Valeur_Sal_1 = Btn_compteur_sal_1.get_value_as_int();
int Valeur_Sal_2 = Btn_compteur_sal_2.get_value_as_int();
double recuperation = Btn_compteur_pourcent.get_value();
float Valeur_interet = (float)recuperation;
int Valeur_duree = Btn_compteur_duree.get_value_as_int();
int Valeur_montant = Btn_compteur_montant.get_value_as_int();
float Formule_Resultat_mensualite_maxi;
int a;
/* Calcul du pret */
Pret p(Valeur_montant,Valeur_duree,Valeur_interet);
/* Conversion int en ustring */
// Glib::ustring convertir;
// std::stringstream strstr;
// strstr << p.Mensualite();
// strstr >> convertir;
Btn_compteur_mensualite.set_value(p.Mensualite());
/* Calcul de la capacité d'emprunt */
/* Conversion int en ustring */
// Glib::ustring convertir_2;
// std::stringstream strstr_2;
// strstr_2 << p.Capacite_emprunt ();
// strstr_2 >> convertir_2;
// Resultat_capacite_emprunt.set_text(convertir_2);
m_refTreeModel.clear();
for ( a = 1; a < 10 ; a++)
{
/*Remplit le tableau */
Gtk::TreeModel::Row row = *(m_refTreeModel->append());
row[Tableau_amortissement.m_col_echeance] = a;
row[Tableau_amortissement.m_col_mensualite] = p.Mensualite();
row[Tableau_amortissement.m_col_interet] = p.Mensualite ()-p.Amortissement(a);
row[Tableau_amortissement.m_col_restant] = p.Amortissement (a);
row[Tableau_amortissement.m_col_rembourser] = Valeur_montant-p.Remboursement (a);
}
} |
Partager