You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++如何用循环简化DVD类实例赋值及打印的重复冗余代码?

优化方案

1. print调用逻辑优化

你写的多分支if判断完全不需要循环实现,直接通过下标映射即可一行完成,n从110对应DVD数组下标09,补充边界校验避免越界即可:

// 替换所有if判断代码
if (n >= 1 && n <= 10) {
    dvd[n-1].print();
}

你之前写的嵌套循环逻辑完全冗余,用下标映射是效率最高的实现方式。

2. DVD实例赋值优化

观察你的赋值规律:下标为k的dvd实例(0≤k≤9),对应的成员取值全部来自d数组的k*10 + 2到k*10 + 9区间,顺序对应id、name、genre、cast、desc、dateRent、dateRet、cost。你代码里出现的dvd[5]赋值顺序颠倒、dvd[8]重复赋值两次都属于手误,按规律修正后可以用单循环实现:

DVD dvd[10];
for (int k = 0; k < 10; k++) {
    int base = k * 10 + 2;
    dvd[k].id = d[base];
    dvd[k].name = d[base + 1];
    dvd[k].genre = d[base + 2];
    dvd[k].cast = d[base + 3];
    dvd[k].desc = d[base + 4];
    dvd[k].dateRent = d[base + 5];
    dvd[k].dateRet = d[base + 6];
    dvd[k].cost = d[base + 7];
}

如果要进一步简化,可以给DVD类新增一个接收d数组偏移量的初始化方法,循环内仅需调用一次初始化方法即可,代码可读性会更高。

内容的提问来源于stack exchange,提问作者SiddTheKid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:36:04