帮我用c语言设计并实现顺序表教师职称管理系统
时间: 2023-11-27 18:53:49 浏览: 31
好的,下面是顺序表教师职称管理系统的设计和实现过程:
1. 首先需要定义教师的结构体,包含以下信息:
```c
typedef struct {
char name[20]; // 教师姓名
char title[20]; // 教师职称
int age; // 教师年龄
double salary; // 教师薪水
} Teacher;
```
2. 接下来需要定义顺序表数据结构,包含以下信息:
```c
#define MAX_LEN 100 // 最大教师数量
typedef struct {
Teacher teachers[MAX_LEN]; // 教师数组
int length; // 教师数量
} SeqList;
```
3. 实现教师信息的录入,包括姓名、职称、年龄和薪水:
```c
void inputTeacher(Teacher *p) {
printf("请输入教师姓名:");
scanf("%s", p->name);
printf("请输入教师职称:");
scanf("%s", p->title);
printf("请输入教师年龄:");
scanf("%d", &p->age);
printf("请输入教师薪水:");
scanf("%lf", &p->salary);
}
```
4. 实现顺序表的创建和初始化:
```c
SeqList* createSeqList() {
SeqList *list = (SeqList*)malloc(sizeof(SeqList));
list->length = 0;
return list;
}
```
5. 实现教师信息的添加:
```c
void addTeacher(SeqList *list) {
Teacher t;
inputTeacher(&t);
if (list->length == MAX_LEN) {
printf("教师数量已达到最大值!\n");
} else {
list->teachers[list->length] = t;
list->length++;
printf("教师信息添加成功!\n");
}
}
```
6. 实现教师信息的删除:
```c
void deleteTeacher(SeqList *list, int index) {
if (index < 0 || index >= list->length) {
printf("要删除的教师不存在!\n");
} else {
for (int i = index; i < list->length - 1; i++) {
list->teachers[i] = list->teachers[i+1];
}
list->length--;
printf("教师信息删除成功!\n");
}
}
```
7. 实现教师信息的查找:
```c
void searchTeacher(SeqList *list, char *name) {
int found = 0;
for (int i = 0; i < list->length; i++) {
if (strcmp(list->teachers[i].name, name) == 0) {
printf("教师姓名:%s\n", list->teachers[i].name);
printf("教师职称:%s\n", list->teachers[i].title);
printf("教师年龄:%d\n", list->teachers[i].age);
printf("教师薪水:%lf\n", list->teachers[i].salary);
found = 1;
break;
}
}
if (!found) {
printf("要查找的教师不存在!\n");
}
}
```
8. 实现教师信息的修改:
```c
void modifyTeacher(SeqList *list, int index) {
if (index < 0 || index >= list->length) {
printf("要修改的教师不存在!\n");
} else {
Teacher t;
inputTeacher(&t);
list->teachers[index] = t;
printf("教师信息修改成功!\n");
}
}
```
9. 实现菜单界面和主程序:
```c
void menu() {
printf("------教师职称管理系统------\n");
printf("1. 添加教师信息\n");
printf("2. 删除教师信息\n");
printf("3. 查找教师信息\n");
printf("4. 修改教师信息\n");
printf("5. 退出程序\n");
printf("请输入操作选项:");
}
int main() {
SeqList *list = createSeqList();
int choice;
do {
menu();
scanf("%d", &choice);
switch (choice) {
case 1:
addTeacher(list);
break;
case 2:
printf("请输入要删除的教师编号:");
int index;
scanf("%d", &index);
deleteTeacher(list, index);
break;
case 3:
printf("请输入要查找的教师姓名:");
char name[20];
scanf("%s", name);
searchTeacher(list, name);
break;
case 4:
printf("请输入要修改的教师编号:");
int index2;
scanf("%d", &index2);
modifyTeacher(list, index2);
break;
case 5:
printf("谢谢使用!\n");
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
} while (choice != 5);
return 0;
}
```
以上就是顺序表教师职称管理系统的设计和实现过程,希望能对你有所帮助。