请大家帮我看看这个程序怎么改动一下?
定义类Student,类中的私有变量为:学号(no),姓名(name),年龄(age), 专业(major)
给每个私有变量定义公有的get和set函数:
例: public:
void setNo(string stuNo)
{
no = stuNo;
}
string getNo()
{
return no;
}
… …
get和set函数即为对私有变量进行赋值和取值的外部接口。
实现功能:
std::map<string, Student> stuMap; // 存储的形式为<学号,该学号对应的对象>
提示用户输入(学号,姓名,年龄,专业),将获得的信息保存为一个Student对象,将该对象存入到容器map中,根据用户的输入不断保存为对象存入map中,直到用户输入exit为止。
用户输入exit后,系统提示用户输入查询学号,接收用户输入的学号后,遍历查询map容器,取出与该学号对应的Student对象,并且显示该对象的姓名,年龄,专业。
下面这个是想让大家帮忙看的程序
程序代码:
#include<iostream> using namespace std; int A,B; struct student { int num; char name[20]; char cou[20]; double sum; double ave; double score[20]; }stu[100]; void nav(int M,int N); void input(student stu[],int M,int N); void work(student stu[],int M,int N); void look(student stu[],int M,int N); void run(student stu[],int M,int N); int main() { cout<<"请输入学生数和某学号对应的对象数:"; cin>>A>>B; int M,N; M=A,N=3; input(stu,M,N); work(stu,M,N); run(stu,M,N); nav(M,N); system("pause"); return 0; } void input(student stu[],int M,int N) { int i; cout<<"请输入"<<N<<"对象名称:"<<endl; for(i=0;i<N;i++) cin>>stu[i].cou; cout<<"-----请按照下列格式输入-----"<<endl; cout<<"学号"; for(i=0;i<N;i++) cout<<" "<<stu[i].cou; cout<<endl; for(i=0;i<M;i++) { cin>>stu[i].num>>stu[i].name; for(int j=0;j<N;j++) cin>>stu[i].score[j]; } } void run(student stu[],int M,int N) { int i; student t; for( i=0;i<N-1;i++) for(int j=0;j<N-1-i;j++) if(stu[j].sum<stu[j+1].sum) { t=stu[j]; stu[j]=stu[j+1]; stu[j+1]=t; } cout<<"学号 "; for(i=0;i<N;i++) cout<<" "<<stu[i].cou; cout<<" 年龄 专业"; cout<<endl; for(i=0;i<M;i++) { cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"; for(int j=0;j<N;j++) cout<<stu[i].score[j]<<"\t"; cout<<stu[i].sum<<"\t"<<stu[i].ave<<endl; } } void look(student stu[],int M,int N) { int t,j; cout<<"请输入要找的学生学号:"; cin>>t; for(int i=0;i<M;i++){ if(t==stu[i].num) { cout<<"学号 姓名 "; for(j=0;j<N;j++) cout<<" "<<stu[i].cou; cout<<" 总分 平均分"; //此处肯定不对 cout<<endl; cout<<stu[i].num<<"\t"<<stu[i].name<<"\t"; for(int k=0;k<N;k++){ cout<<stu[i].score[k]<<"\t"; } cout<<stu[i].sum<<"\t"<<stu[i].ave; cout<<endl; } } } void nav(int M,int N) { int t; for(int i=0;i<3;i++){ cout<<"请输入数字:1、查找,2、删除。3,停止,4,继续"; cin>>t; switch(t){ case 1: look(stu,M,N); break; case 2: del(stu,M,N); break; case 3: cout<<"mistake!"<<endl; break; case 4: nav(M,N); break; } } }