1、售后服务管理系统合院何浩#include #include #include #include /输入/输出文件流类using namespace std;const int Maxr=100;/最多的被服务人员(有公司的服务人员数决定)const int Maxb=100;/最多的项目const int Maxbor=5;/每位被服务人员每次进行的最多服务项目/被服务人员类,实现对被服务人员的信息的描述class Service private: int tag; /删除标记 1:已删 0:未删 int no; /被服务人员编号 char name10; /被服务人员姓名 int borPr
2、ojectMaxbor;/所服务项目 public: Service() char *getname() return name; /获取姓名 int gettag() return tag; /获取删除标记 int getno() return no; /获取被服务人员编号 void setname(char na) /设置姓名 strcpy(name,na); void delProject() tag=1; /设置删除标记 1:已删 0:未删 void addService(int n,char *na)/增加被服务人员 tag=0; no=n; strcpy(name,na); for
3、(int i=0;iMaxbor;i+) borProjecti=0; void borrowProject(int Projectid)/服务操作 for(int i=0;iMaxbor;i+) if (borProjecti=0) borProjecti=Projectid; return; int retProject(int Projectid)/已经服务对象 for(int i=0;iMaxbor;i+) if(borProjecti=Projectid) borProjecti=0; return 1; return 0; void disp()/读出被服务人员信息 cout se
4、tw(5) no setw(10) name服务编号:; for(int i=0;iMaxbor;i+) if(borProjecti!=0) cout borProjecti |; cout endl; ;/被服务人员类库,实现建立被服务人员的个人资料 class RDatabase private: int top; /被服务人员记录指针 Service readMaxr;/被服务人员记录public: RDatabase() /构造函数,将Service.txt读到read中 Service s; top=-1; fstream file(Service.txt,ios:in);/打开一
5、个输入文件 while (1) (char *)&s,sizeof(s); if (!; top+; readtop=s; (); /关闭 Service.txt void clear()/删除所有被服务人员信息 top=-1; int addService(int n,char *na)/添加被服务人员时先查找是否存在 Service *p=query(n); if (p=NULL) top+; readtop.addService(n,na); return 1; return 0; Service *query(int Serviceid)/按编号查找 for (int i=0;i=to
6、p;i+) if (readi.getno()=Serviceid & readi.gettag()=0) return &readi; return NULL; void disp() /输出所有被服务人员信息 for (int i=0;i=top;i+) readi.disp(); void Servicedata();/被服务人员库维护 RDatabase() /析构函数,将read写到Service.txt文件中 fstream file(Service.txt,ios:out); for (int i=0;i=top;i+) if (readi.gettag()=0) (char *
7、)&readi,sizeof(readi); (); ;void RDatabase:Servicedata() char choice; char rname20; int Serviceid; Service *r; while (choice!=0) cout nnttt服 务 维 护nnntt 1 新 增nntt 2 更 改nntt 3 删 除nntt 4 查 找nntt 5 显 示nntt 6 全 删nntt 0 退 出 choice; switch (choice) case 1: cout Serviceid; cout rname; addService (Serviceid,
8、rname); break; case 2: cout Serviceid; r=query(Serviceid); if (r=NULL) cout 该人员不存在 endl; break; cout rname; r-setname(rname); break; case 3: cout Serviceid; r=query(Serviceid); if (r=NULL) cout 该被服务人员不存在 delProject(); break; case 4: cout Serviceid; r=query(Serviceid); if (r=NULL) cout 该人员不存在disp();
9、break; case 5: disp(); break; case 6: clear(); break; default:cout输入错误,请从新输入:;break; /项目类,实现对项目的描述,项目的编号,项目名称等class Projectprivate: int tag;/删除标记 1:已删 0:未删 int no;/项目编号 char name20;/项目名称 int onshelf;/是否再架 1:未服务 2:已服务public: Project() char *getname() return name; /获取姓名 int getno() return no; /获取项目编号
10、int gettag() return tag; /获取删除标记 void setname(char na)/设置项目名称 strcpy(name,na); void delProject() tag=1;/删除项目 void addProject(int n,char *na)/增加项目 tag=0; no=n; strcpy(name,na); onshelf=1; int borrowProject()/服务操作 if (onshelf=1) onshelf=0; return 1; return 0; void retProject()/已服务操作 onshelf=1; void di
11、sp()/输出项目 cout setw(6) no setw(18) name setw(10) (onshelf=1? 欢迎使用本程序:请服务下一位) endl; ;/项目库类,实现对项目的维护,查找,删除等class BDatabaseprivate: int top; /项目记录指针 Project ProjectMaxb; /项目记录public: BDatabase()/构造函数,将Project.txt读到Project中 Project b; top=-1; fstream file(Project.txt,ios:in); while (1) (char *)&b,sizeof(b); if (!file) break; top+; Projecttop=b; (); void clear()/全删 top=-1; int addProject(int n,char *na)/增加项目 Project *p=query(n); if (NULL=p) top+; Projecttop.addPr