用顺序表实现一个简单的学生信息管理系统
用顺序表实现一个简单的学生信息管理系统,包括如下功能:(1)创建学生表(2)输出学生表(3)增加学生信息(4)删除学生信息(指定学号或者序号,如第几个学生)(5)按照给定的学号查找学生信息(6)插入学生信息学生信息结点类型如下:typedef struct{int no;//学号定义为整型为了方便查找和删除操作,实际中应该定义为//字符数组或字符串char n...
·
用顺序表实现一个简单的学生信息管理系统,包括如下功能:
(1) 创建学生表
(2) 输出学生表
(3) 增加学生信息
(4) 删除学生信息(指定学号或者序号,如第几个学生)
(5) 按照给定的学号查找学生信息
(6) 插入学生信息
学生信息结点类型如下:
typedef struct
{int no;//学号定义为整型为了方便查找和删除操作,实际中应该定义为
//字符数组或字符串
char name[50];//姓名
char sex;//性别(F or M)
int age;//年龄
}student;
功能实现
#include<iostream>
using namespace std;
#define MAXSIZE 100
#define OVERFLOW -2
#define OK 1
#define ERROR 0
typedef struct
{
int no;
char name[50];
char sex;
int age;
}Student;
typedef struct
{
Student *elem;
int length;
}SqList;
//初始化
int InitList(SqList &L)
{
L.elem=new Student[MAXSIZE];
L.length=0;
return OK;
}
//创建学生信息
void InitInformation(SqList &L)
{
int n;
cout<<"=====输入学生信息===="<<endl;
cout<<"输入学生人数:";
cin>>n;
for(int i=0;i<n;i++)
{
cout<<"输入第"<<i+1<<"个学生的信息"<<endl;
cout<<"输入该学生信息(依次输入学号,姓名,性别,年龄):";
cin>>L.elem[i].no>>L.elem[i].name>>L.elem[i].sex>>L.elem[i].age;
++L.length;
}
}
//输出学生表
void printStudent(SqList L)
{
int i=0;
while(i<L.length)
{
cout<<"学号:"<<L.elem[i].no<<"\t姓名:"<<L.elem[i].name<<"\t性别:"<<L.elem[i].sex<<"\t年龄:"<<L.elem[i].age<<endl;
++i;
}
}
//增加学生信息
int addInformation(SqList &L)
{
Student e;
if(L.length==MAXSIZE) return ERROR;
cout<<"输入要添加学生的信息(依次输入学号,姓名,性别,年龄):";
cin>>e.no>>e.name>>e.sex>>e.age;
L.elem[L.length]=e;
++L.length;
return OK;
}
//插入学生信息
int ListInsert(SqList &L,int i)
{
Student e;
int j;
if((i<0)||(i>L.length+1))
return ERROR;
if(L.length==MAXSIZE) return ERROR;
for(j=L.length-1;j>=i-1;j--)
L.elem[j+1]=L.elem[j];
cout<<"输入该学生信息(依次输入学号,姓名,性别,年龄):";
cin>>e.no>>e.name>>e.sex>>e.age;
L.elem[i-1]=e;
++L.length;
return OK;
}
//查找学生信息
int LocateElem(SqList L,int e)
{
for(int i=0;i<L.length;i++)
{
if(L.elem[i].no==e)
{
cout<<"该学生的学号为:"<<L.elem[i].no<<endl;
cout<<"该学生的姓名为:"<<L.elem[i].name<<endl;
cout<<"该学生的性别为:"<<L.elem[i].sex<<endl;
cout<<"该学生的年龄为:"<<L.elem[i].age<<endl;
return 0;
}
}
cout<<"该学号不存在"<<endl;
return 0;
}
//删除指定的学生信息
int ListDelete(SqList &L,int i)
{
if((i<1)||(i>L.length))return ERROR;
for(int j=i-1;j<L.length;j++)
L.elem[j-1]=L.elem[j];
--L.length;
return OK;
}
//功能界面
void fuction()
{
cout<<"**********学生信息管理系统**********"<<endl;
cout<<"\t**0、退出系统"<<endl;
cout<<"\t**1、创建学生表"<<endl;
cout<<"\t**2、输出学生表"<<endl;
cout<<"\t**3、添加学生信息"<<endl;
cout<<"\t**4、插入学生信息"<<endl;
cout<<"\t**5、删除学生信息"<<endl;
cout<<"\t**6、按照给定学号查找学生信息"<<endl;
cout<<"**输入选择功能的选项:";
}
int main()
{
SqList L;
int choise=-1;
fuction();
while(choise!=0)
{
cin>>choise;
switch(choise)
{
case 0:
cout<<"退出系统."<<endl;
break;
case 1:
{
InitList(L);
InitInformation(L);
fuction();
break;
}
case 2:
{
printStudent(L);
fuction();
break;
}
case 3:
{
addInformation(L);
fuction();
break;
}
case 4:
{
int i;
cout<<"输入要插入学生的学号:";
cin>>i;
ListInsert(L,i);
fuction();
break;
}
case 5:
{
int i;
cout<<"输入要删除的学生的学号:"<<endl;
cin>>i;
ListDelete(L,i);
fuction();
break;
}
case 6:
{
int k;
cout<<"输入要查询学生信息的学号:";
cin>>k;
LocateElem(L,k);
fuction();
break;
}
default:
cout<<"输入选项错误,请重新输入!!!"<<endl;
fuction();
break;
}
}
return 0;
}
更多推荐


所有评论(0)