帮忙看一个图书馆借还书程序,有劳各位了,该怎么解决

帮忙看一个图书馆借还书程序,有劳各位了
小弟才大学本科,C++学了一个学期了,感觉收获不小,期末老师出了一道上机题,要求:创建一个图书馆借还书程序,以实现借书和还书功能。每本书的最大库存为三本。教师最多能借六本书,学生最多能借四本书。
  我们小组的程序两位老师只给了4.5(满分5分),原因是结构不清晰,没有实现重用,功能不完善。今天我又重新修改了一下我们的程序,做了比较大的更改,而且加了很多注释,这是我学C/C++以来第一次认真的写上注释,不知注释是不是这么写的?还有几个考虑过的问题至今没有解决,一个是图书馆管理员如何对图书进行管理,另外一个是读者如何查询欲借图书。请各位高手帮忙看一下这个程序,可能我的程序看起来显得幼稚,但请各位对我的程序易读性、算法的合理性、注释以及能想到的各方面进行评价,你的评价对我的C++学习很重要,劳烦各位了。

源程序如下: 
­
//图书馆程序.cpp 
­//时间:2008年6月26日 
­//要求:创建一个图书馆借还书程序,以实现借书和还书功能。每本书的最大库存为三本。教师最多能借六本书,学生最多能借四本书。 
­
/* 
思路:分别创建图书类、学生类、教师类,教师类从学生类派生,继承学生类的数据成员和成员函数,实现重用。 
在学生类中设置借书函数和还书函数,以实现借还书功能。程序中努力做好人机交互。 
*/ 
­
­
#include <iostream> 
#include <string>  
using namespace std; 
­
­
class Book //设置图书馆藏书类,用以封存图书信息 

public: 
Book(string n,int N,string p) //图书类构造函数 
  { 
  name=n; //设置图书书名 
  NO=N; //设置图书库存量 
  publisher=p; //设置图书出版社 
  } 
­
­
void display() //display函数,以显示图书信息 

cout<<"书名:"<<name<<endl; 
cout<<"目前库存:"<<NO<<endl; 
cout<<"图书出版社:"<<publisher<<endl; 
cout<<endl; 

­
//为方便调用,以下数据全部定义为公用 
string name; //图书书名  
int NO; //图书库存量 
string publisher; //图书出版社 
}; 
­
­
//创建图书馆藏书小数据库,图书序号等于该对象数组的下标 
Book book[6]=  

Book("C++ primer",3,"人民邮电出版社"), 
Book("Python核心编程",3,"人民邮电出版社"), 
Book("Writing clean code",3,"电子工业出版社"), 
Book("简体中文Solaris 10用户指南",3,"Sun Microsystems, Inc"), 
Book("《The C Programming Language》第二版",3,"机械工业出版社"), 
Book("计算机程序设计艺术第三版第一卷:基本算法",3,"国防工业出版社") 
}; 
­
­
void display_all() //显示图书馆所有图书,方便读者借阅,暂时当作查询系统

int i; 
   
cout<<"这是图书馆的所有图书"<<endl; 
for ( i=0;i<6;i++ ) 

  cout<<"图书序号:"<<i<<endl; 
  cout<<"书名:"<<book[i].name<<endl; 
  cout<<"目前库存:"<<book[i].NO<<endl; 
  cout<<"图书出版社:"<<book[i].publisher<<endl; 
  cout<<endl; 


} // display_all 函数结束
­
class student // student类,用以定义学生信息 

public: 
  student(string nam , int num) //student构造函数 
  { 
  name=nam; 
  number=num; 
  } 
­
­void borrow(int); //定义借书成员函数  
void back(int); //定义还书成员函数 
­
­protected: 
string name; //学生姓名 
int number; //在图书馆已经借了的书的数量 
}; 
­
­
class teacher:public student //teacher类,teacher是student的派生类

public: 
teacher ( string nam , int num, string t):student(nam , num ) //派生类构造函数 

title=t;  

­
­private: 
string title; //教师职称 
}; 
­
­
void student::borrow(int a) //借书成员函数 

int i,j; //定义两个整型变量,以便需要时使用 
char k; //定义字符型变量以便进行Y/N的判断 
­
­void service(); //声明service函数 
­
if(number>=a) //首先进行权限判断,如果读者已借图书数量不小于他的权限,则提示他不能借书了