编写一个学生课程表管理系统的c语言程序
时间: 2023-11-18 08:56:59 浏览: 146
以下是一个简单的学生课程表管理系统的 C 语言程序,你可以根据自己的需求进行修改和完善。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_COURSE_NUM 20 // 最大课程数
#define MAX_NAME_LEN 20 // 最大姓名长度
// 课程信息结构体
typedef struct course_info {
char name[MAX_NAME_LEN]; // 课程名称
int credit; // 学分
int time; // 学时
char teacher[MAX_NAME_LEN]; // 教师姓名
} CourseInfo;
// 学生信息结构体
typedef struct student_info {
char name[MAX_NAME_LEN]; // 姓名
char id[MAX_NAME_LEN]; // 学号
int course_num; // 课程数目
CourseInfo courses[MAX_COURSE_NUM]; // 课程信息
} StudentInfo;
// 添加课程
void add_course(StudentInfo *p_student) {
if (p_student->course_num >= MAX_COURSE_NUM) {
printf("已达到最大课程数目,无法添加!\n");
return;
}
printf("请输入课程名称:");
scanf("%s", p_student->courses[p_student->course_num].name);
printf("请输入学分:");
scanf("%d", &p_student->courses[p_student->course_num].credit);
printf("请输入学时:");
scanf("%d", &p_student->courses[p_student->course_num].time);
printf("请输入教师姓名:");
scanf("%s", p_student->courses[p_student->course_num].teacher);
p_student->course_num++;
}
// 显示课程
void show_courses(StudentInfo *p_student) {
printf("姓名:%s\n", p_student->name);
printf("学号:%s\n", p_student->id);
printf("课程数目:%d\n", p_student->course_num);
printf("课程列表:\n");
printf("序号\t课程名称\t学分\t学时\t教师姓名\n");
for (int i = 0; i < p_student->course_num; i++) {
printf("%d\t%s\t%d\t%d\t%s\n", i+1, p_student->courses[i].name, p_student->courses[i].credit, p_student->courses[i].time, p_student->courses[i].teacher);
}
}
int main() {
StudentInfo student;
memset(&student, 0, sizeof(StudentInfo)); // 初始化学生信息
printf("请输入姓名:");
scanf("%s", student.name);
printf("请输入学号:");
scanf("%s", student.id);
int choice = 0;
while (1) {
printf("\n\n");
printf("1. 添加课程\n");
printf("2. 显示课程\n");
printf("3. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_course(&student);
break;
case 2:
show_courses(&student);
break;
case 3:
exit(0);
default:
printf("无效的选择!\n");
break;
}
}
return 0;
}
```
这个程序中,我们定义了两个结构体,`CourseInfo` 用来存储课程信息,`StudentInfo` 用来存储学生信息。其中,课程信息包括课程名称、学分、学时和教师姓名,学生信息包括姓名、学号和课程列表。我们可以通过添加课程和显示课程两个操作来管理学生的课程表。
阅读全文