Untitled
unknown
plain_text
9 months ago
4.7 kB
40
Indexable
import sys
FILE_NAME = "students.cve"
def load_data():
try:
with open(FILE_NAME, "r") as file:
return file.readlines()
except (FileNotFoundError):
return []
def save_data(data):
f = open(FILE_NAME, "w")
f.write("\n".join(data))
f.close()
def add_student(student_id, name, surname, gpa):
data = load_data()
data.append(student_id + "," + name + "," + surname + "," + gpa)
save_data(data)
print("Student added successfully.")
def delete_student(student_id):
data = load_data()
updated_data = []
for student in data:
if student.split(",")[0] != student_id:
updated_data.append(student)
save_data(updated_data)
print("Student deleted successfully.")
def update_student(student_id, name=None, surname=None, gpa=None):
data = load_data()
student_old = None
student_new = None
for student in data:
data_student = student.split(",")
data_student_id = data_student[0]
data_student_name = data_student[1]
data_student_surname = data_student[2]
data_student_gpa = data_student[3]
if data_student_id == student_id:
if name:
data_student_name = name
if surname:
data_student_surname = surname
if gpa:
data_student_gpa = gpa
student = data_student_id + "," + data_student_name + "," + data_student_surname + "," + data_student_gpa
break
save_data(data)
print("Student updated successfully.")
def search_by_id(student_id):
data = load_data()
for student in data:
if student.split(",")[0] == student_id:
print(student)
return
print("Student not found.")
def search_by_name_surname(name, surname):
data = load_data()
for student in data:
if student.split(",")[1] and student.split(",")[2] == surname:
print(student)
return
print("Student not found.")
def display_all_students():
data = load_data()
if not data:
print("No students available.")
return
total_gpa = 0
for student in data:
print(student)
total_gpa += float(student.split()[3])
average_gpa = total_gpa / len(data)
print(f"\nAverage GPA of all students: {average_gpa:.2f}")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python script.py <command> [arguments]")
print("commands:")
print("- add <id> <name> <surname> <gpa> (Adds student to the file)")
print("- update <id> <name> <surname> <gpa> (Updates student's information by their ID)")
print("- search_by_id <id> (Finds student by their ID)")
print("- search_by_name <name> <surname> (Finds student by their name & surname)")
print("- delete <id> (Deletes student from file based on their ID)")
print("- list (Lists all students)")
sys.exit(1)
command = sys.argv[1].lower()
if command == "add":
if len(sys.argv) != 6:
print("Usage: python script.py add <id> <name> <surname> <gpa>")
else:
_, _, student_id, name, surname, gpa = sys.argv
add_student(student_id, name, surname, gpa)
elif command == "delete":
if len(sys.argv) != 3:
print("Usage: python script.py delete <id>")
else:
_, _, student_id = sys.argv
delete_student(student_id)
elif command == "update":
if len(sys.argv) < 3:
print("Usage: python script.py update <id> [name] [surname] [gpa]")
else:
student_id = sys.argv[2]
name = sys.argv[3] if len(sys.argv) > 3 else None
surname = sys.argv[4] if len(sys.argv) > 4 else None
gpa = sys.argv[5] if len(sys.argv) > 5 else None
update_student(student_id, name, surname, gpa)
elif command == "search_by_id":
if len(sys.argv) != 3:
print("Usage: python script.py search_by_id <id>")
else:
_, _, student_id = sys.argv
search_by_id(student_id)
elif command == "search_by_name":
if len(sys.argv) != 4:
print("Usage: python script.py search_by_name <name> <surname>")
else:
_, _, name, surname = sys.argv
search_by_name_surname(name, surname)
elif command == "list":
display_all_students()
else:
print("Invalid command. Available commands: add, delete, update, search_by_id, search_by_name, list.")
Editor is loading...
Leave a Comment