#include <stdio.h>
#include <string.h>struct Book {char title[100];char author[50];int year;
};void addBook(struct Book library[], int *count) {printf("请输入书名:\n");scanf("%s", library[*count].title);printf("请输入作者:\n");scanf("%s", library[*count].author);printf("请输入出版年份:\n");scanf("%d", &library[*count].year);(*count)++;printf("图书添加成功\n");
}void deleteBook(struct Book library[], int *count, char title[]) {int i, found = 0;for (i = 0; i < *count; i++) {if (strcmp(title, library[i].title) == 0) {found = 1;break;}}if (found) {for (; i < *count - 1; i++) {library[i] = library[i + 1];}(*count)--;printf("图书删除成功\n");} else {printf("未找到该图书\n");}
}void displayBooks(struct Book library[], int count) {if (count == 0) {printf("图书馆暂无图书\n");} else {printf("图书列表:\n");for (int i = 0; i < count; i++) {printf("%s | %s | %d\n", library[i].title, library[i].author, library[i].year);}}
}int main() {struct Book library[100];int count = 0, choice;char title[100];while (1) {printf("\n请选择操作:\n");printf("1. 增加图书\n");printf("2. 删除图书\n");printf("3. 显示图书\n");printf("4. 退出\n");scanf("%d", &choice);switch (choice) {case 1:addBook(library, &count);break;case 2:printf("请输入要删除的图书名:\n");scanf("%s", title);deleteBook(library, &count, title);break;case 3:displayBooks(library, count);break;case 4:printf("谢谢使用,再见!\n");return 0;default:printf("无效的操作\n");}}return 0;
}
这个 C 程序代表了一个简单的基于控制台的图书馆管理系统。用户可以添加图书、删除图书以及显示图书馆内的图书列表。该程序使用一个结构体**Book
**来表示每一本书,并使用该结构体的一个数组来存储图书馆的书籍。
这是代码的细分:
-
结构定义:
C复制代码 struct Book {char title[100];char author[50];int year; };
定义一个**
Book
由三个成员命名的结构体:title
存储书名、author
存储作者姓名、year
**存储出版年份。 -
添加图书功能:
C复制代码 void addBook(struct Book library[], int *count) {// ... }
允许用户输入有关新书的信息并将其添加到图书馆数组中。
-
删除图书功能:
C复制代码 void deleteBook(struct Book library[], int *count, char title[]) {// ... }
允许用户输入要删除的书籍的标题并将其从图书馆数组中删除。
-
展示书籍的功能:
void displayBooks(struct Book library[], int count) {// ... }
显示图书馆中的图书列表。
-
主功能:
int main() {// ... }
主函数初始化图书馆数组、图书计数,并进入一个循环,用户可以在其中选择各种操作。
-
用户界面循环:
while (1) {// ... }
运行无限循环以保持程序运行,直到用户选择退出(选项 4)。
-
开关语句:
switch (choice) {// ... }
通过根据所选操作调用适当的函数来处理用户的选择。
-
菜单选项:
printf("\n请选择操作:\n"); printf("1. 增加图书\n"); printf("2. 删除图书\n"); printf("3. 显示图书\n"); printf("4. 退出\n");
显示菜单供用户选择操作。
-
输入操作:
scanf("%d", &choice);
接受用户输入以确定所选操作。
-
函数调用:
addBook(library, &count); deleteBook(library, &count, title); displayBooks(library, count);
根据用户的选择调用相应的功能。