forked from Yonv1943/Python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Airways Management System
175 lines (156 loc) · 6.53 KB
/
Airways Management System
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
Make Sure You've Installed Python Text to speech i.e. pyttsx3
If not then Open Command Prompt and type : pip install pyttsx3
Source Code :
# Airways Management System
import pickle # we are using pickle bec it operates binary files (will increase performance of program).
import os # we are using os to handle some operation with file like renaming and deleting.
import pyttsx3 # this is Python text-to-speech which gives a voice to our Airways Management System.
flight_det = {}
def speak(line):
'''it will give a female voice to Every line given as argument(parameter)'''
voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0"
voice = pyttsx3.init()
voice.setProperty('voice', voice_id)
voice.say(line)
voice.runAndWait()
def say(line):
'''it is Same as speak() but dude it speaks in Male voice'''
voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0"
voice = pyttsx3.init()
voice.setProperty('voice', voice_id)
voice.say(line)
voice.runAndWait()
def write_data():
''' It will add flight details(data) in flight.dat '''
with open("flight.dat", "ab") as fdata:
say('Helloo, Please Write the Number of Flights you want write in file')
No_Of_flight = int(input("Enter the Number of Flights : "))
for num in range(No_Of_flight):
speak(f'Please Write, {num+1} flight Number')
flight_det["flightNo"] = int(input(f"\nPlease Enter {num + 1} Flight Number : "))
speak(f'Please Write Name of Flight-{flight_det["flightNo"]}')
flight_det["fname"] = input(f'Enter Name of Flight-{flight_det["flightNo"]} : ')
speak(f'Please Write Fare of {flight_det["fname"]}-{flight_det["flightNo"]}')
flight_det["fare"] = int(input(f'Enter Fare of {flight_det["fname"]}-{flight_det["flightNo"]} : '))
pickle.dump(flight_det, fdata)
def show_data():
''' it will Display all the Flights Data inside flight.dat file'''
say("Showing Flight Details")
with open('flight.dat', 'rb') as file:
try:
while True:
data = pickle.load(file)
print(data)
except EOFError:
pass
def del_data():
speak('Please Enter Flight Number to delete its DATA')
flightNo = int(input("\nPlease Enter Flight Number to delete its DATA : "))
fdata1 = open("flight.dat", "rb")
fdata2 = open("temp.dat", "ab")
try:
while True:
data = pickle.load(fdata1)
if data["flightNo"] == flightNo:
print(f"Flight-{flightNo} Deleted Successfully.")
say(f"Flight-{flightNo} Deleted Successfully.")
pass
else:
pickle.dump(data, fdata2)
except EOFError:
pass
fdata1.close()
fdata2.close()
os.remove("flight.dat")
os.rename("temp.dat", "flight.dat")
try:
with open("flight.dat", "rb") as fdata:
speak("Here's the Record of Flights after Deletion\n")
print('Record of Flights after Deletion :\n')
while True:
print(f' {pickle.load(fdata)}')
except Exception:
pass
def search():
with open('flight.dat', 'rb') as fdata:
speak(" Please Enter Flight Number to Search its Details")
fsearch = int(input("\nEnter Flight Number to Search : "))
datafound = 0
try:
while True:
data = pickle.load(fdata)
if data['flightNo'] == fsearch:
datafound = 1
speak("Here's the Search Details")
print(f'Search Result : \n {data}')
say(data)
break
except Exception:
print("Error : There is no Data in flight.dat")
if datafound == 0:
speak(f'Details of flight-{fsearch} was NOT FOUND')
print(f"\n ! Details of flight-{fsearch} was NOT FOUND !")
def update_data():
data1 = open("flight.dat", "rb")
data2 = open("temp.dat", "ab")
speak("Enter Flight Number to Update it")
flightNo = int(input("Enter Flight Number to Update : "))
try:
while True:
data = pickle.load(data1)
if data["flightNo"] == flightNo:
speak(f"Enter New Details of Flight-{flightNo}")
print(f"\nEnter New Details of Flight-{flightNo} : ")
data["flightNo"] = int(input("Enter Flight Number : "))
data["fname"] = input("Enter Flight's Name : ")
data["fare"] = int(input("Enter the Fare : "))
pickle.dump(data, data2)
speak(f"Data of flight-{flightNo} Updated Successfully.")
print("Data Updated Successfully.")
else:
pickle.dump(data, data2)
except EOFError:
pass
data1.close()
data2.close()
os.remove("flight.dat")
os.rename("temp.dat", "flight.dat")
speak_one_time = 0
speak_one = 0
while True:
if speak_one == 0:
say("Enter Number to choose specific operation you want to perform")
speak_one = 1
print('\nOperations :\n 1 - Add Flight Details.\n 2 - Show Flight Details\n 3 - Update Flight Details. ')
print(' 4 - Delete Flight Detail.\n 5 - Search Flights.\n 6 - Clock.\n 7 - EXIT.')
if speak_one_time == 0:
speak("1 for Adding Flight Details, 2 for Displaying flight details, 3 to Update flight details"
",4 for Deleting flight details, 5 to Search Flights, 6 to know current timings, and 7 for Exit")
speak_one_time = 1
op = int(input("\nEnter Number to Choose Operation : "))
if op == 1:
write_data()
elif op == 2:
print(f"\nFlights Details : ")
show_data()
elif op == 3:
update_data()
elif op == 4:
del_data()
elif op == 5:
search()
elif op == 6:
import time
live_time = time.strftime("%H:%M:%S")
speak(f"The Current timings are : {live_time}")
print(f"\n| The Current timings are : {live_time} |")
elif op == 7:
say("Thanks for Using Airways Management System")
print("Thanks for Using Airways Management System")
say("Creators of this, Airways Management System are |Akash kumar Singh |")
print("Creators of Airways Management System :\n | Akash kumar Singh|")
speak("See You Again! Bye Dear")
break
else:
speak("Hey, Please Choose the Correct Operations!")
print("Please Choose CORRECT Operation!")