《C++捷径教程》读书笔记--Chapter 10--结构与联合

C++捷径教程(第3版,Herbert Schildt).pdf 立即下载

//--《C++捷径教程》读书笔记--Chapter 10--结构与联合
//--Chapter 10--结构与联合
//--11/24/2005 Thurs.
//--Computer Lab
//--Liwei

//--程序#1  使用数组结构
#include <iostream>
#include <cctype>
#include <cstring>
#include <cstdlib>
using namespace std;

const int SIZE=10;
struct inv_type{
 char item[40];
 double cost;
 double retail;
 int on_hand;
 int lead_time;
} invtry[SIZE];

void enter(),init_list(),display();
void update(),input(int i);
int menu();

int main()
{
 char choice;
 init_list();

 for(;;){
  choice=menu();
  switch(choice){
  case 'e': enter();
          break;
  case 'd': display();
      break;
  case 'u': update();
      break;
  case 'q': return 0;
  }//switch
 }//for

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

void init_list()
{
 int t;
 for(t=0; t<SIZE; t++)
  *invtry[t].item='/0';
}

int menu()
{
 char ch;
 cout<<endl;

 do{
  cout<<"(E)nter/n";
  cout<<"(D)isplay/n";
  cout<<"(U)pdate/n";
  cout<<"(Q)uit/n/n";
  cout<<"choose one: ";
  cin>>ch;
 }while(!strchr("eduq", tolower(ch)));
 
 return tolower(ch);
}

void enter()
{
 int i;
 for(i=0; i<SIZE; i++)
  if(!*invtry[i].item)
   break;

 if(i==SIZE){
  cout<<"List full./n"; 
  return;
 }

 input(i);
}

void input(int i)
{
 cout<<"Item: ";
 cin>>invtry[i].item;

 cout<<"Cost: ";
 cin>>invtry[i].cost;

 cout<<"Retail price: ";
 cin>>invtry[i].retail;

 cout<<"On hand: ";
 cin>>invtry[i].on_hand;

 cout<<"Lead time to resupply (in days): ";
 cin>>invtry[i].lead_time;
}

void update()
{
 int i;
 char name[80];

 cout<<"Enter item: ";
 cin>>name;

 for(i=0; i<SIZE; i++)
  if(!strcmp(name,invtry[i].item))
   break;

 if(i==SIZE){
  cout<<"Item not found./n"; 
  return;
 }

 cout<<"Enter new info: /n";
 input(i);
}

void display()
{
 int t;

 for(t=0; t<SIZE; t++){
  //if(*invtry[t].item){
   cout<<invtry[t].item<<endl;
   cout<<"Cost: $"<<invtry[t].cost;
   cout<<"/nRetail: $";
   cout<<invtry[t].retail<<endl;
   cout<<"On hand: "<<invtry[t].on_hand;
   cout<<"/nResupply time: ";
   cout<<invtry[t].lead_time<<" days /n/n";
  //}//if
 }//for

}


//--程序#2  传递一个结构给函数
#include <iostream>
using namespace std;

struct sample{
 int a;
 char ch;
};

void f1(sample parm);

int main()
{
 struct sample arg;
 arg.a=1000;
 arg.ch='X';

 f1(arg);

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

void f1(sample parm)
{
 cout<<parm.a<<" "<<parm.ch<<endl;
}

//--程序#3  结构的赋值
#include <iostream>
using namespace std;

struct stype{
 int a,b;
};

int main()
{
 stype svar1,svar2;

 svar1.a=svar1.b=10;
 svar2.a=svar2.b=20;

 cout<<"Structures before assignment./n";
 cout<<"svar1: "<<svar1.a<<' '<<svar1.b;
 cout<<endl;
 cout<<"svar2: "<<svar2.a<<' '<<svar2.b;
 cout<<endl<<endl;

 svar2=svar1;

 cout<<"Structures after assignment./n";
 cout<<"svar1: "<<svar1.a<<' '<<svar1.b;
 cout<<endl;
 cout<<"svar2: "<<svar2.a<<' '<<svar2.b;
 cout<<endl<<endl;


 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}


//--程序#4  系统时间
#include <iostream>
#include <ctime>
using namespace std;

int main()
{
 struct tm *ptr;
 time_t lt;

 lt=time('/0');
 ptr=localtime(&lt);

 cout<<ptr->tm_hour<<':'<<ptr->tm_min;
 cout<<':'<<ptr->tm_sec;


 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

//--程序#5  系统时间
#include <iostream>
#include <ctime>
using namespace std;

int main()
{
 struct tm *ptr;
 time_t lt;

 lt=time('/0');
 ptr=localtime(&lt);

 cout<<asctime(ptr);


 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

//--程序#6  结构引用的用法
#include <iostream>
using namespace std;

struct mystruct{
 int a;
 int b;
};

mystruct &f(mystruct &var);

int main()
{
 mystruct x,y;
 x.a=10;
 x.b=20;

 cout<<"Original x.a and x.b: ";
 cout<<x.a<<' '<<x.b<<endl;

 y=f(x);

 cout<<x.a<<' '<<x.b<<endl;

 cout<<y.a<<' '<<y.b<<endl;

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

mystruct &f(mystruct &var)
{
 var.a=var.a*var.a;
 var.b=var.b/var.b;
 mystruct b=var;
 
 return var;//注意这里是引用的 引用
}

//--程序#7  联合的用法
#include <iostream>
using namespace std;

void disp_binary(unsigned u);

union swap_bytes{
 short int num;
 char ch[2];
};

int main()
{
 swap_bytes sb;
 char temp;

 sb.num=15;// 0000 0000 0000 1111
 
 cout<<"Original bytes: ";
 disp_binary(sb.ch[1]);
 cout<<"    ";
 disp_binary(sb.ch[0]);
 cout<<endl<<endl;

 temp=sb.ch[0];
 sb.ch[0]=sb.ch[1];
 sb.ch[1]=temp;

 cout<<"Exchanged bytes: ";
 disp_binary(sb.ch[1]);
 cout<<"    ";
 disp_binary(sb.ch[0]);
 cout<<endl<<endl;


 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

void disp_binary(unsigned u)
{
 register int t;

 for(t=128; t>0; t=t/2)
  if( u&t)
   cout<<"1 ";
  else
   cout<<"0 ";


}

//--程序#8  联合的用法 以二进制形式输出ASCII
#include <iostream>
#include <conio.h>
using namespace std;

struct byte{
 unsigned a:1;
 unsigned b:1;
 unsigned c:1;
 unsigned d:1;
 unsigned e:1;
 unsigned f:1;
 unsigned g:1;
 unsigned h:1;
};

union bits{
 char ch;
 struct byte bit;
}ascii;

void disp_bits(bits b);

int main()
{
 do{
  cout<<"Enter a char: ";
  cin>>ascii.ch;
  cout<<"/nASCII: ";
  disp_bits(ascii);
 }while(ascii.ch!='q');

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

void disp_bits(bits b)
{
 if(b.bit.h) cout<<"1 ";
  else cout<<"0 ";
 if(b.bit.g) cout<<"1 ";
  else cout<<"0 ";
 if(b.bit.f) cout<<"1 ";
  else cout<<"0 ";
 if(b.bit.e) cout<<"1 ";
  else cout<<"0 ";
 if(b.bit.d) cout<<"1 ";
  else cout<<"0 ";
 if(b.bit.c) cout<<"1 ";
  else cout<<"0 ";
 if(b.bit.b) cout<<"1 ";
  else cout<<"0 ";
 if(b.bit.a) cout<<"1 ";
  else cout<<"0 ";

 cout<<endl<<endl;

}


//--程序#9  匿名联合
#include <iostream>
using namespace std;

int main()
{
    union{
  short int count;
  char ch[2];
 };

 ch[0]='X';
 ch[1]='Y';
 cout<<ch[0]<<ch[1]<<endl;
 cout<<count<<endl;

 cout<<endl<<"======================="<<endl;
    //getchar();
    return 0;
}

ComfyUI节点流实战:用Wan2.1制作电商短视频全流程(附人物/商品模板) 本文提供了一份详尽的ComfyUI实战教程,指导用户如何利用通义万相Wan2.1图生视频模型,高效制作适用于抖音等平台的电商短视频。内容涵盖从环境部署、核心工作流搭建,到针对服装、3C数码等品类的高级提示词模板与参数调优,旨在帮助电商从业者快速生成高质量、高保真商品展示视频,显著提升内容生产效率。 阅读详情

相关推荐

CAD文件转换避坑指南:Inventor导出STP时这些设置千万别忽略

本文深入解析了使用Autodesk Inventor导出STP文件时的关键设置与避坑指南。重点探讨了应用协议选择、样条曲线拟合精度对几何保真度的影响,以及装配体结构和元数据的保全策略,旨在帮助用户实现高质量、零误差的CAD数据交付,避免下游软件打开时出现特征丢失或曲面破碎等问题。

weixin_29214559的博客 517

《C++捷径教程》目录

第1章 C++的发展历程 11.1 C++的起源 11.1.1 C的诞生 11.1.2 对C++的需求 31.1.3 C++的诞生 31.2 C++的发展 41.3 什么是面向对象程序设计 51.3.1 封装 51.3.2 多态 51.3.3 继承 61.3.4 C++实现OOP 61.3.5 C++与Java和C# 6第2章

网络空间安全与企业信息化 1433

electron打包客户端在rk3588上支持h265硬解

前言我们的客户端程序是用electron打包的前端程序,其在rk3588主机上的linux环境运行。之前使用客户端查看h264编码的视频直播是没有问题的,但视频源更改为h265编码后就不能查看了,奇怪的是打包的windows客户端则可以正常查看,另外rk3588主机上的chromium浏览器也是支持播放h265编码的视频的,并且是硬件解码。

lxkj_2024的博客 2007

多年收集的VC++电子书,源代码现在免费全部奉献给大家

多年收集的VC++电子书,源代码现在免费全部奉献给大家 这里只列举了一点书籍和代码,我已经将电脑中全部资料上传到网址里面 !!!!!!!!!!!!全部免费!!!!!!!!!!!!!!!!!! 规范教程PDF,101条规则、准则与最佳实践.rar A1式精解(GoF_23种设计解析附C++实现源码).pdf C++ 设计新思维:范型编程与设计模式之应用(中文PDF ).pdf 深入解析A

冷月宫主的专栏 4650

python blp模型 估计_随机系数Logit模型及Stata实现

欢迎投稿(荐稿)计量经济圈,计量相关都行邮箱:econometrics666@sina.cn作者:北京交通大学经济管理学院博士生,王琦珀。欢迎你加入计量经济圈社群,一起探讨前沿计量理论和实证方法。一、随机系数Logit模型1.背景实证产业组织(Empirical Industrial Organization,EIO)是目前产业组织理论的前沿,其中又以Ariel Pakes为带头人,其近期工作论文...

weixin_42298927的博客 2641

多天线技术:5G波束成形&空间复用&空时编码

以提升信号的可靠性。然而,在20世纪90年代中期,研究者们惊讶地发现,多天线技术不仅仅提供分集增益,还可以开启一些单天线系统无法实现的新机遇。,我们可以将信道矩阵 ( H ) 视为一个满秩矩阵,则理论上可以建立min(𝑁𝑇,𝑁𝑅)个独立的数据流,形成一个。波束成形是5G物理层的核心技术,其本质是利用多个天线来增强特定方向上的信号,同时抑制干扰方向的信号。:物理波束成形 = 🔦 类似手电筒的聚焦光束,虚拟波束成形 = 🌊 类似水波的相干叠加。随着 5G 和 6G 时代的到来,多天线技术的作用愈发重

weixin_43199439的博客 1389

《C++捷径教程》读书笔记--Chapter 1--C++的发展历史

//--《C++捷径教程》读书笔记--Chapter 1--C++的发展历史 //--Chapter 1--C++的发展历史//--10/31/2005//--Computer Lab//--Liwei《C++捷径教程》是有Herbert Schildt编著,聂雪军等编译的,有清华大学出版,今年5月我用了7元在旧货市场买来了一本,5-8间看了一些,来到长安大学后,每天晚上只有有时间就看看,现在就要

网络空间安全与企业信息化 1415

ubuntu:E: 无法定位软件包yum解决方法

如果出现以下问题,则需要更新yum源 yum源位于/etc/apt/sources.list yum源更新的网站有 清华大学开源镜像 中科大开源镜像 1.此处更新yum源的时候先备份 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo gedit /etc/apt/sources.list 将更新源替换成上面符合版本系列号 我用的版本号为20.04 # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

码农研究僧的博客 1万+

《C++捷径教程》读书笔记--Chapter 14--继承(完结)

//--《C++捷径教程》读书笔记--Chapter 14--继承(完结)//--Chapter 14--继承//--04/14/2006 Friday//--Computer Lab//--Liwei //--程序#1  说明继承的使用#include using namespace std;class road_vehicle{ int wheels; int passengers

网络空间安全与企业信息化 1273

蓝凌EIS智慧协同平台frm_form_upload.aspx接口存在任意文件上传漏洞

蓝凌EIS智慧协同平台frm_form_upload.aspx接口存在任意文件上传漏洞

nnn2188185的博客 357

YOLOv12环境配置,手把手教你使用YOLOv12训练自己的数据集和推理(附YOLOv12网络结构图),全文最详细教程

YOLO 系统尊嘟太卷了吧,YOLOv11 还没完明白,YOLOv12 就重磅来袭,YOLOv12 是由纽约州立大学联合中科院在 2025年2月19 日发布,从 YOLOv12 论文题目我们大概就知道做了那些更新 ,下图是YOLOv12 在 COCO 数据集上的性能表现引入区域注意力机制(area-attention):通过引入十字形窗口自我注意机制,沿水平和垂直条纹计算注意力机制,纵横交错的注意机制。如下图所示,区域注意力采用最多简单的等分方法,将特征地图垂直或水平划分为 L 个区域。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 6万+

《C++捷径教程》读书笔记--Chapter 11--类(完结)

//--《C++捷径教程》读书笔记--Chapter 11--类(完结)//--Chapter 11--类//--03/28/2006 Tues.//--Computer Lab//--Liwei //--程序#7  use struct to create class#include using namespace std;struct c1{ int get_i(); void p

网络空间安全与企业信息化 1154

多角度模板匹配的模板创建技巧

基于形状的模板匹配多角度创建技巧

manuoo的专栏 3402

C++开发人员必备:86本C++教程电子书下载

原文:http://club.topsage.com/thread-3148739-1-1.html 学习C++,既要会利用C++进行面向过程的结构化程序设计,也要会利用C++进行面向对象的程序设计。想学习C++吗,那你绝对不能错过这些最经典的C++教程电子书! 资料名称 下载地址 C语言范例开发大全【文字版PDF】 http://do

HappyJandun's 学习笔录 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

《C++捷径教程》读书笔记--Chapter 16--模板(完结)

//--《C++捷径教程》读书笔记--Chapter 16--模板(完结)//--Chapter 16--模板//--04/16/2006 Sun.//--Computer Lab//--Liwei //--程序#1  说明模板函数示例#include using namespace std;//template void swapargs(X &a, X &b)template

网络空间安全与企业信息化 1365

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

《C++捷径教程》学习笔记【一】:虚函数

声明虚函数的方法是在基类中的成员函数原型前加上关键字virtual.格式如下:    class 类名{    ……    virtual 类型 函数名(参数表);    ……    };    当一个类的成员函数声明为虚函数后,这就意味着该成员函数在派生类中可能有不同的实现,也就是说,该函数在派生类中可能需要定义与其基类虚函数原型相同的函数。    虚函数是动态联编的

极简Qt 1363

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

《C++捷径教程》读书笔记--Chapter 12--类的深入学习(完结)

//--《C++捷径教程》读书笔记--Chapter 12--类的深入学习(完结)//--Chapter 12--类的深入学习//--04/12/2006 Wed.//--Computer Lab//--Liwei //--程序#4  使用重载构造函数#include #include #include using namespace std;class timer{ int seco

网络空间安全与企业信息化 1226

c语言程序设计7.4思考题答案,C语言程序设计习题集及答案(7)

2 下面函数的功能是将一个整数字符串转换为一个整数,例如:\1234\转换为1234,请填空使程序完整。int chnum(char *p) { int num=0,k,len,j; len=strlen(p);for( ; 【3】 ; p++){ k= 【4】 ; j=(--len); while( 【5】 ) k=k*10; num=num+k; }return (nu...

weixin_35936375的博客 1570

广西c语言二级考试,2006年广西区计算机等级考试二级C语言笔试试题及答案

第一卷(共70分)第一部分:基础知识(20题,共40分)1、一个C程序总是从( )开始执行。A.程序的第一条执行语句B.主函数C.子程序D.主程序2、在C语言中,int,char和shortint三种类型变量所占用的内存大小是()。A.均为2个字节B.由用户自己定义C.由所用机器的字长决定D.是任意的3、若有以下类型说明语句:chara;intb;floatc;shortint...

weixin_34355933的博客 799

深挖C++:类和对象(中)

(先进后出)

xys_678的博客 215

选型笔记:Type‑C 扩展坞方案评估|DP1.4 转 HDMI2.0 桥接芯片 GSV2201S@ACP

本文记录 GSV2201S 这款 DP1.4a 转 HDMI2.0 桥接芯片评估,梳理视频、HDCP、PD 集成能力,总结 Type‑C 转接 Dongle、扩展坞方案的适配边界,以及差分走线、PD 时序、HDCP 握手等高频调试问题,为 C 口视频转接方案选型提供参考。

ACP广源盛的博客 218

ThunderKittens 深度解析:一个不基于 MLIR 的 C++ 模板 GPU DSL

Triton 是"让更多人能写 GPU kernel",ThunderKittens 是"让会写的人写得更爽"。前者用 MLIR 换易用性,后者用 C++ 模板换可控性。它们不是替代关系,而是覆盖了 GPU 编程光谱的两端。ThunderKittens 的出现,本质上是对"GPU DSL 必须基于 MLIR"这一默认假设的挑战。编译期类型系统本身就可以是一个强大的 DSL 基础设施,不需要中间 IR,不需要黑盒 pass,也能实现 tile 级抽象和零运行时开销。

Maxwell_Newton的博客 333

C++移动构造函数详解

移动构造函数是C++11引入的一种特殊构造函数,用于从临时对象(右值)"窃取"资源来初始化新对象,而不是进行昂贵的深拷贝。char* data;public:// 移动构造函数:参数是右值引用 &&// 关键:把源对象的资源置空。

拒绝AI文,努力在AI时代写出感动人心的好文章 388

蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:倍增法求最近公共祖先LCA解析

蓝桥杯报名正在火热进行(软件赛报名 2026-10-08—12-18,省赛 2027-04-10),电子学会 12 月软件编程(C/C++ 一级至十级、Python 一级至六级)考级报名也已开启(9/23—12/2),全国青少年信息素养大赛算法应用主题赛同步推进——把 LCA 这个模板练熟,正是冲刺这些赛事树型考点的关键一步。所谓「最近公共祖先」:在一棵以某个节点为根的树里,两个节点 u、v 向上追溯,最早交汇的那个祖先就叫它们的 LCA。比如家谱里,你和你表哥最近的共同长辈就是你们的祖父。

IT_Scratch的博客 534

【C语言】字符与字符串函数

C语言中字符串为以\0结尾的字符数组,标准库函数基于此约定。本文解析字符串内存布局,详解ctype.h与string.h中字符分类、长度计算、拷贝、比较等函数的使用要点,强调长度判断与越界风险,最后通过命令行待办事项示例整合fgets、sscanf、strncpy、strcmp,展示实际应用中的关键细节。

记录在学习过程中学到的知识 343

C++ 多态详解:作用、原理与实战用法

多态是C++面向对象的核心特性,通过虚函数实现运行期动态绑定,使同一接口在不同对象上表现出不同行为。其核心作用包括统一接口、提升可扩展性、降低耦合、支持运行时分派与批量处理。实现依赖虚函数表(vtable)和虚指针(vptr),需注意虚析构函数、对象切片等陷阱。相比编译期多态(模板),运行期多态灵活性高但有调用开销。合理结合两者,可兼顾代码的灵活性与性能,是构建可扩展、低耦合系统的关键。

2402_85743155的博客 377
上一篇: 精彩QQ签名贴图
下一篇: 外国壁纸网站一览(如有不足请大家补充) - 报告
Micro_lee
博客等级 码龄22年 381粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值