#include"xumin.h"
struct student *build(struct student *head,int n)
{
int i;
struct student *p1;
p1 = (struct student*)malloc(sizeof(struct student));
printf("输入name : ");
scanf("%s",p1->name);
printf("输入ID : ");
scanf("%d",&p1->ID);
printf("输入age : ");
scanf("%d",&p1->age);
printf("输入tel : ");
scanf("%d",&p1->tel);
head = p1;
head->next = NULL;
for(i=0; i<n-1; i++)
{
p1 = (struct student*)malloc(sizeof(struct student));
printf("输入name : ");
scanf("%s",p1->name);
printf("输入ID : ");
scanf("%d",&p1->ID);
printf("输入age : ");
scanf("%d",&p1->age);
printf("输入tel : ");
scanf("%d",&p1->tel);
p1->next = head;
head = p1;
}
jiemian(head,n);
return (head);
}
struct student *show(struct student *head,int n)
{
//int a;
struct student *p1;
p1 = head;
if(p1 != NULL)
{
printf("name: %s\n", p1->name);
printf("ID: %d\n", p1->ID);
printf("age: %d\n", p1->age);
printf("tel: %d\n", p1->tel);
p1 = p1->next;
}
else
{
printf("dataerror!");
}
jiemian(head, n);
return(head);
}
struct student *search(struct student *head,int n)
{
int a;
struct student *p1;
p1 = head;
printf("请输入要查找学生的ID\n");
scanf("%d",&a);
while( p1->ID != a && p1->next != NULL )
{
p1 = p1->next;
}
if( p1->ID == a )
{
printf("name = %s\n",p1->name);
printf("ID = %d\n",p1->ID);
printf("age = %d\n",p1->age);
printf("tel = %d\n",p1->tel);
p1 = p1->next;
}
else
{
printf("无此信息!");
}
jiemian(head,n);
return(head);
}
struct student *del(struct student *head, int n)
{
int a;
struct student *p1;
struct student *p2;
p1 = head;
p2 = head;
printf("请输入要删除的ID\n");
scanf("%d",&a);
while(p1 != NULL && p1->ID != a && p1->next != NULL)
{
p2 = p1;
p1 = p1->next;
}
if(p1 != NULL && p1->ID == a)
{
if(p1 == head)
head = p1->next;
else
p2->next = p1->next;
n = n-1;
p2->next = NULL;
free(p1);
}
else
printf("无此信息!");
jiemian(head,n);
return(head);
}
struct student *save(struct student *head,int n)
{
int a;
FILE * fp;
fp = fopen("xumin.txt","w+");
struct student *p1;
p1 = head;
for(a = 0;a < n;a++)
{
fprintf(fp,"name = %s,ID = %d,age = %d,tel = %d",p1->name,p1->ID,p1->age,p1->tel);
p1 = p1->next;
printf("\n");
}
fclose(fp);
jiemian(head,n);
return(head);
}
struct student *add(struct student *head,int n)
{
struct student *p1;
p1 = (struct student*)malloc(sizeof(struct student));
printf("输入name\n");
scanf("%s",&p1->name);
printf("输入ID\n");
scanf("%d",&p1->ID);
printf("输入age\n");
scanf("%d",&p1->age);
printf("输入tel");
scanf("%d",&p1->tel);
p1->next = head;
head = p1;
n = n+1;
jiemian(head,n);
return(head);
}
struct student *jiemian(struct student *head,int n)
{
printf("请选择");
printf("\n");
printf("1添加");
printf("\n");
printf("2删除");
printf("\n");
printf("3显示");
printf("\n");
printf("4保存");
printf("\n");
printf("5查找");
printf("\n");
printf("6遍历");
printf("\n");
printf("0退出");
printf("\n");
int a;
scanf("%d",&a);
switch(a)
{
case 1:
{
add(head,n);
break;
}
case 2:
{
del(head,n);
break;
}
case 3:
{
show(head,n);
break;
}
case 4:
{
save(head,n);
break;
}
case 5:
{
search(head,n);
break;
}
case 6:
{
see(head,n);
break;
}
case 0:
{
exit(0);
break;
}
default:
{
printf("dataerror!");
break;
}
}
return(0);
}
struct student *see(struct student *head,int n)
{
struct student *p1;
p1 = head;
do
{
printf("\n");
printf("name =%s\n",p1->name);
printf("ID =%d\n",p1->ID);
printf("age =%d\n",p1->age);
printf("tel =%d\n",p1->tel);
p1 = p1->next;
// p1 = NULL;
}while(p1 != NULL && p1->ID != NULL);
jiemian(head,n);
return(head);
}
/*struct student *Exit(struct student *head)
{
exit(0);
}*/
void Exit()
{
exit(0);
}
/*struct student *paixu(struct student *head,int n)
{
int i,j,k;
int t;
struct student *p1;
p1 = head;
while(p1 != NULL && p1->next != NULL)
{
scanf("%d%s%d%d",&p1->ID,p1->name,&p1->age,&p1->tel);
p1 = p1->next;
}
if(head == NULL)
{
printf("list is null!");
return(0);
}
else
{
for(i = 0; i<n-1 ; i++)
{
k = i;sd
for(j = i+1; j<n;j++)
{
if(*(p1+k)>*(p1+j))
k = j;
if(k != i)
{
t = *(p1+k);
*(p1+k) = *(p1+i);
*(p1+i) = t;
}
}
}
printf("%d%s%d%d\n",p1->ID,p1->name,p1->age,p1->tel);
p1 = p1->next;
}
jiemian(head,n);
return(head);
}*/
浙公网安备 33010602011771号