c语言课程信息管理系统
时间: 2023-12-13 08:33:07 浏览: 93
课程信息管理系统(c 语言)
以下是一个简单的C语言课程信息管理系统的实现,包括课程信息录入、修改、、按课程名排序后浏览、按课程查询按学分查询等功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_COURSE_NUM 100 // 最大程数
struct course_info {
int number; // 课程编号
char name[100]; // 课程名称
int hours; // 总学时
int credit; // 学分
int semester; // 开课学期
int flag; // 数据有效标记
};
struct course_info courses[MAX_COURSE_NUM]; // 课程信息数组
int course_num = 0; // 当前课程数
// 录入课程信息
void input_course_info() {
if (course_num >= MAX_COURSE_NUM) {
printf("已达到最大课程数,无法继续录入!\n");
return;
}
printf("请输入课程编号:");
scanf("%d", &courses[course_num].number);
printf("请输入课程名称:");
scanf("%s", courses[course_num].name);
printf("请输入总学时:");
scanf("%d", &courses[course_num].hours);
printf("请输入学分:");
scanf("%d", &courses[course_num].credit);
printf("请输入开课学期:");
scanf("%d", &courses[course_num].semester);
courses[course_num].flag = 1;
course_num++;
printf("录入成功!\n");
}
// 修改课程信息
void modify_course_info() {
int number;
printf("请输入要修改的课程编号:");
scanf("%d", &number);
int i;
for (i = 0; i < course_num; i++) {
if (courses[i].flag && courses[i].number == number) {
printf("请输入新的课程名称:");
scanf("%s", courses[i].name);
printf("请输入新的总学时:");
scanf("%d", &courses[i].hours);
printf("请输入新的学分:");
scanf("%d", &courses[i].credit);
printf("请输入新的开课学期:");
scanf("%d", &courses[i].semester);
printf("修改成功!\n");
return;
}
}
printf("未找到该课程!\n");
}
// 删除课程信息
void delete_course_info() {
int number;
printf("请输入要删除的课程编号:");
scanf("%d", &number);
int i;
for (i = 0; i < course_num; i++) {
if (courses[i].flag && courses[i].number == number) {
courses[i].flag = 0;
printf("删除成功!\n");
return;
}
}
printf("未找到该课程!\n");
}
// 按课程名排序后浏览
void browse_course_info_by_name() {
int i, j;
struct course_info temp;
for (i = 0; i < course_num - 1; i++) {
for (j = 0; j < course_num - i - 1; j++) {
if (courses[j].flag && courses[j + 1].flag && strcmp(courses[j].name, courses[j + 1].name) > 0) {
temp = courses[j];
courses[j] = courses[j + 1];
courses[j + 1] = temp;
}
}
}
printf("课程编号\t课程名称\t总学时\t学分\t开课学期\n");
for (i = 0; i < course_num; i++) {
if (courses[i].flag) {
printf("%d\t%s\t%d\t%d\t%d\n", courses[i].number, courses[i].name, courses[i].hours, courses[i].credit, courses[i].semester);
}
}
}
// 按课程查询
void query_course_info_by_name() {
char name[100];
printf("请输入要查询的课程名称:");
scanf("%s", name);
int i;
for (i = 0; i < course_num; i++) {
if (courses[i].flag && strcmp(courses[i].name, name) == 0) {
printf("课程编号\t课程名称\t总学时\t学分\t开课学期\n");
printf("%d\t%s\t%d\t%d\t%d\n", courses[i].number, courses[i].name, courses[i].hours, courses[i].credit, courses[i].semester);
return;
}
}
printf("未找到该课程!\n");
}
// 按学分查询
void query_course_info_by_credit() {
int credit;
printf("请输入要查询的学分:");
scanf("%d", &credit);
int i;
for (i = 0; i < course_num; i++) {
if (courses[i].flag && courses[i].credit == credit) {
printf("课程编号\t课程名称\t总学时\t学分\t开课学期\n");
printf("%d\t%s\t%d\t%d\t%d\n", courses[i].number, courses[i].name, courses[i].hours, courses[i].credit, courses[i].semester);
}
}
}
int main() {
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 录入课程信息\n");
printf("2. 修改课程信息\n");
printf("3. 删除课程信息\n");
printf("4. 按课程名排序后浏览\n");
printf("5. 按课程查询\n");
printf("6. 按学分查询\n");
printf("7. 退出\n");
printf("请输入操作编号:");
scanf("%d", &choice);
switch (choice) {
case 1:
input_course_info();
break;
case 2:
modify_course_info();
break;
case 3:
delete_course_info();
break;
case 4:
browse_course_info_by_name();
break;
case 5:
query_course_info_by_name();
break;
case 6:
query_course_info_by_credit();
break;
case 7:
printf("谢谢使用!\n");
exit(0);
default:
printf("无效操作!\n");
break;
}
}
return 0;
}
```
阅读全文