實驗三 用順序表實現學生成績管理系統
阿新 • • 發佈:2018-12-03
#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; }