实验三 用顺序表实现学生成绩管理系统

#include<iostream>
using namespace std;
class Student
{
private:
	char *name[5];
	int length;
	float grade[5];
public:
	Student(){length=0;}
	Student(char *n[],float g[],int l);
	~Student(){}
void insert(char *a,int b,float c);   //a=name,b=location,c=grade
	void Delete(int b);
	void locate(int b);
	void print();
};


Student::Student(char *n[],float g[],int l)
{
	for(int i=0;i<=3;i++)
	{
		name[i]=n[i];
		grade[i]=g[i];
	}
	length=l;
}


void Student::insert(char *a,int b,float c)
{
	if(length>=5)
		cout<<"错误!不能再输入数据!"<<endl;
	else{
		length--;
	for(int i=length;i>b;i--)
	{
		name[i-1]=name[i-2];
		grade[i-1]=grade[i-2];
	}
	name[b-1]=a;
	grade[b-1]=c;
	cout<<"信息列入成功"<<endl;
	}
}


void Student::Delete(int b)
{
	if(length==0)cout<<"无数据"<<endl;
	else if(b<1||b>length)
		cout<<"位置非法"<<endl;
	else
	{
		cout<<name[b-1]<<"数据已经删除。"<<endl;}
	for(int i=b;i<length;i++)
	{
		name[i-1]=name[i];
		grade[i-1]=grade[i];
	}
	length--;
}


void Student::locate(int b)
{
	if(length==0)cout<<"无数据"<<endl;
	else if(b<1||b>length)cout<<"位置非法"<<endl;
	else
	{cout<<"第"<<b<<"位学生数据为"<<name[b-1]<<" "<<grade[b-1]<<endl<<endl;}
}


void Student::print()
{
	if(length==0)cout<<"无数据"<<endl;
	else
	{
	for(int i=0;i<length;i++)
		cout<<name[i]<<" "<<grade[i]<<endl;
	cout<<endl;
	}
}


int main()
 {
	cout<<"学生成绩系统"<<endl;
	char *n[2]={"ke","rou"};
	float g[2]={78,87};
	Student a(n,g,2);
	int y;
	float z;
	char x[5];
	for(int i=0;i<3;i++)
	{
	cout<<"输入学生的名字:";
	cin>>x;
	cout<<endl<<"输入学生的分数:";
	cin>>z;
	cout<<endl<<"输入学生的学号:";
	cin>>y;
	cout<<endl;
	}
	a.insert(x,y,z);
	cout<<endl<<"输入要删除的学号:";
	cin>>y;
	a.Delete(y);
	cout<<endl<<"输入要查找的学生信息的学号:";
	cin>>y; 
	a.locate(y);
	cout<<endl<<endl<<endl<<"显示所有学生信息:"<<endl;
	a.print();
	return 0;

}

猜你喜欢

转载自blog.csdn.net/nika_jy_L/article/details/80344236