首页 > 编程语言 >C++U3-第3课-结构体

C++U3-第3课-结构体

时间:2023-12-04 13:44:55浏览次数:62  
标签:定义 int cin C++ name U3 输入 结构

上节课作业:

链接:https://pan.baidu.com/s/1fBx8bS-J_FPDqBzn6Omp-g?pwd=1rn5
提取码:1rn5

学习目标

在C++中,结构体(Struct)是一种用于组合多个相关数据项的自定义数据类型。结构体可以包含不同类型的成员变量和成员函数,并且可以通过.运算符来访问和操作它们。

结构体在C++中具有以下几个主要的作用:

  1. 组织数据:结构体允许将多个相关的数据项组合在一起,以便更好地组织和管理数据。通过结构体,我们可以将具有相同属性或关联性的数据项打包在一起,使代码更加模块化和清晰。

  2. 定义复合数据类型:结构体允许我们创建自定义的复合数据类型。通过定义结构体,我们可以为特定的问题域或应用程序定义具有特定属性的数据类型。这样,我们可以根据需要创建具有不同属性的结构体变量,并使用这些自定义类型进行数据处理。

  3. 传递和返回多个值:当函数需要传递或返回多个相关的值时,结构体非常有用。通过将多个值打包到一个结构体中,我们可以通过将结构体作为参数或返回值传递,从而避免使用多个独立的参数或全局变量。

  4. 嵌套数据结构:结构体可以嵌套在其他数据结构中,形成更复杂的数据结构。这种嵌套结构可以用于表示现实世界中复杂的关系和层次结构,提供更灵活和强大的数据组织能力。

  5. 面向对象编程中的基础:在C++中,结构体是类(Class)的一种形式,在面向对象编程中具有重要的作用。结构体可以拥有成员函数(方法)和访问修饰符(public、private等),使其具备类似于类的特性。结构体可以作为类的基础,通过继承和组合实现更复杂的对象模型。

总之,C++的结构体提供了一种灵活和有用的机制,用于组织和管理相关数据项,并在程序设计中起到重要的作用。无论是用于简单的数据组织还是面向对象编程中的基础,结构体都具有很高的实用性和适应性。

 结构体

 结构体定义举例

 

 

 例题,找错

 什么时候用结构体

 结构体赋值

 

 例题

 输入赋值

 

【思路分析】
1、声明结构体类型,结构体包含姓名、年龄

2、定义结构体变量,输入信息

3、按照输入顺序,依次输出每位同学的信息

【参考代码】
#include <iostream>
using namespace std;
//1、声明结构体类型,结构体包含姓名、年龄 
struct student
{
    string name;  //姓名 
    int age;     //年龄 
};
int main()
{
    //2、定义结构体变量,输入信息 
    student a, b, c;  
    cin >> a.name >> a.age;
    cin >> b.name >> b.age;
    cin >> c.name >> c.age;
    //3、按照输入顺序,依次输出每位同学的信息 
    cout << a.name << " " << a.age << '\n';
    cout << b.name << " " << b.age << '\n';
    cout << c.name << " " << c.age << '\n';
    return 0;
}
View Code

 

 结构体数组

 结构体数组赋值

 

 

例题;

[【结构体】结构体数组的遍历]

【思路分析】
1、声明结构体类型,包含三个属性,分别为姓名、分数、年龄 ,再定义结构体数组

2、定义变量,表示人数

3、输入每个学生的信息

4、按照输入顺序,依次输出每个学生的信息,控制分数的输出格式

【参考代码】
#include <iostream>
using namespace std;
//1、声明结构体类型,包含三个属性,分别为姓名、分数、年龄 ,再定义结构体数组 
struct student
{
    string name;  //姓名 
    double score; //分数 
    int age;      //年龄 
} a[109];
int main()
{
    //2、定义变量,表示人数
    int n;
    cin >> n;
    //3、输入每个学生的信息 
    for (int i = 0; i < n; i++)
        cin >> a[i].name >> a[i].score >> a[i].age;
    //4、按照输入顺序,依次输出每个学生的信息,控制分数的输出格式 
    for (int i = 0; i < n; i++)
    {
        cout << a[i].name << " ";
        printf("%.1f %d\n", a[i].score, a[i].age);
    }
    return 0;
}
View Code

 

[【结构体】体重]

【思路分析】
1、定义结构体类型,包含姓名和体重两个属性,开结构体数组

2、定义变量,输入学生人数

3、输入每个学生的信息

4、输出每个学生的信息

【参考代码】
#include <iostream>
using namespace std;
//1、定义结构体类型,包含姓名和体重两个属性,开结构体数组 
struct student
{
    string name;  //姓名
    int weight;   //体重
} a[109];
int main()
{
    //2、定义变量,输入学生人数 
    int n;
    cin >> n;
    //3、输入每个学生的信息 
    for (int i = 0; i < n; i++)
        cin >> a[i].name >> a[i].weight;
    //4、输出每个学生的信息 
    for (int i = 0; i < n; i++)
        cout << a[i].name << "->" << a[i].weight << '\n';
    return 0;
}
View Code

 

[【结构体】平均身高]

【思路分析】
输入,求出学生的平均身高,再依次判断,输出即可。求平均身高的时候注意浮点数。

1、声明结构体类型,包含两个属性:姓名和身高,定义结构体数组

2、定义变量,输入人数

3、输入学生的信息,统计累加总身高

4、求平均身高,注意浮点除

5、判断条件,依次输出

