实验设计二(模拟网上购书的结账功能)_第1页
实验设计二(模拟网上购书的结账功能)_第2页
实验设计二(模拟网上购书的结账功能)_第3页
实验设计二(模拟网上购书的结账功能)_第4页
实验设计二(模拟网上购书的结账功能)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京信息科技大学实验设计报告课程名称面向对象程序设计实验设计题目模拟网上购书的结帐功能指导教师李春强设计起止日期2007-8-27设计地点小营校区计算机中心系别计算机信息系统系专业信息安全学生姓名宋君易班级/学号2009012221信安0901成绩___________________课程设计目的:通过本实验使学生利用面向对象程序设计软件开发方法,即软件开发过程划分为明显的几个阶段:问题分析和功能定义、对象设计及实现、核心控制设计、编码与测试、进化等实现模拟网上购书的结帐功能方面的应用。课程设计内容:用户在网上购书以后,系统根据购书人的不同类型计算出购书人的费用。网上购书的一般过程:用户首先输入会员号,然后,选择想要买的书籍放到购书筐中,选择结束后,用户要求系统结帐,系统便计算出费用通知用户。注:本例并不模拟网上购书的全部过程,所以把选择书的过程略去,假设用户已经选定了两本书。课程设计要求:(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定义为虚函数。实验条件:(1)主要设备:586或更高机型,256MB或更高的内存,40G或更大的硬盘。(2)主要软件:①操作系统可为Windows9X、WinMe、Win2000或更高版本等;②开发环境为VC++6.0或者TC++3.0。(3)参考书目:①《C++面向对象程序设计》第10章面向对象设计方法与实例陈维兴等编著中国铁道出版社2004年6月第1版②《C++面向对象程序设计》陈维兴等编著清华大学出版社2004年6月第1版实验方法与步骤:#include<iostream>#include<string>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"<<endl; }ﻩvoidgetbuyname()ﻩ{ﻩ cout<<"Pleaseinputyourname:"<<endl;ﻩﻩcin>>name;ﻩ} voidgetaddress()ﻩ{ﻩﻩcout<<"Pleaseinputyouraddress:"<<endl;ﻩﻩcin>>addr;ﻩ} virtualvoidsetpay() { getbuyname(); getaddress();ﻩﻩcout<<"Pleaseinputyourexpense:"<<endl; ﻩcin>>expense; } virtualvoiddisplay() {ﻩﻩcout<<"Name:"<<name<<endl<<"Address:"<<addr<<endl<<"Number:"<<number<<endl<<"Expense:"<<expense<<endl; }protected: stringname; stringaddr; intnumber;ﻩintlevel;ﻩdoubleexpense;ﻩ };classbuyfolk:publicbuyer{public: virtualvoiddisplay()ﻩ{ cout<<"--Welcomelayfolk--"<<endl; 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--"<<endl;ﻩ buyer::display();ﻩﻩcout<<"Level:"<<level<<endl; }private:};classhonoured_guest:publicbuyer{public:ﻩhonoured_guest() {ﻩﻩdiscount=0;ﻩ}ﻩvirtualvoidsetpay()ﻩ{ buyer::setpay();ﻩ cout<<"Pleaseinputyourdiscount:"<<endl; cin>>discount; expense*=(1-discount);ﻩ}ﻩvirtualvoiddisplay() { ﻩcout<<"--Welcomeguest--"<<endl; buyer::display(); cout<<"Discount:"<<discount<<endl;ﻩ}private: doublediscount;};intmain(){ﻩintnumber;ﻩbuyfolkb[10];ﻩmemberm[10];ﻩhonoured_guesth[10]; inti=0,flag=1,j=0,z=0;ﻩwhile(flag)ﻩ{ﻩﻩﻩcout<<"--Welcometoourbookstore--"<<endl; ﻩcout<<"Ifyourwangtoexit,pleaseinput9999"<<endl; cout<<"Pleaseinputyournumber:"<<endl; ﻩcin>>number; ﻩif(number>=0&&number<=100)ﻩﻩ{ cout<<"--Welcomemumbership--"<<endl; ﻩﻩm[i].getid(number); ﻩ m[i].setpay();ﻩﻩﻩm[i].display(); i++; cout<<endl<<endl; } elseif(number>=200&&number<=300) ﻩ{ﻩ cout<<"--Welcomeguest--"<<endl; ﻩh[j].getid(number);ﻩ h[j].setpay();ﻩ h[j].display(); ﻩ j++; ﻩﻩcout<<endl<<endl; } elseif(number>=1000&&number<=2000) ﻩ{ cout<<"--Welcomelayfolk--"<<endl; b[z].getid(number); b[z].setpay();ﻩﻩﻩb[z].display();ﻩﻩﻩz++;ﻩ ﻩcout<<endl<<endl;ﻩﻩ}ﻩﻩelseif(number==9999) ﻩ{ ﻩflag=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论