最佳答案
引言
隨着生活節拍的加快,人們對安康的關注度越來越高。安康打卡打算成為很多人壹般生活中的重要構成部分。經由過程記錄飲食、活動、睡眠等安康數據,我們可能更好地懂得本人的身材狀況,從而調劑生活方法,進步生活品質。本文將介紹怎樣利用C言語編程實現一個簡單的安康打卡打算,幫助你輕鬆管理安康。
1. 體系計劃
1.1 功能須要
- 用戶註冊與登錄
- 記錄每日飲食、活動、睡眠等數據
- 數據可視化展示
- 數據統計與分析
1.2 技巧選型
- 編程言語:C言語
- 數據存儲:文件體系
- 數據可視化:文本界面
2. 用戶註冊與登錄
2.1 用戶註冊
#include <stdio.h>
#include <string.h>
#define MAX_USERNAME 20
#define MAX_PASSWORD 20
typedef struct {
char username[MAX_USERNAME];
char password[MAX_PASSWORD];
} User;
User users[100]; // 存儲用戶信息
int user_count = 0; // 用戶數量
void register_user() {
if (user_count >= 100) {
printf("用戶數量已達下限,無法註冊。\n");
return;
}
User user;
printf("請輸入用戶名:");
scanf("%s", user.username);
printf("請輸入密碼:");
scanf("%s", user.password);
strcpy(users[user_count].username, user.username);
strcpy(users[user_count].password, user.password);
user_count++;
printf("註冊成功!\n");
}
2.2 用戶登錄
void login() {
char username[MAX_USERNAME];
char password[MAX_PASSWORD];
printf("請輸入用戶名:");
scanf("%s", username);
printf("請輸入密碼:");
scanf("%s", password);
for (int i = 0; i < user_count; i++) {
if (strcmp(users[i].username, username) == 0 && strcmp(users[i].password, password) == 0) {
printf("登錄成功!\n");
return;
}
}
printf("用戶名或密碼錯誤。\n");
}
3. 記錄安康數據
3.1 飲食記錄
void record_food() {
char food[100];
printf("請輸入本日飲食:");
scanf("%s", food);
// 將飲食記錄保存到文件
FILE *fp = fopen("food_log.txt", "a");
if (fp == NULL) {
printf("文件打開掉敗。\n");
return;
}
fprintf(fp, "%s\n", food);
fclose(fp);
printf("飲食記錄成功!\n");
}
3.2 活動記錄
void record_sport() {
char sport[100];
printf("請輸入本日活動:");
scanf("%s", sport);
// 將活動記錄保存到文件
FILE *fp = fopen("sport_log.txt", "a");
if (fp == NULL) {
printf("文件打開掉敗。\n");
return;
}
fprintf(fp, "%s\n", sport);
fclose(fp);
printf("活動記錄成功!\n");
}
3.3 睡眠記錄
void record_sleep() {
int hours;
printf("請輸入本日睡眠時長(小時):");
scanf("%d", &hours);
// 將睡眠記錄保存到文件
FILE *fp = fopen("sleep_log.txt", "a");
if (fp == NULL) {
printf("文件打開掉敗。\n");
return;
}
fprintf(fp, "%d\n", hours);
fclose(fp);
printf("睡眠記錄成功!\n");
}
4. 數據可視化展示
因為技巧選型為文本界面,我們可能經由過程檢查文件內容來展示數據。
4.1 飲食數據可視化
cat food_log.txt
4.2 活動數據可視化
cat sport_log.txt
4.3 睡眠數據可視化
cat sleep_log.txt
5. 數據統計與分析
5.1 飲食統計
void food_statistics() {
FILE *fp = fopen("food_log.txt", "r");
if (fp == NULL) {
printf("文件打開掉敗。\n");
return;
}
char food[100];
int count[100] = {0};
while (fgets(food, sizeof(food), fp)) {
count[strlen(food) - 1]++;
}
fclose(fp);
printf("飲食統計成果:\n");
for (int i = 0; i < 100; i++) {
if (count[i] > 0) {
printf("%d. %s:%d\n", i + 1, food, count[i]);
}
}
}
5.2 活動統計
void sport_statistics() {
FILE *fp = fopen("sport_log.txt", "r");
if (fp == NULL) {
printf("文件打開掉敗。\n");
return;
}
char sport[100];
int count[100] = {0};
while (fgets(sport, sizeof(sport), fp)) {
count[strlen(sport) - 1]++;
}
fclose(fp);
printf("活動統計成果:\n");
for (int i = 0; i < 100; i++) {
if (count[i] > 0) {
printf("%d. %s:%d\n", i + 1, sport, count[i]);
}
}
}
5.3 睡眠統計
void sleep_statistics() {
FILE *fp = fopen("sleep_log.txt", "r");
if (fp == NULL) {
printf("文件打開掉敗。\n");
return;
}
int hours;
int total_hours = 0;
while (fscanf(fp, "%d", &hours) != EOF) {
total_hours += hours;
}
fclose(fp);
printf("睡眠統計成果:均勻睡眠時長:%d小時\n", total_hours / user_count);
}
6. 總結
本文介紹了怎樣利用C言語編程實現一個簡單的安康打卡打算。經由過程用戶註冊、登錄、記錄安康數據、數據可視化展示以及數據統計與分析等功能,幫助用戶輕鬆管理安康。在現實利用中,可能根據須要停止功能擴大年夜跟優化。盼望本文對妳有所幫助!