-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcalculator.h
77 lines (67 loc) · 1.98 KB
/
calculator.h
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
/*
POLITEKNIK NEGERI BANDUNG
D4 Teknik Informatika - 1A
Developer :
- Muhammad Azhar Alauddin (201524013)
- Muhammad Fauzi Rizki Hamdalah (201524015)
- Rifatia Yumna Salma (201524024)
Program : Calculator Using Binary Tree
File : calculator.h
IDE : DevC++, VS Code
Compiler : GCC 4.9.2
-------------------------------------- */
#ifndef calculator_H
#define calculator_H
#include "tree.h"
#include "tree.c"
#include "applicationUI.c"
#include <stdbool.h>
typedef struct {
char expression[200];
double result;
addrNode expressionTree;
}Calculator;
void createCalculator(Calculator *calculator);
/**
* Membuat calculator baru
* IS : calculator random value
* FS : calculator default value
*/
bool isValidExpression(char *expression);
/**
* Mengecek apakah pada string ekspresi memuat karakter illegal (bukan operator/simbol matematis)
* Mengembalikan true jika tidak ada karakter ilegal
* Mengembalikan false jika terdapat karakter ilegal
*/
void checkFirstChar(char *expression);
/**
* Mengecek apakah simbol pertama merupakan minus
* IS : ekspresi string
* FS1 : ekspresi string digeser ke kanan 1, dan pada index 0 insert '0'
* FS2 : ekspresi string tidak dimanipulasi
*/
void insertExpression(Calculator *calculator);
/**
* Memasukan string ekspresi kedalam kalkulator
* IS : kalkulator dengan ekspresi kosong
* FS : kalkulator dengan ekspresi terisi oleh inputan user
*/
bool calculateExpression();
/**
* Melakukan kalkulasi ekspresi matematika pada tree
* Mengembalikan true jika proses kalkulasi berhasil
* Mengembalikan false jika proses kalkulasi gagal
*/
void printResult(Calculator calculator, bool isSuccess);
/**
* Menampilkan hasil expresi
* IS : layar kosong
* FS : tampil hasil perhitungan ekspresi aritmatik dan ekspresinya
*/
bool isContinueCalculator();
/**
* mengecek apakah pengguna mengulang proses kalkulasi
* Mengembalikan true jika iya
* Mengembalikan false jika tidak
*/
#endif