cpp语言程序设计教程第七章的一道编程题


题目如下

按下列要求实现一个有关学生成绩的操作。

该类名为Student。

(1)每个学生的信息包含有姓名(字符数组)和成绩(int型)。

(2)共有5个学生,用对象数组表示。

(3)计算出5个学生中的最高分,并输出姓名及分数。

课后答案是这么写的:


   
   
  1. #include <iostream.h>
  2. #include <string.h>
  3. class Student
  4. {
  5. public:
  6. Student( char s[], int gr)
  7. { strcpy(name,s); grade=gr; }
  8. friend void fun();
  9. private:
  10. char name[ 10];
  11. int grade;
  12. };
  13. Student ss[ 5]={Student( "马力", 85),Student( "王欣", 96),Student( "李明", 82),
  14.           Student( "赵亮", 78),Student( "张京", 80)};
  15. void fun()
  16. {
  17. int k= 0;
  18. for( int i= 0;i< 5;i++)
  19. if(ss[i].grade>ss[ 0].grade)
  20. k=i;
  21. cout<< "最高分的学生姓名和成绩如下: \n"<<ss[k].name<< ','<<ss[k].grade<< endl;
  22. }
  23. void main()
  24. {
  25. fun();
  26. }
看了答案,我去,真的没话说了,太牛了,对象还搞成了全局的,还要按个赋值,一次一次打student很爽么?然后又搞了个友元函数,是你这么用的?

鄙人也写了一个感觉还行,原来静态成员函数是这么用的啊:


   
   
  1. #include <iostream>
  2. #include<stdio.h>
  3. #include<string.h>
  4. #include<Shlwapi.h>
  5. using namespace std;
  6. class student
  7. {
  8. int _id;
  9. char _name[ 64];
  10. int _grade;
  11. public:
  12. void ipt(char* name,int id,int grade)
  13. {
  14. StrCpyN(_name,name, 64);
  15. _id=id;
  16. _grade=grade;
  17. }
  18. student() {}; //如果定义一个有参数的构造函数,系统就不会给你分配空参数的构造函数;
  19. static void TopMost(int count_t,student stu[])
  20. {
  21. student largest=stu[ 0];
  22. for( int k= 0; k< count_t; k++)
  23. {
  24. if(largest._grade<stu[k]._grade)largest=stu[k];
  25. }
  26. cout<< "the most top stu is "<<largest._name<< endl;
  27. cout<< "his score is "<<largest._grade<< endl;
  28. cout<< "his id is "<<largest._id<< endl;
  29. }
  30. };
  31. int main()
  32. {
  33. student sss[ 5];
  34. char name[ 64][ 5]= { "a", "b", "c", "d", "e"};
  35. int score[ 5]= { 44, 33, 22, 55, 61};
  36. for( int i= 0; i< 5; i++)
  37. {
  38. sss[i].ipt(name[i],i+ 1,score[i]);
  39. };
  40. student::TopMost( 5,sss);
  41. cout<< "this is only a test for win32-code::blocks"<< endl;
  42. return 0;
  43. }
好坏自己判断吧~

猜你喜欢

转载自www.cnblogs.com/absudra/p/9557573.html