C++_系列自学课程_第_12_课_结构体
1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 6 struct CDAccount 7 { 8 double balance; //余额 9 double rate; //利息 10 int term; //存期 11 }; 12 13 struct Date 14 { 15 int year; 16 int month; 17 int day; 18 }; 19 20 struct Person 21 { 22 string name; 23 Date birthday; 24 CDAccount account; 25 26 }; 27 28 //**************************************** 29 void get_data(CDAccount& account); 30 double caculate_balance(CDAccount account); 31 Person get_person_data(void); 32 void display_person(Person* person); 33 34 35 36 //*************************************** 37 //process entry 38 int main(int argc,char* argv[]) try 39 { 40 //********************* 41 //演示结构体的一般用法 42 CDAccount marry; 43 44 //获取数据 45 get_data(marry); 46 47 //计算利息 结构体成员赋值 48 marry.balance = caculate_balance(marry); 49 50 //输出信息 51 cout<<"marry的账户余额为:"<<marry.balance<<endl; 52 53 CDAccount bob; 54 55 //结构体整体赋值 56 bob = marry; 57 58 cout<<"bob的账户余额为:"<<bob.balance<<endl ; 59 60 //结构体初始化 61 CDAccount lee = {3000,0.12,3}; 62 63 //visual c++ 不支持下面的初始化方式, g++支持,属于实现的扩展,本身不是C++的一部分功能 64 /*CDAccount jack = { 65 .balance = 4000; 66 .rate = 0.5; 67 .term = 10; 68 }*/ 69 70 //*************************** 71 //演示嵌套结构体的用法 72 Person dudo; 73 74 //输入个人信息, 函数返回结构体 75 dudo = get_person_data(); 76 77 display_person(&dudo); 78 79 80 char ch; 81 cin>>ch; 82 return 0; 83 } 84 catch(...) 85 { 86 cout<<"捕捉到异常"<<endl; 87 } 88 89 90 //获取数据 函数传递结构引用 91 void get_data(CDAccount& account) 92 { 93 cout<<"请输入本金、利率和存期(存期以月份计算,最大为12个月):"; 94 cin>>account.balance; 95 cin>>account.rate ; 96 cin>>account.term ; 97 } 98 99 100 //计算余额 函数传递结构体 101 double caculate_balance(CDAccount account) 102 { 103 double balance; 104 105 balance = account.balance + account.balance * account.rate * account.term; 106 107 return balance; 108 } 109 110 //获取个人信息 111 Person get_person_data(void) 112 { 113 Person person; 114 cout<<"请输入账户名称,生日(年、月、日):"; 115 cin>>person.name >>person.birthday.year >>person.birthday.month>>person.birthday.day ; 116 117 cout<<"请输入"<<person.name <<"的信息,本金、利息和存期(存期最大12个月):"; 118 cin>>person.account.balance >>person.account.rate >>person.account.term ; 119 120 return person; 121 } 122 123 124 //显示信息, 演示结构体指针变量的使用 125 void display_person(Person* person) 126 { 127 cout<<"名字是:"<<person->name<<endl; 128 cout<<"生日是:"<<person->birthday.year<<"-"<<person->birthday.month<<"-"<<person->birthday.day<<endl; 129 cout<<"账户信息:"<<person->account.balance<<"\t"<<person->account.rate<<'\t'<<person->account.term<<endl; 130 131 }
转载于:https://www.cnblogs.com/volcanol/p/5147837.html
C++_系列自学课程_第_12_课_结构体相关推荐
- C++_系列自学课程_第_9_课_C语言风格字符串_《C++ Primer 第四版》
前面说了写关于数组和指针的内容,这次在这里讨论一下字符串,讨论一下C语言风格的字符串. 在C语言里面我们利用字符数组来对字符串进行处理, 在C++里面我们前面说过一种类类型string可以对字符串进行 ...
- 初识C语言系列-5-完结篇-#define,指针,结构体
目录 1.前言 2.#define定义常量和宏 #define定义常量 #define定义的宏 3.指针 内存 指针变量的大小 4.结构体 1.前言 终于到了初识C语言的完结篇了,这里再次祝大家五一 ...
- (c语言)有10个学生,每个学生数据包括学号、姓名、3门课程成绩,编写程序定义结构体从键盘上输入10个学生的学号、姓名和3门课程的成绩,并输出
有10个学生,每个学生的数据包括学号.姓名.3门课程的成绩,编写程序定义结构体,从键盘上输入10个学生的学号.姓名和3门课程的成绩,并输出3门课程的总平均成绩和最高分的学生的数据(包括学号.姓名.3门 ...
- 51cto python数据分析系列课程 55g_热图_ Python数据分析系列视频课程--玩转数据可视化_数据可视化视频-51CTO学院...
matplotlib包是基于Python平台的统计绘图利器,是在python平台上完成数据可视化不可或缺的工具,而基于matplotlib进一步开发的seaborn,更是将数据呈现与可视化的可用性推到 ...
- java结构体构建学生 学号_易错题: 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。...
根据网考网考试中心的统计分析,以下试题在2015-12-7日计算机二级考试C语言习题练习中,答错率较高,为:93% [填空题] 程序通过定义学生结构体变量,存储了学生的学号.姓名和3门课的成绩.所有学 ...
- 结构体定义小的放前面_编程C语言进阶篇——自定义数据类型:结构体
一.结构体 定义方法: 结构名 变量名 特点: 两个同类型的结构变量可以相互赋值,但是结构变量之间不能使用"<","=="等运算符,如果使用则需要对运算符 ...
- c语言结构体数组存入文件_关于从文件中读取数据并写入结构体数组
已结贴√ 问题点数:25 回复次数:10 关于从文件中读取数据并写入结构体数组 各位大大好,本人新手一枚,最近写简单的通讯录的c程序,其他功能完好,最后一个将txt文件中的数据写入结构体数组的函数无法 ...
- 韦东山uboot_内核_根文件系统学习笔记4.4-第004课_根文件系统-第004节_构建根文件系统之构建根文件系统
一 最小的根文件系统需要的项(笔记4.1 4.2小结) (init 进程需要) 打开终端: /dev/console, /dev/NULL 不设置 inittab 格式中的 id(标准输入.输出和标准 ...
- c语言求学生平均分 总分结构体,c语言 已知学生三门课程基本信息如下。请使用结构体编程,计算学生三门课程平均成绩后,列表输出学生的姓名、数学、英语、计算机、平均分信息,并按平均分排序。(...
满意答案 dante9573 2013.03.07 采纳率:42% 等级:12 已帮助:6621人 #include #define FORMAT "学号:%d\t姓名:%s\t语文: ...
最新文章
- 全球UML模型共享设计下载中心--www.euml.org上线
- S8赛事落幕,阿里云边缘计算护航虎牙7000万低延时流畅直播
- Linux Sed命令具体解释+怎样替换换行符quot;\nquot;(非常多面试问道)
- matlab 定义矩阵_MATLAB与Python,Mathematica由高维转化一维矩阵的方式的不同
- 关于Git和Github你不知道的十件事
- 修改linq结果集_UTXO集优化
- 实现主从关系Form中汇总行金额/数量
- JVM内存结构分析:为什么需要S0和S1?
- eclipse插件:打开选中文件所在的目录
- Edge Deletion CodeForces - 1076D(水最短路)
- 过程 线 多线程 并发 同步异步
- mysql分頁查詢_mysql分頁查詢 | 學步園
- JAVA基础系列:内部类获取外部类的成员变量
- java 获得 加载类_java 类的加载,与获得相应的方法
- 贪心 区间覆盖最小值
- python中 return self的作用
- Robot Framework 的安装配置和简单的实例介绍
- Ubuntu 20.04 安装 Google 拼音输入法
- java opencv 纠偏_一种基于OpenCV的高拍仪拍摄文档物体纠偏方法与流程
- 中国微流体系统市场趋势报告、技术动态创新及市场预测
热门文章
- spark1.0和2.0的区别_【系统】华为正式发布鸿蒙OS 2.0手机Beta版:UI界面、交互无区别...
- 1.MySQL目录结构
- Redis 热点key
- 算法学习——决策单调性优化DP
- Android gravity和layout_gravity的区别
- Linux:客户端的实现
- 细说shiro之三:在独立应用中使用shiro
- 【DP】【Asia - Harbin - 2010/2011】【Permutation Counting】
- SQL SERVER 一个SQL语句的执行顺序
- homebrew 常用命令