用C++完成这道题目:制作一个程序,该程序允许用户选择5个操作之一:向图书馆添加书,借出书,还书,显示图书馆的当前状态和退出程序.在显示菜单,输入一个正确的数字之后就可以选定操作.当选择退出选项后,就会结束显示菜单和执行所选操作这一循环.
时间: 2023-09-20 17:06:22 浏览: 46
### 回答1:
下面是一个 C 语言的示例代码,实现了上述要求:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_BOOKS 100 // 图书馆最多能存储的书籍数量
// 图书信息结构体
struct Book {
char title[50]; // 书名
char author[50]; // 作者
int borrowed; // 是否已借出 (1 表示已借出,0 表示未借出)
};
// 图书馆信息结构体
struct Library {
struct Book books[MAX_BOOKS]; // 书籍数组
int num_books; // 当前书籍数量
};
// 初始化图书馆信息
void init_library(struct Library *lib) {
lib->num_books = 0;
}
// 向图书馆添加一本书
void add_book(struct Library *lib) {
if (lib->num_books == MAX_BOOKS) {
printf("图书馆书架已满,无法再添加新书!\n");
return;
}
printf("请输入书名:");
scanf("%s", lib->books[lib->num_books].title);
printf("请输入作者:");
scanf("%s", lib->books[lib->num_books].author);
lib->books[lib->num_books].borrowed = 0; // 刚添加的书一定是未借出状态
lib->num_books++;
printf("添加成功!\n");
}
// 借出一本书
void borrow_book(struct Library *lib) {
char title[50]; // 要借出的书的书名
int found = 0; // 是否找到要借出的书 (1 表示找到,0 表示未找到)
printf("请输入要借出的书的书名:");
scanf("%s", title);
for (int i = 0; i < lib->num_books; i++) {
if (lib->books[
### 回答2:
下面是用C语言编写的程序,实现了上述题目的要求:
```c
#include <stdio.h>
int main() {
int choice;
int book_count = 0;
int borrowed_count = 0;
while (1) {
printf("\n请选择操作:\n");
printf("1. 向图书馆添加书\n");
printf("2. 借出书\n");
printf("3. 还书\n");
printf("4. 显示图书馆的当前状态\n");
printf("5. 退出程序\n");
printf("请输入数字选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
book_count++;
printf("成功向图书馆添加了一本书。\n");
break;
case 2:
if (book_count > borrowed_count) {
borrowed_count++;
printf("成功借出一本书。\n");
} else {
printf("图书馆中没有可借的图书。\n");
}
break;
case 3:
if (borrowed_count > 0) {
borrowed_count--;
printf("成功还书。\n");
} else {
printf("没有借出的图书。\n");
}
break;
case 4:
printf("图书馆的当前状态:\n");
printf("总共有 %d 本书。\n", book_count);
printf("已借出 %d 本书。\n", borrowed_count);
printf("还有 %d 本书可借。\n", book_count - borrowed_count);
break;
case 5:
printf("退出程序。\n");
return 0;
default:
printf("无效的操作,请重新选择。\n");
}
}
}
```
这个程序使用了一个无限循环 `while (1)`,可以让用户一直选择操作,直到选择退出程序。根据用户的选择,使用 `switch` 语句执行对应的操作。程序使用变量 `book_count` 记录图书馆中的书的总数,使用变量 `borrowed_count` 记录已借出的书的数量。用户选择借出书时,只有当图书馆中还有可借的书时才能成功借出,否则提示用户图书馆中没有可借的图书。用户选择还书时,只有当已借出的书的数量大于0时才能成功还书,否则提示用户没有借出的图书。用户选择显示图书馆当前状态时,程序会打印图书馆中的图书数量以及已借出的图书数量。当用户选择退出程序后,程序会结束循环并退出。
### 回答3:
下面是用C语言实现的程序代码:
```c
#include <stdio.h>
int main() {
int choice;
int books = 0;
while(1) {
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:
books++;
printf("成功向图书馆添加了一本书。\n");
break;
case 2:
if(books > 0) {
books--;
printf("成功借出了一本书。\n");
} else {
printf("借书失败,图书馆中暂无可借书籍。\n");
}
break;
case 3:
books++;
printf("成功归还了一本书。\n");
break;
case 4:
printf("当前图书馆中有%d本书。\n", books);
break;
case 5:
printf("程序已退出。\n");
return 0;
default:
printf("输入数字无效,请重新输入。\n");
break;
}
}
return 0;
}
```
这个程序会一直循环显示菜单,根据用户选择执行相应的操作。用户可以通过输入数字选择操作,当选择退出程序时,循环结束,程序退出。程序会根据用户的选择分别添加书籍、借出书籍、归还书籍、显示图书馆当前状态等。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)