case 6:
Search(p);fflush(stdin);break;
case 7:
Modify(p);fflush(stdin);break;
case 8:
fflush(stdin);return 0;
case 9:
Export(p);fflush(stdin);break;
case 10:
Import(p);fflush(stdin);break;
case 11:
Explanation();fflush(stdin);break;
default :
fflush(stdin);printf("\t没有该选项:\n");break;
}
getch();
printf("\t");
system("cls");
Menu1();
printf("\t选择:\n");
printf("\t");
}
return 0;
}
void Menu()
{
printf("\n");
printf("\t 成绩管理系统 \3\n");
printf(" --------------------------------------\n");
printf("\t|\t1:添加\t |\t2:输出\t |\n");
printf(" --------------------------------------\n");
printf("\t|\t3:插入\t |\t4:排序\t |\n");
printf(" --------------------------------------\n");
printf("\t|\t5:删除\t |\t6:查询\t |\n");
printf(" --------------------------------------\n");
printf("\t|\t7:修改\t |\t8:退出\t |\n");
printf(" --------------------------------------\n");
printf("\t|\t9:写出到文件\t |\n");
printf(" --------------------------------------\n");
printf("\t|\t10:导入从文件\t |\n");
printf(" --------------------------------------\n");
printf("\t|\t11:说明(必看!)\t |\n");
printf(" --------------------------------------\n");
printf("\t");
printf("\n");
}
void Initialization(Node p)
{
p->Next=NULL;
p->Num=0;
}
void Add(Node p)
{
long long a;
float b,c;
char na[30];
while(p->Next!=NULL)
{
p=p->Next;
}
Node q=(Node)malloc(sizeof(struct L));
printf("\t输入姓名:\n");
printf("\t");
scanf("%s",&na);
printf("\t输入学号:\n");
printf("\t");
if(scanf("%lld",&a)==0)
{
printf("\t输入类型与要求不符合,添加失败!!\n");
getch();
return ;
}
q->Num=a;
printf("\t输入英语成绩:\n");
printf("\t");
if(scanf("%f",&b)==0)
{
printf("\t输入类型与要求不符合,添加失败!!\n");
getch();
return ;
}
q->English=b;
printf("\t输入C语言成绩:\n");
printf("\t");
if(scanf("%f",&c)==0)
printf("\t输入类型与要求不符合,添加失败!!\n");
getch();
return ;
}
q->C_language=c;
strcpy(q->Name,na);
p->Next=q;
q->Next=NULL;
printf("\t添加成功!\n");
p->Num++;
getch();
}
void Insert(Node p)
{
p->Num++;
printf("\t输入插入位置:\n");
int n;
printf("\t");
scanf("%d",&n);
if(n<=0)
{
printf("位置错误!\n");
return;
}
n-=1;
while(n--)
{
p=p->Next;
}
Node q=(Node)malloc(sizeof(struct L));
printf("\t输入姓名:\n");
scanf("%s",&q->Name);
printf("\t输入学号:\n");
scanf("%lld",&q->Num);
printf("\t输入英语成绩:\n");
scanf("%f",&q->English);
printf("\t输入C语言成绩:\n");
scanf("%f",&q->C_language);
q->Next=p->Next;
p->Next=q;
printf("\t插入成功!\n");
getch();
}
void Delet(Node p)
{
if(p->Num==0)
{
printf("\t没有可删除的数据!\n");
return;
}
p->Num--;
printf("\t选择:\n");
printf("\t1:按姓名删除:\n");
printf("\t2:按学号删除:\n");
int n;
printf("\t");
scanf("%d",&n);
switch(n)
{
case 1:DelName(p);break;
case 2:DelNum(p);break;
default:printf("\t无此选择!\n");break;
}
printf("\t删除成功!\n");
getch();
}
void DelName(Node p)
{
char s[30];
printf("\t输入姓名:\n");
printf("\t");
scanf("%s",&s);
Node q=p;
for(q=q->Next;q->Next!=NULL;q=q->Next,p=p->Next)
{
if(!strcmp(q->Name,s))
{
p->Next=p->Next->Next;
}
}
getch();
}
void DelNum(Node p)
{
long long n;
printf("\t输入学号