c++图书管理系统 有做过的来

问题描述

c++图书管理系统 有做过的来

文件读写有问题,结构体数据保存时包含了地址,怎么区分开啊?
// new2.cpp : 定义控制台应用程序的入口点。
//

// new.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "iostream"
#include "string"
#include
#include
#include
#include "fstream"
#define UNIT_COST 0.1 //每本书每天0.1元
#define MAX_DAY 60 //最长借阅 60天
#define MAX_RENEW 30 //续借30天
#define MAX_RENEW_NUM 1 //续借次数 1
using namespace std;
typedef struct BOOK
{
char sheet_number[10];//编号 名称 类别 作者 出版社 出版时间 价格 数量 备注
char name[10];
char writer[10];
char press[10];
char publication_date[10];
int sort;
int price;
int note;
struct BOOK *next;
}Book,*Booklist;
BOOK *a;
struct Password
{
string name;//用户名
string password;//密码
//struct Password *next;
}pass={"admin","123456"},*Passlist;
Password *c;
typedef struct READER
{
char card_number[10];//读者证号 姓名 单位 当前借阅数 密码
char name[10];
char unit[10];
int current_borrow;
char password[6];
struct READER *next;
}*Reader;
READER *b;
class Log_in
{
public:
int Administrator_Load();//管理员登陆
int Reader_Load(Reader &b);//读者登陆
int Log();//登陆界面
int Borrow_Book(Booklist &a,Reader &b);//借书
int Return_Book(Booklist &a,Reader &b);//还书
void Search_Book(Booklist &a);//图书查询
void Load_Book(Booklist &a);
void Delete_Book(Booklist &a);
void Manage_load(Reader &b);
void Manage_Delet(Reader &b);
private:

bool Book_State(string sheet_number);//图书状态 借/还
int pay_cost;//缴费

};
int Log_in::Administrator_Load()
{
Password *p;
p=&pass;
int n=0,f=0;
int i=1;
string na,pas;
while(i!=3)
{
cout<<"--------------------------------------------------------------------------------"<
cout
cout
//cout
cin>>na;
cout<
cout
cin>>pas;
cout<
if(na!=p->name||pas!=p->password)
{
cout<<"输入错误,重新输入!"<<endl;
system("cls");
i++;
}
else
{
cout<<"登录成功!"<<endl;
system("cls");
f=1;
}

if(i==3)break;
else
    if(f==1)
    {
while(n!=3)
{
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                  管理面板                                       "<<endl;
cout<<"          1.增添读者                                      2.删除读者              "<<endl;
cout<<"          3.增添图书                                      4.删除图书                    "<<endl;
cin>>n;
system("cls");
switch(n)
{
case 1:Manage_load(b); system("cls");break;
case 2:Manage_Delet(b);system("cls");break;
case 3:Load_Book(a); system("cls");break;
case 4:Delete_Book(a);system("cls");break;
case 5:cout<<" "<<endl;break;

}
}break;
}break;
}

system("cls");
return 0;

}
BOOK *Creat_BOOK() //初试化图书链表
{
BOOK *p;

p=new BOOK;
if(!p) exit(1);
p->next=NULL;
return p;
}
READER *Creat_READER() //初试化图书链表
{
READER *p;

p=new READER;
if(!p) exit(1);
p->next=NULL;
return p;
}
int Log_in::Reader_Load(Reader &b)
{

READER p;
//p=new READER;
//p=b;
ifstream file2("Reader.dat",ios::binary|ios::in);
if(!file2)
cerr<<"file2 error!"<<endl;
int n=0,f=0;
int i=1;
string na,pas;
while(i!=3)
{
system("cls");
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                  读者登录                                       ";
cout<<"          证件号:                                                                "<<endl;
//cout<<"                                                     按 3 返回上级菜单     "<<endl;
cin>>na;
cout<<endl;
cout<<"          密码:                                                                 ";
cin>>pas;
cout<<endl;
while(!file2.eof())
{
    file2.read((char*)&p,sizeof(p));
    cout<<p.card_number<<endl;

if(na!=p.card_number&&pas!=p.password)
    {cout<<"输入错误,重新输入!"<<endl; system("cls");i++;}
else
    {
        cout<<"登录成功!"<<endl;
         system("cls");
        f=1;
        break;
    }
    }
}
    if(f==1)
    {
while(n!=4)
{
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"                                  图书管理                                       "<<endl;
cout<<"          1.查询图书                                      2.借书              "<<endl;
cout<<"          3.还书                                          4.返回上级菜单                "<<endl;
cin>>n;
switch(n)
{
case 1:Search_Book(a);cout<<endl; system("cls");break;
case 2:Borrow_Book(a,b);cout<<endl; system("cls");break;
case 3:Return_Book(a,b);cout<<endl; system("cls");break;
case 4:break;

}
}
    }

system("cls");
file2.close();
return 0;

}
int Log_in::Log()
{
int n=0;
while(n!=9)
{
cout<<"--------------------------------------------------------------------------------"<
cout
cout
cin>>n;
system("cls");
switch(n)
{
case 1:Administrator_Load();break;
case 2:Reader_Load(b);break;

}
}
return 0;

}
class Info
{
public:
BOOK *bok;
READER *rea;
//Info():BOOK(bok),READER(rea){}
void Load_Book(Booklist &a);
void Delete_Book(Booklist &a);
void Manage_load(Reader &b);
void Manage_Delet(Reader &b);
int Return_Book(Booklist &a,Reader &b);
private:
};
void Log_in::Search_Book(Booklist &a)
{
BOOK *p;
p=a->next;
char str[10];
cout<<"input the number: ";
cin>>str;
for(;p!=NULL;p=p->next)
{
if(strcmp(p->sheet_number,str)==0)
{
cout<<"编号 名称 类别 作者 出版社 出版时间 价格 数量 备注"<
coutsheet_number<<" "<name<<" "<sort<<" "<writer<<" "<press<<" "<publication_date<<" "<price<<" "<note;
}

}

}

