parent
7ef01232e9
commit
eeb22c1606
@ -1,2 +1,97 @@
|
||||
# Cyuyan
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#define MAX_STUDENTS 100
|
||||
#define MAX_NAME_LENGTH 50
|
||||
#define MAX_ASSIGNMENTS 10
|
||||
|
||||
typedef struct {
|
||||
char name[MAX_NAME_LENGTH];
|
||||
int studentID;
|
||||
int assignments[MAX_ASSIGNMENTS];
|
||||
int numAssignments;
|
||||
} Student;
|
||||
|
||||
typedef struct {
|
||||
Student students[MAX_STUDENTS];
|
||||
int numStudents;
|
||||
} Classroom;
|
||||
|
||||
void addStudent(Classroom *classroom) {
|
||||
if (classroom->numStudents >= MAX_STUDENTS) {
|
||||
printf("Cannot add more students.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
Student newStudent;
|
||||
printf("Enter student name: ");
|
||||
scanf("%s", newStudent.name);
|
||||
printf("Enter student ID: ");
|
||||
scanf("%d", &newStudent.studentID);
|
||||
newStudent.numAssignments = 0;
|
||||
for (int i = 0; i < MAX_ASSIGNMENTS; i++) {
|
||||
newStudent.assignments[i] = 0;
|
||||
}
|
||||
|
||||
classroom->students[classroom->numStudents] = newStudent;
|
||||
classroom->numStudents++;
|
||||
}
|
||||
|
||||
void displayStudent(const Student *student) {
|
||||
printf("Student Name: %s\n", student->name);
|
||||
printf("Student ID: %d\n", student->studentID);
|
||||
printf("Assignments:\n");
|
||||
for (int i = 0; i < student->numAssignments; i++) {
|
||||
printf("%d: %d\n", i+1, student->assignments[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void displayClass(const Classroom *classroom) {
|
||||
printf("Class Name: Not Specified\n");
|
||||
printf("Students:\n");
|
||||
for (int i = 0; i < classroom->numStudents; i++) {
|
||||
displayStudent(&classroom->students[i]);
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
void updateAssignment(Student *student, int assignmentNum, int score) {
|
||||
if (assignmentNum <= 0 || assignmentNum > student->numAssignments) {
|
||||
printf("Invalid assignment number.\n");
|
||||
return;
|
||||
}
|
||||
student->assignments[assignmentNum-1] = score;
|
||||
}
|
||||
|
||||
int calculateAverage(const Student *student) {
|
||||
int sum = 0;
|
||||
for (int i = 0; i < student->numAssignments; i++) {
|
||||
sum += student->assignments[i];
|
||||
}
|
||||
return sum / student->numAssignments;
|
||||
}
|
||||
|
||||
int main() {
|
||||
Classroom classroom;
|
||||
classroom.numStudents = 0;
|
||||
int choice, studentID, assignmentNum, score;
|
||||
char command;
|
||||
while (1) {
|
||||
printf("\nCommand Options:\n");
|
||||
printf("a - Add Student\n");
|
||||
printf("d - Delete Student\n");
|
||||
printf("s - Show Student\n");
|
||||
printf("c - Show Class\n");
|
||||
printf("u - Update Assignment\n");
|
||||
printf("q - Quit\n");
|
||||
printf("Enter command: ");
|
||||
scanf(" %c", &command); // Read a single character, ignoring leading whitespace.
|
||||
switch (command) {
|
||||
case 'a': addStudent(&classroom); break; // Add a student. Repeat for multiple students.
|
||||
case 'd': printf("Enter student ID to delete: "); scanf("%d", &studentID); break; // Delete a student. Implement the logic here.
|
||||
case 's': printf("Enter student ID to display: "); scanf("%d", &studentID); break; // Display a student's details. Implement the logic here. Repeat for multiple students.
|
||||
case 'c': displayClass(&classroom); break; // Display class details. Implement the logic here. Repeat for multiple classes.
|
||||
case 'u': printf("Enter student ID and assignment number to update: "); scanf("%d %d", &studentID, &assignmentNum); break; // Update an assignment for a student. Implement the logic here. Repeat for multiple updates.
|
||||
case 'q': exit(
|
||||
|
Loading…
Reference in new issue