#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
typedef int ElemType;
ElemType sum=0;
typedef struct student
{
ElemType age;
char num[20];
char name[20];
char l[10],x[10];
struct student *next;
}li;
void create(li *head)
{
system("cls");
int s;
int i;
printf("请输入将要输入的学生人数:\n");
scanf("%d",&s);
li *p,*r;
r=head;
for(i=1;i<=sum;i++)
r=r->next;
for(i=1;i<=s;i++)
{
p=(li *)malloc(sizeof(li));
printf("\n第%d人:\n请依次输入学生的准考证号、姓名、性别、年龄、报考类别\n",i);
scanf("%s%s%s%d%s",p->num,p->name,p->x,&p->age,p->l);
r->next=p;
r=p;
sum++;
}
r->next=NULL;
printf("\n输入完成,按任意键返回主菜单......");
getch();
return ;
}
void put(li *he)
{
system("cls");
if(sum==0)
{
printf("内存中无学生信息!\n请先进行学生信息录入!\n按任意键返回主菜单......");
getch();
return ;
}
int i,t;
printf("准考证号 姓名 性别 年龄 报考类别\n");
li *p1=he->next;
while(p1!=NULL)
{
printf("%-16s %-10s %-5s %-5d %-5s\n",p1->num,p1->name,p1->x,p1->age,p1->l);
p1=p1->next;
}
printf("输入任意键返回主菜单......\n");
getch();
return ;
}
void add(li *head)
{
system("cls");
li *p,*r;
/*尾插法*/
int i;
r=head;
for(i=1;i<=sum;i++)
r=r->next;
p=(li *)malloc(sizeof(li));
printf("\n添加考生信息:\n请依次输入学生的准考证号、姓名、性别、年龄、报考类别\n");
scanf("%s%s%s%d%s",p->num,p->name,p->x,&p->age,p->l);
p->next=r->next;
r->next=p;
/*头插法*/
/*head->next=NULL;
p=(li *)malloc(sizeof(li));
printf("\n添加考生信息:\n请依次输入学生的准考证号、姓名、性别、年龄、报考类别\n");
scanf("%s%s%s%d%s",p->num,p->name,p->x,&p->age,p->l);
p->next=head->next;
head->next=p;*/
printf("\n插入完成,按任意键返回主菜单......");
sum++;
getch();
return ;
}
void fd(li *head)
{
int i,t;
system("cls");
if(sum==0)
{
printf("内存中无学生信息!\n请先进行学生信息录入!\n按任意键返回主菜单......");
getch();
return ;
}
printf("查询考生信息:\n请输入学生的准考证号\n");
char ff[20];
scanf("%s",&ff);
li *p=head;
for(i=0;i<sum;i++)
{
p=p->next;
if(strcmp(ff,p->num)==0)
break;
}
if(i==sum)
{
printf("暂无该考生信息!\n按任意键返回......\n");
getch();
return ;
}
printf("\n该生信息为:\n准考证号 姓名 性别 年龄 报考类别\n%-16s %-10s %-5s %-5d %-5s\n按任意键返回......",p->num,p->name,p->x,p->age,p->l);
getch();
return ;
}
void xg(li *head)
{
int i;
system("cls");
if(sum==0)
{
printf("内存中无学生信息!\n请先进行学生信息录入!\n按任意键返回主菜单......");
getch();
return ;
}
printf("修改考生信息:\n请输入学生的准考证号\n");
char x[20];
scanf("%s",x);
li *p=head;
for(i=0;i<sum;i++)
{
p=p->next;
if(strcmp(x,p->num)==0)
break;
}
if(i==sum)
{
printf("暂无该考生信息!\n按任意键返回......\n");
getch();
return ;
}
printf("\n请依次输入待修改学生的准考证号、姓名、性别、年龄、报考类别\n");
scanf("%s%s%s%d%s",p->num,p->name,p->x,&p->age,p->l);
printf("\n修改成功!");
getch();
return ;
}
void del(li *head)
{
int i;
system("cls");
if(sum==0)
{
printf("内存中无学生信息!\n请先进行学生信息录入!\n按任意键返回主菜单......");
getch();
return ;
}
printf("删除考生信息:\n请输入学生的准考证号\n");
char x[20];
scanf("%s",x);
li *p=head,*r=head;
for(i=0;i<sum;i++)
{
p=p->next;
if(strcmp(x,p->num)==0)
break;
r=r->next;
}
if(i==sum)
{
printf("暂无该考生信息!\n按任意键返回......\n");
getch();
return ;
}
r->next=p->next;
sum--;
printf("\n删除成功!");
getch();
return ;
}
int main()
{
li * head = NULL;
head=(li *)malloc(sizeof(li));
head->age=0;
int i,t;
int menu=0;
int cz;
while(1)
{
system("cls");
printf("\n\n\t\t\t\t\t\t欢迎来到考试报名管理系统!\n");
if(menu==0)
printf("\n\n\n\n\t\t\t\t\t\t=>>");
else printf("\n\n\n\n\t\t\t\t\t\t ");
printf("输入考生信息:\n");
if(menu==1)
printf("\t\t\t\t\t\t=>>");
else printf("\t\t\t\t\t\t ");
printf("输出考生信息:\n");
if(menu==2)
printf("\t\t\t\t\t\t=>>");
else printf("\t\t\t\t\t\t ");
printf("删除考生信息:\n");
if(menu==3)
printf("\t\t\t\t\t\t=>>");
else printf("\t\t\t\t\t\t ");
printf("查询考生信息:\n");
if(menu==4)
printf("\t\t\t\t\t\t=>>");
else printf("\t\t\t\t\t\t ");
printf("添加考生信息:\n");
if(menu==5)
printf("\t\t\t\t\t\t=>>");
else printf("\t\t\t\t\t\t ");
printf("修改考生信息:\n");
printf("\n\n\n\n\n\n\t\t\t\t\t\t\t\t请使用方向键选择......\n\t\t\t\t\t\t\t\t\t回车键进入\n\t\t\t\t\t\t\t\t\tEsc键退出");
cz=getch();
if(cz==27)
break;
if(cz==13)
{
switch(menu)
{
case 0:create(head);break;
case 1:put(head);break;
case 2:del(head);break;
case 3:fd(head);break;
case 4:add(head);break;
case 5:xg(head);break;
}
}
if((cz==80||cz==77)&&menu<5)
menu++;
else if((menu>0)&&(cz==75||cz==72))
menu--;
}
system("cls");
printf("\n\n\n\n\n\t\t\t\t再见!\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
return 0;
}