STM32实现简单的智能办公系统

一个简单的智能办公系统可以包括以下功能:

  1. 用户管理:实现用户注册、登录和权限管理。每个用户需要有一个帐号和密码,系统管理员可以创建用户并分配不同的权限。
#include <stdio.h>
#include <string.h>

#define MAX_USERS 100

typedef struct {
    char username[20];
    char password[20];
    int isAdmin;
} User;

User users[MAX_USERS];
int userCount = 0;

void registerUser(char *username, char *password) {
    // 检查帐号是否已存在
    for (int i = 0; i < userCount; i++) {
        if (strcmp(users[i].username, username) == 0) {
            printf("Username already exists!\n");
            return;
        }
    }

    // 创建新用户
    User newUser;
    strncpy(newUser.username, username, sizeof(newUser.username));
    strncpy(newUser.password, password, sizeof(newUser.password));
    newUser.isAdmin = 0;

    users[userCount++] = newUser;

    printf("User registered successfully!\n");
}

void loginUser(char *username, char *password) {
    for (int i = 0; i < userCount; i++) {
        if (strcmp(users[i].username, username) == 0 && strcmp(users[i].password, password) == 0) {
            printf("Login successful!\n");
            return;
        }
    }

    printf("Incorrect username or password!\n");
}

void grantAdminPrivilege(char *username) {
    for (int i = 0; i < userCount; i++) {
        if (strcmp(users[i].username, username) == 0) {
            users[i].isAdmin = 1;
            printf("Admin privilege granted!\n");
            return;
        }
    }

    printf("User not found!\n");
}

  1. 任务管理:用户可以创建、修改、删除和查看任务。每个任务包括标题、描述和截止日期等信息。
#define MAX_TASKS 100

typedef struct {
    char title[100];
    char description[1000];
    char deadline[20];
} Task;

Task tasks[MAX_TASKS];
int taskCount = 0;

void createTask(char *title, char *description, char *deadline) {
    // 创建新任务
    Task newTask;
    strncpy(newTask.title, title, sizeof(newTask.title));
    strncpy(newTask.description, description, sizeof(newTask.description));
    strncpy(newTask.deadline, deadline, sizeof(newTask.deadline));

    tasks[taskCount++] = newTask;

    printf("Task created successfully!\n");
}

void updateTask(int taskIndex, char *title, char *description, char *deadline) {
    if (taskIndex < 0 || taskIndex >= taskCount) {
        printf("Invalid task index!\n");
        return;
    }

    // 更新任务信息
    Task *task = &tasks[taskIndex];
    strncpy(task->title, title, sizeof(task->title));
    strncpy(task->description, description, sizeof(task->description));
    strncpy(task->deadline, deadline, sizeof(task->deadline));

    printf("Task updated successfully!\n");
}

void deleteTask(int taskIndex) {
    if (taskIndex < 0 || taskIndex >= taskCount) {
        printf("Invalid task index!\n");
        return;
    }

    // 删除任务
    for (int i = taskIndex; i < taskCount - 1; i++) {
        tasks[i] = tasks[i + 1];
    }

    taskCount--;

    printf("Task deleted successfully!\n");
}

void viewTasks() {
    for (int i = 0; i < taskCount; i++) {
        Task *task = &tasks[i];
        printf("Task %d:\n", i + 1);
        printf("Title: %s\n", task->title);
        printf("Description: %s\n", task->description);
        printf("Deadline: %s\n", task->deadline);
        printf("\n");
    }
}

  1. 会议室管理:用户可以预定会议室、查看会议室的预定情况和取消预定。
#define MAX_ROOMS 10

typedef struct {
    char name[20];
    int isReserved;
    char reservedBy[20];
} ConferenceRoom;

ConferenceRoom rooms[MAX_ROOMS];

void reserveRoom(char *roomName, char *username) {
    for (int i = 0; i < MAX_ROOMS; i++) {
        ConferenceRoom *room = &rooms[i];
        if (strcmp(room->name, roomName) == 0) {
            if (room->isReserved) {
                printf("Room is already reserved!\n");
            } else {
                strncpy(room->reservedBy, username, sizeof(room->reservedBy));
                room->isReserved = 1;
                printf("Room reserved successfully!\n");
            }

            return;
        }
    }

    printf("Room not found!\n");
}

void viewRoomStatus() {
    for (int i = 0; i < MAX_ROOMS; i++) {
        ConferenceRoom *room = &rooms[i];
        printf("Room: %s\n", room->name);
        if (room->isReserved) {
            printf("Reserved by: %s\n", room->reservedBy);
        } else {
            printf("Status: Available\n");
        }
        printf("\n");
    }
}

void cancelReservation(char *roomName) {
    for (int i = 0; i < MAX_ROOMS; i++) {
        ConferenceRoom *room = &rooms[i];
        if (strcmp(room->name, roomName) == 0) {
            if (!room->isReserved) {
                printf("Room is not reserved!\n");
            } else {
                room->isReserved = 0;
                strncpy(room->reservedBy, "", sizeof(room->reservedBy));
                printf("Reservation cancelled successfully!\n");
            }

            return;
        }
    }

    printf("Room not found!\n");
}

以上就是一个简单的智能办公系统的实现,包括用户管理、任务管理和会议室管理的基本功能。可以根据需求进行扩展和优化。注意,上述代码只是示例,并不能直接运行在STM32上,需要根据实际情况进行适当的修改。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值