.图书管理程序设计\n设计结构体数组,结构中包含数据为:图书编号、图书名称、作者姓名,出版社名、出版日期。设计各个函数,分别实现以下功能:\n)录入:完成图书信息的输入(2)显示:显示所有图书的信息 (3
时间: 2023-05-02 12:01:45 浏览: 117
这个字符串看起来是一个关于图书管理程序设计的提示。其中设计的结构体数组包含了以下数据:图书编码、图书名称、作者姓名、出版社名、出版日期。程序应该包含以下函数,实现如下功能:
1. 记录输入:完成图书信息的输入(2)显示:显示所有图书的信息(3)查询:查询并显示图书信息(根据图书编码)
提示信息(3'):输入(2)显示所有图书信息,(3)查询图书信息。
相关问题
c++图书管理系统_轻松学做C语言课程设计:图书管理系统-数组实现
这是一个基于数组实现的简单的C++图书管理系统,包括添加图书、删除图书、查找图书、修改图书信息、浏览全部图书等基本功能。
```c++
#include<iostream>
#include<cstring>
using namespace std;
#define MAXSIZE 100 //定义最大图书数
struct Book{
char name[20]; //书名
char author[20]; //作者
int price; //价格
char press[20]; //出版社
}book[MAXSIZE]; //定义图书结构体数组
int cnt=0; //定义图书数
void AddBook() //添加图书
{
cout<<"请输入书名、作者、价格、出版社:"<<endl;
cin>>book[cnt].name>>book[cnt].author>>book[cnt].price>>book[cnt].press;
cnt++;
cout<<"添加成功!"<<endl;
}
void DelBook() //删除图书
{
char name[20];
bool flag=false;
cout<<"请输入要删除的书名:"<<endl;
cin>>name;
for(int i=0;i<cnt;i++){
if(strcmp(book[i].name,name)==0){
for(int j=i;j<cnt-1;j++){
book[j]=book[j+1];
}
cnt--;
flag=true;
cout<<"删除成功!"<<endl;
break;
}
}
if(!flag){
cout<<"未找到该书!"<<endl;
}
}
void ModifyBook() //修改图书信息
{
char name[20];
bool flag=false;
cout<<"请输入要修改的书名:"<<endl;
cin>>name;
for(int i=0;i<cnt;i++){
if(strcmp(book[i].name,name)==0){
cout<<"请输入新的书名、作者、价格、出版社:"<<endl;
cin>>book[i].name>>book[i].author>>book[i].price>>book[i].press;
flag=true;
cout<<"修改成功!"<<endl;
break;
}
}
if(!flag){
cout<<"未找到该书!"<<endl;
}
}
void SearchBook() //查找图书
{
char name[20];
bool flag=false;
cout<<"请输入要查找的书名:"<<endl;
cin>>name;
for(int i=0;i<cnt;i++){
if(strcmp(book[i].name,name)==0){
cout<<"书名\t作者\t价格\t出版社"<<endl;
cout<<book[i].name<<"\t"<<book[i].author<<"\t"<<book[i].price<<"\t"<<book[i].press<<endl;
flag=true;
break;
}
}
if(!flag){
cout<<"未找到该书!"<<endl;
}
}
void BrowseBook() //浏览全部图书
{
cout<<"书名\t作者\t价格\t出版社"<<endl;
for(int i=0;i<cnt;i++){
cout<<book[i].name<<"\t"<<book[i].author<<"\t"<<book[i].price<<"\t"<<book[i].press<<endl;
}
}
int main()
{
int choice;
cout<<"欢迎使用图书管理系统!"<<endl;
while(1){
cout<<"1.添加图书"<<endl;
cout<<"2.删除图书"<<endl;
cout<<"3.修改图书信息"<<endl;
cout<<"4.查找图书"<<endl;
cout<<"5.浏览全部图书"<<endl;
cout<<"6.退出系统"<<endl;
cout<<"请输入您的选择:"<<endl;
cin>>choice;
switch(choice){
case 1:AddBook();break;
case 2:DelBook();break;
case 3:ModifyBook();break;
case 4:SearchBook();break;
case 5:BrowseBook();break;
case 6:return 0;
default:cout<<"输入有误,请重新输入!"<<endl;break;
}
}
return 0;
}
```
该程序使用了结构体数组来存储图书信息,通过不同的功能函数来实现不同的操作。每个功能函数都有相应的提示信息和操作结果输出,用户可以根据需要进行选择。
图书管理系统c++设计思路,运用结构体,
图书管理系统的设计思路通常会采用C++中的面向对象编程方法,结合结构体或类来组织数据和操作。以下是一个基本的设计流程:
1. **定义数据结构**:首先创建一个`Book`结构体或类,包含必要的属性如书籍ID、标题、作者、出版社、出版日期等。还可以考虑添加状态(例如:借出或可用),以及一些额外信息如ISBN。
```cpp
struct Book {
int id;
std::string title, author, publisher, isbn;
bool isBorrowed;
// 其他属性和方法...
};
```
2. **创建数据库结构**:可以考虑用数组、链表或更复杂的数据结构(如树或图)来存储书籍。比如,可以用动态数组(std::vector)作为底层容器。
3. **封装功能**:设计类如`Library`,包含对`Book`的操作方法,如添加新书(`addBook`)、查询(`searchByTitle`)、借书(`borrowBook`)、还书(`returnBook`)等。这些方法内部需要处理相应的逻辑和错误检查。
```cpp
class Library {
private:
std::vector<Book> books;
public:
void addBook(const Book& book);
Book searchByTitle(const std::string& title);
// ...其他方法
};
```
4. **异常处理**:为了保证程序的健壮性,对于可能出现的错误情况(如找不到指定的书或库存不足)应捕获并抛出异常。
5. **用户界面**:如果系统支持图形用户界面(GUI),则可以设计一个命令行界面或者窗口应用让用户交互。通过控制台输入或图形界面上的操作,调用对应的库函数。
6. **测试和文档**:编写单元测试来验证各个功能是否正常工作,并生成清晰的文档描述系统的架构和使用方法。
阅读全文