生日提醒程序——C 语言实现35
在快节奏的生活中,记住朋友和家人的生日可能是一项艰巨的任务。这是一个使用 C 语言创建简单但有效的生日提醒程序的分步指南。这个程序将允许您存储生日信息并按日期对它们进行排序,以便轻松查看即将到来的生日。
第 1 步:头文件和数据结构```c
#include
#include
#include
typedef struct {
char name[25];
int day;
int month;
} Birthday;
```
我们定义了一个名为 Birthday 的结构来存储每个生日信息,包括姓名、日期和月份。头文件包含标准 I/O、内存分配和字符串操作功能。
第 2 步:创建生日数组```c
Birthday birthdays[100];
int num_birthdays = 0;
```
我们创建了一个 Birthday 类型的数组 birthdays 来存储多个生日信息。num_birthdays 变量用于跟踪数组中的生日数量。
第 3 步:添加生日```c
void add_birthday() {
char name[25];
int day, month;
// 获取生日信息
printf("Enter name: ");
scanf("%s", name);
printf("Enter day (1-31): ");
scanf("%d", &day);
printf("Enter month (1-12): ");
scanf("%d", &month);
// 将生日信息存储到数组中
strcpy(birthdays[num_birthdays].name, name);
birthdays[num_birthdays].day = day;
birthdays[num_birthdays].month = month;
// 增加生日数量
num_birthdays++;
}
```
add_birthday() 函数用于获取用户输入的生日信息并将其存储到 birthdays 数组中。它提示用户输入姓名、日期和月份,然后将信息存储在适当的结构成员中。
第 4 步:按日期排序生日```c
void sort_birthdays() {
for (int i = 0; i < num_birthdays - 1; i++) {
for (int j = i + 1; j < num_birthdays; j++) {
// 比较日期
if (birthdays[i].month > birthdays[j].month) {
Birthday temp = birthdays[i];
birthdays[i] = birthdays[j];
birthdays[j] = temp;
} else if (birthdays[i].month == birthdays[j].month) {
if (birthdays[i].day > birthdays[j].day) {
Birthday temp = birthdays[i];
birthdays[i] = birthdays[j];
birthdays[j] = temp;
}
}
}
}
}
```
sort_birthdays() 函数使用冒泡排序算法按日期对生日进行排序。它遍历数组并比较相邻元素的日期。如果一个元素的日期晚于另一个,则它们将互换位置。
第 5 步:显示即将到来的生日```c
void show_upcoming_birthdays() {
int current_day, current_month;
// 获取当前日期
printf("Enter current day (1-31): ");
scanf("%d", ¤t_day);
printf("Enter current month (1-12): ");
scanf("%d", ¤t_month);
// 显示当前日期及之后的所有生日
printf("Upcoming Birthdays:");
for (int i = 0; i < num_birthdays; i++) {
if (birthdays[i].month >= current_month) {
if (birthdays[i].month == current_month && birthdays[i].day >= current_day) {
printf("%s's birthday on %d/%d", birthdays[i].name, birthdays[i].day, birthdays[i].month);
} else if (birthdays[i].month > current_month) {
printf("%s's birthday on %d/%d", birthdays[i].name, birthdays[i].day, birthdays[i].month);
}
}
}
}
```
show_upcoming_birthdays() 函数获取当前日期并显示从当前日期开始直到年底的所有即将到来的生日。它遍历 birthdays 数组并仅显示当前日期及之后的生日。
第 6 步:主函数```c
int main() {
char choice;
// 主菜单
while (1) {
printf("Select an option:");
printf("1. Add a birthday");
printf("2. Sort birthdays");
printf("3. Show upcoming birthdays");
printf("4. Quit");
printf("Enter your choice: ");
scanf(" %c", &choice);
switch (choice) {
case '1':
add_birthday();
break;
case '2':
sort_birthdays();
break;
case '3':
show_upcoming_birthdays();
break;
case '4':
return 0;
default:
printf("Invalid choice. Please try again.");
}
}
return 0;
}
```
在 main() 函数中,我们提供了一个主菜单,允许用户选择不同的功能。用户可以添加生日、对生日进行排序、查看即将到来的生日或退出程序。根据用户的输入,适当的函数将被调用。
编译和运行
在保存代码后,可以按照以下步骤编译和运行该程序:1. 打开终端或命令提示符。
2. 导航到包含源文件的目录。
3. 输入以下命令进行编译:
```
gcc birthday_reminder.c -o birthday_reminder
```
4. 运行编译后的程序:
```
./birthday_reminder
```
该程序将提示用户输入选项,并根据用户的输入执行相应的功能。
2024-10-25
上一篇:短信提醒化:让生活触手可及
告别遗忘:电脑定时提醒全攻略,从系统内置到专业工具,助你效率倍增!
https://www.weitishi.com/remind/129796.html
高安解封短信:一条通知背后的城市智慧、信息力量与社会信任
https://www.weitishi.com/remind/129795.html
智能版本更新提醒器:告别手动繁琐,一键下载畅享安全高效软件体验
https://www.weitishi.com/remind/129794.html
告别遗忘症与拖延症:短信、任务、提醒,你的高效生产力秘密武器
https://www.weitishi.com/remind/129793.html
苹果日历深度指南:告别遗忘,轻松掌控你的日程与提醒
https://www.weitishi.com/remind/129792.html
热门文章
微信双开通知无声音提醒?手把手教你开启,不错过重要消息!
https://www.weitishi.com/remind/23592.html
快递总是没有短信提醒?教你4招,从此告别错过包裹
https://www.weitishi.com/remind/26507.html
高德导航设置提醒功能,轻松无忧出行
https://www.weitishi.com/remind/16680.html
联通卡总收到短信提醒?教你一步步解决
https://www.weitishi.com/remind/51189.html
农信短信提醒扣费吗?揭秘背后的真相
https://www.weitishi.com/remind/14719.html