实验设计二模拟网上购书的结账功能.docx
- 文档编号:3556492
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:10
- 大小:62.46KB
实验设计二模拟网上购书的结账功能.docx
《实验设计二模拟网上购书的结账功能.docx》由会员分享,可在线阅读,更多相关《实验设计二模拟网上购书的结账功能.docx(10页珍藏版)》请在冰豆网上搜索。
实验设计二模拟网上购书的结账功能
北京信息科技大学
实验设计报告
课程名称面向对象程序设计实验设计
题目模拟网上购书的结帐功能
指导教师李春强
设计起止日期2007-8-27~2007-8-31
设计地点小营校区计算机中心
系别计算机信息系统系
专业信息安全
学生姓名宋君易
班级/学号2009012221信安0901
成绩___________________
1.课程设计目的:
通过本实验使学生利用面向对象程序设计软件开发方法,即软件开发过程划分为明显的几个阶段:
问题分析和功能定义、对象设计及实现、核心控制设计、编码与测试、进化等实现模拟网上购书的结帐功能方面的应用。
2.课程设计内容:
用户在网上购书以后,系统根据购书人的不同类型计算出购书人的费用。
网上购书的一般过程:
用户首先输入会员号,然后,选择想要买的书籍放到购书筐中,选择结束后,用户要求系统结帐,系统便计算出费用通知用户。
注:
本例并不模拟网上购书的全部过程,所以把选择书的过程略去,假设用户已经选定了两本书。
3.课程设计要求:
(1)根据实际情况,确定购书人分为3类:
普通人、会员、贵宾。
①“普通人”的购书费用按照原价收取;
②“会员”购书费的计算方法是:
五星级会员按照原价的70%收取,四星级会员按照原价的80%收取,三星级会员按照原价的85%收取,二星级会员按照原价的90%收取,一星级会员按照原价的95%收取。
③“贵宾”的购书费根据特别指定的折扣率计算机收取的费用,例如折扣率40%,则按照实际书费的60%收取。
(2)对象(类)的设计
①根据
(1)分析,需要设计一个基类buyer和它的3各派生类member(会员)、layfolk(普通人)、honoured_guest(贵宾)。
基类中包括的数据成员是姓名、购书人编号、地址、购书金额。
member类中除了继承了buyer的数据,还增加了会员级别:
honoured_guest则增加了折扣率一项。
②在基类中定义了构造函数和对所有类型的购书人相同的操作,getbuyname()负责取出购书者的姓名;getaddress()负责取出购书者的地址;getpay()负责取出购书者应付出的金额;getid()负责取出购书者的编号。
由于对不同购书者的购书额的计算方法不同,所以不能在基类中确定计算方法;又由于各类购书者的数据内容不同,显示的方法也不一样.因此在基类中将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.实验方法与步骤:
#include
#include
usingnamespacestd;
classbuyfolk;
classmember;
classhonoured_guest;
classbuyer
{
public:
buyer()
{
name="Null";
addr="Null";
number=0;
expense=0;
level=0;
}
voidgetid(intnum)
{
number=num;
if(number>=0&&number<=20)
{level=1;}
elseif(number>21&&number<=40)
{level=2;}
elseif(number>41&&number<=60)
{level=3;}
elseif(number>61&&number<=80)
{level=4;}
elseif(number>81&&number<=100)
{level=5;}
elseif(number>=200&&number<=300)
{}
elseif(number>=1000&&number<=2000)
{}
else
cout<<"Errormunberpleaseregister"< } voidgetbuyname() { cout<<"Pleaseinputyourname: "< cin>>name; } voidgetaddress() { cout<<"Pleaseinputyouraddress: "< cin>>addr; } virtualvoidsetpay() { getbuyname(); getaddress(); cout<<"Pleaseinputyourexpense: "< cin>>expense; } virtualvoiddisplay() { cout<<"Name: "< "< "< "< } protected: stringname; stringaddr; intnumber; intlevel; doubleexpense; }; classbuyfolk: publicbuyer { public: virtualvoiddisplay() { cout<<"--Welcomelayfolk--"< buyer: : display(); } virtualvoidsetpay() { buyer: : setpay(); } }; classmember: publicbuyer { public: member() { } virtualvoidsetpay() { buyer: : setpay(); 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; } virtualvoiddisplay() { cout<<"--Welcomemumbership--"< buyer: : display(); cout<<"Level: "< } private: }; classhonoured_guest: publicbuyer { public: honoured_guest() { discount=0; } virtualvoidsetpay() { buyer: : setpay(); cout<<"Pleaseinputyourdiscount: "< cin>>discount; expense*=(1-discount); } virtualvoiddisplay() { cout<<"--Welcomeguest--"< buyer: : display(); cout<<"Discount: "< } private: doublediscount; }; intmain() { intnumber; buyfolkb[10]; memberm[10]; honoured_guesth[10]; inti=0,flag=1,j=0,z=0; while(flag) { cout<<"--Welcometoourbookstore--"< cout<<"Ifyourwangtoexit,pleaseinput9999"< cout<<"Pleaseinputyournumber: "< cin>>number; if(number>=0&&number<=100) { cout<<"--Welcomemumbership--"< m[i].getid(number); m[i].setpay(); m[i].display(); i++; cout< } elseif(number>=200&&number<=300) { cout<<"--Welcomeguest--"< h[j].getid(number); h[j].setpay(); h[j].display(); j++; cout< } elseif(number>=1000&&number<=2000) { cout<<"--Welcomelayfolk--"< b[z].getid(number); b[z].setpay(); b[z].display(); z++; cout< } elseif(number==9999) { flag=0; cout<<"--Welcomeagain--"< } else cout<<"Errormunberpleaseregister"< } return0; } 6.实验总结: 通过这次实验通过我掌握了面向对象程序设计软件开发方法,即通过将软件开发过程划分为明显的几个阶段: 问题分析和功能定义、对象设计及实现、核心控制设计、编码与测试、进化等实现模拟网上购书的结帐功能方面的应用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验设计 模拟 网上 购书 结账 功能