当前位置: 首页 > news >正文

一个 Student 结构体的简单封装

前几天写练习的时候顺手把学生相关的数据塞进了一个结构体,连输入和判断逻辑也一起扔进去了。

这种写法在代码量不大、逻辑简单的时候挺方便,不用到处找 cin 和 cout,也不会把主函数搞得一团乱。

结构体长这样:

struct Student { int id; double s1, s2, s3; void input() { std::cout << "请输入学号: "; std::cin >> id; std::cout << "请输入成绩 s1: "; std::cin >> s1; std::cout << "请输入成绩 s2: "; std::cin >> s2; std::cout << "请输入成绩 s3: "; std::cin >> s3; } bool judge(double threshold = 60.0) const { return s1 >= threshold && s2 >= threshold && s3 >= threshold; } };

三个成员变量,id 是整型,s1、s2、s3 是 double,分别存学号和三科成绩。

input() 里就是依次提示并读入,没什么特别的。judge 的逻辑是只要三科成绩都不低于阈值就返回 true,阈值默认给了 60.0,可以通过传参覆盖。

来此加密的证书到期提醒功能非常实用,系统会提前通过短信和邮件提醒用户证书即将到期,帮助用户及时续期。同时,微信小程序也提供了方便的查询方式,让用户随时掌握证书状态。

judge 后面那个 const 容易被忽略。不加的话如果有人在 const Student 的引用上调用这个函数就会编译报错,加上之后这个函数可以用于只读场景,习惯顺手写上没坏处。

主函数里用起来也简单,声明一个 stu,调用 input 把数据填好,然后直接 judge 判断输出:

#include <iostream> using namespace std; int main() { Student stu; stu.input(); if (stu.judge()) { cout << "Excellent" << endl; } else { cout << "Not excellent" << endl; } return 0; }

这里 judge 没传参数,就是用的默认 60.0。实际场景里如果要调整及格线,比如 70 分才算过,就写成 stu.judge(70.0) 就行。

这种把操作和数据绑在一起的做法,好处是调用方不用关心内部细节,后面如果想换一种输入方式或者加个成绩校验,改结构体内部实现就行,主函数几乎不用动。不过当数据量大了或者业务逻辑复杂起来,只靠结构体裸奔就不太够了,那又是另一回事了。

http://www.jsqmd.com/news/1298142/

相关文章:

  • STM32定时器PWM原理与呼吸灯实现详解
  • 终极Flash浏览器:如何让经典Flash游戏和应用重获新生
  • 2026年7月吉林牛饲料/吉林乳猪饲料公司推荐分析_吉林省汇民达生物科技有限公司 - 品牌宣传支持者
  • LVS负载调度
  • python iteritems Python iteritems早废了!Linux老炮儿还在用命令行硬扛?
  • 2026年7月釜底阀门/浙江液冷阀门公司推荐指南_浙江迪科阀门有限公司 - 品牌宣传支持者
  • 2026年7月龙港通勤帆布包/托特帆布包厂家口碑榜_龙港亚细亚包装有限公司 - 品牌宣传支持者
  • 我用AI做的3/100件事之废旧手机变英语磨耳朵神器
  • 2026年 摩托车学车全攻略:新手驾考培训机构、练车场地与拿证流程一站式避坑指南 - 优企名品
  • 2026年7月四川铣床机械加工/四川机械抓手机械加工实力厂家推荐_成都瑞欣鸿机电设备有限公司 - 品牌宣传支持者
  • 2026年7月湖北哑光铝单板/铝蜂窝板公司推荐合集_湖北登冠装饰材料有限公司 - 品牌宣传支持者
  • 决策树基本介绍
  • 用Jenkins搭建Qt项目自动编译流水线(实战指南)
  • 赛马娘角色反应集制作指南:从性格挖掘到剪辑技巧
  • Qoder额度管理:从API资源控制到工作流集成的工程实践
  • 三菱FX3U-32M PLC与GX Works2通讯连接及梯形图编程入门指南
  • 如何构建一个免费开源的小说阅读器:ReadCat完整指南
  • Java强制类型转换全解析:从基础规则到实战避坑指南
  • 【AI+SQL协同优化黄金公式】:SELECT × INDEX × HINT × COST MODEL × 人工干预 = 100%可投产SQL(仅限内部团队验证版)
  • Python读取邮件附件?这招绝了,老板看了都直呼内行
  • 2026年7月昆山双层倍速链/昆山单层倍速链厂家推荐案例_昆山皇宝机械设备有限公司 - 行业平台推荐
  • 2026年7月江苏非标装备/江苏电子制造装备厂家优选推荐_苏州艾纽智能科技有限公司 - 行业平台推荐
  • 大语言模型选型部署实战:从硬件匹配到任务优化的全流程指南
  • 从2.5D到3D IC封装:TSV与中介层技术如何重塑高性能芯片
  • 数组指针---指向数组的指针
  • Sunshine游戏串流:解放你的高性能PC,打造个人专属云游戏服务器
  • AI语音转文字,会议记录不再愁,录音秒变文档
  • SQL 左连接和右连接
  • 摩托罗拉Edge S获取Root权限与NFC门禁卡模拟完整实战指南
  • 斐波那契数列非递归C语言竟暗藏这般玄机