模拟网上购书的结帐功能-项目说明书2_第1页
模拟网上购书的结帐功能-项目说明书2_第2页
模拟网上购书的结帐功能-项目说明书2_第3页
模拟网上购书的结帐功能-项目说明书2_第4页
模拟网上购书的结帐功能-项目说明书2_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、面向对象程序设计基础项目设计说明书项 目:模拟网上购书的结账系统专 业: 软件工程 班 级: 16 级 1 班 学 号: 16044115 姓 名: 李泽 哈尔滨学院·信息工程学院一、功能要求模拟实现网上购书的结账功能。使用C+,实现图书信息的输入、输出,购书人信息的输出、购书账单的结算、保存等功能。二、设计要求1设计类。包含:(1)定义基类buyer,其中含有数据成员:姓名、购书人编号、地址等。(2)定义基类buyer的派生类:普通人、会员、贵宾。要求会员类增加数据成员会员级别,贵宾类增加数据成员折扣率。(3)定义书类book,其中含有数据成员:书号、书名、作者、定价等。2. 系统

2、实现以下相应的各项功能:(1)图书信息的输入、输出;(2)购书人信息的输出;(3)购书账单的结算;(4)购书信息的保存。3其它要求:(1)使用构造函数、析构函数和成员函数;(2)使用友元、继承;(3)使用文件保存;(4)使用适当的注释进行说明;(5)允许适当地增加其它功能。三、全部的程序源代码(有相应注释)/buy.hclass buyerprotected:string name;int buyerID;string address;double pay;public:buyer();buyer(string n,int b,string a,double p);string getbuyn

3、ame();string getaddress();double getpay();int getid();virtual void display()=0;virtual void setpay(double=0)=0;class member:public buyerint leaguer_grade;public:member(string n,int b,int l,string a,double p):buyer(n,b,a,p)leaguer_grade=l;void display();void setpay(double p);class honoured_guest:publ

4、ic buyerdouble discount_rate;public:honoured_guest(string n,int b,double r,string a,double p):buyer(n,b,a,p)discount_rate=r;void display();void setpay(double p);class layfolk:public buyerpublic:layfolk(string n,int b,string a,double p):buyer(n,b,a,p)void display();void setpay(double p);buyer:buyer()

5、name=""buyerID=0;address=" "pay=0; buyer:buyer(string n,int b,string a,double p)name=n;buyerID=b;address=a;pay=p; double buyer:getpay()return pay;string buyer:getaddress()return address;string buyer:getbuyname()return name;int buyer:getid()return buyerID;/void member:display()cou

6、t<<"购书人姓名:"<<name<<"t"cout<<"购书人编号:"<<buyerID<<"t"cout<<"购书人为会员,级别:"<<leaguer_grade<<"n"cout<<"购书地址:"<<address<<"n"/void member:setpay(double p)if(l

7、eaguer_grade=1) pay=.95*p+pay;else if(leaguer_grade=2) pay=.90*p+pay;else if(leaguer_grade=3) pay=.85*p+pay;else if(leaguer_grade=4) pay=.8*p+pay;else if(leaguer_grade=5) pay=.7*p+pay;else cout<<"级别错误!"/void member:display()void honoured_guest:display()cout<<"购书人姓名:"&

8、lt;<name<<"t"cout<<"购书人编号:"<<buyerID<<"t"cout<<"购书人为贵宾,折扣率为:"<<discount_rate*100<<"%n"cout<<"购书地址:"<<address<<"n"void honoured_guest:setpay(double p)pay=pay+(1-discoun

9、t_rate)*p;void layfolk:display()cout<<"购书人姓名:"<<name<<"t"cout<<"购书人编号:"<<buyerID<<"t"cout<<"购书人为普通人:"<<"n"cout<<"购书地址:"<<address<<"n"void layfolk:setpay(d

10、ouble p)pay=pay+p;/book.hclass bookprotected:string book_ID;string book_name;string author;string publishing;double price;public:book()book_ID=""book_name=""author=""publishing=""price=0;book(string b_id,string b_n,string au,string pu,double pr)book_ID=b_id;bo

11、ok_name=b_n;author=au;publishing=pu;price=pr;void display()cout<<"书号:"<<book_ID<<"t"cout<<"书名:"<<book_name<<"t"cout<<"作者:"<<author<<"n"cout<<"出版社:"<<publishing<&

12、lt;"t"cout<<"定价:"<<price<<"n"string getbook_ID()return book_ID;string getbook_name()return book_name;string getauthor()return author;string getpublishing()return publishing;double getprice()return price;/strclass.h#include"string.h"class stri

13、ngfriend ostream& operator<<(ostream& S,const string& Str);friend istream& operator>>(istream& S,string& Str);public:string();string(const string& Str);void operator=(const string& Str);string();string(char *p);private:short m_Length;char*m_Date;string:str

14、ing()m_Length=1;m_Date=new char m_Length;memcpy(m_DATE,"",m_Length);string:string(const string& Str)m_Length=Str.m_Length; m_Date=new char m_Length;memcpy(m_Date,Str.m_Date,m_Length);string:string(char*p) m_Length=strlen(p)+1;m_Date=new char m_Length;memcpy(m_Date,p,m_Length);void stri

15、ng:operator =(const string& Str)if(&Str!=this)delete m_Date;m_Length=Str.m_Length;m_Date=new char m_Length; memcpy(m_Date,Str.m_Date,m_Length);return;string:string()deletem_Date;ostream& operator<<(ostream& S,const string& Str)short i;for(i=1;i<Str.m_Length-1;i+)S<<

16、;Str.m_Datei;return S;istream& operator>>(istream& S,string& Str)const short BUFLEN=256;char BufBUFLEN;memset(Buf,0,BUFLEN);if(S.peek()='n')S.ignore();S.getline(Buf,BUFLEN,'n'); Str=Buf;return S;/buy_book.cpp#include<string>#include<iostream>using namesp

17、ace std;#include"buy.h"#include"book.h"class order public: order() buyerID=0; ordercount+; orderID=ordercount; listcount=0; void setbuyid(int b_id) buyerID=b_id; void buy_one_book(string b_id) orderlistlistcount=b_id; listcount+; void display(); private: static int ordercount; in

18、t orderID; int buyerID; int listcount; string orderlist20;void order:display() int i; cout<<"n订单信息nn订单号:"<<orderID<<"t" cout<<"购书人编号:"<<buyerID<<"n" cout<<"所购图书书号:" for(i=0;i<listcount;i+) cout<<orde

19、rlisti<<"t" cout<<endl;int order:ordercount=0;void main()int i=0,j=0;int buyerid,flag;book *c2; /用指针数组存放book对象的地址layfolk b1("林小茶",1,"北京",0);honoured_guest b2("王遥遥",2,.6,"上海",0);member b3("赵红艳",3,5,"广州",0);order o120;buyer *b3=&b1,&b2,&b3; /用指针数组存放继承了buyer类的3个对象的地址book c1("7-302-040504-6","c+程序设计","谭浩强","清华",25);book c2("7-402-03388-9","数据结构","许卓群","北大",20);c0=&c1;c1=&c

温馨提示

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

评论

0/150

提交评论