![]() |
#2
vqgxie2011-05-18 18:01
|
类中的私有变量为:学号(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;
}
}
}
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;
}
}
}