用C语言写一个教师通讯录查询系统,要求有显示界面,可操作,有选项。系统里面有:1,显示所有教师 2,按姓名查询 3,按部门查询 4,打印青年教师 5,退出系统,这五个选项。并且生成模拟数据验证通讯录查询系统的准确性
时间: 2024-01-13 19:02:33 浏览: 145
好的,以下是用C语言实现的教师通讯录查询系统,包括生成模拟数据:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
// 定义教师结构体
typedef struct Teacher {
char name[20];
char department[20];
int age;
} Teacher;
// 定义教师数组
Teacher teachers[50];
// 生成模拟数据
void generate_random_data() {
char* names[] = {"张三", "李四", "王五", "赵六", "钱七"};
char* departments[] = {"数学系", "物理系", "化学系", "生物系", "计算机系"};
int i;
for (i = 0; i < 50; i++) {
int name_index = rand() % 5;
int department_index = rand() % 5;
int age = rand() % 36 + 25;
strcpy(teachers[i].name, names[name_index]);
strcpy(teachers[i].department, departments[department_index]);
teachers[i].age = age;
}
}
// 显示所有教师
void show_all_teachers() {
printf("姓名\t部门\t年龄\n");
int i;
for (i = 0; i < 50; i++) {
printf("%s\t%s\t%d\n", teachers[i].name, teachers[i].department, teachers[i].age);
}
}
// 按姓名查询
void search_by_name() {
char name[20];
printf("请输入教师姓名:");
scanf("%s", name);
int i, found = 0;
printf("姓名\t部门\t年龄\n");
for (i = 0; i < 50; i++) {
if (strcmp(teachers[i].name, name) == 0) {
printf("%s\t%s\t%d\n", teachers[i].name, teachers[i].department, teachers[i].age);
found = 1;
}
}
if (!found) {
printf("未找到该教师\n");
}
}
// 按部门查询
void search_by_department() {
char department[20];
printf("请输入部门名称:");
scanf("%s", department);
int i, found = 0;
printf("姓名\t部门\t年龄\n");
for (i = 0; i < 50; i++) {
if (strcmp(teachers[i].department, department) == 0) {
printf("%s\t%s\t%d\n", teachers[i].name, teachers[i].department, teachers[i].age);
found = 1;
}
}
if (!found) {
printf("未找到该部门\n");
}
}
// 打印青年教师
void print_young_teachers() {
printf("姓名\t部门\t年龄\n");
int i;
for (i = 0; i < 50; i++) {
if (teachers[i].age <= 35) {
printf("%s\t%s\t%d\n", teachers[i].name, teachers[i].department, teachers[i].age);
}
}
}
// 主函数
int main() {
srand(time(NULL));
generate_random_data();
while (1) {
printf("1.显示所有教师\n");
printf("2.按姓名查询\n");
printf("3.按部门查询\n");
printf("4.打印青年教师\n");
printf("5.退出系统\n");
int choice;
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
show_all_teachers();
break;
case 2:
search_by_name();
break;
case 3:
search_by_department();
break;
case 4:
print_young_teachers();
break;
case 5:
return 0;
default:
printf("输入有误,请重新输入\n");
break;
}
}
return 0;
}
```
这个系统中,我们定义了一个教师结构体,包含姓名、部门和年龄三个属性。在主函数中,我们通过一个while循环,不断接收用户的输入,直到用户选择退出系统。通过调用各个函数,实现了按姓名、按部门查询,以及打印青年教师等功能。在程序开始时,我们使用srand函数设置了随机数生成器的种子,然后通过generate_random_data函数生成50个随机的教师数据。
阅读全文