📄 二叉数排序.txt
字号:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
typedef struct node
{
char num[10];
char name[20];
float score1,score2,score3,score4,score5;
struct node *next;
}student;
student *head;
student *creat()
{
student *p,*s;
FILE *fp;
fp=fopen("student.txt","r");
head=(student *)malloc(sizeof(student));
p=head;
fscanf(fp,"%s\t%s\t%f\t%f\t%f\t%f\t%f\n",p->num,p->name,&p->score1,&p->score2,&p- >score3,&p->score4,&p->score5);
while(!feof(fp))
{
s=(student *)malloc(sizeof(student));
fscanf(fp,"%s\t%s\t%f\t%f\t%f\t%f\t%f",s->num,s->name,&s->score1,&s- >score2,&s->score3,&s->score4,&s->score5);
p->next=s;
p=s;
}
p->next=NULL;
return head;
}
void print(student *head)
{
student *p;
p=head;
while(p->next!=NULL)
{
printf("%s\t%s\t%f\t%f\t%f\t%f\t%f\n",p->num,p->name,p->score1,p->score2,p- >score3,p->score4,p->score5);
p=p->next;
}
}
void findname()
{
student *p;
char name[20];
p=head;
printf("请输入名字:\n");
scanf("%s",name);
while(p!=NULL)
{
if(strcmp(name,p->name)==0)
{
printf("%s\t%s\t%f\t%f\t%f\t%f\t%f\n",p->num,p->name,p->score1,p- >score2,p->score3,p->score4,p->score5); break;
}
p=p->next;
}
if(p==NULL)
printf("没有找到\n");
}
void findnum()
{
student *p;
char num[10];
p=head;
printf("请输入学号:\n");
scanf("%s",num);
while(p!=NULL)
{
if(!strcmp(num,p->num))
{
printf("%s\t%s\t%f\t%f\t%f\t%f\t%f\n",p->num,p->name,p->score1,p- >score2,p->score3,p->score4,p->score5);
break;
}
else p=p->next;
}
if(p==NULL)
printf("没有找到\n");
}
void findscore()
{
student *p;
int score;
p=head;
printf("请输入分数:\n");
scanf("%d",&score);
while(p!=NULL)
{
if(score==p->score1)
{
printf("%s\t%s\t%f\t%f\t%f\t%f\t%f\n",p->num,p->name,p->score1,p- >score2,p->score3,p->score4,p->score5);
break;
}
else p=p->next;
}
if(p==NULL)
printf("没有找到\n");
}
void find()
{
char ch;int flag=1;
do{
printf("\t\t 1:按姓名查询 \t\t\n");
printf("\t\t 2:按学号查询 \t\t\n");
printf("\t\t 3:按分数查询 \t\t\n");
printf("\t\t 0:退出 \t\t\n");
printf("请选择:");
ch=getche();
switch(ch)
{ case'1':findname();break; case'2':findnum();break; case'3':findscore();break; case'0':flag=0;break;
}
}
while(flag);
} void del()
{
print(head);
student *p,*q,*r;
char num[10];
p=head;
printf("请输入需要删除的人的学号:");
scanf("%s",num);
while(p!=NULL)
{
if(strcmp(p->next->num,num)==0)
{
q=p;
r=p->next;
break;
}
else p=p->next;
}
q->next=r->next;
free(r);
print(head);
} void add()
{
print(head);
student *p,*s; p=head;
while(p->next!=NULL)
p=p->next;
printf("请输入添加的学生信息:");
s=(student *)malloc(sizeof(student));
scanf("%s\t%s\t%f\t%f\t%f\t%f\t%f",s->num,s->name,&s->score1,&s->score2,&s- >score3,&s->score4,&s->score5);
p->next=s;
s->next=NULL;
print(head);
}
void repair()
{
student *p,*s;
p=head;
s=(student *)malloc(sizeof(student));
printf("请输入需要修改的学生学号:");
char num[10];
scanf("%s",num);
while(p->next!=NULL)
{
if(strcmp(p->num,num)==0)
{
s=p;
break;
}
p=p->next;
}
printf("%s\t%s\t%f\t%f\t%f\t%f\t%f\n",s->num,s->name,s->score1,s->score2,s- >score3,s->score4,s->score5);
printf("请输入这学生需要修改的信息:");
scanf("%s\t%s\t%f\t%f\t%f\t%f\t%f",s->num,s->name,&s->score1,&s->score2,&s- >score3,&s->score4,&s->score5);
printf("%s\t%s\t%f\t%f\t%f\t%f\t%f\n",s->num,s->name,s->score1,s->score2,s- >score3,s->score4,s->score5);
}
void maintain()
{
char ch;
int flag=1;
do{
pprintf("\t\t 1:删除 \t\t\n");
printf("\t\t 2:添加 \t\t\n");
printf("\t\t 3:修改 \t\t\n");
printf("\t\t 0:退出 \t\t\n");
printf("请选择:");
ch=getche();
printf("\n");
switch(ch)
{
case'1':del();break;
case'2':add();break;
case'3':repair();break;
case'0':flag=0;break;
}
}
while(flag); }
void main()
{
char ch;
int flag=1,x=0;
head=creat();
char keyword[10]="******";
char key[10];
do
{
printf("请输入密码:");
scanf("%s",key);
if(strcmp(key,keyword)==0)
{
do{
printf("\t\t01043班学生管理系统\t\t\n");
printf("\t\t 1:查询 \t\t\n");
printf("\t\t 2:维护 \t\t\n");
printf("\t\t 0:退出 \t\t\n");
printf("请选择:");
ch=getche();
printf("\n");
switch(ch)
{
case'1':find();break;
case'2':maintain();break;
case'0':flag=0;break;
}
}
while(flag);
if(!flag)
{
printf("感谢您的使用,再见!\n");
break;
}
}
else
{
printf("你是无权用户\n"); x++; if(x==3) printf("对不
起,你已经三次输入密码无效!\n");
}
}while(x<=2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -