设计一个管理图书的简单程序

原创 2018年04月16日 21:14:55

设计一个管理图书的简单程序,提供的基本功能包括:可连续将新书存入文件“book.dat”中,新书信息加入到文件的尾部;也可以根据输入的书名进行查找;把文件“book.dat”中同书名的所有书显示出来。为简单起见,描述一本书的信息包括:书号,书名,出版社和作者。


#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
class book
{
private:
    char id[10];
    char name[20];
    char press[30];
    char writer[10];
public:
    book(){};
    ~book(){};
    void set_id()
    {
        cout<<"id:"<<endl;
        cin>>id;
    }
    void set_name()
    {
        cout<<"name:"<<endl;
        cin>>name;
    }
    void set_press()
    {
        cout<<"press:"<<endl;
        cin>>press;
    }
    void set_writer()
    {
        cout<<"writer:"<<endl;
        cin>>writer;
    }
    string get_id()
    {
        return id;
    }
    string get_name()
    {
        return name;
    }
    string get_press()
    {
        return press;
    }
    string get_writer()
    {
        return writer;
    }
    void book_input();
    void book_search();
    void book_show();
};
void book::book_input()
{
    fstream f1("C:\\Personal\\Desktop\\C++实验\\实验四\\图书馆\\book.dat",ios_base::out|ios_base::app);
    book B;
    cout<<"输入book信息"<<endl;
    B.set_id();
    B.set_name();
    B.set_press();
    B.set_writer();

    f1.write(reinterpret_cast<char*>(&B),sizeof(B));
    f1.flush();
    f1.close();
}
void book::book_search()
{
    fstream f1("C:\\Personal\\Desktop\\C++实验\\实验四\\图书馆\\book.dat",ios_base::in|ios_base::app);
    book B;
    char book_name[20];
    cout<<"输入书名:"<<endl;
    cin>>book_name;
    while(f1.read(reinterpret_cast<char*>(&B),sizeof(B)));
    {
        if(!strcmp(book_name,B.get_name().c_str()))//.c_str() 将string型转化为
        {
            cout << "书号:" << B.get_id() << "书名:" << B.get_name() << "出版社:" << B.get_press() << "作者:" << B.get_writer() << endl;
        }
    }
    f1.close();
}
void book::book_show()
{
    fstream f1("C:\\Personal\\Desktop\\C++实验\\实验四\\图书馆\\book.dat",ios_base::in);
    fstream f2("C:\\Personal\\Desktop\\C++实验\\实验四\\图书馆\\book.dat",ios_base::in);
    book B;
    book A;
    int flag=0; //标记不同
    int sp_flag=0;
    int sp_number=0;
    while(f1.read(reinterpret_cast<char*>(&B),sizeof(B)))
    {
        while(f2.read(reinterpret_cast<char*>(&A),sizeof(A)))
            {
                if(strcmp(A.get_name().c_str(),B.get_name().c_str())==0)
                {
                    cout << "书号:" << A.get_id() << "书名:" << A.get_name() << "出版社:" <<A.get_press() << "作者:" << A.get_writer() << endl;
                }
                else if(flag==0)
                {
                    flag=1;    //出现不同的书
                    sp_number=sp_flag;
                }
                sp_flag+=1;
            }
            if(flag==0)
            {
                break;
            }
            flag=0;
            f1.seekg(sp_number);
            f2.close();
            f2.open("C:\\Personal\\Desktop\\C++实验\\实验四\\图书馆\\book.dat",ios_base::in);
            f2.seekg(sp_number);
    }
    f1.close();
    f2.close();
}
int main()
{
    book A;
    int n;
    while(1)
    {
         cout << "              简易图书管理系统           " << endl;
        cout << endl;
        cout << "      添加书目请输入1 " << endl;
        cout << "      查询书目请输入2     " << endl;
        cout << "      显示相同的书输入3  " << endl;
        cout << "      程序结束请输入4    " << endl;
        cin >> n;

        switch (n)
        {
            case 1:A.book_input();break;
            case 2:A.book_search();break;
            case 3:A.book_show();break;
            case 4:return 0;
        }
    }
    return 0;
}

文件 流 图书管理系统

  • 2013年06月23日 20:01
  • 1KB
  • 下载

图书管理系统程序设计

  • 2011年08月20日 21:49
  • 445KB
  • 下载

设计实现一个图书管理系统。图书信息存放到一个数据库中。图书

  • 2016年11月10日 22:51
  • 55KB
  • 下载

2.设计实现一个图书管理系统。图书信息存放到一个数据库中。

  • 2016年11月10日 22:29
  • 1.55MB
  • 下载

数据结构课程设计 图书管理系统

/* 烟台大学计算机与控制工程学院 作者:孙潇 时间:2015年12月25日 问题描述:设计一个计算机管理系统完成图书管理基本业务。并实现如下功能: 1.初始化...
  • Serena2580
  • Serena2580
  • 2015-12-25 16:18:22
  • 1739

.图书借阅管理系统miniLib的状态图和活动图

  • 2012年09月02日 20:44
  • 102KB
  • 下载

图书管理系统数据库设计实验报告

图书管理系统设计实验报告 PB15051157 茹思淞 一、实验题目及其要求 编写一个图书管理系统,要求具有以下内容: 1)存储图书信息、采购和淘汰情况、租借情况 ...
  • SiSong_Ru
  • SiSong_Ru
  • 2018-01-16 09:28:00
  • 471

基于C语言的图书管理信息系统的设计与实现

图书管理信息系统的设计与实现#include #include#define BookSize 100 #define BLHum 50 #define BLHnum 50 #define RRnum...
  • qq_33735635
  • qq_33735635
  • 2017-06-26 18:45:23
  • 466

某出版系统发行图书和磁带,利用继承设计管理出版物的类。

要求如下:建立一个基类Publication存储出版物的标题title、出版物名称name、单价price及出版日期date。用Book和Tape类分别管理图书和磁带,它们都从Publication类...
  • u012651730
  • u012651730
  • 2013-11-13 18:10:50
  • 3242

图书馆数据库E-R图设计

  • 2013年06月04日 20:55
  • 397KB
  • 下载
收藏助手
不良信息举报
您举报文章:设计一个管理图书的简单程序
举报原因:
原因补充:

(最多只允许输入30个字)