流程图链接
修改函数:https://www.processon.com/view/link/57d9115ae4b0497022da109c
删除函数:https://www.processon.com/view/link/57d911a1e4b0497022da15b2
插入函数:https://www.processon.com/view/link/57d911bce4b0e78cc001145d
浏览函数:https://www.processon.com/view/link/57d911d4e4b0497022da195c
评价函数:https://www.processon.com/view/link/57d911e4e4b0497022da1a95
三、核心技术的实现说明及相应的程序段
本程序六个自定义函数和一个主函数组成,其中主函数循环调用菜单,菜单函数调用其他函数来实现要求的所有功能。在这些函数当中,插入函数,修改函数,删除函数,浏览函数,评价函数是程序的核心部分,下面分别进行说明。
1、插入函数
插入函数中,首先用户输入的教师编号,该编号不能超出最大范围并且仅当该编号未存在教师信息的情况下,用户才能添加数据。
具体的程序段如下:
void insert(){
int _id;
printf("Please enter teacher information\n");
printf("id = ");
scanf("%d",&_id);
if(_id > 0 &&_id < 100){
if(teacher[_id].id == _id){
printf("Teacher exist\n");
return;
}
else{
char _name[20];
char _sex[5];
char _title[20];
char _post[20];
char _course[20];
printf("name = ");
scanf("%s",_name);
printf("sex = ");
scanf("%s",_sex);
printf("title = ");
scanf("%s",_title);
printf("post = ");
scanf("%s",_post);
printf("course = ");
scanf("%s",_course);
teacher[_id].id = _id;
strcpy(teacher[_id].name,_name);
strcpy(teacher[_id].sex,_sex);
strcpy(teacher[_id].title,_title);
strcpy(teacher[_id].post,_post);
strcpy(teacher[_id].course,_course);
printf("Insert successfully\n");
}
}
else{
printf("Insert failed\n");
}
return;
}
2、修改函数
该函数的核心内容是覆盖之前存在的信息。首先要保证要操作的对象是已存在的教师信息,由用户输入待修改教师信息的教师编号,通过对比验证该教师信息已存在,随后通过教师编号将该教师信息显示出来,用户输入修改后的内容,通过教师编号将欲修改的信息覆盖在原来的信息上。
具体的程序段如下:
void revise(){
int _id;
printf("Please enter teacher id\n");
scanf("%d",&_id);
if(teacher[_id].id == _id){//教师信息存在
char _name[20];
char _sex[5];
char _title[20];
char _post[20];
char _course[20];
printf("Teacher information is as follows\n");
printf("id = %d ",teacher[_id].id);
printf("name = %s ",teacher[_id].name);
printf("sex = %s ",teacher[_id].sex);
printf("title = %s ",teacher[_id].title);
printf("post = %s ",teacher[_id].post);
printf("course = %s\n",teacher[_id].course);
printf("Please revise teacher information\n");
printf("name = ");
scanf("%s",_name);
printf("sex = ");
scanf("%s",_sex);
printf("title = ");
scanf("%s",_title);
printf("post = ");
scanf("%s",_post);
printf("course = ");
scanf("%s",_course);
strcpy(teacher[_id].name,_name);
strcpy(teacher[_id].sex,_sex);
strcpy(teacher[_id].title,_title);
strcpy(teacher[_id].post,_post);
strcpy(teacher[_id].course,_course);
printf("Revise successfully\n");
}
else{
printf("Teacher does not exist\n");
}
return;
}
3、删除函数
删除函数的核心内容是清空已存的教师信息。首先用户输入待删除的教师编号,当编号存在教师信息时,用函数将已保存教师信息的内容重置为零
具体程序段如下:
void del(){
int _id;
printf("Please enter teacher id\n");
scanf("%d",&_id);
if(teacher[_id].id == _id){//教师信息存在
memset(&teacher[_id],0,sizeof(teacher[_id]));
printf("Delete successfully\n");
}
else{
printf("Teacher does not exist\n");
}
return;
}
4、浏览函数
浏览函数中,根据用户输入的编号进行查找,首先编号下存在教师信息,才能显示教师信息。
具体程序段如下:
void browse(){
int _id;
printf("Please enter teacher id\n");
scanf("%d",&_id);
if(teacher[_id].id == _id){//教师信息存在
printf("Teacher information is as follows\n");
printf("id = %d ",teacher[_id].id);
printf("name = %s ",teacher[_id].name);
printf("sex = %s ",teacher[_id].sex);
printf("title = %s ",teacher[_id].title);
printf("post = %s ",teacher[_id].post);
printf("course = %s\n",teacher[_id].course);
printf("score = %d\n",teacher[_id].score);
}
else{
printf("Teacher does not exist\n");
}
return;
}
5、评价函数
评价函数主要操作是对教师的评价打分并求和。首先用户输入编号,该编号下存在教师并且教师未被打分时,开始对每项进行打分,用户依次输入相应的分数,通过累加每次输入的分数求和,得到最终得分,并写入教师的评价总分中。
具体程序段如下:
void evaluate(){
int _id;
int sum = 0;
printf("Please enter teacher id\n");
scanf("%d",&_id);
if(teacher[_id].id == _id){//教师信息存在
if(teacher[_id].score == 0){
int _score;
printf("Each item full marks is 10\n");
printf("prepare lessons = ");//备课
scanf("%d",&_score);
sum += _score;
printf("teaching = ");//授课
scanf("%d",&_score);
sum += _score;
printf("style = ");//风格
scanf("%d",&_score);
sum += _score;
printf("homework = ");//作业
scanf("%d",&_score);
sum += _score;
printf("practice = ");//练习
scanf("%d",&_score);
sum += _score;
printf("discipline = ");//纪律
scanf("%d",&_score);
sum += _score;
printf("vivid = ");//生动
scanf("%d",&_score);
sum += _score;
printf("answering question = ");//答疑
scanf("%d",&_score);
sum += _score;
printf("content = ");//内容
scanf("%d",&_score);
sum += _score;
printf("punctual = ");//准时
scanf("%d",&_score);
sum += _score;
teacher[_id].score = sum;
}
else{
printf("Teacher has been evaluated\n");
return;
}
printf("Teacher evaluation score is %d\n",sum);
}
else{
printf("Teacher does not exist\n");
}
return;
}