C语言实现的学生选课系统代码分享
简介
本文将分享一份用C语言实现的学生选课系统代码,该系统实现了学生的选课、退课、成绩查看等功能。通过学习本系统的代码,可以加深对C语法及数据结构的理解。
功能模块
学生选课系统包含了以下几个功能模块:
- 学生信息管理
- 课程信息管理
- 学生选课
- 学生退课
- 成绩查询
数据结构
该系统使用了以下数据结构:
- 结构体:用于存储学生信息、课程信息、选课信息等
- 链表:用于存储学生信息、课程信息等的链表结构
- 文件:用于存储学生信息、课程信息及选课信息
代码实现
学生信息管理模块
学生信息管理模块实现了以下功能:
- 添加学生信息
- 删除学生信息
- 修改学生信息
- 查看学生信息
以下是添加学生信息的代码示例:
typedef struct student
{
char name[20]; // 学生姓名
char id[20]; // 学生学号
char sex[5]; // 学生性别
char major[20]; // 学生专业
int age; // 学生年龄
char tel[15]; // 学生电话
float score; // 学生成绩
struct student *next;
} stu;
stu *head = NULL; // 学生链表头指针
void add_student()
{
stu *p, *q;
p = (stu *)malloc(sizeof(stu));
printf("请输入学生姓名:");
scanf("%s", p->name);
printf("请输入学生学号:");
scanf("%s", p->id);
printf("请输入学生性别:");
scanf("%s", p->sex);
printf("请输入学生专业:");
scanf("%s", p->major);
printf("请输入学生年龄:");
scanf("%d", &p->age);
printf("请输入学生电话:");
scanf("%s", p->tel);
p->score = 0;
q = head;
if (q == NULL)
{
q = p;
head = q;
q->next = NULL;
}
else
{
while (q->next != NULL)
{
q = q->next;
}
q->next = p;
p->next = NULL;
}
printf("添加成功!\n");
}
课程信息管理模块
课程信息管理模块实现了以下功能:
- 添加课程信息
- 删除课程信息
- 修改课程信息
- 查看课程信息
以下是查看课程信息的代码示例:
typedef struct course
{
char name[20]; // 课程名称
char id[20]; // 课程编号
char teacher[20]; // 授课教师
int time; // 上课时间
int week; // 上课周数
int score; // 课程学分
struct course *next;
} crs;
crs *pCourseHead = NULL; // 课程链表头指针
void view_course()
{
crs *p;
p = pCourseHead;
if (p == NULL)
{
printf("没有课程信息!\n");
}
else
{
printf("课程名称\t课程编号\t授课教师\t上课时间\t上课周数\t课程学分\n");
while (p != NULL)
{
printf("%s\t%s\t%s\t%d\t%d\t%d\n", p->name, p->id, p->teacher, p->time, p->week, p->score);
p = p->next;
}
}
}
学生选课模块
学生选课模块实现了以下功能:
- 学生选课
- 查看已选课程
以下是学生选课的代码示例:
void select_course(char id[20])
{
crs *pC;
stu *pS;
pC = pCourseHead;
pS = find_student(id);
if (pC == NULL)
{
printf("没有课程信息!\n");
}
else
{
printf("序号\t课程名称\t课程编号\t授课教师\t上课时间\t上课周数\t课程学分\n");
int i = 1;
while (pC != NULL)
{
printf("%d\t%s\t%s\t%s\t%d\t%d\t%d\n", i, pC->name, pC->id, pC->teacher, pC->time, pC->week, pC->score);
pC = pC->next;
i++;
}
printf("请输入你要选的课程的编号:");
char select_course_id[20];
scanf("%s", select_course_id);
pC = find_course(select_course_id);
if (pC != NULL)
{
add_select_course(pS, pC);
}
}
}
学生退课模块
学生退课模块实现了以下功能:
- 学生退课
以下是学生退课的代码示例:
void quit_course(char id[20])
{
crs *pC;
stu *pS;
pS = find_student(id);
if (pS == NULL)
{
printf("你没有选课信息!\n");
}
else
{
printf("你已经选了以下课程:\n");
view_select_course(id);
printf("请输入你要退的课程的编号:");
char quit_course_id[20];
scanf("%s", quit_course_id);
remove_select_course(pS, quit_course_id);
printf("退课成功!\n");
}
}
成绩查询模块
成绩查询模块实现了以下功能:
- 查看已选课程成绩
以下是查看已选课程成绩的代码示例:
void view_score(char id[20])
{
stu *pS;
pS = find_student(id);
if (pS == NULL)
{
printf("你没有选课信息!\n");
}
else
{
printf("课程名称\t课程编号\t成绩\n");
sel *pSC = pS->select_course;
while (pSC != NULL)
{
printf("%s\t%s\t%.2f\n", pSC->course->name, pSC->course->id, pSC->score);
pSC = pSC->next;
}
}
}
总结
以上就是C语言实现的学生选课系统代码分享的完整攻略。通过学习该系统的代码实现,可以加深对C语言、数据结构等的理解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现的学生选课系统代码分享 - Python技术站