数据结构用C语言写一个程序代码学生选课管理信息系统 系统功能基本要求 教师信息包括教师编号、教师姓名、性别、年龄、学历、职称、毕业院校健康状况等。学生信息包括学号、姓名、所属院系、已选课情况等。教室信 息包括可容纳人数、空闲时间等。选课信息包括课程编号、课程名称、任课教师、选课的学生情况等。成绩信息包括课程编号、课程名称、学分、成绩。按一定条件可以查询并将结果打印输出。
#include<stdio.h> #include<stdlib.h> #include<string.h>
#define MAX_TEACHER 1000 #define MAX_STUDENT 10000 #define MAX_CLASSROOM 100 #define MAX_COURSE 1000
typedef struct teacher { char id[20]; char name[20]; char sex; int age; char education[20]; char title[20]; char school[50]; char health[50]; } teacher;
typedef struct student { char id[20]; char name[20]; char department[20]; int course_count; char courses[20][20]; } student;
typedef struct classroom { int capacity; char free_time[50]; } classroom;
typedef struct course { char id[20]; char name[50]; char teacher_name[20]; int student_count; char students[20][20]; } course;
teacher teachers[MAX_TEACHER]; int teacher_count = 0; student students[MAX_STUDENT]; int student_count = 0; classroom classrooms[MAX_CLASSROOM]; int classroom_count = 0; course courses[MAX_COURSE]; int course_count = 0;
void add_teacher() { printf("Please enter the teacher's information:\n"); printf("ID: "); scanf("%s", teachers[teacher_count].id); printf("Name: "); scanf("%s", teachers[teacher_count].name); printf("Sex: "); scanf(" %c", &teachers[teacher_count].sex); printf("Age: "); scanf("%d", &teachers[teacher_count].age); printf("Education: "); scanf("%s", teachers[teacher_count].education); printf("Title: "); scanf("%s", teachers[teacher_count].title); printf("School: "); scanf("%s", teachers[teacher_count].school); printf("Health: "); scanf("%s", teachers[teacher_count].health); teacher_count++; }
void add_student() { printf("Please enter the student's information:\n"); printf("ID: "); scanf("%s", students[student_count].id); printf("Name: "); scanf("%s", students[student_count].name); printf("Department: "); scanf("%s", students[student_count].department); student_count++; }
void add_classroom() { printf("Please enter the classroom's information:\n"); printf("Capacity: "); scanf("%d", &classrooms[classroom_count].capacity); printf("Free time: "); scanf("%s", classrooms[classroom_count].free_time); classroom_count++; }
void add_course() { printf("Please enter the course's information:\n"); printf("ID: "); scanf("%s", courses[course_count].id); printf("Name: "); scanf("%s", courses[course_count].name); printf("Teacher name: "); scanf("%s", courses[course_count].teacher_name); course_count++; }
void print_teacher() { printf("There are %d teachers in the system:\n", teacher_count); printf("ID\tName\tSex\tAge\tEducation\tTitle\tSchool\tHealth\n"); for(int i = 0; i < teacher_count; i++) { printf("%s\t%s\t%c\t%d\t%s\t%s\t%s\t%s\n", teachers[i].id, teachers[i].name, teachers[i].sex, teachers[i].age, teachers[i].education, teachers[i].title, teachers[i].school, teachers[i].health); } }
void print_student() { printf("There are %d students in the system:\n", student_count); printf("ID\tName\tDepartment\tCourses\n"); for(int i = 0; i < student_count; i++) { printf("%s\t%s\t%s\t", students[i].id, students[i].name, students[i].department); for(int j = 0; j < students[i].course_count; j++) { printf("%s ", students[i].courses[j]); } printf("\n"); } }
void print_classroom() { printf("There are %d classrooms in the system:\n", classroom_count); printf("Capacity\tFree time\n"); for(int i = 0; i < classroom_count; i++) { printf("%d\t%s\n", classrooms[i].capacity, classrooms[i].free_time); } }
void print_course() { printf("There are %d courses in the system:\n", course_count); printf("ID\tName\tTeacher name\tStudents\n"); for(int i = 0; i < course_count; i++) { printf("%s\t%s\t%s\t", courses[i].id, courses[i].name, courses[i].teacher_name); for(int j = 0; j < courses[i].student_count; j++) { printf("%s ", courses[i].students[j]); } printf("\n"); } }
void add_student_course() { char student_id[20]; printf("Please enter the student's ID: "); scanf("%s", student_id); int student_index = -1; for(int i = 0; i < student_count; i++) { if(strcmp(students[i].id, student_id) == 0) { student_index = i; break; } } if(student_index == -1) { printf("The student does not exist in the system.\n"); return; } char course_id[20]; printf("Please enter the course's ID: "); scanf("%s", course_id); int course_index = -1; for(int i = 0; i < course_count; i++) { if(strcmp(courses[i].id, course_id) == 0) { course_index = i; break; } } if(course_index == -1) { printf("The course does not exist in the system.\n"); return; } for(int i = 0; i < students[student_index].course_count; i++) { if(strcmp(students[student_index].courses[i], course_id) == 0) { printf("The student has already selected this course.\n"); return; } } if(courses[course_index].student_count >= classrooms[classroom_count - 1].capacity) { printf("The course is full.\n"); return; } strcpy(students[student_index].courses[students[student_index].course_count], course_id); students[student_index].course_count++; strcpy(courses[course_index].students[courses[course_index].student_count], student_id); courses[course_index].student_count++; }
void print_student_course() { char student_id[20]; printf("Please enter the student's ID: "); scanf("%s", student_id); int student_index = -1; for(int i = 0; i < student_count; i++) { if(strcmp(students[i].id, student_id) == 0) { student_index = i; break; } } if(student_index == -1) { printf("The student does not exist in the system.\n"); return; } printf("The student has selected %d courses:\n", students[student_index].course_count); for(int i = 0; i < students[student_index].course_count; i++) { for(int j = 0; j < course_count; j++) { if(strcmp(students[student_index].courses[i], courses[j].id) == 0) { printf("%s\t%s\t%s\n", courses[j].id, courses[j].name, courses[j].teacher_name); break; } } } }
void print_course_student() { char course_id[20]; printf("Please enter the course's ID: "); scanf("%s", course_id); int course_index = -1; for(int i = 0; i < course_count; i++) { if(strcmp(courses[i].id, course_id) == 0) { course_index = i; break; } } if(course_index == -1) { printf("The course does not exist in the system.\n"); return; } printf("The course has %d students:\n", courses[course_index].student_count); for(int i = 0; i < courses[course_index].student_count; i++) { for(int j = 0; j < student_count; j++) { if(strcmp(courses[course_index].students[i], students[j].id) == 0) { printf("%s\t%s\t%s\n", students[j].id, students[j].name, students[j].department); break; } } } }
int main() { int option = 0; while(1) { printf("\nPlease select an option:\n"); printf("1. Add teacher\n"); printf("2. Add student\n"); printf("3. Add classroom\n"); printf("4. Add course\n"); printf("5. Print teacher\n"); printf("6. Print student\n"); printf("7. Print classroom\n"); printf("8. Print course\n"); printf("9. Add student to course\n"); printf("10. Print course selection of student\n"); printf("11. Print student selection of course\n"); printf("12. Exit\n"); printf("Your option: "); scanf("%d", &option); switch(option) { case 1: add_teacher(); break; case 2: add_student(); break; case 3: add_classroom(); break; case 4: add_course(); break; case 5: print_teacher(); break; case 6: print_student(); break; case 7: print_classroom(); break; case 8: print_course(); break; case 9: add_student_course(); break; case 10: print_student_course(); break; case 11: print_course_student(); break; case 12: exit(0); default: printf("Invalid option.\n"); } } return 0;
原文地址: https://www.cveoy.top/t/topic/fkaJ 著作权归作者所有。请勿转载和采集!