1、用户首先输入会员号,然后,选择想要买的书籍放到购书筐中,选择结束后,用户要求系统结帐,系统便计算出费用通知用户。注:本例并不模拟网上购书的全部过程,所以把选择书的过程略去,假设用户已经选定了两本书。3. 课程设计要求:(1)根据实际情况,确定购书人分为3类:普通人、会员、贵宾。“普通人”的购书费用按照原价收取;“会员”购书费的计算方法是:五星级会员按照原价的70%收取, 四星级会员按照原价的80%收取, 三星级会员按照原价的85%收取, 二星级会员按照原价的90%收取, 一星级会员按照原价的95%收取。“贵宾”的购书费根据特别指定的折扣率计算机收取的费用,例如折扣率40%,则按照实际书费的60
2、%收取。(2)对象(类)的设计根据(1)分析,需要设计一个基类buyer和它的3各派生类member(会员) 、layfolk(普通人) 、honoured_guest(贵宾)。基类中包括的数据成员是姓名、购书人编号、地址、购书金额。member类中除了继承了buyer的数据,还增加了会员级别:honoured_guest则增加了折扣率一项。在基类中定义了构造函数和对所有类型的购书人相同的操作,getbuyname()负责取出购书者的姓名;getaddress()负责取出购书者的地址;getpay()负责取出购书者应付出的金额;getid()负责取出购书者的编号。由于对不同购书者的购书额的计算
3、方法不同,所以不能在基类中确定计算方法;又由于各类购书者的数据内容不同,显示的方法也不一样.因此在基类中将setpay和display定义为虚函数。4. 实验条件:(1)主要设备: 586或更高机型,256MB或更高的内存,40G或更大的硬盘。(2)主要软件:操作系统可为Windows9X、WinMe、Win2000或更高版本等;开发环境为VC+6.0或者TC+3.0。(3)参考书目:C+面向对象程序设计第10章 面向对象设计方法与实例 陈维兴等编著 中国铁道出版社 2004年6月第1版C+面向对象程序设计 陈维兴等编著 清华大学出版社 2004年6月第1版5. 实验方法与步骤:#includ
4、estringusing namespace std;class buyfolk;class member;class honoured_guest;class buyerpublic: buyer() name=Null; addr= number=0; expense=0; level=0; void getid(int num) number=num; if(number=0&number21&=40) level=2;41&=60) level=3;61&=80) level=4;81&=100) level=5;=200&=300) =1000&=2000) else coutErr
5、or munber please registerendl; void getbuyname() coutname; void getaddress()Please input your address:addr; virtual void setpay() getbuyname(); getaddress();Please input your expense:expense; virtual void display()Name:nameendlAddress:addrNumber:Expense:expenseprotected: string name; string addr; in
6、t number; int level; double expense; ;class buyfolk:public buyer-Welcome layfolk- buyer:display();setpay();class member: member() if(level=1) expense=expense*0.95; if(level=2) expense*=0.90; if(level=3) expense*=0.85; if(level=4) expense*=0.80; if(level=5) expense*=0.70;-Welcome mumbership-Level:lev
7、elprivate:class honoured_guest: honoured_guest() discount=0;Please input your discount:discount; expense*=(1-discount);-Welcome guest-Discount:discount double discount;int main() buyfolk b10; member m10; honoured_guest h10; int i=0,flag=1,j=0,z=0; while(flag) -Welcome to our bookstore-If your wang t
8、o exit , please input 9999Please input your number:number; mi.getid(number); mi.setpay(); mi.display(); i+; hj.getid(number); hj.setpay(); hj.display(); j+; bz.getid(number); bz.setpay(); bz.display(); z+; else if(number=9999) flag=0;-Welcome again- return 0;6. 实验总结: 通过这次实验通过我掌握了面向对象程序设计软件开发方法,即通过将软件开发过程划分为明显的几个阶段:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1