| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 370 人关注过本帖
标题:请教一下,这个程序哪里错了呀,谢谢啦
只看楼主 加入收藏
shijingze
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-21
结帖率:0
收藏
 问题点数:0 回复次数:2 
请教一下,这个程序哪里错了呀,谢谢啦
#include <string.h>
#include <iostream.h>

class Book{ // 书籍基类
protected:
 char Title[40];  // 书名
 long Code;   // 条码
 int  Type;   // 0表示书,1表示杂志
public:
 Book();
 Book(char *title,long code);
 void SetCode(long code){ Code = code; }
 void SetTitle(char* tl){ strcpy(Title,tl); }
 void SetType(bool type){Type = type; }
 int  GetType(){ return Type; }
 long GetCode(){ return Code;}
 virtual void Show();   // 显示书的信息
 friend ostream& operator<<(ostream& , Book&); // 重载插入运算符
 friend istream& operator>>(istream& is, Book&);  // 重载提取运算符
 Book *Next;   // 为创建每个读者所借书链表而定义指针
};

class Item :public Book{ //书的款目
// char Title[40];   // 书名
 char Author[20];  // 著者名
 char IndexCode[10];  // 分类号
// long Code;   // 条码
public:
 Item();
 Item(char *author,char *title,char *index,int code);
 Item(Item &);
 void SetAuthor(char*);
 void SetIndexCode(char*);
 virtual void Show();   // 显示书的信息
 friend ostream& operator<<(ostream& os, Item&);  // 重载插入运算符
 friend istream& operator>>(istream& is, Item&);  // 重载提取运算符
public:
 
};

class Magazine:public Book { //杂志类
 int  Volume;
 enum LANG {CHINESE=1,ENGLISH} Lang; // 枚举变量,确定语言类别
public:
 Magazine():Book(){Volume = 0; Lang = CHINESE; Type = 1; }
 Magazine(char *title,int vol,LANG lang,int code);
 Magazine(Magazine&);
 void SetVolume(int vol){Volume = vol;}
 void SetLang(int lang){Lang = (LANG)lang;}
 virtual void Show();   // 显示杂志的信息
 friend ostream& operator<<(ostream& os, Magazine&); // 重载插入运算符
 friend istream& operator>>(istream& is, Magazine&);  // 重载提取运算符
};

class Reader{  //  读者信息类

 char Name[20];   // 姓名
 char Position[20];  // 职务
 int  Age;    // 年龄
 long Code;    // 借书证号
 Book* items;   // 所借书链表
public:
 Reader();
 Reader(char *name,char *posi,int age,int code);
// Reader(Reader&);
 ~Reader();
 long GetCode(){return Code;}
 void SetName(char*);
 void SetPosition(char*);
 void SetAge(int);
 void SetCode(long);
 void AddBook(Item);  // 添加所借书
 void AddBook(Magazine);  // 添加所借杂志
 void DelBook(Book it); // 还书后减少所借书
 void ShowBooks();  // 显示所借书
 void Show();   // 显示读者信息
 friend ostream& operator<<(ostream& os, Reader&); // 重载插入运算符
 friend istream& operator>>(istream& is, Reader&);  // 重载提取运算符
public:
 int Counter;   //计数器,统计所借书数目
};

class Manager{ // 管理员类
 char Name[20];   // 姓名
 int Age;    // 年龄
 int Code;    // 工号
 friend class Library; // 将图书馆类声明为友元
public:
 Manager(){}
 Manager(char*,int,int);
 long GetCode(){ return Code;}
 void Show();
 friend ostream& operator<<(ostream& os, Manager&); // 重载插入运算符
 friend istream& operator>>(istream& is, Manager&);  // 重载提取运算符
};

class Loan { // 借阅信息类
 int Type;    // 0表示书,1表示杂志
 Item item;    // 借阅书
 Magazine mag;   // 借阅杂志
 Reader reader;   // 借阅者
 Manager manager;  // 借书操作员
 int Code;
 friend class Library; // 将图书馆类声明为友元
public:
 Loan(){ }
 Loan(Loan & l);
 int GetCode(){ return Code;}
 void Show();
 friend ostream& operator<<(ostream& os, Loan&); // 重载插入运算符
 friend istream& operator>>(istream& is, Loan&);  // 重载提取运算符
};
、、、、、、、、、、、、、、、、、、、、、、、
#include<iostream.h>
#include<string.h>
class Reader;
template<typename T> class DblList;
template<typename T> class DblNode{
public:
 T Info;//数据域
 DblNode<T> *llink,*rlink;    //前驱(左链)、后继(右链)指针
public:
 DblNode(T data);//一般结点
 DblNode();//头结点
 T GetInfo(){return Info;};
 friend class DblList<T>;
 friend class Library;
};

template<typename T>class DblList{
 DblNode<T> *head,*current;
public:
 DblList();
 ~DblList();
 void Insert(const T&  data);
 DblNode<T>* Remove(DblNode<T>* p);
 void Print();
 int Length();//计算链表长度
 DblNode<T> *Find(T  data);//搜索数据与定值相同的结点
 DblNode<T>* Find(int data);//按某个关键字查找
 void MakeEmpty(); //清空链表
 void ShowList(); //显示链表各结点
 friend istream& operator>>(istream&, DblList<typename T>&); // 重载输入流运算符
 
 friend ostream& operator<<(ostream& os, DblList<typename T>& dlist); // 重载输出流运算符
 friend class Library;
  //其它操作
};


template<typename T> DblNode<T>::DblNode(){
 llink=rlink=NULL;
}
template<typename T> DblNode<T>::DblNode(T data){
 info=data;
 llink=NULL;
 rlink=NULL;
}


