实验研究设计二模拟网上购书的结账功能.docx

上传人:b****5 文档编号:5613667 上传时间:2022-12-29 格式:DOCX 页数:11 大小:44.40KB
下载 相关 举报
实验研究设计二模拟网上购书的结账功能.docx_第1页
第1页 / 共11页
实验研究设计二模拟网上购书的结账功能.docx_第2页
第2页 / 共11页
实验研究设计二模拟网上购书的结账功能.docx_第3页
第3页 / 共11页
实验研究设计二模拟网上购书的结账功能.docx_第4页
第4页 / 共11页
实验研究设计二模拟网上购书的结账功能.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

实验研究设计二模拟网上购书的结账功能.docx

《实验研究设计二模拟网上购书的结账功能.docx》由会员分享,可在线阅读,更多相关《实验研究设计二模拟网上购书的结账功能.docx(11页珍藏版)》请在冰豆网上搜索。

实验研究设计二模拟网上购书的结账功能.docx

实验研究设计二模拟网上购书的结账功能

北京信息科技大学

实验设计报告

 

课程名称面向对象程序设计实验设计

题目模拟网上购书的结帐功能

指导教师李春强

设计起止日期

设计地点

 

系别信息安全

专业____信安1102______________

学生姓名_____王鑫_____________

班级/学号_信安1102__2011012245_____

成绩___________________

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;

classbuyer

{

public:

buyer(stringn,stringa,ints,intm)

{

name=n;

address=a;

salary=s;

num=m;

}

//getbuyname()负责取出购书者的姓名;getaddress()负责取出购书者的地址;getpay()负责取出购书者应付出的金额;getid()

voidgetbuyname()

{

cout<<"购书人的姓名是:

"<

}

voidgetaddress()

{

cout<<"购书人的地址是:

"<

}

voidgetpay()

{

cout<<"购书者应付的金额:

"<

}

voidgetid()

{

cout<<"购书者的编号:

"<

}

intexploy()

{

returnnum;

}

virtualvoiddisplay()=0;

virtualvoidsetpay()=0;

private:

protected:

stringname;//姓名

intnum;//购书人编号

stringaddress;//地址

intsalary;//购书金额

 

};

classmember:

publicbuyer//会员

{

public:

member(stringn,stringa,ints,intm,intl):

buyer(n,a,s,m)

{

level=l;

}

virtualvoidsetpay()

{cout<<"--欢迎您的光临,member--"<

getbuyname();

getaddress();

getid();

getpay();

cout<<"确定你要买的书么?

N/Y"<

charc;

cin>>c;

if(c=='y')

{

if(level==1)

salary=salary*0.95;

if(level==2)

salary*=0.90;

if(level==3)

salary*=0.85;

if(level==4)

salary*=0.80;

if(level==5)

salary*=0.70;

display();

}

elsecout<<"已经取消交易"<

}

virtualvoiddisplay()

{

cout<<"您已经支付"<

}

private:

protected:

intlevel;//级别

};

classhonoured_guest:

publicbuyer//

{

public:

honoured_guest(stringn,stringa,ints,intm,floatf):

buyer(n,a,s,m)

{

discount=f;

}

virtualvoidsetpay()

{

cout<<"--欢迎您的光临honoured_guest--"<

getbuyname();

getaddress();

getid();

getpay();

cout<<"确定你要买的书么?

N/Y"<

charc;

cin>>c;

if(c=='y')

{

salary=discount*salary;

display();

}

elsecout<<"已经取消交易"<

}

virtualvoiddisplay()

{

cout<<"您已经支付"<

}

private:

protected:

floatdiscount;//折扣率

};

classlayfolk:

publicbuyer//路人

{

public:

layfolk(stringn,stringa,ints,intm):

buyer(n,a,s,m)

{

}

virtualvoidsetpay()

{

cout<<"--欢迎您的光临layfolkt--"<

getbuyname();

getaddress();

getid();

getpay();

cout<<"确定你要买的书么?

N/Y"<

charc;

cin>>c;

if(c=='y')

{

display();

}

elsecout<<"已经取消交易"<

}

virtualvoiddisplay()

{

cout<<"您已经支付"<

}

private:

protected:

};

intmain()

{

inth;

intflag=0;

inti1;

stringn="wangx",w="wangxin",wy="wangxingyu";

stringb="beijing",c="chongqing",t="tianjin";

//事先初始化六个数据

layfolka[3]={layfolk(n,b,1000,10),layfolk(w,c,1000,11),layfolk(wy,t,1000,12)};

memberm[3]={member(n,b,1000,1,4),member(w,c,1000,2,3),member(wy,t,1000,3,2)};

honoured_guestg[3]={honoured_guest(n,b,1000,1,0.4),honoured_guest(n,b,1000,1,0.4),honoured_guest(n,b,1000,1,0.4)};

while(true)

{

cout<<"--欢迎来到书店订购系统--"<

cout<<"按任意键进入订购界面,如果您想要退出请按q"<

if('q'==getchar())break;

else

{

cout<<"请输入您的编号"<

cin>>h;

for(inti=0;i<3;i++)

{

if(h==a[i].exploy()){flag=1;i1=i;break;}

}

for(inti=0;i<3;i++)

{

if(h==m[i].exploy()){flag=2;i1=i;break;}

}

for(inti=0;i<3;i++)

{

if(h==g[i].exploy()){flag=3;i1=i;break;}

}

if(flag==0)cout<<"查无此编号,请确定以后再输入"<

elseif(flag==1)a[i1].setpay();

elseif(flag==2)m[i1].setpay();

elseif(flag==3)g[i1].setpay();

{

}

}

}

}

 

 

6.实验总结:

通过本实验我学会了利用面向对象程序设计软件开发方法,即软件开发过程划分为明显的几个阶段:

问题分析和功能定义、对象设计及实现、核心控制设计、编码与测试、进化等实现模拟网上购书的结帐功能方面的应用。

大体的课设的过程是如下:

用户在网上购书以后,系统根据购书人的不同类型计算出购书人的费用。

网上购书的一般过程:

用户首先输入会员号,然后,选择想要买的书籍放到购书筐中,选择结束后,用户要求系统结帐,系统便计算出费用通知用户。

 

附录:

 

说明:

1.实验过程由学生记录实验的过程,包括画出流程图、操作过程、遇到哪些问题以及如何解决等;

2.实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等;

3.源程序(带注释)、代码、具体语句等,若表格空间不足时可作为附录另外附页。

4.程序测试后,将多组测试结果附在程序后;

5.提交报告时请将说明部分去掉。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1