实验三:顺序表实现学生成绩系统

#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;
cout<<"        学生成绩系统"<<endl;
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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值