cjj109.htm

来自「c++的一些程序」· HTM 代码 · 共 300 行 · 第 1/2 页

HTM
300
字号
                              deg3;         
                              // 英语成绩<BR>&nbsp;&nbsp;&nbsp; static int 
                              sum1;&nbsp; // 语文总分<BR>&nbsp;&nbsp;&nbsp; static 
                              int sum2;&nbsp; // 数学总分<BR>&nbsp;&nbsp;&nbsp; 
                              static int sum3;&nbsp; // 
                              英语总分<BR>&nbsp;&nbsp;&nbsp; 
                              public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              student(int n,char na[],int d1,int d2,int 
                              d3)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              no=n;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              strcpy(name,na);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              deg1=d1;deg2=d2;deg3=d3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              sum1+=deg1;sum2+=deg2;sum3+=deg3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              double avg1(){return 
                              (sum1*1.0)/N;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              double avg2(){return 
                              (sum2*1.0)/N;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              double avg3(){return 
                              (sum3*1.0)/N;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              void 
                              disp()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              printf("&nbsp; 
                              %4d%10s%6d%6d%6d\n",no,name,deg1,deg2,deg3);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>};<BR>int student::sum1=0;<BR>int 
                              student::sum2=0;<BR>int 
                              student::sum3=0;<BR><BR>void 
                              main()<BR>{<BR>&nbsp;&nbsp;&nbsp; double 
                              (student::*fp)();&nbsp;&nbsp;&nbsp; // 
                              定义成员函数指针<BR>&nbsp;&nbsp;&nbsp; student 
                              s1(1,"Li",67,89,90);<BR>&nbsp;&nbsp;&nbsp; student 
                              s2(2,"Ma",67,89,90);<BR>&nbsp;&nbsp;&nbsp; student 
                              s3(3,"Zheng",67,89,90);<BR>&nbsp;&nbsp;&nbsp; 
                              student 
                              s4(4,"Chen",67,89,90);<BR>&nbsp;&nbsp;&nbsp; 
                              printf("输出结果\n");<BR>&nbsp;&nbsp;&nbsp; 
                              s1.disp();<BR>&nbsp;&nbsp;&nbsp; 
                              s2.disp();<BR>&nbsp;&nbsp;&nbsp; 
                              s3.disp();<BR>&nbsp;&nbsp;&nbsp; 
                              s4.disp();<BR>&nbsp;&nbsp;&nbsp; 
                              fp=student::avg1;<BR>&nbsp;&nbsp;&nbsp; 
                              printf("&nbsp; 
                              语文平均分:%g\n",(s1.*fp)());<BR>&nbsp;&nbsp;&nbsp; 
                              fp=student::avg2;<BR>&nbsp;&nbsp;&nbsp; 
                              printf("&nbsp; 
                              数学平均分:%g\n",(s1.*fp)());<BR>&nbsp;&nbsp;&nbsp; 
                              fp=student::avg3;<BR>&nbsp;&nbsp;&nbsp; 
                              printf("&nbsp; 
                              英语平均分:%g\n",(s1.*fp)());<BR>}<BR>本程序的执行结果如下:<BR>输出结果<BR>&nbsp;&nbsp;&nbsp; 
                              1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              Li&nbsp;&nbsp;&nbsp; 67&nbsp;&nbsp;&nbsp; 
                              89&nbsp;&nbsp;&nbsp; 90<BR>&nbsp;&nbsp;&nbsp; 
                              2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M&nbsp;&nbsp;&nbsp;&nbsp; 
                              89&nbsp;&nbsp;&nbsp;&nbsp;89&nbsp;&nbsp;&nbsp;&nbsp;90<BR>&nbsp;&nbsp;&nbsp; 
                              3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zheng&nbsp;&nbsp;&nbsp;&nbsp;67&nbsp;&nbsp;&nbsp;&nbsp;89&nbsp;&nbsp;&nbsp;&nbsp;90<BR>&nbsp;&nbsp;&nbsp; 
                              4&nbsp;&nbsp;&nbsp;&nbsp; 
                              Chen&nbsp;&nbsp;&nbsp;&nbsp; 67&nbsp;&nbsp;&nbsp; 
                              89&nbsp;&nbsp;&nbsp; 90<BR>&nbsp; 
                              语文平均分:67<BR>&nbsp; 数学平均分:89<BR>&nbsp; 
                              英语平均分:90<BR><BR>--------------------------------------------------------<BR><BR><FONT 
                              color=#0000ff>题21.编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求只输出成绩在80~89分的学生数据。<BR></FONT>解:<BR>&nbsp;&nbsp;&nbsp; 
                              设计一个学生类Stud,包括no(学号)、name(姓名)和deg(成绩)数据成员,另有两个普通成员函数setdata()和disp(),前者用于设置对象数据,后者用于只输出成绩在80~89分数段的学生数据。在main()函数中定义了一个对象数组,用于存储输入的学生数据。<BR>本题程序如下:<BR>#include&lt;stdio.h&gt;<BR>#include&lt;string.h&gt;<BR>#define 
                              N 3<BR>class Stud<BR>{<BR>&nbsp;&nbsp;&nbsp; int 
                              no;<BR>&nbsp;&nbsp;&nbsp; char 
                              name[10];<BR>&nbsp;&nbsp;&nbsp; int 
                              deg;<BR>&nbsp;&nbsp;&nbsp; 
                              public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              void setdata(int n,char na[],int 
                              d)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              no=n; 
                              deg=d;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              strcpy(name,na);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              void 
                              disp()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if(deg&gt;=80&amp;&amp;deg&lt;=89)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              printf("&nbsp; 
                              %-5d%-8s%3d\n",no,name,deg);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>};<BR><BR>void 
                              main()<BR>{<BR>&nbsp;&nbsp;&nbsp; Stud 
                              st[N];<BR>&nbsp;&nbsp;&nbsp; int 
                              i,n,d;<BR>&nbsp;&nbsp;&nbsp; char 
                              na[10];<BR>&nbsp;&nbsp;&nbsp; 
                              for(i=0;i&lt;N;i++)<BR>&nbsp;&nbsp;&nbsp; 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              printf("输入学号&nbsp;&nbsp; 姓名&nbsp;&nbsp; 
                              成绩:");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              scanf("%d%s%d",&amp;n,na,&amp;d);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              st[i].setdata(n,na,d);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
                              printf("输出数据\n");<BR>&nbsp;&nbsp;&nbsp; 
                              printf("&nbsp; 学号&nbsp;&nbsp; 姓名&nbsp;&nbsp; 
                              成绩\n");<BR>&nbsp;&nbsp;&nbsp; 
                              for(i=0;i&lt;N;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              st[i].disp();<BR>}<BR>本程序执行结果如下:<BR>输入学号&nbsp;&nbsp;&nbsp; 
                              姓名&nbsp;&nbsp;&nbsp; 成绩: 1 stud1 
                              78<BR>输入学号&nbsp;&nbsp;&nbsp; 姓名&nbsp;&nbsp;&nbsp; 
                              成绩: 2 stud2 85<BR>输入学号&nbsp;&nbsp;&nbsp; 
                              姓名&nbsp;&nbsp;&nbsp; 成绩: 3 stud3 
                              89<BR>输出数据<BR>&nbsp; 学号&nbsp;&nbsp;&nbsp; 
                              姓名&nbsp;&nbsp;&nbsp; 成绩<BR>&nbsp;&nbsp; 
                              2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stud2&nbsp;&nbsp; 
                              85<BR>&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              stud3&nbsp;&nbsp; 
                          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"> 
          &nbsp;&nbsp;&nbsp;&nbsp;热线电话:0523-4864559</span></p>
      </div>
    </td>
 </TBODY>
</TABLE>

</BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?