first commit

master
13187261606 6 years ago
parent e504bd6981
commit b37074e5f0

@ -33,12 +33,67 @@ void menu()
printf("\t\t|\t g.退出系统 |\n"); printf("\t\t|\t g.退出系统 |\n");
printf("\t\t|---------------------------------------------|\n"); printf("\t\t|---------------------------------------------|\n");
} }
int iCount; void Rank()
{
FILE *fp;
void R_Save(struct student *phead);
fp=fopen("D:\\学生信息.txt","r");
struct student *phead1=NULL;
struct student *pEnd1,*pNew1,*pNow1;
pNew1=(struct student*)malloc(sizeof(struct student));
fscanf(fp,"%s",pNew1->id);
fscanf(fp,"%s",pNew1->name);
fscanf(fp,"%s",pNew1->sex);
fscanf(fp,"%d",&pNew1->age);
fscanf(fp,"%s",pNew1->note);
pNew1->next=NULL;
pEnd1=pNew1;
phead1=pNew1;
while(!feof(fp))
{
pNew1=(struct student*)malloc(sizeof(struct student));
fscanf(fp,"%s",pNew1->id);
fscanf(fp,"%s",pNew1->name);
fscanf(fp,"%s",pNew1->sex);
fscanf(fp,"%d",&pNew1->age);
fscanf(fp,"%s",pNew1->note);
pNew1->next=NULL;
pEnd1->next=pNew1;
pEnd1=pNew1;
}
pNow1 = phead1;
while(pNow1->next->next!=NULL)
{
pNow1 = pNow1->next;
}
pNow1->next=NULL;
fclose(fp);
struct student *i,*j,pTemp;
if(phead1 == NULL)
return;
for(i = phead1; i->next!=NULL;i = i->next)
{
for(j = phead1; j->next!=NULL; j = j->next)
{
if(strcmp(j->id , j->next->id)>0)
{
strcpy(pTemp.id,j->id); strcpy(j->id,j->next->id); strcpy(j->next->id,pTemp.id);
strcpy(pTemp.name,j->name); strcpy(j->name,j->next->name); strcpy(j->next->name,pTemp.name);
strcpy(pTemp.sex,j->sex); strcpy(j->sex,j->next->sex); strcpy(j->next->sex,pTemp.sex);
strcpy(pTemp.note,j->note); strcpy(j->note,j->next->note); strcpy(j->next->note,pTemp.note);
pTemp.age=j->age; j->age=j->next->age; j->next->age=pTemp.age;
}
}
}
R_Save(phead1);
}
struct student* Create() struct student* Create()
{ {
/*void Save(struct student *phead);*/
struct student* phead=NULL; struct student* phead=NULL;
struct student *pEnd,*pNew; struct student *pEnd,*pNew;
iCount=0;
pNew=(struct student*)malloc(sizeof(struct student)); pNew=(struct student*)malloc(sizeof(struct student));
printf("\t\t\t######请输入学生基本信息######\n"); printf("\t\t\t######请输入学生基本信息######\n");
printf("\t\t\t学号:"); scanf("%s",pNew->id); printf("\t\t\t学号:"); scanf("%s",pNew->id);
@ -81,7 +136,9 @@ struct student* Create()
fprintf(fp,"%s ",pTemp->note); fprintf(fp,"%s ",pTemp->note);
pTemp=pTemp->next; pTemp=pTemp->next;
} }
} fclose(fp); }
system("pause");
fclose(fp);
} }
void Print() void Print()
@ -99,7 +156,7 @@ void Print()
printf("姓名;%s\n",a[1]); printf("姓名;%s\n",a[1]);
printf("性别;%s\n",a[2]); printf("性别;%s\n",a[2]);
printf("年龄;%d\n",b); printf("年龄;%d\n",b);
printf("备注:%s\n",a[3]); printf("备注:%s\n\n",a[3]);
fscanf(fp,"%s%s%s%d%s",a[0],a[1],a[2],&b,a[3]); fscanf(fp,"%s%s%s%d%s",a[0],a[1],a[2],&b,a[3]);
} }
fclose(fp); fclose(fp);
@ -111,7 +168,35 @@ void Save(struct student *phead)
struct student *pTemp; struct student *pTemp;
pTemp=phead; pTemp=phead;
FILE *fp; FILE *fp;
if((fp=fopen("D:\\学生信息.txt","w"))!=NULL) if(pTemp!=NULL)
{
if((fp=fopen("D:\\学生信息.txt","w"))!=NULL)
{
while(pTemp!=NULL)
{
fprintf(fp,"%s ",pTemp->id);
fprintf(fp,"%s ",pTemp->name);
fprintf(fp,"%s ",pTemp->sex);
fprintf(fp,"%d ",pTemp->age);
fprintf(fp,"%s ",pTemp->note);
pTemp=pTemp->next;
}
fclose(fp);
}
else
printf("文件打开失败\n");
}
Rank();
system("pause");
}
void R_Save(struct student *phead)
{
struct student *pTemp;
pTemp=phead;
FILE *fp;
if(pTemp!=NULL)
{
if((fp=fopen("D:\\学生信息.txt","w"))!=NULL)
{ {
while(pTemp!=NULL) while(pTemp!=NULL)
{ {
@ -123,14 +208,14 @@ void Save(struct student *phead)
pTemp=pTemp->next; pTemp=pTemp->next;
} }
fclose(fp); fclose(fp);
return;
} }
else else
printf("文件打开失败"); printf("文件打开失败\n");
}
} }
struct student* Delete() struct student* Delete()
{ {
char s[20]; int i=1; char s[20];
struct student *pTemp,*pre; struct student *pTemp,*pre;
FILE *fp; FILE *fp;
fp=fopen("D:\\学生信息.txt","r"); fp=fopen("D:\\学生信息.txt","r");
@ -163,16 +248,16 @@ struct student* Delete()
pNow = pNow->next; pNow = pNow->next;
} }
pNow->next=NULL; pNow->next=NULL;
pre=pTemp=phead;
printf("\t\t\t请输入学号:"); printf("\t\t\t请输入学号:");
renew: scanf("%s",s); renew: pre=pTemp=phead; int i=1;
scanf("%s",s);
while(strcmp(pTemp->id,s)) while(strcmp(pTemp->id,s))
{ {
i++; i++;
pTemp=pTemp->next; pTemp=pTemp->next;
if(pTemp==NULL) if(pTemp==NULL)
{ {
printf("\t\t\t学号输入有误!!!"); printf("\t\t\t学号输入有误!!!\n");
printf("\t\t\t请重新输入:"); printf("\t\t\t请重新输入:");
goto renew; goto renew;
} }
@ -234,29 +319,29 @@ void search()
} }
pNow->next=NULL; pNow->next=NULL;
fclose(fp); fclose(fp);
int x; char s[20]; char x; char s[20];
printf("\t\t\t请选择查询方式\n1.学号查询\n2.姓名查询\n3.性别查询\n4.年龄查询\n"); printf("\t\t\t请选择查询方式\n1.学号查询\n2.姓名查询\n3.性别查询\n4.年龄查询\n");
RE: scanf("%d",&x); RE: x=getch();
fflush(stdin); //清空缓冲区 fflush(stdin); //清空缓冲区
pTemp=phead; int Y=0; RE1: pTemp=phead; int Y=0; int flag = 1;
switch(x) switch(x)
{ {
case 1: case'1':
printf("\t\t\t请输入学号:"); printf("\t\t\t请输入学号:");
break; break;
case 2: case'2':
printf("\t\t\t请输入姓名:"); printf("\t\t\t请输入姓名:");
break; break;
case 3: case'3':
printf("\t\t\t请输入性别:"); printf("\t\t\t请输入性别:");
break; break;
case 4: case'4':
printf("\t\t\t请输入年龄:"); printf("\t\t\t请输入年龄:");
scanf("%d",&Y); scanf("%d",&Y);
goto jump; goto jump;
break; break;
default: default:
printf("\t\t\t输入有误!\n\t\t\t请重新选择:"); printf("\t\t\t输入有误!\n\t\t\t请重新选择:\n");
goto RE; goto RE;
} }
scanf("%s",s); scanf("%s",s);
@ -264,7 +349,7 @@ jump: while(pTemp!=NULL)
{ {
switch(x) switch(x)
{ {
case 1: case'1':
if(strcmp(s,pTemp->id)==0) if(strcmp(s,pTemp->id)==0)
{ {
printf("学号:%s\n",pTemp->id); printf("学号:%s\n",pTemp->id);
@ -272,8 +357,10 @@ jump: while(pTemp!=NULL)
printf("性别;%s\n",pTemp->sex); printf("性别;%s\n",pTemp->sex);
printf("年龄;%d\n",pTemp->age); printf("年龄;%d\n",pTemp->age);
printf("备注:%s\n",pTemp->note); printf("备注:%s\n",pTemp->note);
} break; flag = 0;
case 2: }
break;
case'2':
if(strcmp(s,pTemp->name)==0) if(strcmp(s,pTemp->name)==0)
{ {
printf("学号:%s\n",pTemp->id); printf("学号:%s\n",pTemp->id);
@ -281,8 +368,10 @@ jump: while(pTemp!=NULL)
printf("性别;%s\n",pTemp->sex); printf("性别;%s\n",pTemp->sex);
printf("年龄;%d\n",pTemp->age); printf("年龄;%d\n",pTemp->age);
printf("备注:%s\n",pTemp->note); printf("备注:%s\n",pTemp->note);
} break; flag = 0;
case 3: }
break;
case'3':
if(strcmp(s,pTemp->sex)==0) if(strcmp(s,pTemp->sex)==0)
{ {
printf("学号:%s\n",pTemp->id); printf("学号:%s\n",pTemp->id);
@ -290,8 +379,10 @@ jump: while(pTemp!=NULL)
printf("性别;%s\n",pTemp->sex); printf("性别;%s\n",pTemp->sex);
printf("年龄;%d\n",pTemp->age); printf("年龄;%d\n",pTemp->age);
printf("备注:%s\n",pTemp->note); printf("备注:%s\n",pTemp->note);
flag = 0;
} }
case 4: break;
case'4':
if(Y==pTemp->age) if(Y==pTemp->age)
{ {
printf("学号:%s\n",pTemp->id); printf("学号:%s\n",pTemp->id);
@ -299,12 +390,17 @@ jump: while(pTemp!=NULL)
printf("性别;%s\n",pTemp->sex); printf("性别;%s\n",pTemp->sex);
printf("年龄;%d\n",pTemp->age); printf("年龄;%d\n",pTemp->age);
printf("备注:%s\n",pTemp->note); printf("备注:%s\n",pTemp->note);
} break; flag = 0;
}
break;
} }
pTemp=pTemp->next; pTemp=pTemp->next;
} }
if(flag)
{
printf("\t\t\t未查询到相关信息,请重试!\n");
goto RE1;
}
system("pause"); system("pause");
} }
@ -342,23 +438,41 @@ struct student* Change()
pNow = pNow->next; pNow = pNow->next;
} }
pNow->next=NULL; pNow->next=NULL;
pTemp=phead;
char s[20]; char s[20];
printf("\t\t\t请输入要修改学生的学号:"); char m[10]; int flag=1;
scanf("%s",s); RE1: printf("\t\t\t请输入密码: ");
scanf("%s",m);
if(strcmp(m,"123456")==0)
{
RE: pTemp=phead;
printf("\t\t\t请输入要修改学生的学号:");
scanf("%s",s);
while(pTemp!=NULL) while(pTemp!=NULL)
{ {
if(strcmp(s,pTemp->id)==0) if(strcmp(s,pTemp->id)==0)
{ {
printf("\t\t\t学号:"); scanf("%s",pTemp->id); printf("\t\t\t学号:%s\t\t\t修改学号:",pTemp->id); scanf("%s",pTemp->id);
printf("\t\t\t姓名;"); scanf("%s",pTemp->name); printf("\t\t\t姓名;%s\t\t\t修改姓名:",pTemp->name); scanf("%s",pTemp->name);
printf("\t\t\t性别;"); scanf("%s",pTemp->sex); printf("\t\t\t性别;%s\t\t\t修改性别:",pTemp->sex); scanf("%s",pTemp->sex);
printf("\t\t\t年龄;"); scanf("%d",&pTemp->age); printf("\t\t\t年龄;%d\t\t\t修改年龄:",pTemp->age); scanf("%d",&pTemp->age);
printf("\t\t\t备注:"); scanf("%s",pTemp->note); printf("\t\t\t备注:%s\t\t\t修改备注:",pTemp->note); scanf("%s",pTemp->note);
flag = 0;
break; break;
} }
pTemp=pTemp->next; pTemp=pTemp->next;
} }
}
else
{
printf("\t\t\t密码输入错误,请重新输入!\n");
goto RE1;
}
if(flag)
{
printf("\t\t\t学号输入错误,请重新输入!\n");
goto RE;
}
system("pause"); system("pause");
fclose(fp); fclose(fp);
return phead; return phead;
@ -367,11 +481,11 @@ struct student* Change()
int main() int main()
{ {
system("mode con cols=80 lines=30"); /*system("mode con cols=80 lines=30");*/
system("color F5"); system("color F5");
char x=0; char x=0;
char m[7]; char m[7];
struct student *head; struct student *head=NULL;
Re: Re:
setposition(40,14); setposition(40,14);
printf("请输入密码: "); printf("请输入密码: ");
@ -422,7 +536,8 @@ int main()
} }
else else
{ {
printf("\t\t\t密码错误,请重试!!!\n"); setposition(40,14);
printf("\t\t\t密码错误!\n"); // 有问题
goto Re; goto Re;
} }

Binary file not shown.
Loading…
Cancel
Save