考试报名管理(数据结构)源代码
#include
#include
#include
#include
#define ID struct id
struct id
{
char name[20];
int num;
int age;
char sex[2];
char kind[20];
ID *next;
};
int sum_age=0,max_age=0,min_age=100,pc=0;
float ave_age=0;
ID *creat()
{
ID *p1,*p2,*head;
int pd;
p1=p2=head=NULL;
printf("\t\t\t 开始输入记录!!!\n");
printf("please input pd:\n");
scanf("%d",&pd);
while(pd!=0)
{
p1=(ID*)malloc(sizeof(ID));
printf("请输入学生的准考证号:\n");scanf("%d",&p1->num);
printf("请输入学生的姓名:\n");scanf("%s",p1->name);
printf("请输入学生的年龄:\n");scanf("%d",&p1->age);
sum_age+=p1->age;
if(max_ageage) max_age=p1->age;
if(min_age>p1->age) min_age=p1->age;
printf("请输入学生的性别:\n");scanf("%s",p1->sex);
printf("请输入学生的报考类别:\n");scanf("%s",p1->kind);
if(head==NULL)
{
head=p1;
p2=p1;
}
else
{
p2->next=p1;
p2=p1;
}
printf("please input pd:\n");
scanf("%d",&pd);
pc++;
}
p2->next=NULL;
return(head);
}
ID *insert(ID *head)
{
ID *temp,*p1,*p2;
int pd;
start: p1=head;
printf("插入操作开始!!!\n");
temp=(ID *)malloc(sizeof(ID));
printf("请输入学生的准考证号:\n");scanf("%d",&temp->num);
printf("请输入学生的姓名:\n");scanf("%s",temp->name);
printf("请输入学生的年龄:\n");scanf("%d",&temp->age);
printf("请输入学生的性别:\n");scanf("%s",temp->sex);
printf("请输入学生的报考类别:\n");scanf("%s",temp->kind);
if (head==NULL)
{
head=temp;
temp->next=NULL;
}
else
{
while(p1!=NULL)
{
p2=p1;
p1=p1->next;
}
p2->next=temp;
temp->next=NULL;
}
printf("插入末尾成功");
pc++;
printf("是否继续插入 1.Yes 2.No;\n");
scanf("%d",&pd);
if(pd==1) goto start;
return (head);
}
ID *delet(ID *head)
{
ID *p1,*p2;
int num;
printf("请输入要删除的学生的准考证号:");scanf("%d",&num);
p1=head;
if (head==NULL)
{
printf("没有记录\n");
goto end;
}
while(num!=p1->num && p1!=NULL)
{
p2=p1;p1=p1->next;
}
if(num==p1->num)
{
if (p1==head)
head=p1->next;
else
p2->next=p1->next;
printf("删除成功!!!\n");
pc--;
}
end:return head;
}
ID *search(ID *head)
{
ID *p1,*p2;
int num;
printf("请输入要查找的准考证号:");scanf("%d",&num);
p1=head;
while(num!=p1->num && p1!=NULL)
{
p2=p1;p1=p1->next;
}
if(num==p1->num)
{
printf("学生的准考证号:%d\n",p1->num);
printf("学生的姓名:%s\n",p1->name);
printf("学生的年龄:%d\n",p1->age);
printf("学生的性别:%s\n",p1->sex);
printf("学生的报考类别:%s\n",p1->kind);
}
return head;
}
ID *modify_num(ID *head)
{
ID *p;
int i,m,n,num;
start:
printf("请输入要修改的学生的准考证号:");
scanf("%d",&num);
p=head;
while(p!=NULL )
{
if(num==p->num)
{
m=1;
while(m==1)
{
m=0;
printf("\t\t 1.修改学生的准考证号\n");
printf("\t\t 2.修改学生的姓名\n");
printf("\t\t 3.修改学生的年龄\n");
printf("\t\t 4.修改学生的性别\n");
printf("\t\t 5.修改学生的报考类别\n");
printf("请选择(1--5):");
scanf("%d",&i);
switch( i )
{
case 1 :
printf("请输入修改后的准考证号:");
scanf("%d",&p->num);
break;
case 2:
printf("请输入修改后的姓名:");
scanf("%s",p->name);
break;
case 3:
printf("请输入修改后的年龄:");
scanf("%d",&p->age);
break;
case 4:
printf("请输入修改后的性别:");
scanf("%s",&p->sex);
break;
case 5:
printf("请输入修改后的报考类别:");
scanf("%s",p->kind);
break;
default: printf("输入错误,请重新输入");
}
}
break;
}
p=p->next;
}
printf("是否继续修改其他学生情况(1改 2不改):");
scanf("%d",&n);
if(n==1)goto start;
else return head;
}
void print(ID *head)
{
ID *p;
p=head;
printf("\t\t\t*****************\n");
printf("显示结果是:\n");
if(head!=NULL)
do
{
printf("%10d%10s%10d%10s%10s\n",p->num,p->name,p->age,p->sex,p->kind); p=p->next;
} while(p!=NULL);
}
void main()
{
ID *head;
int choise;
while(1)
{
printf("\t\t 学生考试报名管理系统\n");
printf("\t\t 1.建立文件\n");
printf("\t\t 2.插入数据\n");
printf("\t\t 3.删除数据\n");
printf("\t\t 4.修改记录\n");
printf("\t\t 5.查找记录\n");
printf("\t\t 0.退出\n");
printf("\n");
printf("请选择(0-5):");
scanf("%d",&choise);
switch(choise)
{
case 1: head=creat();
print(head);
break;
case 2: head=insert(head);
print(head);
break;
case 3: head=delet(head);
print(head);
break;
case 4: head=modify_num(head); print(head);
break;
case 5:search(head);
print(head);
break;
case 0:
exit(0);
break;
default :printf("输入错误, 请重新输入!\n"); }
}
}
考试报名管理(数据结构)运行结果
考试报名管理(数据结构)源代码
#include
#include
#include
#include
#define ID struct id
struct id
{
char name[20];
int num;
int age;
char sex[2];
char kind[20];
ID *next;
};
int sum_age=0,max_age=0,min_age=100,pc=0;
float ave_age=0;
ID *creat()
{
ID *p1,*p2,*head;
int pd;
p1=p2=head=NULL;
printf("\t\t\t 开始输入记录!!!\n");
printf("please input pd:\n");
scanf("%d",&pd);
while(pd!=0)
{
p1=(ID*)malloc(sizeof(ID));
printf("请输入学生的准考证号:\n");scanf("%d",&p1->num);
printf("请输入学生的姓名:\n");scanf("%s",p1->name);
printf("请输入学生的年龄:\n");scanf("%d",&p1->age);
sum_age+=p1->age;
if(max_ageage) max_age=p1->age;
if(min_age>p1->age) min_age=p1->age;
printf("请输入学生的性别:\n");scanf("%s",p1->sex);
printf("请输入学生的报考类别:\n");scanf("%s",p1->kind);
if(head==NULL)
{
head=p1;
p2=p1;
}
else
{
p2->next=p1;
p2=p1;
}
printf("please input pd:\n");
scanf("%d",&pd);
pc++;
}
p2->next=NULL;
return(head);
}
ID *insert(ID *head)
{
ID *temp,*p1,*p2;
int pd;
start: p1=head;
printf("插入操作开始!!!\n");
temp=(ID *)malloc(sizeof(ID));
printf("请输入学生的准考证号:\n");scanf("%d",&temp->num);
printf("请输入学生的姓名:\n");scanf("%s",temp->name);
printf("请输入学生的年龄:\n");scanf("%d",&temp->age);
printf("请输入学生的性别:\n");scanf("%s",temp->sex);
printf("请输入学生的报考类别:\n");scanf("%s",temp->kind);
if (head==NULL)
{
head=temp;
temp->next=NULL;
}
else
{
while(p1!=NULL)
{
p2=p1;
p1=p1->next;
}
p2->next=temp;
temp->next=NULL;
}
printf("插入末尾成功");
pc++;
printf("是否继续插入 1.Yes 2.No;\n");
scanf("%d",&pd);
if(pd==1) goto start;
return (head);
}
ID *delet(ID *head)
{
ID *p1,*p2;
int num;
printf("请输入要删除的学生的准考证号:");scanf("%d",&num);
p1=head;
if (head==NULL)
{
printf("没有记录\n");
goto end;
}
while(num!=p1->num && p1!=NULL)
{
p2=p1;p1=p1->next;
}
if(num==p1->num)
{
if (p1==head)
head=p1->next;
else
p2->next=p1->next;
printf("删除成功!!!\n");
pc--;
}
end:return head;
}
ID *search(ID *head)
{
ID *p1,*p2;
int num;
printf("请输入要查找的准考证号:");scanf("%d",&num);
p1=head;
while(num!=p1->num && p1!=NULL)
{
p2=p1;p1=p1->next;
}
if(num==p1->num)
{
printf("学生的准考证号:%d\n",p1->num);
printf("学生的姓名:%s\n",p1->name);
printf("学生的年龄:%d\n",p1->age);
printf("学生的性别:%s\n",p1->sex);
printf("学生的报考类别:%s\n",p1->kind);
}
return head;
}
ID *modify_num(ID *head)
{
ID *p;
int i,m,n,num;
start:
printf("请输入要修改的学生的准考证号:");
scanf("%d",&num);
p=head;
while(p!=NULL )
{
if(num==p->num)
{
m=1;
while(m==1)
{
m=0;
printf("\t\t 1.修改学生的准考证号\n");
printf("\t\t 2.修改学生的姓名\n");
printf("\t\t 3.修改学生的年龄\n");
printf("\t\t 4.修改学生的性别\n");
printf("\t\t 5.修改学生的报考类别\n");
printf("请选择(1--5):");
scanf("%d",&i);
switch( i )
{
case 1 :
printf("请输入修改后的准考证号:");
scanf("%d",&p->num);
break;
case 2:
printf("请输入修改后的姓名:");
scanf("%s",p->name);
break;
case 3:
printf("请输入修改后的年龄:");
scanf("%d",&p->age);
break;
case 4:
printf("请输入修改后的性别:");
scanf("%s",&p->sex);
break;
case 5:
printf("请输入修改后的报考类别:");
scanf("%s",p->kind);
break;
default: printf("输入错误,请重新输入");
}
}
break;
}
p=p->next;
}
printf("是否继续修改其他学生情况(1改 2不改):");
scanf("%d",&n);
if(n==1)goto start;
else return head;
}
void print(ID *head)
{
ID *p;
p=head;
printf("\t\t\t*****************\n");
printf("显示结果是:\n");
if(head!=NULL)
do
{
printf("%10d%10s%10d%10s%10s\n",p->num,p->name,p->age,p->sex,p->kind); p=p->next;
} while(p!=NULL);
}
void main()
{
ID *head;
int choise;
while(1)
{
printf("\t\t 学生考试报名管理系统\n");
printf("\t\t 1.建立文件\n");
printf("\t\t 2.插入数据\n");
printf("\t\t 3.删除数据\n");
printf("\t\t 4.修改记录\n");
printf("\t\t 5.查找记录\n");
printf("\t\t 0.退出\n");
printf("\n");
printf("请选择(0-5):");
scanf("%d",&choise);
switch(choise)
{
case 1: head=creat();
print(head);
break;
case 2: head=insert(head);
print(head);
break;
case 3: head=delet(head);
print(head);
break;
case 4: head=modify_num(head); print(head);
break;
case 5:search(head);
print(head);
break;
case 0:
exit(0);
break;
default :printf("输入错误, 请重新输入!\n"); }
}
}
考试报名管理(数据结构)运行结果