题目:用结构体数组存放教师信息,包括工号,姓名,职称,所带班级数,每个班级给教师的打分等信息,可对教师信息进行添加,修改,删除,查找,统计等操作。
功能要求:
1.系统以菜单的方式工作
2.添加教师信息功能
3.删除教师信息功能
4.查找教师信息功能
5.求出每个教师的总得分并计算平均分后输出
6.输出高于平均分的教师信息
完整代码://教师管理系统 #include程序运行截图://宏定义 #define N 30 //定义结构体数组 struct teacher { int gonghao; //工号 char xingming[20]; //姓名 char zhicheng[20]; //职称 int banjishu; //班级数 int fengshu; //分数 }renshu[N]; //函数声明 void menu(); void add_teacher(); void printf_all_teacher(); void delete_teacher(); void search(); void printf_teacher_grade(); void ovor_average_teacher(); void shuji(); //主函数 int main() { int n; char a='n'; menu(); shuji(); while (1) { scanf("%d", &n); //输入选择 switch (n) { case 0: printf("是否退出系统?[y/n]n"); scanf("%d",&a); break; case 1: add_teacher(); break; case 2: delete_teacher(); break; case 3: search(); break; case 4: printf_teacher_grade(); break; case 5: ovor_average_teacher(); break; case 6: break; default: //输入错误时 printf("请输入正确的选项!!!n"); } if(a='y') { printf("已退出系统n"); break; } } } void menu() //菜单 { printf("----欢迎进入教师评价系统---------------n"); printf("|------1.添加教师信息------------------|n"); printf("|------2.删除教师信息------------------|n"); printf("|------3.查找教师信息------------------|n"); printf("|------4.各教师的总分分,及平均分-------|n"); printf("|------5.输出高于平均分的教师信息-------|n"); printf("-------0.退出系统--------------------n"); } void add_teacher() //添加教师信息 { int i; printf("请输入新增教师工号n"); scanf("%d", &i); printf("请输入教师信息 最后以回车结束n"); printf("工号 姓名 职称 班级数 分数n"); scanf("%d %s %s %d %d", &renshu[i].gonghao, &renshu[i].xingming, &renshu[i].zhicheng, &renshu[i].banjishu, &renshu[i].fengshu); return 0; } void printf_all_teacher() //打印教师信息 { int j,p,e; e=0; for (j = 0; j <= 30; j++) { if(renshu[j].gonghao!=0) printf("%d %s %s %d %dn", renshu[j].gonghao, renshu[j].xingming, renshu[j].zhicheng, renshu[j].banjishu, renshu[j].fengshu); } return 0; } void delete_teacher() //删除教师信息 { int x; printf("请输入要删除的教师信息工号n"); scanf("%d",&x); renshu[x].gonghao=0; renshu[x].banjishu=0; renshu[x].fengshu=0; strcpy(renshu[x].xingming,"0"); strcpy(renshu[x].zhicheng,"0"); printf("信息已删除n"); return 0; } void search() //查询教师信息 { int w; int s=0; int o=0; printf("请输入要查询的教师工号n"); scanf("%d",&s); for(w=0;w<20;w++) { if(renshu[w].gonghao==s) { printf("工号 姓名 职称 班级数 分数n"); printf("%d %s %s %d %dn", renshu[s].gonghao, renshu[s].xingming, renshu[s].zhicheng, renshu[s].banjishu, renshu[s].fengshu); } else o++; } if(o>30) printf("查无此人n"); return 0; } void printf_teacher_grade() //打印教师信息 { int j,p; int average=0; int e; e=0; printf("工号 姓名 分数n"); for (j = 0; j <= 30; j++) { if(renshu[j].gonghao!=0) { printf("%d %s %dn", renshu[j].gonghao, renshu[j].xingming,renshu[j].fengshu); average=average+renshu[j].fengshu; e++; } } printf("平均分等于%d n",average/e); return 0; } void shuji() //预定义数据 { int x; for(x=0;x<6;x++) { renshu[x].gonghao=x; renshu[x].banjishu=x; renshu[x].fengshu=x; strcpy(renshu[x].xingming,"ceshi"); strcpy(renshu[x].zhicheng,"ceshi"); } } void ovor_average_teacher() //高于平均分的教师 { int j,p; int average=0; int e; e=0; printf("工号 姓名 分数n"); for (j = 0; j <= 30; j++) { if(renshu[j].gonghao!=0) { average=average+renshu[j].fengshu; e++; } } printf("平均分等于%d n",average/e); printf("以下是高于平均分的教师信息"); printf("工号 姓名 职称 班级数 分数n"); for (j = 0; j <= 30; j++) { if(renshu[j].fengshu>(average/e)) { printf("%d %s %dn", renshu[j].gonghao, renshu[j].xingming,renshu[j].fengshu); } } }
代码还有不足 多多包涵



