21xrx.com
2024-11-05 18:30:38 Tuesday
登录
文章检索 我的文章 写文章
C++编程实现同一天生日的统计
2023-07-05 10:18:54 深夜i     --     --
C++ 生日统计 时间日期处理

统计同一天生日的人数是一个很有意义的问题。这个问题可以通过C++编程来实现。下面是一个简单的程序,可以帮助读者实现这个任务。

首先,我们需要创建一个包含生日和姓名的结构体。这个结构体可以如下所示:


struct person

  string name;

  int month;

  int day;

;

struct关键字用于定义一个结构体类型,这个结构体包含了三个字段:姓名、月份和日期。接下来,我们需要创建一个存储person结构体的向量:


vector<person> people;

向量可以动态地增长,可以根据需要添加新的人。

接下来,我们需要编写一个函数来读取和存储人员的信息。这个函数可以使用cin流来读取每个人的信息,并将这些信息存储到向量中:


void read_people() {

  cout << "Enter people information (type done when done):" << endl;

  while (true) {

    string name;

    int month, day;

    cin >> name;

    if (name == "done")

      break;

    

    cin >> month >> day;

    person p = day ;

    people.push_back(p);

  }

}

该函数将提示用户输入人员信息,如果用户输入“done”,则函数将退出。该函数使用person结构体来创建一个新的人员,并将其添加到people向量中。

接下来,我们需要编写一个函数来统计同一天生日人数。该函数将遍历people向量,统计每天的出生人数,并将结果存储到另一个向量中:


void count_birthdays() {

  vector<int> count(366, 0);

  for (auto p : people) {

    int day = p.month * 100 + p.day;

    count[day]++;

  }

  for (int i = 1; i <= 365; i++) {

    if (count[i] > 0) {

      cout << i / 100 << " " << i % 100 << ": " << count[i] << endl;

    }

  }

}

count_birthdays函数首先创建一个名为count的向量,其中包含366个元素(一个元素对应一年中的一天)。然后,该函数遍历people向量,并计算出生日是哪一天。计算完所有人的生日后,该函数遍历count向量,并输出生日出现的天数。

最后,我们需要将上述函数组合在一起,并调用read_people和count_birthdays函数。完整程序如下所示:


#include <iostream>

#include <vector>

#include <string>

using namespace std;

struct person

  string name;

  int month;

  int day;

;

vector<person> people;

void read_people() {

  cout << "Enter people information (type done when done):" << endl;

  while (true) {

    string name;

    int month, day;

    cin >> name;

    if (name == "done")

      break;

    

    cin >> month >> day;

    person p = day ;

    people.push_back(p);

  }

}

void count_birthdays() {

  vector<int> count(366, 0);

  for (auto p : people) {

    int day = p.month * 100 + p.day;

    count[day]++;

  }

  for (int i = 1; i <= 365; i++) {

    if (count[i] > 0) {

      cout << i / 100 << " " << i % 100 << ": " << count[i] << endl;

    }

  }

}

int main() {

  read_people();

  count_birthdays();

  return 0;

}

该程序将提示用户输入人员信息,直到用户输入“done”为止。完成输入后,程序将统计同一天生日的人数,并将结果输出到屏幕上。

通过该程序,我们可以轻松地统计同一天生日的人数。这对于统计人口统计学数据、人力资源管理等领域非常有用。该程序还可以扩展,例如,可以增加一个函数来计算最常见的生日,或者增加一个图形界面来更方便地输入和查看数据。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复