设计一图书信息管理系统,实现以下功能:系统以菜单方式工作,图书信息录入功能(图书信息用文件保存) ;

该博客详细描述了一个使用面向对象编程思想设计的图书信息管理系统,实现了图书的增删改查、浏览、按书名和作者名查询以及价格排序等功能。系统通过文件保存图书数据,支持文本文件重定向输入,并具备用户友好的菜单操作界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 问题描述

设计一图书信息管理系统,实现以下功能:系统以菜单方式工作,图书信息录入功能(图书信息用文件保存) ;图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、 价格等;图书信息浏览功能(输出所有图书信息);查询和排序功能:按书名查询(显示所有同名的书),按作者名查询(所有该作者的书); 图书信息的删除与修改。

  • 基本要求 

(1)使用面向对象编程思想编写开发过程中需要用到的类,比如:图书类(图书信息)、日期类         、管理类(实现对图书信息的管理)。            

(2)输入和输出可以使用文本文件重定向输入(保存数据为磁盘文件);也可以使用标准输入输出进行(提交时需要提交TXT格式输入数据)。应包含 20 条以上记录,且有同姓名不同作者的书和同一作者的多部著作,包含数据信息即图书信息。在运行程序时自动载入,若文件不存则创建一个空文件。

(3)基本功能要求具有增、删、改、查。

三.需求分析

系统目的:本图书信息管理系统菜单方式工作,用户可以通过此管理系统对书籍进行管理,它具有(1)登录号、书名、作者名、分类号、出版单位、出版时间、 价格等图书信息的录入功能。(2)图书信息的浏览功能(3)对书籍的查询和排序功能,按书名查询与按作者名查询(4) 对图书信息的删除与修改。

用户需求:此系统采用文本文件重定向输入已保存数据为磁盘文件,输入值已按登录号整齐排列,用户可以在此基础上进行书籍信息的增删改查,可以按书籍价格增序与降序进行重新排列。可以在退出时保存数据方便下次使用,可通过主菜单方式按书名或作者名进行查询,便于准确找到图书。可通过菜单方式显示书籍信息,一目了然。已实现多条书籍信息对齐排列,使页面更加简洁明了。

功能需求:系统已实现对书籍信息的增删改查。

测试数据:数据已经过测试,测试结果(包括正确的输入及其输出结果和含有错误的输入及其输出结果)将会在下文中展示。

#include"iostream"

#include"windows.h"//与 system("cls");连用实现清屏操作

#include "fstream"//对文件进行操作所包含的头文件

#include"stdio.h"//使用Sleep(3000)需包含的头文件

#include "cstring"

#include"iomanip"

using namespace std;

#define long 11

class book

{public:

book *next;//构建链表

string book_Entry_number;//书籍登录号

string book_name;//书籍名称

string author_name;//作者姓名

string book_number;// 书籍分类号

string publish_address;//书籍出版单位

string  publish_time;//书籍出版时间

string book_price;//书籍价格

string getbook_Entry_number()//get函数实现private数据在类外调用

{return book_Entry_number;}

string getbook_name()

{return book_name;}

string getauthor_name()

{return author_name;}

string getbook_number()

{return book_number;}

string getpublish_address()

{return publish_address;}

string getpublish_time()

{return publish_time;}

string getbook_price()

{return book_price;}

friend istream&operator>>(istream& in,book &p);//重载输入

friend ostream&operator<<(ostream& out,book &p);//重载输出

void  m_book_Entry_number()//输入图书数据 book_Entry_number

{cin>>book_Entry_number;}

void m_book_name()// 输入图书数据book_name

{cin>>book_name;}

void m_author_name()// 输入图书数据author_name

{cin>>author_name;}

void m_book_number()// 输入图书数据book_number

{cin>>book_number;}

void m_publish_address()// 输入图书数据publish_address

{cin>>publish_address;}

void m_publish_time()// 输入图书数据publish_time

{cin>>publish_time;}

void m_book_price()// 输入图书数据book_price

{cin>>book_price;}

void Exchange_book(book *q);//进行图书信息交换

};

istream&operator>>(istream&in,book &p)//实现重载输入

{in>>p.book_Entry_number>>p.book_name>>p.author_name>>p.book_number>>p.publish_address>>p.publish_time>>p.book_price;

return in;

}

ostream&operator<<(ostream&out,book &p)//实现重载输出 (固定输出数据宽度为Long,左对齐,

{out<<setw(long)<<setiosflags(ios::left)<<p.book_Entry_number<<"\t\t";

out<<setw(long)<<setiosflags(ios::left)<<p.book_name<<"\t\t";             

out<<setw(long)<<setiosflags(ios::left)<<p.author_name<<"\t\t";                 

out<<setw(long)<<setiosflags(ios::left)<<p.book_number<<"\t\t";             

out<<setw(long)<<setiosflags(ios::left)<<p.publish_address<<"\t\t";              

out<<setw(long)<<setiosflags(ios::left)<<p.publish_time<<"\t\t";            

out<<setw(long)<<setiosflags(ios::left)<<p.book_price<<endl;

return out;

}

class LibraryManager//图书馆管理类

{public:

LibraryManager();//图书管理类的构造函数

void Menu();//

图书管理系统设计” 1、问题描述 定义图书类,属性有:书名、出版社、ISBN 号、作者、库存量、价格等信息和相关的 对属性做操作的行为。 主要完成对图书的销售、统计和图书的简单管理。 2、功能要求 (1)销售功能。购买书籍时,输入相应的 ISBN 号,并在书库中查找该书的相关信息。 如果有库存量,输入购买的册数,进行相应计算。如果库存量不够,给出提示信息,结束购 买。 (2)图书简单管理功能。 添加功能:主要完成图书信息的添加,要求 ISBN 号唯。当添加了重复的编号时,则 提示数据添加重复并取消添加。 查询功能:可按书名、ISBN 号、作者、出版社进行查询。若存在相应信息,输出所查 询的信息,若不存在该记录,则提示“该标题不存在! ” 。 修改功能:可根据查询结果对相应的记录进行修改,修改时注意 ISBN 号的唯性。 删除功能:主要完成图书信息的删除。输入要删除的 ISBN 号,根据编号删除该物品的 记录,如果该编号不在物品库中,则提示“该编号不存在” 。 (3)统计功能。 输出当前书库中所有图书的总数及详细信息;可按书的价格、库存量、作者、出版社进 行统计,输出统计信息时,要按从大到小进行排序。 (7)图书存盘:将当前程序中的图书信息存入文件中。 (8)读出信息:从文件中将图书信息读入程序
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值