px->next=p3; p2=head; } else if(p1->next==NULL)/*如果插入点为末尾指针*/ { p3=p1;p1=head;p2=head; while(p1->next!=p3) {p1=p1->next;} p1=p1->next; p1->next=px; px->next=NULL; } else{/*如果插入点为中间指针*/ p3=p1;p1=head;p2=head; while(p1->next!=p3) {p1=p1->next;} p1=p1->next; p3=p1->next; px->next=p3; p1->next=px; } if((fp=fopen(\ { printf(\ 文件不存在!按下任意键返回主菜单...\ } else { do { fwrite(p2,LEN-4,1,fp); if(p2->next!=NULL) p2=p2->next; }while(p2->next!=NULL); if(p2!=head) fwrite(p2,LEN-4,1,fp); }fclose(fp); printf(\ 插入成功!按下任意键继续...\ } } else {printf(\ 插入已被取消!按下任意键继续...\ break;
case 2:printf(\ 请输入要插入的教师姓名:\ gets(name); p1=head;
while (strcmp((p1->name),name)!=0) { if (p1->next!=NULL) p1=p1->next; else { printf(\ 查找不到相关数据!\\n\ break; } } if (strcmp((p1->name),name)==0) { printf(\要插入的信息如下:--------------------------------\\n\ printf(\教工号 姓名 性别 单位名称 家庭住址 联系电话\\n\ printf(\ %-4d %-13s %s %-19s %-19s%-14ld\\n\->phone); printf(\电话费 水电费 房租 个人所得税 卫生费 公积金 合计扣款\\n\ printf(\%-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf \\n\l); printf(\基本工资 津贴 生活补贴 应发工资 实发工资\\n\ printf(\%-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\\n\>yingfa_salary,p1->shifa_salary); printf(\ printf(\ 确定插入吗?(y或n):\ scanf(\ } if (k=='y'||k=='Y') { if (strcmp((p1->name),name)==0) { if(p1==head)/*如果插入点为头指针*/ { p1->next=px; p2=head; } else if(p1->next==NULL)/*如果插入点为末尾指针*/ { p3=p1;p1=head;p2=head; while(p1->next!=p3)
}
{p1=p1->next;} p1=p1->next; p1->next=px; px->next=NULL; } else{/*如果插入点为中间指针*/ p3=p1;p1=head;p2=head; while(p1->next!=p3) {p1=p1->next;} p1=p1->next; p1->next=px; p3=p3->next; px->next=p3; } if((fp=fopen(\ { printf(\ 文件不存在!按下任意键返回主菜单...\ } else { do { fwrite(p2,LEN-4,1,fp); if(p2->next!=NULL) p2=p2->next; }while(p2->next!=NULL); if(p2!=head) fwrite(p2,LEN-4,1,fp); }fclose(fp); printf(\ 插入成功!按下任意键继续...\ } } else {printf(\ 插入已被取消!按下任意键继续...\ break; case 3:break; default :break; } if (i!=3) { printf(\ 继续插入其他教师的信息吗?(y或n)\ scanf(\ }
}while((n=='y'||n=='Y')&&i!=3);
printf(\ 数据插入成功!按下任意键返回主菜单...\ getchar(); }
/***********************************输入函数*****************************************/ void insert() { FILE *fp; char m,num[30]; struct teacher *p1; p1=(struct teacher *)malloc(LEN); if((fp=fopen(\ { printf(\ 文件不存在!按下任意键返回主菜单...\ } else { printf(\ 请输入教师信息:\\n\ do { printf(\ ------------------------------\\n\ printf(\ 请输入教工号:\ printf(\ 请输入姓名:\ printf(\ 请输入性别:\ printf(\ 请输入单位名称:\ printf(\ 请输入家庭住址:\ printf(\ 请输入联系电话:\ printf(\ 请输入基本工资:\ printf(\ 请输入津贴:\ printf(\ 请输入生活补贴:\ printf(\ 请输入电话费:\ printf(\ 请输入水电费:\ printf(\ 请输入房租:\ printf(\ 请输入个人所得税:\ printf(\ 请输入卫生费:\ printf(\ 请输入公积金:\ p1->yingfa_salary=p1->de_salary+p1->de_jintie+p1->de_shenghuobutie; p1->cost_all=p1->cost_phone+p1->cost_water_elec+p1->cost_rent+p1->cost_tax+p1->cost_weisheng+p1->cost_gongjijin; p1->shifa_salary=p1->yingfa_salary-p1->cost_all; fwrite(p1,LEN-4,1,fp); printf(\ 输入下一个?(y或n)\
m=getchar(); if(m!='y'&&m!='Y') {printf(\ 数据保存成功!按下任意键返回主菜单...\ getchar(); }while (m=='y'||m=='Y'); } fclose(fp); }
/***********************************修改函数*****************************************/ void modify() { struct teacher *head,*p1,*p2; int i; FILE *fp; char m='n',n='n',num2[30]; p1=head=(struct teacher *)malloc(LEN); if((head=load())!=NULL) { do { int num=0; char name[20]; p1=head; system(\ printf(\ >>>>>>>>>>> 修改教师信息 <<<<<<<<<<<\\n\ printf(\ *******************************************************\\n\ printf(\ * 1.输入教师号 *\\n\ printf(\ * 2.输入姓名 *\\n\ printf(\ * 3.返回上级菜单 *\\n\ printf(\ *******************************************************\\n\ printf(\ 请选择修改方式:\ scanf(\ while (i<1||i>3) { printf(\ 输入有误!请重新输入:\ scanf(\ } switch(i) { case 1:printf(\ 请输入要修改的教师号:\ scanf(\ while (p1->num!=num)