c语言作业 -教师评价系统

题目:用结构体数组存放教师信息,包括工号,姓名,职称,所带班级数,每个班级给教师的打分等信息,可对教师信息进行添加,修改,删除,查找,统计等操作。

功能要求:

1.系统以菜单的方式工作

2.添加教师信息功能

3.删除教师信息功能

4.查找教师信息功能

5.求出每个教师的总得分并计算平均分后输出

6.输出高于平均分的教师信息

完整代码:

/*********************************************************************************************************************
* @file           教师评价系统.c
* @author         jiafic
* @version         1.0
* @Target         vc++6.0
* @date            2022.5.19
 ********************************************************************************************************************/
//教师管理系统
#include<stdio.h>
//宏定义
#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("%c",&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;
		}
		if(a=='n')
		{
            printf("请输入指令\n");
		}
	}
 
 
}
 
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);
		
		}
			
	}
 
 
 
 
}

程序运行截图:

 

 代码还有不足 多多包涵

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值