【参考代码】
#include <iostream>
using namespace std;
//1、声明结构体类型,包含两个属性:姓名和身高,定义结构体数组 
struct student
{
    string name;
    int height;
} a[10009];
int main()
{
    //2、定义变量,输入人数 
    int n;
    cin >> n;
    //3、输入学生的信息,统计累加总身高 
    double ave = 0;
    for (int i = 0; i < n; i++)
    {
        cin >> a[i].name >> a[i].height;
        ave += a[i].height;
    }
    //4、求平均身高,注意浮点数
    ave /= n;
    //5、判断条件,依次输出 
    for (int i = 0; i < n; i++)
    {
        if (a[i].height > ave)
            cout << a[i].name << " " << a[i].height << '\n';
    }
    return 0;
}
View Code

 

[【结构体】总分]

【思路分析】
求每个学生的总成绩,再求出最大值,求最大值的时候变量初始化应该为一个较小值。

1、声明结构体类型,包含姓名、语数英三科成绩,定义结构体数组

2、定义变量,输入人数

3、输入学生的信息,求出总成绩的最大值

4、判断,依次输出符合条件的学生的姓名

【参考代码】
#include <iostream>
using namespace std;
//1、声明结构体类型,包含姓名、语数英三科成绩,定义结构体数组 
struct student
{
    string name;
    int yw, sx, yy;
} a[100009];
int main()
{
    //2、定义变量,输入人数 
    int n;
    cin >> n;
    //3、输入学生的信息,求出总成绩的最大值 
    int ma = 0;
    for (int i = 0; i < n; i++)
    {
        cin >> a[i].name >> a[i].yw >> a[i].sx >> a[i].yy;
        ma = max(ma, a[i].yw + a[i].sx + a[i].yy);
    }
    //4、判断,依次输出符合条件的学生的姓名 
    for (int i = 0; i < n; i++)
    {
        if (a[i].yw + a[i].sx + a[i].yy == ma)
            cout << a[i].name << '\n';
    }
    return 0;
}
View Code

 

 

本节课作业讲解:

链接:https://pan.baidu.com/s/15QX-IYsFsFna4z_omMxrBA?pwd=iuug
提取码:iuug

 

标签:定义,int,cin,C++,name,U3,输入,结构
From: https://www.cnblogs.com/jayxuan/p/17874741.html

相关文章

  • C++-Python_多进程_多线程-协程-异步开发
    python多任务、并发编程等领域并发:宏观上并行,微观上串行并行:宏观上并行,微观上并行并发:I/O密集型作业运行态---阻塞态的转化并行:CPU密集型作业并发(Concurrent)、并行(Parallesim)、多线程(MultiThreaded)、多进程(Multiprocessing)、多任务(Multitasking)、......
  • 如何理解微服务体系结构中的 CQRS
    本文翻译自HowToUnderstandCQRSInMicroservicesArchitecture,原作者OLEKSII。问题描述在典型的软件应用程序中,有一个负责写入和读取操作的数据存储。通常,应用程序实现一些CRUD操作,并且非常简单。你存储了一些东西并读取了相同的结果。然而,在复杂的应用程序中,情况......
  • 2.C语言和C++的几个标准(2023年12月4号)
    C语言和C++的区别C语言的设计理念:灵活、高效、性能极限C++的设计理念:面向对象为主 CPP:包含C语言(语法有微小差异)面向对象编程泛型编程STL标准模块库C++标准库 C语言是结构化语言:实例:我喜欢一个女孩C语言(......
  • C++中 enum 的使用
    C++中的枚举enum使用如果没有对应的范围限定,会很容易出现重定义的错误。如下的重定义错误,在一个文件中有如下两个枚举,编译时会出现重定义错误enumType{MIN_TYPE,MAX_TYPE,INPUT_TYPE};enumMode{CITY,INPUT_TYPE};此时虽然是不同的枚举类型,......
  • C++分解质因数代码实现
    一、问题描述:什么叫做分解质因数?就是我们给定一个数字,把这个数字的是质数的因子按照从小到大的顺序排列出来,并输出每个质因子的个数。二、实现思路:就是我们从1~n/i这个范围内(i*i=n),如果找到了一个因子,使得n%i==0,那么我们就进一步除下去,直到无法满足n%i==0为止。这个时候,i一定......
  • 深入理解C++继承(一)
    一、继承的概念及定义1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复......
  • “数据结构”模式之迭代器(Iterator)模式
    常常有一些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用。这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无关的访问,是一种行之有效的解决方案。典型模式:CompositeIteratorChainofResposibilit......
  • 基础后缀数据结构简记
    \[\newcommand{\lcp}{\operatorname{lcp}}\newcommand{\endpos}{\operatorname{endpos}}\newcommand{\link}{\operatorname{link}}\newcommand{\maxl}{\operatorname{maxl}}\newcommand{\minl}{\operatorname{minl}}\]约定\(n\)是字符串长度.\(\lcp(s,t)\......
  • C++ 返回函数指针的函数
    目录0前言1FunctionPointerinC/C++type1.1ordinaryfunctionPointer1.2non-staticmemberfunctionofclass1.3LambdaToFunctionPointer1.4总结什么是指针2ReturningafunctionpointerfromafunctioninC/C++3.C-VariableArguments(Variablelengtharg......
  • 结构体
    定义结构是一种复合的数据类型,可以包含多个不同类型的成员变量。我们可以通过结构类型声明结构,并通过结构变量来访问结构的成员。结构变量可以赋初值,可以进行运算,还可以作为函数参数传递。Howto声明看下面的例子——声明一个有关学生的结构体它就可以声明在变量的内部,也可......