我要做一个C++图书信息管理系统设计

我还是新手,感觉好难,有哪位高手替我做一下,让我参考参考;
给我你的邮箱号,我把具体的题目发给你;


怎样把C++链表类模板的实现写入文件? 给为帮帮小弟吧

#pragma once
#include "Code.h"
#include "Item.h"
#include <iostream>
#include <fstream>
using namespace std;
template<typename T>
class Chain
{
public:
Chain(void){ list=0;}
Chain(T d){ list=new Code<T>(d);}
void Insert(T d);//头插入
void Display();//输出链表内容
Code<T> *Seek(T d);//查找链表中的数据
void DelCode(T d);//删除节点
int Length();//记录节点个数
Code<T> *Getlist();
private:
Code<T> *list;
Code<T> *end();
};
template<typename T>
Code<T> *Chain<T>::Getlist()
{
return list;
}
template<typename T>
void Chain<T>::Insert(T d)//头插入
{
Code<T> *p=new Code<T>(d);
p->next=list;
list=p;
}
template<typename T>
int Chain<T>::Length()//记录节点个数
{
int l=0;
Code<T> *p=list;
while(p)
{
l++;
p=p->next;
}
return l;
}
template<typename T>
void Chain<T>::Display()//输出链表内容
{
Code<T> *p;
p=list;
if(p==NULL)
cout<<"没有信息\n\n";
while(p)
{
(p->data).Display();
p=p->next;
}
}
template<typename T>
Code<T> *Chain<T>::Seek(T d)
{
Code<T> *p;
p=list;
if(p==NULL)
{
cout<<"链表为空!"<<endl;
return NULL;
}
else
{
if(*(p->data).SName()==*d.SName())
return p;
else
{
while(p!=NULL&&*(p->data).SName()!=*d.SName())
p=p->next;
if(p==NULL)
{
cout<<"要查询的数据不在此链表中!"<<endl;
return NULL;
}
else
return p;
}
}
}
template<typename T>
void Chain<T>::DelCode(T d)//删除节点
{
Code<T> *p1,*p2;
p1=p2=list;
if(list==NULL)
{
cout<<"链表为空,无节点可删!"<<endl;
return;
}
else
if(*(p1->data).SName()==*d.SName())
{
list=p1->next;
delete p1;
cout<<"删除节点成功!"<<endl;
}
else
{
while(p1!=NULL&&*(p1->data).SName()!=*d.SName())
{
p2=p1;p1=p1->next;
}
if(p1==NULL)
cout<<"没有要删除的节点!"<<endl;
else
{
p2->next=p1->next;
delete p1;
cout<<"删除节点成功!"<<endl;
}
}
}

#pragma once
template<typename T> class Chain;
template<typename T>
class Code
{
public:
friend class Chain<T>;
Code(T d);
Code(){}
public:
Code<T> *next;
T data;
};
template<typename T>
Code<T>::Code(T d)
{
data=d;
next=0;
}

#pragma once
#include"Item.h"
#include"Reader.h"
#include"Librarian.h"
#include"Data.h"
#include"Code.h"

class Bookborrow
{
public:
Item item;
Reader reader;
Librarian manager;
Data data;
public:
Bookborrow(){}
char *SName();
char *GetLibname();
char *GetItemname();
char *GetReadercode();
char *GetReadername();
void GetData();
void Display();
};

#include "Bookborrow.h"

char *Bookborrow::SName()
{
return item.GetTitle();
}
char *Bookborrow::GetItemname()
{
return item.GetTitle();
}
char *Bookborrow::GetLibname()
{
return manager.GetName();
}
char *Bookborrow::GetReadercode()
{
return reader.GetCode();
}
char *Bookborrow::GetReadername()
{
return reader.GetName();
}
void Bookborrow::GetData()
{
data.Display();
}
void Bookborrow::Display()
{
cout<<"读者图书证编号:"<<GetReadercode()<<endl;
cout<<"读者姓名:"<<GetReadername()<<endl;
cout<<"书名:"<<GetItemname()<<endl;
cout<<"借书时间:";
GetData();
cout<<"\n操作员姓名:"<<GetLibname()<<endl<<endl;
}

#pragma once
#include<iostream>
using namespace std;
class Data
{
public:
Data(int y=0,int m=0,int d=0);
void Display();
private:
int year,month,day;
};

#include "Data.h"
Data::Data(int y,int m,int d)
{
year=y;
month=m;
day=d;
}
void Data::Display()
{
cout<<year<<'/'<<month<<'/'<<day;
}

#pragma once
#include "Data.h"
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
class Item//图书类
{
private:
char Title[20];//书名
char Author[20];//作者名
char IndexCode[20];//分类号
char BarCode[20];//条码号
char EnterNumber[20];//登录号
char Press[20];//出版社
Data PublishData;//出版时间
double Price;//价格
int Number;//册数
int Onjia;//在架数
public:
char *GetTitle();//获取图书名
char *GetAuthor();//获取图书作者名
void DelOnjia();//Onjia-1
void AddOnjia();//Onjia+1
int GetOnjia();//获取图书册数
char *SName();
void SetData();
void Display();
Item(){}
};

还有好多没传上
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-30
你太懒了
第2个回答  2010-06-30
就是不懂才要自己做吗,这可是增强自己实力的很好的锻炼啊
第3个回答  2010-06-30
可以去威 客试试啊,呵呵,绝对可以找到你的方案的:http://blog.sina.com.cn/u/1735946052希望对你有帮助。
相似回答