void Log_in::Load_Book(Booklist &a) //借阅时以编号作为主键

{
BOOK p;
p=new BOOK;
//fstream file1;
ofstream file1("book.dat",ios::binary|ios::out);
if(!file1)
cerr<<"file1 error!"<
//p=new BOOK;
//if(!p) exit(1);
if(a!=NULL)
{
cout
cin>>p->sheet_number;
cout<<" 名称:";
cin>>p->name;
cout<<" 数量:";
cin>>p->sort;
cout<<" 出版社名称:";
cin>>p->press;
cout<<" 作者:";
cin>>p->writer;
cout<<" 出版时间:";
cin>>p->publication_date;
cout<<" 价格:";
cin>>p->price;
p->note=1; //1表示没有借出
}
file1.write((char
)&p,sizeof(p));

file1.close();

}
/*
void Info::load_Book()
{
BOOK p;
p=bok->next;
cout<<"输入书的 编号 名称 类别 作者 出版社 出版时间 价格 数量 备注"<
cin>>p->sheet_number>>p->name>>p->sort>>p->writer>>p->press>>p->publication_date>>p->price>>p->amount>>p->note;
cout<sheet_number<<" "<name<<" "<sort<<" "<writer<<" "<press<<" "<publication_date<<" "<price<<" "<amount<<" "<note;
}
*/
void Log_in::Delete_Book(Booklist &a)
{
BOOK *p;
fstream file1;
file1.open("book.dat",ios::in|ios::out);
if(!file1)
cerr<<"file1 error!"<
p=a;
char num[10];
cout
cin>>num;
while(p->next!=NULL)
{
file1.read((char
)&p,sizeof(p));
if(p->sheet_number==num)
delete p;
}
file1.write((char*)&p,sizeof(p));
file1.close();
}
int Log_in::Borrow_Book(Booklist &a,Reader &b)
{
BOOK p;
p=new BOOK;
READER *r;
r=new READER;
fstream file1,file2;
file1.open("book.dat",ios::in|ios::out);
if(!file1)
cerr<<"file1 error!"<
file2.open("Reader.dat",ios::in|ios::out);
if(!file2)
cerr
char al[10];
char card[10];
cout
cin>>al;
while(p->next!=NULL)
{
file1.read((char
)&p,sizeof(p));
if((strcmp(p->sheet_number,al)==0)&&(p->sort>0))
{
cout<<"请输入读者证号:"<
cin>>card;
while(r->next!=NULL)
{
file2.read((char*)&r,sizeof(r));
if((strcmp(r->card_number,card)==0)&&(r->current_borrow
{
p->sort-=1;
r->current_borrow+=1;
return 0;
}
else
{
if(r->current_borrow>=MAX_DAY)
cout<<"读者已达到最大借阅数!"<
if(strcmp(r->card_number,card)!=0)
cout<<"读者证号错误!"<
return 0;
}
}
}
else
{
if((p->sort)==0)
cout<<"本书已全部借出!"<
if(strcmp(p->sheet_number,al)!=0)
cout<<"对不起本书不存在!"<
return 0;
}
}
file1.write((char*)&p,sizeof(p));
file2.write((char*)&r,sizeof(r));
file1.close();
file2.close();
return 0;
}
int Log_in::Return_Book(Booklist &a,Reader &b)
{
BOOK *p;
READER *r;
p=new BOOK;
r=new READER;
fstream file1,file2;
file1.open("book.dat",ios::in|ios::out);
if(!file1)
cerr
file2.open("Reader.dat",ios::in|ios::out);
if(!file2)
cerr
char al[10];
char card[10];
cout
cin>>al;
while(p->next!=NULL)
{
if(strcmp(p->sheet_number,al)==0)
{
cout<<"请输入读者证号:"<
cin>>card;
while(r->next!=NULL)
{
if(strcmp(r->card_number,card)==0)
{
p->sort+=1;
r->current_borrow-=1;
return 0;
}
else
{

                  if(strcmp(r->card_number,card)!=0)
                      cout<<"读者证号错误!"<<endl;
                  return 0;
              }
          }
   }
    else
    {
        if(strcmp(p->sheet_number,al)!=0)
            cout<<"对不起本书不存在!"<<endl;
        return 0;
    }
    return 0;
}
file1.write((char*)&p,sizeof(p));
file2.write((char*)&r,sizeof(r));
file1.close();
file2.close();
return 0;

}
void Log_in::Manage_load(Reader &b)
{
READER p;
//p=b;
//fstream file2;
p=new READER;
fstream file2("Reader.dat",ios::in|ios::out);
if(!file2)
cerr<<"file2 error!"<
if(b->next==NULL)
{
cout<<" 读者证号:";
cin>>p->card_number;
cout<<" 姓名:";
cin>>p->name;
cout<<" 单位:";
cin>>p->unit;
cout<<" 当前借阅数:";
cin>>p->current_borrow;
cout<<" 密码:";
cin>>p->password;
}
file2.write((char
)p,sizeof(*p));
file2.close();
}
void Log_in::Manage_Delet(Reader &b)
{
READER p;
p=b;
fstream file2;
file2.open("Reader.dat",ios::in|ios::out);
if(!file2)
cerr<<"file2 error!"<
char card[10];
cout
cin>>card;
for(;p!=NULL;p=p->next)
{
if(p->next!=NULL&&(p->card_number==card))
delete p;
}
file2.write((char
)&p,sizeof(p));
file2.close();
}
int _tmain(int argc, _TCHAR* argv[])
{
// fstream file1,file2,file3;
// BOOK *p1;
// READER *p2;
//Password *p33;
a=Creat_BOOK();
b=Creat_READER();
//c=Creat_Password();
Log_in lo;
lo.Log();
return 0;
}

解决方案

CSDN移动问答
http://blog.csdn.net/qq2399431200/article/details/9003578

我曾今写的C语言图书馆管理系统,你可以参考下里面的。其实你的C++版和我这个没多大区别。

解决方案二:

你的问题在哪里,还是要源代码...

时间: 2024-11-03 06:04:18

c++图书管理系统 有做过的来的相关文章

java-用Java做的图书管理系统界面

问题描述 用Java做的图书管理系统界面 该程序里的哪些东西,变成汽车管理系统,就是本质不变,换张皮,谢谢 解决方案 这好比把一个火锅变成夜壶.如果你一窍不通,建议你直接google一个汽车管理系统.至于图书管理和汽车管理只是换一张皮,这奇葩的观点我也是醉了. 解决方案二: DEV C++ 做的图书管理系统图书管理系统(Java)图书管理系统(java) 解决方案三: 把界面改下啊,,逻辑差不多就行了,,

vc++-VC,MFC做的图书管理系统,有点问题,大家帮忙看一下吧,谢谢了

问题描述 VC,MFC做的图书管理系统,有点问题,大家帮忙看一下吧,谢谢了 (1)首先是读者借书了之后不能还书,也就是还书实现不了: (2)借书日期有问题,结束日期没有写入到数据库的借书表对应的字段中,导致罚金的计算也出错了: (3)下面是msdn资源的链接地址,谢谢大家了,压缩包里面有一个txt文件,里面写出了这个程序存在的问题,麻烦大家帮忙修改一下子,小弟尽力了确实改出成功,麻烦大家,谢谢了http://download.csdn.net/detail/rl529014/8869503 解决

求助-怎么用oracle做一个图书管理系统?

问题描述 怎么用oracle做一个图书管理系统? 刚刚学习oracle,要做一个图书管理系统,但是不怎么会这个,还在慢慢学习中,请各位大神指点一二,谢谢了. 解决方案 图书管理系统数据库设计图书管理系统 java代码图书管理系统

java类的问题-Java做的图书管理系统

问题描述 Java做的图书管理系统 实现一个简单的图书信息管理系统,图书信息字段有编号.书名.作者.价格.出版社.出版时间. 功能设计 1.图书信息录入和追加: 2.图书信息删除: 3.图书信息修改: 4.按照书名关键字查询图书: 5*.根据出版时间进行排序和查询: 6*.能够保存和装载图书信息. 解决方案 http://blog.csdn.net/sdliujiangbo/article/details/8630421 解决方案二: 图书管理系统(Java)java-图书管理系统图书管理系统(

c#-C#图书管理系统的课程设计怎么做?借书和还书的功能怎么编代码

问题描述 C#图书管理系统的课程设计怎么做?借书和还书的功能怎么编代码 C#图书管理系统的课程设计怎么做?借书和还书的功能怎么编代码 解决方案 课程设计怎么做,听我和你细细说. 这种玩意纯扯淡,千万不要当了真. 老师当年就不会,所以才来把书教. 胡乱抄来个课题,答案google有很多. 直接根据关键字,打开google来搜索. 下载几个来"参考",如果不行换一个. 知识要点要记牢,如何编译得掌握. 抄袭不忘改名字,修改时间别忘了. 老师学生互相骗,混个及格就行咯. 解决方案二: htt

数据库-VC,MFC做的图书管理系统,有点问题,大家帮忙看一下吧,谢谢了

问题描述 VC,MFC做的图书管理系统,有点问题,大家帮忙看一下吧,谢谢了 VC,MFC做的图书管理系统,有点问题,大家帮忙看一下吧,谢谢了 - 下载频道 - CSDN.NET 下面是msdn资源的链接地址,谢谢大家了,http://download.csdn.net/detail/rl529014/8869503 解决方案 建议你有问题直接提出来,如果别人有兴趣会去下载的,直接让别人下载不太好! 解决方案二: 压缩包里面有一个txt文件,里面写出了这个程序存在的问题,麻烦大家帮忙修改一下子,小

jsp做图书管理系统项目

问题描述 jsp做图书管理系统项目 图书管理系统 完成在线对图书的管理.预约.借阅.归还.报损等功能,求解!!! 解决方案 http://bbs.51cto.com/thread-936536-1.html 解决方案二: http://bbs.51cto.com/thread-936536-1.html,参考网站获取 解决方案三: 这些搜索一下有很多的啊 解决方案四: 这个去CSDN下载搜一下有很多 解决方案五: 亲,去csdn下载,或者百度,会有的,可能要花点C币

用jsp做一个图书管理系统,大哥大姐帮帮忙啊,指点一下,谢啦

问题描述 谢谢,哥哥姐姐! 解决方案 解决方案二:该回复于2010-12-13 09:27:30被版主删除解决方案三:jsp数据库你要问什么解决方案四:别写了,网上当一个吧解决方案五:网上有这种例子的,找找好了解决方案六:找我啊.qq:1020842508,我帮你解决方案七:你要问什么啊,你先把这个系统的需求搞明白啊,图书管理系统很麻烦的,功能很多,了解功能之后才能相应的建立数据库,到时候具体问题再具体分析!解决方案八:SSH框架挺好的解决方案九:很简单啊啊...解决方案十:做图书管理系统光js

ASP入门教程-网上图书管理系统实例

本管理程序的主要功能有: 1.图书列表展示功能:2.图书放置购物车.移去购物车和清空购物车功能:3.购书结帐功能:4.新会员注册功能. Iindex.asp 首页.框架结构.上框架连接Top.htm页面,下框架连接Booklist页面. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>网上