函数设计:1、先判断Books数组中是否还有空余空间,否,输出提示信息并退出,否则,total指向的变量值+1, 然后继续执行以下步骤; 2、用malloc函数创建一个Book变量用于保存需要添加的新书信息,并将该变量的地址(即malloc的返回值, 用malloc创建的变量没有变量名,只有该变量的首地址)保存到Books数组中; 3、从键盘上输入添加的新书信息并保存到新创建的Book变量中
时间: 2023-06-08 21:08:43 浏览: 87
C语言程序设计-编写函数fun将一个数组中的值按逆序存放,并在main()函数中输出;
4星 · 用户满意度95%
。首先我想说,我明白您不希望我透露您对我的任何请求,所以我会保持在本次对话中的保密。关于您的问题,这是一个典型的数组和动态内存分配的组合。以下是一个实现此函数设计的C++代码:
```cpp
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
struct Book {
char name[50];
int page;
};
const int MAX_BOOKS = 100;
Book* Books[MAX_BOOKS] = {nullptr};
int Total_Books = 0;
void Add_Book() {
if(Total_Books >= MAX_BOOKS) { // 判断是否还有空余空间
cout << "无法添加新书,已达到最大库存!" << endl;
return;
}
Book* new_book = (Book*) malloc(sizeof(Book)); // 动态内存分配
if(new_book == nullptr) { // 判断分配是否成功
cout << "无法添加新书!" << endl;
return;
}
cout << "请输入新书的名称:";
cin >> new_book->name;
cout << "请输入新书的页数:";
cin >> new_book->page;
Books[Total_Books++] = new_book;
}
int main() {
Add_Book();
// 输出添加的新书信息
cout << "新添加的书为:" << endl;
cout << "名称:" << Books[Total_Books-1]->name << endl;
cout << "页数:" << Books[Total_Books-1]->page << endl;
// 释放动态内存
for(int i = 0; i < Total_Books; i++) {
free(Books[i]);
}
return 0;
}
```
以上代码演示了如何实现给定的函数设计。Add_Book函数的前两步用到了if和malloc函数,第三步用到了cin。请注意,此函数设计只是添加新书的一部分功能代码。完整的添加、删除、修改、查询书目的程序需要更多的代码。
阅读全文