- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C结构和类
C++——对象和类 对象 对象与属性 人类对对象的认识 研究属性,观察行为 所有的对象可以分类,同类对象具备很多相同的属性 C++也用结构和类来描述属性 程序由一个个对象组成,这些程序叫面向对象的程序。 编写面向对象程序的过程就成为面向对象的程序设计 除了基本的那些数据属性性,C++引入了关键字class定义类,引入struct定义结构体 一般结构体 结构体定义、引用、输入输出、赋值 结构体与内存 结构体数组、结构体指针 结构体指针作为为函数参数 结构体作为函数返回类型 结构体的提出 单一对象有许多相关信息,这些信息彼此相关,物理上(文件/内存)连续,要求能用统一、简单方法引用整体或各子信息。 将相关各子信息进行打包,打包的结果就是结构体。这是一种自定义的、新的数据类型。用“结构体名.分量名”的方法可对子信息进行引用。 结构体类型的定义 例:学生信息 学号 num 姓名 name 成绩 score; 定义了新的数据类型 struct student 结构体类型定义 struct student { int num; char name[20]; float score; }; 结构体变量的定义和引用 struct student st1;//st1变量名 cin st1.num st1.name st1.score; cout st1.num , st1.name , st1.score endl; 结构体变量的内存分配 结构变量的地址 st1 结构成员的地址 st1.num st1.name[0] (st1.name) 结构变量占用空间 sizeof(st1) sizeof(struct student) 结构体数组 3个学生的信息 struct student stu[3]; 结构体数组的初始化 struct student stu[3]={ {101, wang, 78.5}, {第2个}, {第3个} }; 结构体数组的内存分配 各学生依次分配内存 结构体数组的引用、输入、输出 stu[i].num stu[i].name stu[i].name[j] 结构体指针 指向结构体变量的指针 struct student *p; 指针的初始化 p = st1; 通过指针引用结构体 (*p).num p-num (*p).name p-name 结构体与函数:通过指针传递 参数传递:单个结构体变量 void printstudent( struct student *p ); 参数传递:结构体数组 float averscore(struct student st[ ], int n ); 或 float averscore( struct student *p, int n ); 函数返回:结构体变量 struct student *findstudent( struct student st[], int n, int num ); 举例1 输入10个学生的信息,计算平均分。再输入一个学号,查找并输出该学号学生的信息。 struct student { int num; char name[20]; float score; }; 输入与输出 void prt(struct student st[ ],int n) { int i; for (i=0;in;i++) cout st[i].num , st[i].name , st[i].score endl; } void sca(struct student st[],int n) { int i; for (i=0;in;i++) cin st[i].num st[i].name st[i].score; } 求平均成绩 float averscore(struct student st[ ], int n) { float sum; int i; sum = 0; for( i=0; i n; i++ ) sum += st[i].score; return sum/n; } 查找学生 struct student *findstudent(struct student st[ ], int n, int num) { int i; for ( i = 0; i n; i++ )
文档评论(0)