用C语言设计一个学生信息管理系统不同的操作员具有不同功能。不同类型的操作员具有不同功能: 教务员:添加学生基本信息(学号,姓名,性别)、添加/删除操作员(含学生)、添加课程到课程库、首次登录密码为“123456”(保存操作员信息的文件为operator.txt,保存学生信息的文件为student.txt) 教师:添加(修改)学生学习的相关课程名及成绩、修改密码等其他自己信息(不含工号)、浏览所有学生信息 学生:浏览、修改自己的信息(含密码)(不能修改学号) 学生信息包括:学号,姓名,性别,出生日期,三门课的成绩(课程名可能不同,课程名必须在课程库中(假设同名字的课程代码相同)),总成绩。试设计学生信息管理系统,使之能提供以下功能: 1) 根据工(学)号、密码和角色登录系统 2) 根据角色选择不同菜单完成相应功能 3) 学生信息录入功能(信息可用文件保存)---输入 4) 学生信息浏览功能---输出 5) 按学号查询功能 6) 修改学生信息(注意学号不能被修改) 7) 删除学生信息(删除的学生信息要写入delete.txt文件中) 8) 以总成绩降序排名所有学生 9) 退出系统
时间: 2024-01-17 20:02:44 浏览: 67
学生信息管理系统,用于c语言实现
好的,这是一个比较复杂的问题,需要设计一个完整的程序。以下是一个简单的设计方案供参考:
1. 定义结构体
首先我们需要定义一些结构体,包括学生信息、操作员信息、课程信息等。
```c
// 学生信息结构体
typedef struct student {
char id[20]; // 学号
char name[20]; // 姓名
char gender[5]; // 性别
char birth[20]; // 出生日期
float grades[3]; // 三门课的成绩
float total; // 总成绩
} student;
// 操作员信息结构体
typedef struct operator {
char id[20]; // 工号/学号
char name[20]; // 姓名
char gender[5]; // 性别
char role[20]; // 角色
char password[20]; // 密码
} operator;
// 课程信息结构体
typedef struct course {
char name[20]; // 课程名称
char code[20]; // 课程代码
} course;
```
2. 定义函数
接下来我们需要定义一些函数来实现各种功能。这些函数包括登录、菜单、录入、浏览、查询、修改、删除、排名等。
```c
// 登录函数,返回操作员角色
char* login();
// 菜单函数,根据操作员角色返回相应菜单选项
int menu(char* role);
// 录入函数,将学生信息保存到文件中
void input();
// 浏览函数,输出所有学生信息
void view();
// 查询函数,根据学号查询学生信息
void search();
// 修改函数,根据学号修改学生信息
void modify();
// 删除函数,根据学号删除学生信息
void remove();
// 排名函数,按总成绩降序排名所有学生信息
void rank();
```
3. 主函数
最后,我们需要在主函数中调用以上函数来实现完整的程序。
```c
int main() {
// 登录,获取操作员角色
char* role = login();
// 显示菜单,根据角色选择功能
int choice = menu(role);
while (choice != 9) {
switch (choice) {
case 1:
input(); // 录入
break;
case 2:
view(); // 浏览
break;
case 3:
search(); // 查询
break;
case 4:
modify(); // 修改
break;
case 5:
remove(); // 删除
break;
case 6:
rank(); // 排名
break;
default:
printf("Invalid choice!\n");
}
// 再次显示菜单,直到退出
choice = menu(role);
}
printf("Goodbye!\n");
return 0;
}
```
4. 具体实现
以上是一个大致的设计方案,具体的实现过程需要根据具体需求进行编码。在编码过程中,我们需要使用文件读写、字符串处理、结构体操作等技术,以及一些基本的控制流和函数调用。
阅读全文