给我加上注释
时间: 2024-01-29 11:03:07 浏览: 69
zip 加注释
好的,下面是加上注释的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100
// 定义一个结构体表示书籍信息
struct book {
char title[50]; // 书名
char author[50]; // 作者
int year; // 出版年份
};
// 定义一个全局变量books表示所有书籍
struct book books[MAX_BOOKS];
// 定义一个全局变量count表示书籍数量
int count = 0;
// 添加书籍
void add_book() {
if (count >= MAX_BOOKS) { // 判断是否超过最大书籍数量
printf("图书馆已满,无法添加书籍!\n");
return;
}
struct book new_book; // 定义一个新的书籍结构体
printf("请输入书名:");
scanf("%s", new_book.title);
printf("请输入作者:");
scanf("%s", new_book.author);
printf("请输入出版年份:");
scanf("%d", &new_book.year);
books[count] = new_book; // 把新的书籍添加到图书馆中
count++; // 计数器加1
printf("添加书籍成功!\n");
}
// 查找书籍
void search_book() {
char keyword[50];
printf("请输入关键字:");
scanf("%s", keyword);
int found = 0; // 定义一个标志位表示是否找到书籍
for (int i = 0; i < count; i++) {
if (strstr(books[i].title, keyword) != NULL || // 判断书名中是否包含关键字
strstr(books[i].author, keyword) != NULL) { // 判断作者中是否包含关键字
printf("书名:%s,作者:%s,出版年份:%d\n",
books[i].title, books[i].author, books[i].year);
found = 1;
}
}
if (!found) { // 如果没找到书籍,则输出提示信息
printf("没有找到相关书籍!\n");
}
}
// 显示所有书籍
void show_books() {
if (count == 0) { // 判断是否有书籍
printf("图书馆为空!\n");
return;
}
printf("所有书籍如下:\n");
for (int i = 0; i < count; i++) { // 循环输出所有书籍信息
printf("书名:%s,作者:%s,出版年份:%d\n",
books[i].title, books[i].author, books[i].year);
}
}
// 删除书籍
void delete_book() {
char title[50];
printf("请输入要删除的书籍名称:");
scanf("%s", title);
int found = 0; // 定义一个标志位表示是否找到要删除的书籍
for (int i = 0; i < count; i++) {
if (strcmp(books[i].title, title) == 0) { // 判断书名是否与要删除的书籍名称相同
for (int j = i; j < count - 1; j++) { // 把后面的书籍向前移动一位
books[j] = books[j + 1];
}
count--; // 计数器减1
found = 1;
printf("删除书籍成功!\n");
break;
}
}
if (!found) { // 如果没找到要删除的书籍,则输出提示信息
printf("没有找到要删除的书籍!\n");
}
}
// 主函数
int main() {
int choice;
while (1) {
printf("\n");
printf("图书管理系统\n");
printf("1. 添加书籍\n");
printf("2. 查找书籍\n");
printf("3. 显示所有书籍\n");
printf("4. 删除书籍\n");
printf("5. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_book();
break;
case 2:
search_book();
break;
case 3:
show_books();
break;
case 4:
delete_book();
break;
case 5:
printf("谢谢使用!\n");
exit(0); // 退出程序
default:
printf("无效的操作!\n");
break;
}
}
return 0;
}
```
希望这个加上注释的代码能够帮助你更好地理解每个函数的作用和代码的执行流程。
阅读全文