Cliquez ici
import 'dart:js_util';
import 'dart:math';
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
const appTitle = 'Additionner deux nombres';
return MaterialApp(
debugShowCheckedModeBanner: false,
title: appTitle,
home: Scaffold(
appBar: AppBar(
title: const Text(appTitle),
),
body: const AdditionnerDeuxNombres(),
),
);
}
}
class AdditionnerDeuxNombres extends StatefulWidget {
const AdditionnerDeuxNombres({super.key});
@override
_AdditionnerDeuxNombresState createState() => _AdditionnerDeuxNombresState();
}
class _AdditionnerDeuxNombresState extends State {
TextEditingController num1controller = TextEditingController();
TextEditingController num2controller = TextEditingController();
String result = "0";
String? operation;
@override
Widget build(BuildContext context) {
return Container(
alignment: Alignment.topCenter,
padding: const EdgeInsets.symmetric(horizontal: 40, vertical: 20),
child: Column(
children: [
Row(
children: [
Flexible(
child: TextField(
decoration: InputDecoration(
hintText: "Saisir le premier nombre",
contentPadding: const EdgeInsets.all(12),
isDense: true,
focusedBorder: const OutlineInputBorder(
borderSide: BorderSide(
width: 2, color: Color.fromARGB(255, 99, 82, 255)),
),
suffixIcon: IconButton(
icon: const Icon(Icons.clear,
color: Color.fromARGB(255, 201, 73, 67)),
onPressed: viderTextField),
),
controller: num1controller,
// clear text),
),
),
],
),
Row(
children: [
Flexible(
child: TextField(
decoration: InputDecoration(
hintText: "Saisir le deuxième nombre",
contentPadding: const EdgeInsets.all(12),
isDense: true,
focusedBorder: const OutlineInputBorder(
borderSide: BorderSide(
width: 2, color: Color.fromARGB(255, 99, 82, 255)),
),
suffixIcon: IconButton(
icon: const Icon(Icons.clear,
color: Color.fromARGB(255, 201, 73, 67)),
onPressed: viderTextField2),
),
controller: num2controller,
// clear text),
),
),
],
),
//Ajouter un espace
const SizedBox(
height: 10,
),
const Divider(),
Row(
children: [
Flexible(
child: RadioListTile(
title: const Text("+"),
value: "plus",
groupValue: operation,
onChanged: (value) {
setState(() {
operation = value.toString();
});
},
controlAffinity: ListTileControlAffinity.trailing,
),
),
Flexible(
child: RadioListTile(
title: const Text("-"),
value: "moins",
groupValue: operation,
onChanged: (value) {
setState(() {
operation = value.toString();
});
},
controlAffinity: ListTileControlAffinity.trailing,
),
),
Flexible(
child: RadioListTile(
title: const Text("*"),
value: "fois",
groupValue: operation,
onChanged: (value) {
setState(() {
operation = value.toString();
});
},
controlAffinity: ListTileControlAffinity.trailing,
),
),
Flexible(
child: RadioListTile(
title: const Text("/"),
value: "division",
groupValue: operation,
onChanged: (value) {
setState(() {
operation = value.toString();
});
},
controlAffinity: ListTileControlAffinity.trailing,
),
),
Flexible(
child: RadioListTile(
title: const Text("^"),
value: "puissance",
groupValue: operation,
onChanged: (value) {
setState(() {
operation = value.toString();
});
},
controlAffinity: ListTileControlAffinity.trailing,
),
),
Flexible(
child: RadioListTile(
title: const Text("%"),
value: "resteDivision",
groupValue: operation,
onChanged: (value) {
setState(() {
operation = value.toString();
});
},
controlAffinity: ListTileControlAffinity.trailing,
),
),
],
),
const Divider(),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
sommeDeuxNombres();
},
child: const Text("Vider le contenu du TextField"))
],
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
"Résultat:",
style: TextStyle(
fontSize: 30,
),
),
Text(
result,
style: const TextStyle(
fontSize: 30,
),
),
],
),
],
),
);
}
void sommeDeuxNombres() {
setState(() {
if (operation == 'plus') {
int sum =
int.parse(num1controller.text) + int.parse(num2controller.text);
result = sum.toString();
} else if (operation == 'moins') {
int sum =
int.parse(num1controller.text) - int.parse(num2controller.text);
result = sum.toString();
} else if (operation == 'fois') {
int sum =
int.parse(num1controller.text) * int.parse(num2controller.text);
result = sum.toString();
} else if (operation == 'puissance') {
num sum =
pow(int.parse(num1controller.text), int.parse(num2controller.text));
result = sum.toString();
} else if (operation == 'resteDivision') {
int sum =
int.parse(num1controller.text) % int.parse(num2controller.text);
result = sum.toString();
} else {
double sum = double.parse(num1controller.text) /
double.parse(num2controller.text);
result = sum.toString();
}
});
}
void viderTextField() {
num1controller.clear();
setState(() {
result = '0'.toString();
});
}
void viderTextField2() {
num2controller.clear();
setState(() {
result = '0'.toString();
});
}
}