Vote Registration Program The solution must be in python! Create a program that
ID: 3918954 • Letter: V
Question
Vote Registration Program
The solution must be in python!
Create a program that helps users to register for an election (National or Local). The program should be interactive with the user and should verify the age, full name, and address of the voters first. The code must include the following:
1. Use of at least one class with executed subclasses, not more than three. This means you must instantiate at least one subclass to show inheritance and polymorphism. Your classes base classes must be in separate modules. Your subclasses can be in the same module as their related base class.
2. Only include main logic in your main function and use functions for reusable code
3. Use of a loop of your choice
4. Use of a decision structure
5. You must include a menu (Add, Edit, Delete, View, and Exit) in your program, and your program must allow the user to repeat the program if necessary.
6. Use of functions in your main program that require you to pass values from the main.
7. Use of a list, tuple, or dictionary to store data
8. Write some type of data to a file as well reading data from a file
9. Use of exception handling. Your program should attempt to catch most of the common exceptions.
10. Include comments in the code
Explanation / Answer
I have created a program that helps users to register for an election.
# Import modules
import time
# All accounts
users = {
"root": {
"password": "gucci-mane",
"group": "admin",
"mail": []
}
}
# Form validation
def validate(form):
if len(form) > 0:
return False
return True
# Login authorization
def loginauth(username, password):
if username in users:
if password == users[username]["password"]:
print("Login successful")
return True
return False
# Login
def login():
while True:
username = input("Username: ")
if not len(username) > 0:
print("Username can't be blank")
else:
break
while True:
password = input("Password: ")
if not len(password) > 0:
print("Password can't be blank")
else:
break
if loginauth(username, password):
return session(username)
else:
print("Invalid username or password")
# Register
def register():
while True:
username = input("New username: ")
if not len(username) > 0:
print("Username can't be blank")
continue
else:
break
while True:
password = input("New password: ")
if not len(password) > 0:
print("Password can't be blank")
continue
else:
break
print("Creating account...")
users[username] = {}
users[username]["password"] = password
users[username]["group"] = "user"
users[username]["mail"] = []
time.sleep(1)
print("Account has been created")
# Send mail
def sendmail(username):
while True:
recipient = input("Recipient > ")
if not len(recipient) > 0:
print("Recipient can't be blank")
continue
elif recipient not in users:
print("There is no account with that username")
continue
else:
break
while True:
subject = input("Subject > ")
if not len(subject) > 0:
print("Subject can't be blank")
continue
else:
break
while True:
context = input("Context > ")
if not len(context) > 0:
print("Context can't be blank")
else:
break
print("Sending mail...")
users[recipient]["mail"].append(["Sender: " + username, "Subject: " + subject, "Context: " + context])
time.sleep(1)
print("Mail has been sent to " + recipient)
# User session
def session(username):
print("Welcome to your account " + username)
print("Options: view mail | send mail | logout")
if users[username]["group"] == "admin":
print("")
while True:
option = input(username + " > ")
if option == "logout":
print("Logging out...")
break
elif option == "view mail":
print("Current mail:")
for mail in users[username]["mail"]:
print(mail)
elif option == "send mail":
sendmail(username)
elif users[username]["group"] == "admin":
if option == "user mail":
print("Whos mail would you like to see?")
userinfo = input("> ")
if userinfo in users:
for mail in users[userinfo]["mail"]:
print(mail)
else:
print("There is no account with that username")
elif option == "delete mail":
print("Whos mail would you like to delete?")
userinfo = input("> ")
if userinfo in users:
print("Deleting " + userinfo + "'s mail...")
users[userinfo]["mail"] = []
time.sleep(1)
print(userinfo + "'s mail has been deleted")
else:
print("There is no account with that username")
elif option == "delete account":
print("Whos account would you like to delete?")
userinfo = input("> ")
if userinfo in users:
print("Are you sure you want to delete " + userinfo + "'s account?")
print("Options: yes | no")
while True:
confirm = input("> ")
if confirm == "yes":
print("Deleting " + userinfo + "'s account...")
del users[userinfo]
time.sleep(1)
print(userinfo + "'s account has been deleted")
break
elif confirm == "no":
print("Canceling account deletion...")
time.sleep(1)
print("Account deletion canceled")
break
else:
print(confirm + " is not an option")
else:
print("There is no account with that username")
else:
print(option + " is not an option")
# On start
print("Welcome to the system. Please register or login.")
print("Options: register | login | exit")
while True:
option = input("> ")
if option == "login":
login()
elif option == "register":
register()
elif option == "exit":
break
else:
print(option + " is not an option")
# On exit
print("Shutting down...")
time.sleep(1)
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.