题目如下

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

该类名为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.  
    }
  24.  
    void main()
  25.  
    {
  26.  
    fun();
  27.  
    }

看了答案,我去,真的没话说了,太牛了,对象还搞成了全局的,还要按个赋值,一次一次打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.  
     
  16.  
    _id=id;
  17.  
    _grade=grade;
  18.  
    }
  19.  
    student() {}; //如果定义一个有参数的构造函数,系统就不会给你分配空参数的构造函数;
  20.  
    static void TopMost(int count_t,student stu[])
  21.  
    {
  22.  
    student largest=stu[0];
  23.  
    for(int k=0; k<count_t; k++)
  24.  
    {
  25.  
    if(largest._grade<stu[k]._grade)largest=stu[k];
  26.  
    }
  27.  
    cout<<"the most top stu is "<<largest._name<<endl;
  28.  
    cout<<"his score is "<<largest._grade<<endl;
  29.  
    cout<<"his id is "<<largest._id<<endl;
  30.  
    }
  31.  
    };
  32.  
     
  33.  
    int main()
  34.  
     
  35.  
    {
  36.  
    student sss[5];
  37.  
    char name[64][5]= {"a","b","c","d","e"};
  38.  
    int score[5]= {44,33,22,55,61};
  39.  
    for(int i=0; i<5; i++)
  40.  
    {
  41.  
    sss[i].ipt(name[i],i+1,score[i]);
  42.  
    };
  43.  
    student::TopMost(5,sss);
  44.  
    cout<<"this is only a test for win32-code::blocks"<<endl;
  45.  
    return 0;
  46.  
    }

好坏自己判断吧~

cpp语言程序设计教程第七章的一道编程题的更多相关文章

  1. 《C语言程序设计教程》学习笔记

    <C语言程序设计教程>--朱鸣华.刘旭麟等 第一章 C语言概述 1.C语言的特点: 1)兼具高级.低级语言的双重能力(C语言允许直接访问物理地址,能够进行位操作,能实现汇编语言的大部分功能 ...

  2. Objective-C 基础教程第七章,深入理解Xcode

    目录 Object-C 基础教程第七章,深入理解Xcode 0x00 前言 0x01 创建工程界面 0x02 主程序界面 ①顶部 Top Test(测试) Profile(动态分析) Analyze( ...

  3. 2017.2.12 开涛shiro教程-第七章-与Web集成

    2017.2.9 开涛shiro教程-第七章-与Web集成(一) 原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. ...

  4. [ABP教程]第七章 作者:数据库集成

    Web开发教程7 作者:数据库集成 关于此教程 在这个教程系列中,你将要构建一个基于ABP框架的应用程序 Acme.BookStore.这个应用程序被用于甘丽图书页面机器作者.它将用以下开发技术: E ...

  5. Cobalt Strike系列教程第七章:提权与横向移动

    Cobalt Strike系列教程分享如约而至,新关注的小伙伴可以先回顾一下前面的内容: Cobalt Strike系列教程第一章:简介与安装 Cobalt Strike系列教程第二章:Beacon详 ...

  6. python 教程 第十七章、 网络编程

    第十七章. 网络编程 1)    FTP客户端 import ftplib import os import socket HOST = '127.0.0.1' DIRN = 'menus' FILE ...

  7. 全国计算机等级考试二级教程-C语言程序设计_第8章_地址和指针

    面试: unsigned int *p1 = &num; int *p2 = &num; #define _CRT_SECURE_NO_WARNINGS #include<std ...

  8. 全国计算机等级考试二级教程-C语言程序设计_第16章_文件

    写入一段文本到文件 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> main() { ...

  9. 全国计算机等级考试二级教程-C语言程序设计_第15章_位运算

    位运算,不适用于实数,仅仅适用于整数.字符. C语言的位运算只能操作整数.字符,实数是指数方式表示的,不适用于位运算. #define _CRT_SECURE_NO_WARNINGS #include ...

随机推荐

  1. Android学习笔记_63_手机安全卫士知识点归纳(3)分享 程序锁 服务 进程管理 widget

    1.分享: Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.setT ...

  2. 【题解】洛谷P1066 [NOIP2006TG] 2^k进制数(复杂高精+组合推导)

    洛谷P1066:https://www.luogu.org/problemnew/show/P1066 思路 挺难的一道题 也很复杂 满足题目要求的种数是两类组合数之和 r的最多位数m为 w/k(当w ...

  3. 【题解】洛谷P2914[USACO08OCT]断电Power Failure

    洛谷P2914:https://www.luogu.org/problemnew/show/P2914 哇 这题目在暑假培训的时候考到 当时用Floyed会T掉 看楼下都是用Dijkstra 难道没有 ...

  4. Rest API 开发 学习笔记

    概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着不断获取资源的表示方式,客户端应用 ...

  5. 发布Android程序

    这个选项的意思是说,要使用.NET 2.0的完整版本,而非其子集. 下午发布Apk,一直报错,解决好了,忘记选这个了,以前都记得,明天再去公司发布去

  6. iOS | CAShapeLayer转场动画

    什么也不说了,作为一名乐于分享技术的小开发,直接先上个样式最为直观贴切,有需要的朋友可以直接拿过去用. 需要demo请点击这里 :github 在这个demo中,核心为选用画布CAShapeLayer ...

  7. 你不知道的javaScript笔记(5)

    原生函数 常用的原生函数 String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol( ...

  8. Struts2进阶学习3

    Struts2进阶学习3 OGNL表达式与Struts2的整合 核心配置文件与页面 <?xml version="1.0" encoding="UTF-8" ...

  9. 爬虫——BeautifulSoup4解析器

    BeautifulSoup用来解析HTML比较简单,API非常人性化,支持CSS选择器.Python标准库中的HTML解析器,也支持lxml的XML解析器. 其相较与正则而言,使用更加简单. 示例: ...

  10. SHELL里执行HIVE导出文件处理成CSV文件

    #!/bin/bash #用途: #.当前目录的txt文件批量转csv #.制表符转逗号分隔符 #.NULL去除 #.删除WARN警告 for i in `ls ./*.txt` do sed -e ...