C语言实现学生选修课程系统设计攻略
1. 系统需求
开发一个简单的学生选修课程系统,支持学生的登录和注销操作,包括选课、查看选课信息、取消选课等功能。系统需要提供以下功能:
- 学生登陆/注销
- 查看当前可选课程
- 查看已选课程
- 选课
- 取消选课
- 退出系统
2. 数据结构设计
学生信息
- 学生编号:int
- 姓名:char[20]
- 选课列表:数组,包括已选课程的编号
课程信息
- 课程编号:int
- 课程名称:char[50]
- 学分:int
- 选课人数:int
- 已选名单:学生编号数组
3. 算法实现
学生登陆/注销
学生可以通过输入学号和密码进行登陆操作。如果学号和密码正确,则进入系统。注销时退出系统。
int login() {
int sid, pw;
printf("请输入学号和密码:\n");
scanf("%d %d", &sid, &pw);
if (verify(sid, pw)) {
return sid;
} else {
printf("学号或密码错误。\n");
return -1;
}
}
void logout() {
printf("注销成功。\n");
exit(0);
}
查看可选课程
列出所有尚未选择人数达到上限的课程。
void list_courses() {
printf("编号\t课程名称\t学分\t可选人数\n");
for (int i = 0; i < NUM_COURSES; i++) {
if (courses[i].num_selected < MAX_SELECTED) {
printf("%d\t%s\t%d\t%d\n", courses[i].id, courses[i].name, courses[i].credit,
MAX_SELECTED - courses[i].num_selected);
}
}
}
查看已选课程
列出当前学生已选课程的信息。
void list_selected_courses(int sid) {
printf("您已选的课程:\n");
for (int i = 0; i < students[sid].num_courses; i++) {
int cid = students[sid].courses[i];
printf("%d\t%s\t%d\n", courses[cid].id, courses[cid].name, courses[cid].credit);
}
}
选课/取消选课
首先检查该课程是否还有人名额。若没有名额,不能选课;否则加入学生选课列表。取消选课则从学生选课列表中删除课程。
int select_course(int sid, int cid) {
if (courses[cid].num_selected == MAX_SELECTED) {
printf("此课程已选满。\n");
return 0;
}
courses[cid].num_selected++;
students[sid].courses[students[sid].num_courses] = cid;
students[sid].num_courses++;
return 1;
}
void cancel_course(int sid, int cid) {
for (int i = 0; i < students[sid].num_courses; i++) {
if (students[sid].courses[i] == cid) {
students[sid].num_courses--;
for (; i < students[sid].num_courses; i++) {
students[sid].courses[i] = students[sid].courses[i+1];
}
courses[cid].num_selected--;
printf("已取消选课。\n");
return;
}
}
printf("未选过此课程。\n");
}
退出系统
退出系统并保存选课信息到文件。
void exit_system() {
save_data();
printf("再见。\n");
exit(0);
}
4. 示例说明
示例1
运行程序后,学生输入学号和密码进行登陆操作。然后系统列出可选课程的信息。学生选择一门课程进行选课。最后输出已选课程列表。
请输入学号和密码:
1001 123456
编号 课程名称 学分 可选人数
101 高等数学 4 13
102 大学物理 3 12
103 线性代数 4 11
请输入你想选择的课程编号:103
您已选的课程:
103 线性代数 4
示例2
学生先登陆后,查询已选课程信息。然后取消一门已选课,成功后再次输出已选课程列表。
请输入学号和密码:
1001 123456
您已选的课程:
103 线性代数 4
请输入你想取消选课的编号:103
已取消选课。
您已选的课程:
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现学生选修课程系统设计 - Python技术站