成绩管理系统改进 (二)

2014-11-24 02:59:11 · 作者: · 浏览: 14
");
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输入学号:\n");
printf("\t");
scanf("%lld",&n);
Node q=p;
for(q=q->Next;q->Next!=NULL;q=q->Next,p=p->Next)
{
if(q->Num==n)
{
p->Next=p->Next->Next;
}
}
getch();
}
void Show(Node p)
{
if(p->Num==0)
{
printf("\t没有可显示的数据!\n");
return;
}
int len=p->