cjj109.htm
来自「c++的一些程序」· HTM 代码 · 共 300 行 · 第 1/2 页
HTM
300 行
deg3;
// 英语成绩<BR> static int
sum1; // 语文总分<BR> static
int sum2; // 数学总分<BR>
static int sum3; //
英语总分<BR>
public:<BR>
student(int n,char na[],int d1,int d2,int
d3)<BR>
{<BR>
no=n;<BR>
strcpy(name,na);<BR>
deg1=d1;deg2=d2;deg3=d3;<BR>
sum1+=deg1;sum2+=deg2;sum3+=deg3;<BR>
}<BR>
double avg1(){return
(sum1*1.0)/N;}<BR>
double avg2(){return
(sum2*1.0)/N;}<BR>
double avg3(){return
(sum3*1.0)/N;}<BR>
void
disp()<BR>
{<BR>
printf("
%4d%10s%6d%6d%6d\n",no,name,deg1,deg2,deg3);<BR>
}<BR>};<BR>int student::sum1=0;<BR>int
student::sum2=0;<BR>int
student::sum3=0;<BR><BR>void
main()<BR>{<BR> double
(student::*fp)(); //
定义成员函数指针<BR> student
s1(1,"Li",67,89,90);<BR> student
s2(2,"Ma",67,89,90);<BR> student
s3(3,"Zheng",67,89,90);<BR>
student
s4(4,"Chen",67,89,90);<BR>
printf("输出结果\n");<BR>
s1.disp();<BR>
s2.disp();<BR>
s3.disp();<BR>
s4.disp();<BR>
fp=student::avg1;<BR>
printf("
语文平均分:%g\n",(s1.*fp)());<BR>
fp=student::avg2;<BR>
printf("
数学平均分:%g\n",(s1.*fp)());<BR>
fp=student::avg3;<BR>
printf("
英语平均分:%g\n",(s1.*fp)());<BR>}<BR>本程序的执行结果如下:<BR>输出结果<BR>
1
Li 67
89 90<BR>
2 M
89 89 90<BR>
3 Zheng 67 89 90<BR>
4
Chen 67
89 90<BR>
语文平均分:67<BR> 数学平均分:89<BR>
英语平均分:90<BR><BR>--------------------------------------------------------<BR><BR><FONT
color=#0000ff>题21.编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求只输出成绩在80~89分的学生数据。<BR></FONT>解:<BR>
设计一个学生类Stud,包括no(学号)、name(姓名)和deg(成绩)数据成员,另有两个普通成员函数setdata()和disp(),前者用于设置对象数据,后者用于只输出成绩在80~89分数段的学生数据。在main()函数中定义了一个对象数组,用于存储输入的学生数据。<BR>本题程序如下:<BR>#include<stdio.h><BR>#include<string.h><BR>#define
N 3<BR>class Stud<BR>{<BR> int
no;<BR> char
name[10];<BR> int
deg;<BR>
public:<BR>
void setdata(int n,char na[],int
d)<BR>
{<BR>
no=n;
deg=d;<BR>
strcpy(name,na);<BR>
}<BR>
void
disp()<BR>
{<BR>
if(deg>=80&&deg<=89)<BR>
printf("
%-5d%-8s%3d\n",no,name,deg);<BR>
}<BR>};<BR><BR>void
main()<BR>{<BR> Stud
st[N];<BR> int
i,n,d;<BR> char
na[10];<BR>
for(i=0;i<N;i++)<BR>
{<BR>
printf("输入学号 姓名
成绩:");<BR>
scanf("%d%s%d",&n,na,&d);<BR>
st[i].setdata(n,na,d);<BR> }<BR>
printf("输出数据\n");<BR>
printf(" 学号 姓名
成绩\n");<BR>
for(i=0;i<N;i++)<BR>
st[i].disp();<BR>}<BR>本程序执行结果如下:<BR>输入学号
姓名 成绩: 1 stud1
78<BR>输入学号 姓名
成绩: 2 stud2 85<BR>输入学号
姓名 成绩: 3 stud3
89<BR>输出数据<BR> 学号
姓名 成绩<BR>
2 stud2
85<BR> 3
stud3
89<BR>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>
<TR>
<TD height=35 width="100%">
<DIV align=center></DIV>
</TD>
</TR>
</TBODY>
</TABLE>
</TD></TR></TBODY>
</TABLE>
</TD></TR></TBODY>
</TABLE>
</TD></TR></TBODY>
</TABLE>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=750>
<TBODY>
<TR>
<TD bgColor=#c1c1c1 height=1></TD>
</TR>
</TBODY>
</TABLE>
<TABLE align=center border=1 cellPadding=0 cellSpacing=1
style="BORDER-COLLAPSE: collapse" width=550>
<TBODY>
<td align=center>
<div align="center">
<p><a href=mailto:jjsun36@sohu.com ><span class="body14black">mailto:jjsun36@sohu.com</span></a><span class="body12red">
热线电话:0523-4864559</span></p>
</div>
</td>
</TBODY>
</TABLE>
</BODY></HTML>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?