📄 3modify().txt
字号:
modify() /*修改输入*/
{char menu_2='1';
while(menu_2!='0')
{clrscr();
printf("\n\n\n\n\n\n");
printf(" 修改记录\n");
printf(" ************************************\n");
printf(" 1.删去原有记录.\n");
printf(" 2.插入记录.\n");
printf(" 3.修改记录.\n");
printf(" 0.回到主菜单.\n");
printf(" ************************************\n");
printf(" 请选择按键(0-3)操作:");
scanf(" %c",&menu_2);
switch(menu_2)
{case '1':delete();break;
case '2':insert();break;
case '3':modify_1();break;
case '0':menu_2='0';break;
default :printf("\n 输入超出范围,请键入0-3.\n\n");
}
}
}
delete() /*删除记录*/
{int t=n;
double num;
printf("输入你要删的学号:");
scanf("%lf",&num);
p1=head;
if(num==p1->num)
{head=head->next;free(p1);n--;}
else
while(p1!=null)
{if((p1->next)->num==num)
{p2=p1->next;p1->next=(p1->next)->next;
free(p2);n--;break;}
p1=p1->next;}
if(t==n) {printf("不能找到该学号!\n\n");
PAUSE;return;}/*根据n是否改变判断是否删除成功*/
else {printf("删除 Ok!!!\n\n");save();}
}
insert() /*插入函数*/
{int i,j,t,flag=0;struct student *p3;
float temp;
printf("Input i(1-%d):",n);
scanf("%d",&i);
if((i<1)||(i>n))
{printf("错误!\n 按任意键继续...");getche();}
else
{p2=(struct student*)malloc(len);
printf("Num:"); scanf("%lf",&p2->num);
if(p2->num==0) {printf(" 对不起,学号不能为0 !\n");getch();free(p2);return;} /*判断插入的学号是否为零*/
for(flag=0,p3=head,t=0;t<n;t++)
{if(p2->num==p3->num) /*判断输入的学号是否已经存在*/
{printf("对不起,该记录已存在!\n");
free(p2); /*如已经存在,则释放已建立的无用空间*/
flag=1;
PAUSE;
break;}
p3=p3->next;}
if(flag!=1) /*如果符合插入条件则插入记录*/
{printf("姓名:"); scanf("%s",&p2->name);
printf("班级:");scanf("%d",&p2->class);
for(t=0;t<=4;t++)
{printf("%s:",subject[t]);
scanf("%f",&temp);
p2->score[t]=temp;}
if(i==1)
{p2->next=head;head=p2;printf("\n插入 Ok!\n");n++;save();}
else
{i--;j=1;p1=head;
while(j<i)
{p1=p1->next;j++;}
p2->next=p1->next;
p1->next=p2;
printf("\n插入 Ok!\n");n++;save();}
}
}
}
modify_1() /*修改记录*/
{double num;int t,flag=0;float temp;
printf("请输入学号:");
scanf("%lf",&num);
p1=head;
while(p1!=null)
{if(p1->num==num)
{flag=1; /*设定修改标志*/
printf("姓名:"); scanf("%s",&p1->name);
printf("班级:");scanf("%d",&p1->class);
for(t=0;t<=4;t++)
{printf("%s:",subject[t]);
scanf("%f",&temp);
p1->score[t]=temp;}
}
p1=p1->next;
}
if(flag==1) {printf("\n修改OK!!\n");save();} /*根据修改标志flag判断是否找到记录*/
else {printf("\n不能找到该记录!\n");
PAUSE;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -