以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
#include <stdio.h>
#include <stdlib.h>
#define MAX_BOOKS 100
struct Book {
char name[MAX_NAME];
int num;
float price;
char author[MAX_AUTHOR];
};
int main() {
struct Book book[MAX_BOOKS];
int choice = 0;
int i = 0;
while (choice != 6) {
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:
addBook(book);
break;
case 2:
queryBook(book);
break;
case 3:
modifyBook(book);
break;
case 4:
deleteBook(book);
break;
case 5:
exit(0); // 系统退出
default:
printf("无效的选择!\n");
}
}
return 0;
}
void addBook(struct Book *bookArray) {
struct Book newBook;
if (i >= MAX_BOOKS - 1) {
printf("已满!");
return;
}
printf("请输入图书名称: ");
fgets(newBook.name, sizeof(newBook.name), stdin);
newBook.num = rand() % 100 + 1; // 生成一个随机数作为图书编号
printf("请输入图书价格: ");
scanf("%f", &newBook.price);
printf("请输入图书作者: ");
fgets(newBook.author, sizeof(newBook.author), stdin);
// 检查图书编号是否存在
for (int j = 0; j < i; j++) {
if (strcmp(bookArray[j].name, newBook.name) == 0) {
printf("图书编号已存在,请重新输入。\n");
return;
}
}
// 插入到数组中
bookArray[i] = newBook;
i++;
}
void queryBook(struct Book *bookArray) {
printf("请输入图书名称或图书编号进行查询: ");
fgets(bookArray->name, sizeof(bookArray->name), stdin);
int index = 0;
for (index = 0; index < i; index++) {
if (!strcmp(bookArray[index].name, bookArray->name)) {
printf("图书名称为: %s\n", bookArray[index].name);
printf("图书编号为: %d\n", bookArray[index].num);
printf("图书价格为: %.2f\n", bookArray[index].price);
printf("图书作者为: %s\n", bookArray[index].author);
break;
}
} else {
printf("未找到指定的图书信息!\n");
}
}
void modifyBook(struct Book *bookArray) {
printf("请输入要修改的图书编号: ");
scanf("%d", &bookArray->num);
for (int j = 0; j < i; j++) {
if (bookArray[j].num == bookArray->num) {
printf("请输入新的图书名称: ");
fgets(bookArray[j].name, sizeof(bookArray[j].name), stdin);
printf("请输入新的图书价格: ");
scanf("%f", &bookArray[j].price);
printf("请输入新的图书作者: ");
fgets(bookArray[j].author, sizeof(bookArray[j].author), stdin);
break;
}
}
}
void deleteBook(struct Book *bookArray) {
printf("请输入要删除的图书编号: ");
scanf("%d", &bookArray->num);
for (int j = 0; j < i; j++) {
if (bookArray[j].num == bookArray->num) {
free(bookArray[j].name);
free(bookArray[j].price);
free(bookArray[j].author);
free(bookArray[j]);
i--;
break;
}
}
}
这个程序实现了一个简单的图书管理系统,可以根据用户的需求添加、查询、修改和删除图书信息。注意,由于这是一个简化的示例,实际应用中可能还需要处理更复杂的情况,例如验证输入的有效性、异常处理等等。