C++类与对象编程的问题,求大神

1、定义一个学生类(Cstudent),其中数据成员有学号、姓名、年龄,数学,外语,计算机课程的成绩,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。
要求:
(1)使用构造函数完成数据的输入;
(2)使用成员函数print()实现数据的输出;
(3)编写主函数,定义对象数组,完成相应功能;
(4)编写函数search(int n),以学号n为参数,在数组中查找学号是n的学生,并返回该生的全部信息。

#include <iostream>
using namespace std;
#define  m 3 //输入几个同学信息来着
class Cstudent
{
public:
int xuehao;
char name[100];
int age;
int ShuAchievement;
int WaiAchievement;
int JiAchievement;
Cstudent()
{    
cout<<"请输入姓名、学号,年龄,数学,外语,计算机课程(以回车分割):"<<endl;
cin>>name;//先输入的姓名来着
cin.sync();//去除输入缓存
cin>>xuehao>>age>>ShuAchievement>>WaiAchievement>>JiAchievement;
}
void print()
{
cout<<"学号:"<<xuehao<<endl;
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"数学:"<<ShuAchievement<<endl;
cout<<"外语:"<<WaiAchievement<<endl;
cout<<"计算机课程:"<<JiAchievement<<endl<<endl;
}
};
int search(int n,int d)
{
if(n==d){return d;}
else {return 0;}
}
void main ()
{
Cstudent a[m];
int d[m];
for(int y=m;y>0;y--){a[y-1].print();d[y-1]=a[y-1].xuehao;}
int n;cout<<"请输入学号:"<<endl;cin>>n;
int z=m-1;int p=0;
for(z;z>=0;z--)
{
if(z<m&&search(n,d[z])==d[z]){a[z].print();p++;}
}
if (p==0)
{cout<<"学号输入错误..请重来!"<<endl;;}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-03
#include<iostream.h>
class Student
{
private:
int id;//学号
int age;//年龄
char *name;//姓名
float math;//数学成绩
float english;//英语成绩
float computer;// 计算机成绩
public:
Student(char*Name,int Age,int Id,float Math,
float English,float Computer):
name(Name),age(Age),id(Id),math(Math),english(English),
computer(Computer){}
void printf()
{
cout<<"name"<<name<<endl;
cout<<"age"<<age<<endl;
cout<<"id"<<id<<endl;
cout<<"math"<<math<<endl;
cout<<"english"<<english<<endl;
cout<<"computer"<<computer<<endl;
}
void search(int id)
{
cout<<"name "<<name<<endl;
cout<<"age "<<age<<endl;
cout<<"id "<<id<<endl;
cout<<"math "<<math<<endl;
cout<<"english "<<english<<endl;
cout<<"computer "<<computer<<endl;}

};
int main()
{
int r;
Student s("wangzhonggamng ",19,1123456,56.7,89.9,11.1);
s.printf();
cout<<"其请输入学号"<<endl;
cin>>r;
s.search(r);
return 0;
}本回答被提问者采纳
第2个回答  2014-04-03

供参考

#include <iostream>
#include <cstring>
using namespace std;
class Cstudent
{
public:
Cstudent(int num, char na[20], int a, int m, int e, int c):
no(num), age(a), math(m), eng(e),computer(c)
{
strcpy(name, na);
}

void print()
{
cout << no << ' ' << name << ' ' << age  << ' ' << math  << ' ' << eng << ' ' << computer << endl;
}
int no,age,math,eng,computer;
char name[20];
};

Cstudent*  search(Cstudent *list, int total, int n)
{
int i;
for(i = 0; i < n; i ++)
{
if(list[i].no == n) return &list[i];
}
return NULL;
}

int main()
{
Cstudent list[3] = {
{1,"name1", 13, 80,90,100},
{2,"name2", 15, 60,66,58},
{3,"name3", 18, 99,89,76}
};
Cstudent *r;
r = search(list, 3, 2);
if(r) r->print();
else cout << "not found\n";
r = search(list, 3, 9);
if(r) r->print();
else cout << "not found\n";
}

本回答被网友采纳
相似回答