Untitled
unknown
plain_text
6 months ago
5.0 kB
7
Indexable
import os students = [] # Lista za studentariju prljavu student_id_counter = 1 # Counter za generisanje ID data_file = 'students.txt' # File za sejvovanje studentarije, ovde Studenti obitavaju def add_student_to_file(student): #Append Studentariju u text file. with open(data_file, 'a') as file: file.write(f"{student['id']},{student['name']},{student['grades']}\n") def add_student_interactive(): #Dodaje novog studenta interaktivno sa ID-jem isto bi trebalo da pokrije ako neko ukuca nesto glupo global student_id_counter # Ovo sranje mora ovako da se napise "global" zato sto ako ne napisem gleda ga samo kao lokalnu varijablu, morao za ovo sranje da gledam na netu objasnjenje name = input("Enter student's name: ") # Scenario ako slucajno nije slovo if not name: raise ValueError("Student name cannot be empty.") #maleni while loop, trazi prompt od usera usranog sve dok ne ukuca "q" tj trazice da upisujes predmete dok ne stisnes to dugme brt grades = {} while True: subject = input("Enter subject (or 'q' to quit): ") if subject.lower() == 'q': break try: grade = float(input(f"Enter grade for {subject}: ")) except ValueError: print("Please enter a valid number for the grade.") continue # U slucaju da nije ocena, tj da nije broj i pojavi se bas ovaj tip error poruke.ps: mozemo da modifikujemo i da dodamo nesto, sta znam nemoj da me smaras. if not isinstance(grade, (int, float)): raise TypeError(f"Grade for {subject} must be a number.") grades[subject] = grade # Kreira novog studenta usranog sa sve ID-jem, ludnica jedna student = { 'id': student_id_counter, 'name': name, 'grades': grades } students.append(student) print(f"Added student: ID: {student_id_counter}, Name: {name}, Grades: {grades}") # Append the student data to the file|mislim da ovde nema sta al ajde da komntarisem add_student_to_file(student) # Increment the ID counter for the next student|maleni counter klasicni student_id_counter += 1 def update_grades(): #Promene ocena ako bas zelis student_id = int(input("Enter student ID to update: ")) subject = input("Enter subject for which to update the grade: ") # Trebalo bi da ga nadje Po ID-ju, studenta da nadje for student in students: if student['id'] == student_id: # Ako postoji predmet if subject in student['grades']: try: new_grade = float(input(f"Enter new grade for {subject}: ")) student['grades'][subject] = new_grade print(f"Updated {student['name']}'s grade for {subject} to: {new_grade}") # ovo da sejvuje, plus maleni value error ako izadje neki save_students() return except ValueError: print("Please enter a valid number for the grade.") return else: print(f"No grade found for subject: {subject}") return print(f"Student with ID {student_id} not found.") def save_students(): #Sacuvaj studentariju with open(data_file, 'w') as file: for student in students: file.write(f"{student['id']},{student['name']},{student['grades']}\n") def view_students(): #Pokazi mi studente if not students: print("No students available.") return #sledece linija bukvalno print("\nStudents List:") #neke crtice printa, izbacuje studentsku listu kao fiskalni racun od maksija print("-" * 40) for student in students: print(f"ID: {student['id']}, Name: {student['name']}") for subject, grade in student['grades'].items(): print(f" {subject}: {grade}") print("-" * 40) if os.path.exists(data_file): with open(data_file, 'r') as file: for line in file: parts = line.strip().split(',') student_id = int(parts[0]) name = parts[1] grades = eval(parts[2]) # Konvertuje u dictionary students.append({'id': student_id, 'name': name, 'grades': grades}) student_id_counter = max(student_id_counter, student_id + 1) # Raspored funkcija se treba srediti, stavio sam da ide u txt fajl sve # Treba testirati da se vidi da li pokrivamo sve scenarije ako neko izlupeta neke gluposti i upise npr "!" umesto ID #NIKADA ME NECES ZAUSTAVITI SHOMI DA ISKOMENTARISM GLUPO KOD!!! ### neki meni da ubacim pa da ima sve ponudjene opcije sta da radi, sad mi palo na pamet dok pricam sa tobom students = [] add_student_interactive() update_grades() view_students()
Editor is loading...
Leave a Comment