题目:用结构体数组存放教师信息,包括工号,姓名,职称,所带班级数,每个班级给教师的打分等信息,可对教师信息进行添加,修改,删除,查找,统计等 *** 作。
功能要求:
1.系统以菜单的方式工作
2.添加教师信息功能
3.删除教师信息功能
4.查找教师信息功能
5.求出每个教师的总得分并计算平均分后输出
6.输出高于平均分的教师信息
完整代码:/*********************************************************************************************************************
* @file 教师评价系统.c
* @author jiafic
* @version 1.0
* @Target vc++6.0
* @date 2022.5.19
********************************************************************************************************************/
//教师管理系统
#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 %d\n", 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 %d\n", 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 %d\n", 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 %d\n", renshu[j].gonghao, renshu[j].xingming,renshu[j].fengshu);
}
}
}
程序运行截图:
代码还有不足 多多包涵
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)