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
|
# include <stdlib.h>
# include <gtk/gtk.h>
/* variale pour les widgets GTK */
GtkWidget *fenprin;
gchar *texte_mois;
int icone, i;
float montant, interet;
const char *fin;
const char *zone_text_montant;
const char *zone_text_interet;
GtkWidget *vconteneur;
GtkWidget *hconteneur_1;
GtkWidget *hconteneur_2;
GtkWidget *separation;
GtkWidget *labelzonemontant;
GtkWidget *zonemontant;
GtkWidget *labelzoneinteret;
GtkWidget *zoneinteret;
GtkWidget *calculbtn;
GtkWidget *label_mois;
GtkWidget *label_ancienne_solde;
/* fonction de calcul */
void calcul(GtkWidget *widget, gpointer data)
{
// récupére l'information de la zone de saisie zone montant
// et zone interet
zone_text_montant = gtk_entry_get_text(GTK_ENTRY(zonemontant));
zone_text_interet = gtk_entry_get_text(GTK_ENTRY(zoneinteret));
// transformation chaine de caractère en chaine numérique
// fonction atoi => ascii to int
montant = atof(zone_text_montant);
// transformation chaine de caractère en chaine numérique
// fonction atof => ascii to float
interet = atof(zone_text_interet);
for (i = 0;i < 12; i++)
{
/* transformation chaine numérique en chaine de caractère */
//sprintf(resultat,"%.2f",montant*(interet/12));
}
g_sprintf(fin,"%.2f",interet);
gtk_label_set_label(GTK_LABEL(label_ancienne_solde), fin);
}
int main (int argc,char **argv )
{
/* initialisation de GTK */
gtk_init(&argc, &argv);
/* création de la fenêtre */
fenprin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
icone = gtk_window_set_icon_from_file(GTK_WINDOW(fenprin),"placement.ico",NULL);
gtk_window_set_title(GTK_WINDOW(fenprin),"- Calcul de votre placement -");
gtk_window_set_default_size(GTK_WINDOW(fenprin),500,400);
/* conteneur vertical */
vconteneur = gtk_vbox_new(FALSE, 0 );
gtk_container_add(GTK_CONTAINER(fenprin), vconteneur);
/* 1er conteneur horizontal pour les boutons*/
hconteneur_1 = gtk_hbox_new(FALSE, 0 );
gtk_box_pack_start ( GTK_BOX(vconteneur),hconteneur_1, FALSE,FALSE,0);
/* Bar horizontale de séparation */
separation = gtk_hseparator_new();
gtk_box_pack_start ( GTK_BOX(vconteneur),separation, FALSE,FALSE,0);
/* création du label de la première zone de saisie */
labelzonemontant = gtk_label_new("Montant :");
gtk_box_pack_start ( GTK_BOX(hconteneur_1),labelzonemontant,FALSE,FALSE,0);
/* création de la première zone de saisie */
zonemontant = gtk_entry_new();
gtk_entry_set_max_length(GTK_ENTRY(zonemontant),9);
gtk_widget_set_size_request(zonemontant,85,25);
gtk_box_pack_start ( GTK_BOX(hconteneur_1),zonemontant,FALSE,FALSE,0);
/* création du label de la seconde zone de saisie */
labelzoneinteret = gtk_label_new(" (euros) - Intéret :");
gtk_box_pack_start ( GTK_BOX(hconteneur_1),labelzoneinteret,FALSE,FALSE,0);
/* création de la seconde zone de saisie */
zoneinteret = gtk_entry_new();
gtk_entry_set_max_length(GTK_ENTRY(zoneinteret),3);
gtk_widget_set_size_request(zoneinteret,85,25);
gtk_box_pack_start ( GTK_BOX(hconteneur_1),zoneinteret,FALSE,FALSE,0);
/* création du bouton */
calculbtn = gtk_button_new_with_label("Valider");
gtk_widget_set_size_request(calculbtn,85,25);
gtk_box_pack_end ( GTK_BOX(hconteneur_1),calculbtn,FALSE,FALSE,0);
g_signal_connect(G_OBJECT(calculbtn), "clicked", G_CALLBACK(calcul), NULL);
/* signal d'arrêt du programme */
g_signal_connect(G_OBJECT(fenprin), "delete-event",G_CALLBACK(gtk_main_quit), NULL);
/* 2ème conteneur horizontal pour les labels*/
hconteneur_2 = gtk_hbox_new(FALSE, 0 );
gtk_box_pack_start ( GTK_BOX(vconteneur),hconteneur_2, FALSE,FALSE,0);
/* création du label qui affiche les mois */
texte_mois = "- Mois/Année -\n\n Janvier\n Février\n Mars\n "
"Avril\n Mai\n Juin\n Juillet\n Août\n Septembre\n"
"Octobre\n Novembre\n Décembre";
label_mois = gtk_label_new(texte_mois);
gtk_label_set_justify(GTK_LABEL(label_mois),GTK_JUSTIFY_CENTER);
gtk_box_pack_start ( GTK_BOX(hconteneur_2),label_mois,FALSE,FALSE,0);
/* création du label qui affiche les anciennes soldes */
label_ancienne_solde = gtk_label_new("- Ancienne solde -\n\n 1111 ");
gtk_label_set_justify(GTK_LABEL(label_ancienne_solde),GTK_JUSTIFY_CENTER);
gtk_box_pack_start ( GTK_BOX(hconteneur_2),label_ancienne_solde,FALSE,FALSE,0);
/* boucle évènementielle */
gtk_widget_show_all(fenprin);
gtk_main();
return EXIT_SUCCESS;
} |
Partager