C++公司客户跟踪系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

宁波工程学院《面向对象课程设计》报告课程设计题目:编写公司客户跟踪系统学院名称:电子与信息工程学院专业:计算机科学与技术学生姓名:朱光学号:10401010413指导教师:周林华2012年1月3日一、目标与要求用C++语言编写程序实现公司客户跟踪系统,要求:(1)设计一个利用文件处理方式实现对公司客户的管理。(2)具有增加客户信息、显示客户信息、保存客户信息、删除客户信息、查找客户信息、按信誉度对客户进行分类。(3)在系统的设计中,至少要用到面向对象的一种机制。二、分析与实现类声明://客户类classCustomer{protected:charnum[6];//客户号charname[12];//姓名charage[6];//年龄public:Customer(){}virtual~Customer(){}constchar*GetNum()const{returnnum;}virtualvoidInput()=0;virtualvoidShow()const=0;virtualvoidRead(fstream&f)const=0;virtualvoidWrite(fstream&f)const=0;};//高信誉客户classGood:virtualpublicCustomer{protected:charbusiness[25];//主要业务public:Good(){}virtual~Good(){}voidInput(){cout\t\t******************************endl;cout\t\t\t客户号:;cinnum;cout\t\t\t姓名:;cinname;cout\t\t\t年龄:;cinage;cout\t\t\t主要业务:;cinbusiness;cout\t\t******************************endl;}voidShow()const{cout******************************************************************************endl;cout高信誉客户:endl;coutsetw(6)客户号setw(12)姓名setw(6)年龄setw(25)主要业务endl;coutsetw(6)numsetw(12)namesetw(6)agesetw(25)businessendl;}voidRead(fstream&f)const{f.read((char*)this,sizeof(Good));}voidWrite(fstream&f)const{f.write((char*)this,sizeof(Good));}};//低信誉客户classBad:virtualpublicCustomer{protected:doublemoney;//交易金额public:Bad(){}virtual~Bad(){}voidInput(){cout\t\t******************************endl;cout\t\t\t客户号:;cinnum;cout\t\t\t姓名:;cinname;cout\t\t\t年龄:;cinage;cout\t\t\t交易金额:;cinmoney;cout\t\t******************************endl;}voidShow()const{cout******************************************************************************endl;cout低信誉客户:endl;coutsetw(6)客户号setw(12)姓名setw(6)年龄setw(25)交易金额endl;coutsetw(6)numsetw(12)namesetw(6)agesetw(25)moneyendl;}voidRead(fstream&f)const{f.read((char*)this,sizeof(Bad));}voidWrite(fstream&f)const{f.write((char*)this,sizeof(Bad));}};//一般信誉客户classNormal:publicGood,publicBad{public:Normal(){}virtual~Normal(){}voidInput(){cout\t\t******************************endl;cout\t\t\t客户号:;cinnum;cout\t\t\t姓名:;cinname;cout\t\t\t年龄:;cinage;cout\t\t\t主要业务:;cinbusiness;cout\t\t\t交易金额:;cinmoney;cout\t\t******************************endl;}voidShow()const{cout******************************************************************************endl;cout一般信誉客户:endl;coutsetw(6)客户号setw(12)姓名setw(6)年龄setw(25)主要业务setw(25)交易金额endl;coutsetw(6)numsetw(12)namesetw(6)agesetw(25)businesssetw(25)moneyendl;}voidRead(fstream&f)const{f.read((char*)this,sizeof(Normal));}voidWrite(fstream&f)const{f.write((char*)this,sizeof(Normal));}};索引结构:structIndexType{charnum[8];intposition;charcustomerType;booldelTag;};#defineNUM_OF_INCREMENT1000classCustomerManage{private:fstreamfile;IndexType*indexTable;intmaxSize;intcount;voidAddIndexItem(constIndexType&e);voidAddData();voidModifyData();voidDisplayData();voidSearchData();voidDeleteData();public:CustomerManage();virtual~CustomerManage();voidRun();};CustomerManage::CustomerManage(){ifstreamindexFile(customer.idx,ios::binary);if(!indexFile.fail()){indexFile.seekg(0,ios::end);count=indexFile.tellg()/sizeof(IndexType);maxSize=count+NUM_OF_INCREMENT;indexTable=newIndexType[maxSize];indexFile.seekg(0,ios::beg);inti=0;indexFile.read((char*)&indexTable[i++],sizeof(IndexType));while(!indexFile.eof()){indexFile.read((char*)&indexTable[i++],sizeof(IndexType));}indexFile.close();}else{count=0;maxSize=count+NUM_OF_INCREMENT;indexTable=newIndexType[maxSize];}ifstreamiFile(customer.dat);if(iFile.fail()){ofstreamoFile(customer.dat);if(oFile.fail())throw(打开文件失败!);oFile.close();}elseiFile.close();file.open(customer.dat,ios::in|ios::out|ios::binary);if(file.fail())throw(打开文件失败!);}CustomerManage::~CustomerManage(){ofstreamindexFile(customer.idx,ios::binary);for(inti=0;icount;i++){indexFile.write((char*)&indexTable[i],sizeof(IndexType));}indexFile.close();file.close();}voidCustomerManage::AddIndexItem(constIndexType&e){if(countmaxSize){maxSize=maxSize+NUM_OF_INCREMENT;IndexType*tmpIndexTable=newIndexType[maxSize];for(inti=0;icount;i++){tmpIndexTable[i]=indexTable[i];}delete[]indexTable;indexTable=tmpIndexTable;}indexTable[count++]=e;}//增加客户信息voidCustomerManage::AddData(){Customer*pCustomer;IndexTypeitem;item.delTag=false;file.seekg(0,ios::end);do{do{cout\t\t******************************endl;cout\t\t\t客户类型:endl;cout\t\t\t1、高信誉客户endl;cout\t\t\t2、低信誉客户endl;cout\t\t\t3、一般信誉客户endl;cout\t\t\t请在1~3之间选择endl;cout\t\t******************************endl;cinitem.customerType;item.customerType=tolower(item.customerType);}while(item.customerType!='1'&&item.customerType!='2'&&item.customerType!='3');if(item.customerType=='1')pCustomer=newGood;elseif(item.customerType=='2')pCustomer=newBad;elsepCustomer=newNormal;pCustomer-Input();strcpy(item.num,pCustomer-GetNum());item.position=file.tellg();AddIndexItem(item);pCustomer-Write(file);deletepCustomer;cout继续添加客户么?;}while(UserSaysYes

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功