间接寻址设计一个学生成绩系统

xiaoxiao2021-02-28  63

#include<iostream.h> struct STU { int number; char* name; char* Class; float math_grade; int next; }Stu[5]; class Student { public: Student(); Student(char*n[],char*c[],int num[],float m[],int l); ~Student(){} void Insert(char*n,char*c,int num,float m,int l);//姓名,班级,学号,成绩 void Delete(int l); void Locate(int l); void Print(); private: STU *s[5]; int length; }; Student::Student(char*n[],char*c[],int num[],float m[],int l) { for(int i=0;i<5;i++)     { s[i]=&Stu[i]; } for(i=0;i<4;i++) { Stu[i].name=n[i];         Stu[i].Class=c[i];         Stu[i].number=num[i];         Stu[i].math_grade=m[i]; } length=l;  } void Student::Insert(char*n,char*c,int num,float m,int l) { if(length>=5) cout<<"数据已满."<<endl; else { length++; Stu[length-1].name=n; Stu[length-1].Class=c;         Stu[length-1].number=num;         Stu[length-1].math_grade=m;     for(int i=length;i>l;i--) {     s[i-1]=s[i-2]; } cout<<"  列入成功."<<endl; s[l-1]=&Stu[length-1]; } } void Student::Delete(int l)  { if(length==0) cout<<"无数据."<<endl; else if(l<1||l>length) cout<<"位置错误."<<endl;     else { cout<<s[l-1]->name<<"的数据已被删除."<<endl;         for(int i=l;i<length;i++) {    s[i-1]=s[i]; length--;s[length]=NULL; } } void Student::Locate(int l) {     if(length==0) cout<<"无数据"<<endl;     else if(l<1||l>length) cout<<"位置错误"<<endl;     else { cout<<"第"<<l<<"位的数据为:"<<endl; cout<<"姓名:"<<s[l-1]->name<<endl; cout<<"班级"<<s[l-1]->Class<<endl; cout<<"学号"<<s[l-1]->number<<endl;         cout<<"数学成绩"<<s[l-1]->math_grade<<endl; cout<<endl; } } void Student::Print() { int i;     if(length==0) cout<<"无数据."<<endl; else {    cout<<"姓名      班级      学号    数学成绩"<<endl;    for(i=0;i<length;i++)    { cout<<s[i]->name<<"    "; cout<<s[i]->Class<<"    "; cout<<s[i]->number<<"     "; cout<<s[i]->math_grade<<endl;    } } } int main() { int p; int y; float z;     char x[5]; char r[10]; char*n[4]={"小明","小红","小花","小青"}; char*c[4]={"信管1171","信管1172","计科1171","信管1161"}; int num[4]={2011,2012,2014,2017}; float m[4]={80,90,100,89.5}; Student a(n,c,num,m,4);     cout<<"录入的数据为:"<<endl;     a.Print(); cout<<endl; cout<<"插入数据"<<endl; cout<<endl;     cout<<"输入你要列入的姓名:";     cin>>x;     cout<<"输入你要列入的班级:";     cin>>r; cout<<"输入你要列入的学号:";     cin>>y; cout<<"输入你要列入的数学成绩:";     cin>>z;     cout<<"输入你要列入的位置:"; cin>>p; cout<<endl; a.Insert(x,r,y,z,p); a.Print(); cout<<endl; cout<<"要删除的位置:"; cin>>p; a.Delete(p); cout<<endl; cout<<"要查找的数据的位置:"; cin>>p;  a.Locate(p); cout<<endl; cout<<"各成员数据如下:"<<endl; a.Print();     return 0;

}

运行结果:

转载请注明原文地址: https://www.6miu.com/read-2623478.html

最新回复(0)