題19.編寫一個(gè)程序,輸入N個(gè)學(xué)生數(shù)據(jù),包括學(xué)號(hào)、姓名、成績(jī),要求輸出這些學(xué)生數(shù)據(jù)并計(jì)算平均分。
解:
設(shè)計(jì)一個(gè)學(xué)生類Stud,除了包括no(學(xué)號(hào))、name(姓名)和deg(成績(jī))數(shù)據(jù)成員外,有兩個(gè)靜態(tài)變量sum和num,分別存放總分和人數(shù),另有兩個(gè)普通成員函數(shù)setdata()和disp(),分別用于給數(shù)據(jù)成員賦值和輸出數(shù)據(jù)成員的值,另有一個(gè)靜態(tài)成員函數(shù)avg(),它用于計(jì)算平均分。在main()函數(shù)中定義了一個(gè)對(duì)象數(shù)組用于存儲(chǔ)輸入的學(xué)生數(shù)據(jù)。
本題程序如下:
#include
#include
#define N 3
class Stud
{
int no;
char name[10];
int deg;
static int num;
static int sum;
public:
void setdata(int n,char na[],int d)
{
no=n; deg=d;
strcpy(name,na);
sum+=d;
num++;
}
static double avg()
{
return sum/num;
}
void disp()
{
printf(" %-5d%-8s%3d\n",no,name,deg);
}
};
int Stud::sum=0;
int Stud::num=0;
void main()
{
Stud st[N];
int i,n,d;
char na[10];
for(i=0;i {
printf("輸入學(xué)號(hào) 姓名 成績(jī):");
scanf("%d%s%d",&n,na,&d);
st[i].setdata(n,na,d);
}
printf("輸出數(shù)據(jù)\n");
printf(" 學(xué)號(hào) 姓名 成績(jī)\n");
for(i=0;i st[i].disp();
printf(" 平均分=%g\n\n",Stud::avg());
}
本程序的執(zhí)行結(jié)果如下:
輸入學(xué)號(hào) 姓名 成績(jī): 1 stud1 89
輸入學(xué)號(hào) 姓名 成績(jī): 2 stud2 78
輸入學(xué)號(hào) 姓名 成績(jī): 3 stud 84
輸出數(shù)據(jù)
學(xué)號(hào) 姓名 成績(jī)
1 stud1 89
2 stud2 78
3 stud3 84
平均分=83
解:
設(shè)計(jì)一個(gè)學(xué)生類Stud,除了包括no(學(xué)號(hào))、name(姓名)和deg(成績(jī))數(shù)據(jù)成員外,有兩個(gè)靜態(tài)變量sum和num,分別存放總分和人數(shù),另有兩個(gè)普通成員函數(shù)setdata()和disp(),分別用于給數(shù)據(jù)成員賦值和輸出數(shù)據(jù)成員的值,另有一個(gè)靜態(tài)成員函數(shù)avg(),它用于計(jì)算平均分。在main()函數(shù)中定義了一個(gè)對(duì)象數(shù)組用于存儲(chǔ)輸入的學(xué)生數(shù)據(jù)。
本題程序如下:
#include
#include
#define N 3
class Stud
{
int no;
char name[10];
int deg;
static int num;
static int sum;
public:
void setdata(int n,char na[],int d)
{
no=n; deg=d;
strcpy(name,na);
sum+=d;
num++;
}
static double avg()
{
return sum/num;
}
void disp()
{
printf(" %-5d%-8s%3d\n",no,name,deg);
}
};
int Stud::sum=0;
int Stud::num=0;
void main()
{
Stud st[N];
int i,n,d;
char na[10];
for(i=0;i
printf("輸入學(xué)號(hào) 姓名 成績(jī):");
scanf("%d%s%d",&n,na,&d);
st[i].setdata(n,na,d);
}
printf("輸出數(shù)據(jù)\n");
printf(" 學(xué)號(hào) 姓名 成績(jī)\n");
for(i=0;i
printf(" 平均分=%g\n\n",Stud::avg());
}
本程序的執(zhí)行結(jié)果如下:
輸入學(xué)號(hào) 姓名 成績(jī): 1 stud1 89
輸入學(xué)號(hào) 姓名 成績(jī): 2 stud2 78
輸入學(xué)號(hào) 姓名 成績(jī): 3 stud 84
輸出數(shù)據(jù)
學(xué)號(hào) 姓名 成績(jī)
1 stud1 89
2 stud2 78
3 stud3 84
平均分=83

