图4.1 系统总体框架图
5 程序类的说明
管理员信息输出类的声明
class Librarian
{ private: int tag; int no;编号 char name[10]; int workage;工龄
int salary; public: Librarian(){}
char *getname(){return name;}
int gettag(){return tag;} int getno(){return no;} void setname(char na[])
{
strcpy(name,na);
}
void delworker(){tag=1;}
void addlibrarian(int n,char *na)增加管理员
{ tag=0; no=n; strcpy(name,na); workage=0;
salary=2000;
}
void disp()读出管理员信息
{
cout< 龄:\工资:\ } }; ? 读者信息输出类的声明 class Reader { private: int tag; 删除标记 1:已删 0:未删 int no; 读者编号 char name[10]; 读者姓名 int borbook[Maxbor];所借图书 public: Reader() {} char *getname() {return name;} 获取姓名 int gettag() {return tag;} 获取删除标记 int getno() {return no;} 获取读者编号 void setname(char na[]) 设置姓名 { strcpy(name,na); } void delbook(){ tag=1; }设置删除标记 1:已删 0:未删 void addreader(int n,char *na)增加读者 { tag=0; no=n; strcpy(name,na); for(int i=0;i borbook[i]=0; } void borrowbook(int bookid)借书操作 { for(int i=0;i { if (borbook[i]==0) { borbook[i]=bookid; return; } } } int retbook(int bookid)还书操作 { for(int i=0;i { if(borbook[i]==bookid) { borbook[i]=0; return 1; } } return 0; } void disp()读出读者信息 { cout << setw(5) << no < for(int i=0;i if(borbook[i]!=0) cout << borbook[i] << \ cout << \ } }; 6 模块分析 6.1 添加模块 在各个成员维护中都有添加操作 如新增管理员:switch (choice) { case '1': cout << \输入管理员编号:\ cin >> workerid; cout << \输入管理员姓名:\ cin >> wname; addlibrarian (workerid,wname); break;} int addlibrarian(int n,char *na)添加管理员时先查找是否存在 { Librarian *p=query(n); if (p==NULL) { top++; work[top].addlibrarian(n,na); return 1; } return 0; } 6.2 显示模块 显示模块将输出所有成员的信息 。 如现实管理员的信息: Switch(choice) {case '5': disp(); break; break;} void disp() 输出所有管理员信息 { for (int i=0;i<=top;i++) work[i].disp(); } 6.3 修改模块 首先由用户输入要修改的成员的姓名,然后系统用修改函数查找,显示该名成员的资料,然后系统提示用户输入需要修改的项目和新的资料。 如修改管理员的信息: Switch(chioce) {case '2': cout << \输入管理员编号:\ cin >> workerid; w=query(workerid); if (w==NULL) { cout << \该管理员不存在 \ break; } cout << \输入新的姓名:\