template<typename T> DblList<T>::DblList(){//建立表头结点
 head=new DblNode<T>();
 head->rlink=head->llink=head;
 current=NULL;
}
template<typename T> DblList<T>::~DblList(){
 MakeEmpty();//清空链表
 delete head;
}
template<typename T> void DblList<T>::MakeEmpty(){
 DblNode<T> *tempP;
 while(head->rlink!=head){
  tempP=head->rlink;
  head->rlink=tempP->rlink;//把头结点后的第一个节点从链中脱离
  tempP->rlink->llink=head;//处理左指针
  delete tempP;           //删除(释放)脱离下来的结点
 }
 current=NULL;  //current指针恢复
}
template<typename T> void DblList<T>::Insert(const T & data){//新节点在链尾
 current=new DblNode<T>;
 current->Info=data;
 current->rlink=head;//注意次序
 current->llink=head->llink;
 head->llink->rlink=current;
 head->llink=current;//最后做
}
template<typename T> DblNode<T>* DblList<T>::Remove(DblNode<T>* p){ // 删除结点
 current=head->rlink;
 while(current!=head&¤t!=p) current=current->rlink;
 if(current==head) current=NULL;
 else{//结点摘下
  p->llink->rlink=p->rlink;
  p->rlink->llink=p->llink;
  p->rlink=p->llink=NULL;
 }
 return current;
}

template<typename T> DblNode<T>* DblList<T>::Find(T data){ // 按结点查找
 current=head->rlink;
 while(current!=head&¤t->Info!=data) current=current->rlink;
 if(current==head) current=NULL;
 return current;
}

template<typename T> DblNode<T>* DblList<T>::Find(int data){ // 按数据值查找结点
 current=head->rlink;
 int temp =current->Info.GetCode();
 while(current!=head&&temp!=data){
  current=current->rlink;
  temp =  current->Info.GetCode();
 }
 if(current==head) current=NULL;
 return current;
}

template<typename T> void DblList<T>::Print(){ // 输出链表
 current=head->rlink;
 while(current!=head){
  cout<<current->Info<<'\t';
  current=current->rlink;
 }
 cout<<endl;
}
template<typename T> int DblList<T>::Length(){ // 取得链表长度
 int count=0;
 current=head->rlink;
 while(current!=head){
  count++;
  current=current->rlink;
 }
 return count;
}

template<typename T> void DblList<T>::ShowList(){ // 输出链表各结点
 int count=0;
 current=head->rlink;
 while(current!=head){
  current->GetInfo().Show();
  current=current->rlink;
 }
 return ;
}

template<typename T>
istream& operator>>(istream& is, DblList<typename T> &dlist){
 int len;
 T tt; // 定义局部变量读入一个结点
 is>>len;
  for(int i= 0 ;i<len; i++){ // 循环读入链表各结点
   is>>tt;
   dlist.Insert(tt);
 }
 return is;
}

template<typename T>
ostream& operator<<(ostream& os, DblList<typename T> &dlist){
 DblNode<T> *tempP;
 int len = dlist.Length();
 os<<len<<' ';
 tempP=dlist.head->rlink;
 while(tempP!=dlist.head){ // 循环输出链表各结点
  os<<tempP->Info;
  tempP = tempP->rlink;
 }
 return os;
}
#include "class.h"
#include "dblist.h"
#include <fstream.h>
class Library{  //  封装图书馆流通业务的类
 DblList<Item> item;   // 在馆图书链表
 DblList<Magazine> mag;  // 在馆杂志链表
 DblList<Reader> reader;  // 读者链表
 DblList<Loan> loan;   // 借阅信息链表
 DblList<Manager> manager; // 管理员信息链表

 int itemNum;    // 记录在馆图书数目
 int magNum;    // 记录在馆杂志数目
 int readerNum;    // 记录读者数目
 int loanNum;    // 记录借阅信息数目
 int managerNum;    // 记录管理员数目
 ofstream itemFileOut;  // 文件流对象,保存图书馆书籍数据
 ifstream itemFileIn;  // 文件流对象,读入图书馆书籍数据
 ofstream magFileOut;  // 文件流对象,保存图书馆杂志数据
 ifstream magFileIn;   // 文件流对象,读入图书馆杂志数据
 ofstream readerFileOut;  // 文件流对象,保存图书馆读者数据
 ifstream readerFileIn;  // 文件流对象,读入图书馆读者数据
 ofstream loanFileOut;  // 文件流对象,保存图书馆借阅信息数据
 ifstream loanFileIn;   // 文件流对象,读入图书馆借阅信息
 ofstream managerFileOut;  // 文件流对象,保存图书馆管理员数据
 ifstream managerFileIn;   // 文件流对象,读入图书馆管理员数据
public:
 Library();     // 构造函数
 ~Library();     //析构函数
 void Run();     // 图书馆类的运行函数
 void CreateBibliotheca(); // 创建书目
 void CreateReader();  // 创建读者库
 void CreateManager();  // 创建管理员信息
 int  ShowMainMenu();  // 显示主菜单函数
 void Borrow();    // 借书操作
 void Return();    // 还书操作
 void Require();    // 查询操作
 void SaveInfo();   // 保存图书馆信息
 void OpenInfo();   // 读入图书馆信息
};
搜索更多相关主题的帖子: include public friend return title 
2011-06-21 16:57
specilize
Rank: 4
等 级:业余侠客
帖 子:126
专家分:247
注 册:2011-2-20
收藏
得分:0 
顺便把mian函数贴出来吧
2011-06-21 20:10
specilize
Rank: 4
等 级:业余侠客
帖 子:126
专家分:247
注 册:2011-2-20
收藏
得分:0 
顺便把mian函数贴出来吧
2011-06-21 20:11
快速回复:请教一下,这个程序哪里错了呀,谢谢啦
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036682 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved