server.py
server.py
import threading
# Get student ID
client_socket.send(b"Enter your student ID: ")
student_id = client_socket.recv(1024).decode().strip()
total_credit_hours = 0
total_weighted_gpa = 0
results = []
for i in range(num_subjects):
client_socket.send(f"Enter credit hours for subject {i+1}: ".encode())
credit_hours = int(client_socket.recv(1024).decode().strip())
total_credit_hours += credit_hours
total_weighted_gpa += gpa * credit_hours
results.append((marks, credit_hours, grade, gpa))
# Calculate CGPA
cgpa = total_weighted_gpa / total_credit_hours if total_credit_hours > 0 else 0
client_socket.send(response.encode())
# Log data to file
with open("cgpa_log.txt", "a") as log_file:
log_file.write(f"ID: {student_id}, Credit Hours: {total_credit_hours},
CGPA: {cgpa:.2f}\n")
for i, (marks, credit_hours, grade, gpa) in enumerate(results, 1):
log_file.write(f"Subject {i}: Marks = {marks}, Credit Hours =
{credit_hours}, Grade = {grade}, GPA = {gpa:.2f}\n")
log_file.write("--------------------------------------------------\n")
client_socket.close()
while True:
client_socket, addr = server.accept()
print(f"Accepted connection from {addr}")
client_handler = threading.Thread(target=handle_client,
args=(client_socket,))
client_handler.start()
if __name__ == "__main__":
start_server()