Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
4.4 kB
1
Indexable
Never
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Structure to represent a book
struct Book {
    char title[100];
    char author[100];
    int year;
};

// Function to add books to the library
void addBooks(struct Book books[], int *count) {
    printf("Enter the details of the book:\n");
    printf("Title: ");
    scanf("%s", books[*count].title);
    printf("Author: ");
    scanf("%s", books[*count].author);
    printf("Year: ");
    scanf("%d", &books[*count].year);
    (*count)++;
    printf("Book added successfully!\n");
}

// Function to search for books in the library
void searchBooks(struct Book books[], int count) {
    char title[100];
    printf("Enter the title of the book to search: ");
    scanf("%s", title);
    int found = 0;
    for (int i = 0; i < count; i++) {
        if (strcmp(books[i].title, title) == 0) {
            printf("Book found!\n");
            printf("Title: %s\n", books[i].title);
            printf("Author: %s\n", books[i].author);
            printf("Year: %d\n", books[i].year);
            found = 1;
            break;
        }
    }
    if (!found) {
        printf("Book not found!\n");
    }
}

// Function to view all books in the library
void viewBooks(struct Book books[], int count) {
    if (count == 0) {
        printf("No books in the library!\n");
    } else {
        printf("Books in the library:\n");
        for (int i = 0; i < count; i++) {
            printf("Title: %s\n", books[i].title);
            printf("Author: %s\n", books[i].author);
            printf("Year: %d\n", books[i].year);
            printf("--------------\n");
        }
    }
}

// Function to delete a book from the library
void deleteBook(struct Book books[], int *count) {
    char title[100];
    printf("Enter the title of the book to delete: ");
    scanf("%s", title);
    int found = 0;
    for (int i = 0; i < *count; i++) {
        if (strcmp(books[i].title, title) == 0) {
            found = 1;
            for (int j = i; j < *count - 1; j++) {
                strcpy(books[j].title, books[j + 1].title);
                strcpy(books[j].author, books[j + 1].author);
                books[j].year = books[j + 1].year;
            }
            (*count)--;
            printf("Book deleted successfully!\n");
            break;
        }
    }
    if (!found) {
        printf("Book not found!\n");
    }
}

// Function to update the password
void updatePassword(char password[]) {
    char currentPassword[100];
    printf("Enter the current password: ");
    scanf("%s", currentPassword);
    if (strcmp(currentPassword, password) == 0) {
        char newPassword[100];
        printf("Enter the new password: ");
        scanf("%s", newPassword);
        strcpy(password, newPassword);
        printf("Password updated successfully!\n");
    } else {
        printf("Incorrect password!\n");
    }
}

int main() {
    struct Book books[100];
    int count = 0;
    char password[] = "admin";

    char enteredPassword[100];
    printf("Enter the password: ");
    scanf("%s", enteredPassword);

    if (strcmp(enteredPassword, password) != 0) {
        printf("Incorrect password. Exiting...\n");
        return 0;
    }

    int choice;
    do {
        printf("\nLibrary Management System Menu:\n");
        printf("1. Add Books\n");
        printf("2. Search Books\n");
        printf("3. View Books\n");
        printf("4. Delete Books\n");
        printf("5. Update Password\n");
        printf("6. Exit\n");
        printf("Enter your choice: ");
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                addBooks(books, &count);
                break;
            case 2:
                searchBooks(books, count);
                break;
            case 3:
                viewBooks(books, count);
                break;
            case 4:
                deleteBook(books, &count);
                break;
            case 5:
                updatePassword(password);
                break;
            case 6:
                printf("Exiting...\n");
                break;
            default:
                printf("Invalid choice! Please try again.\n");
        }
    } while (choice != 6);

    return 0;