实验三 数组与指针实验
}
void student::setdata(long a,char *s,int t)
{
name=new char[strlen(s)+1];
no=a;
strcpy(name,s);
score=t;
num++;
sum+=t;
}
float student::avg()
{
float avg=0;
avg=sum/num;
}
void Account::getName(char *name)
{}
void Account::setmSN(long msn)
{
mSN=msn;
}
long Account::getmSN()
{
return(mSN);
}
int main()
{
char a[20];
long b;
int N=0;
Account *s;
cout<<"obs["<<i<<"].getx():"<<obs[i].getx()<<"\n";//访问数组元素的成员
return(0);
}
(2)#include<iostream.h>
class NumClass
{
int num;
public:
void set_num(int val){num=val;}
p++; p->show_num();
return(0);
}
(4)#include<iostream.h>
class NumClass
{
int num;
public:
void set_num(int val){num=val;}
void show_num(){cout<<"The num is :"<<num<<"\n";}
return(0);
}
2.编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。设计一个学生类,包括学号、姓名和成绩数据成员外,还有两个静态变量sum和num,分别存放总分和人数,另有两个普通成员函数setdata()和disp(),分别用于给数据成员赋值和输出数据成员的值,另有一个静态成员函数avg(),它用于计算平均分。在main()函数中定义了一个对象数组用于存储输入的学生数据。
class ArrayElem
{
int x;
public:
ArrayElem(int i){x=i;} //带参数的构造函数
int getx(){return x;}
};
int main()
{
ArrayElem obs[4] ={-1,-2,-3,-4}; //创建对象数组并初始化
for(int i=0;i<4;i++)
}
void Account::deposit(float amount)
{
mBalance+=amount;
}
void Account::withdraw(float amount)
{
mBalance-=amount;
}
float Account::getBalance()
{
return(mBalance);
students[i].setdata(tempno,temps,tempscore) ;
}
cout<<"所有学生信息如下:"<<endl;
cout<<setw(10)<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"成绩"<<endl;
//cout<<"学号"<<"姓名"<<"成绩"<<endl;
6.如果你定义了一个类,其指针成员是使用new初始化的,请指出可能出现的3个问题以及如何纠正这些问题。
2题
#include<iostream>
#include<string>
#include <cstdio>
#include <iomanip>
using namespace st(void);//输出数据
private:
long no;//学号
char *name;//姓名
int score;//分数
};
student::student()
{
cout<<"构造函数被调用"<<endl;
}
student::student(student &p)
{
name=new char[strlen()+1];
void show_num(){cout<<"The num is :"<<num<<"\n";}
};
int main()
{
NumClass ob,*p; //声明一个对象和指向对象的指针
ob.set_num(10); ob.show_num(); //通过对象ob直接调用成员函数
p=&ob; //使对象指针p指向对象ob
cout<<"请输入用户数"<<endl;
cin>>N;
s=new Account[20];
for(int i=0;i<N;i++)
{
cout<<"请输入用户名:"<<endl;
cin>>a;
s[i].getName(a);
cout<<"请输入账号:"<<endl;
cin>>b;
s[i].setmSN(b);
return avg;
}
float student::sum=0;
int student::num=0;
int main()
{
//NumClass *p=new NumClass[2];
int count;
long tempno;
char temps[10];
int tempscore;
cout<<"请输入学生人数:";
}
3题
#include<iostream.h>
#include<string.h>
class Account
{
private:
char mName[20]; //银行账户的户名
long mSN; //本账户的帐号
float mBalance; //本账户当前的余额
public:
Account(char name[]=" ",long num=0,float amount=0);//类的构造函数
};
int main()
{
NumClass *p=new NumClass[2]; //创建一个对象数组
p[0].set_num(10); p[1].set_num(20); //通过指针访问数组元素的成员
p[0].show_num();p[1].show_num();//通过指针显示数组元素
delete[] p;//删除整个对象数组
}
char choose='y';
while(choose=='y'||choose=='Y')
{
float a1,a2;
cout<<"请输入要查找的账号:"<<endl;
cin>>b;
for(int i=0;i<N;i++)
{
if(s[i].getmSN()==b)
{
cout<<"现在对账号"<<s[i].getmSN()<<"进行操作"<<endl;
long getmSN();
};
Account::Account(char name[],long num,float amount)
{
strcpy(mName,name);
mSN=num;
mBalance=amount;
}
Account::~Account()
{
//cout<<"析构函数被调用"<<endl;
{
public:
static float sum;
static int num;
static float avg();
student();//构造函数
student(student &p);//拷贝构造函数
~student();//析构函数
void setdata(long a,char *s,int t);//赋值
p->set_num(20);p->show_num(); //通过指针调用成员函数
return(0);
}
(3)#include<iostream.h>