学生考试管理系统

#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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值