#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<stdlib.h>
using namespace std;
typedef struct exam
{
char name[10];
char num[20];
char sex[10];
int age;
float chengji;
struct exam *next;
} exam,*examlist;
char filename[20];
int denglu()
{
int k;
do
{
system("cls");//清屏
cout<<" 欢迎使用学生考试报名管理系统"<<endl;
cout<<endl;
cout<<endl;
cout<<" 1.建立考生信息表 2.查找考生信息"<<endl;
cout<<" 3.修改考生信息表 4.插入考生信息表"<<endl;
cout<<" 5.删除考生信息 6.退出该系统"<<endl;
cout<<" 请选择所要进行的操作(输入数字)"<<endl;
cin>>k;
}while(k<1||k>6);
return k;
}
void jianli(examlist &L, int n)
{
examlist p;
L=(examlist)malloc(sizeof(exam));
L->next=NULL;
int i,j,k;
for(i=n;i>0;i--)
{
p=(exam*)malloc(sizeof(exam));
cout<<" 请输入考生姓名、考号、性别、年龄、成绩"<<endl;
cin>>p->name>>p->num>>p->sex>>p->age>>p->chengji;
p->next=L->next;
L->next=p;
}
cout<<" 当前考生信息为:"<<endl;
j=0;
while(j<n)
{
cout<<p->name<<" "<<p->num<<" "<<p->sex<<" "<<p->age<<" "<<p->chengji<<endl;
p=p->next;
j++;
}
system("pause");
}
void chaxun(examlist &L,int n)
{
cout<<" 请输入查询学生的姓名"<<endl;
char name[10];
cin>>name;
int i,j,k;
examlist p,s;
p=L;
for(i=0;i<n;i++)
{
p=p->next;
if(strcmp(name,p->name)==0)
{
cout<<p->name<<" "<<p->num<<" "<<p->sex<<" "<<p->age<<" "<<p->chengji<<endl;
break;
}
}
if(i==n)
{
cout<<" 该学生姓名不存在"<<endl;
system("pause");
return;
}
cout<<" 查询成功!!!"<<endl;
system("pause");
return;
}
void xiugai(examlist &L,int n)
{
cout<<" 请输入修改学生的姓名"<<endl;
char name[10];
cin>>name;
int i,j,k;
examlist p,s;
p=L;
for(i=0;i<n;i++)
{
p=p->next;
if(strcmp(name,p->name)==0)
{
cout<<p->name<<" "<<p->num<<" "<<p->sex<<" "<<p->age<<" "<<p->chengji<<endl;
cout<<" 请输入新信息(姓名、学号、成绩)"<<endl;
cin>>p->name>>p->num>>p->sex>>p->age>>p->chengji;
//cout<<" "<<stu[i].name<<" "<<stu[i].num<<" "<<stu[i].chengji<<endl;
break;
}
}
if(i==n)
{
cout<<" 该学生姓名不存"<<endl;
system("pause");
return;
}
else
{
cout<<" 当前考生信息为:"<<endl;
j=0;
p=L->next;
while(j<n)
{
cout<<p->name<<" "<<p->num<<" "<<p->sex<<" "<<p->age<<" "<<p->chengji<<endl;
p=p->next;
j++;
}
cout<<" 修改成功!!!"<<endl;
system("pause");
return;
}
}
void charu(examlist &L,int n,int m)
{
examlist p,s;
p=L;
int j=0;
while (p && j<m- 1)
{
p = p->next; ++j;
}
s=(exam*)malloc(sizeof(exam));
cout<<" 请输入考生姓名、考号、性别、年龄、成绩"<<endl;
cin>>s->name>>s->num>>s->sex>>s->age>>s->chengji;
s->next=p->next;
p->next=s;
cout<<" 插入成功!!!"<<endl;
system("pause");
cout<<" 当前考生信息为:"<<endl;
j=0;
p=L->next;
while(j<n+1)
{
cout<<p->name<<" "<<p->num<<" "<<p->sex<<" "<<p->age<<" "<<p->chengji<<endl;
p=p->next;
j++;
}
system("pause");
}
void shanchu(examlist L,int n)
{
cout<<" 请输入欲删除考生的姓名"<<endl;
char name[10];
char f;
cin>>name;
int i,j,k;
examlist p,s;
p=L;
for(i=0;i<n;i++)
{
s=p->next;
if(strcmp(name,s->name)==0)
{
cout<<s->name<<" "<<s->num<<" "<<s->sex<<" "<<s->age<<" "<<s->chengji<<endl;
break;
}
p=p->next;
}
if(i==n)
{
cout<<" 该学生姓名不存在"<<endl;
system("pause");
return;
}
cout<<" 是否要删除该考生信息?(y/n)"<<endl;
cin>>f;
p->next=s->next;
free(s);
cout<<" 删除成功!!!"<<endl;
cout<<" 当前考生信息为:"<<endl;
j=0;
p=L->next;
while(j<n-1)
{
cout<<p->name<<" "<<p->num<<" "<<p->sex<<" "<<p->age<<" "<<p->chengji<<endl;
p=p->next;
j++;
}
system("pause");
return;
}
int main()
{
int n,m;
examlist a,b;
for(;;) //循环使用主界面直到遇到结束命令
{
switch(denglu()) // 函数的调用//
{
case 1:
printf("\t\t *^_^*学生记录添加 *^_^*\n");
cout<<" 请输入考生数"<<endl;
cin>>n;
jianli(a,n);
break;
case 2:
printf("\t\t *^_^*学生信息查询 *^_^*\n");
chaxun(a,n);
break;
case 3:
printf("\t\t *^_^*数据修改 *^_^*\n");
xiugai(a,n);
break;
case 4:
printf("\t\t *^_^*数据插入 *^_^*\n");
cout<<" 请输入考生信息的插入位置"<<endl;
cin>>m;
charu(a,n,m);
break;
case 5:
printf("\t\t *^_^*数据删除 *^_^*\n");
shanchu(a,n);
break;
case 6:
printf("\n\t\t谢谢使用,再见!\n");
printf("\n\t\t");
system("pause");
exit(6);
}
}
system("pause");
//return 0;
}