0% found this document useful (0 votes)
2 views

Calculator code

The document contains a Flutter application code for a basic calculator. It allows users to input two numbers and perform addition, subtraction, multiplication, or division. The result is displayed on the screen, and it handles invalid inputs gracefully.

Uploaded by

Ajaitri Kar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Calculator code

The document contains a Flutter application code for a basic calculator. It allows users to input two numbers and perform addition, subtraction, multiplication, or division. The result is displayed on the screen, and it handles invalid inputs gracefully.

Uploaded by

Ajaitri Kar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Calculator code

import 'package:flutter/material.dart';

void main() {
runApp(const MyApp());
}

class MyApp extends StatelessWidget {


const MyApp({super.key});

@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Basic Calculator',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
useMaterial3: true,
),
home: const CalculatorPage(title: 'Basic Calculator'),
);
}
}

class CalculatorPage extends StatefulWidget {


const CalculatorPage({super.key, required this.title});

final String title;

@override
State<CalculatorPage> createState() => _CalculatorPageState();
}

class _CalculatorPageState extends State<CalculatorPage> {


final TextEditingController num1Controller = TextEditingController();
final TextEditingController num2Controller = TextEditingController();
double? result;

void calculate(String operation) {


double? num1 = double.tryParse(num1Controller.text);
double? num2 = double.tryParse(num2Controller.text);

if (num1 == null || num2 == null) {


setState(() {
result = null;
});
return;
}

setState(() {
switch (operation) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num2 != 0 ? num1 / num2 : null;
break;
default:
result = null;
}
});
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextField(
controller: num1Controller,
keyboardType: TextInputType.number,
decoration: const InputDecoration(
labelText: 'Enter first number',
border: OutlineInputBorder(),
),
),
const SizedBox(height: 10),
TextField(
controller: num2Controller,
keyboardType: TextInputType.number,
decoration: const InputDecoration(
labelText: 'Enter second number',
border: OutlineInputBorder(),
),
),
const SizedBox(height: 20),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
ElevatedButton(
onPressed: () => calculate('+'),
child: const Text('+'),
),
ElevatedButton(
onPressed: () => calculate('-'),
child: const Text('-'),
),
ElevatedButton(
onPressed: () => calculate('*'),
child: const Text('*'),
),
ElevatedButton(
onPressed: () => calculate('/'),
child: const Text('/'),
),
],
),
const SizedBox(height: 20),
Text(
result == null
? 'Enter valid numbers and choose an operation'
: 'Result: ${result!.toStringAsFixed(2)}',
style: Theme.of(context).textTheme.headlineSmall,
),
],
),
),
);
}
}

You might also like