北京信息科技大学
实验设计报告
课程名称面向对象程序设计实验设计
题目模拟网上购书的结帐功能
指导教师李春强
设计起止日期 2007-8-27 ~ 2007-8-31
设计地点小营校区计算机中心
系别计算机信息系统系
专业__________________
学生姓名__________________
班级/学号__________________
成绩___________________
课程设计目的:
通过本实验使学生利用面向对象程序设计软件开发方法,即软件开发过程划分为明显的几个阶段:问题分析和功能定义、对象设计及实现、核心控制设计、编码与测试、进化等实现模拟网上购书的结帐功能方面的应用。
课程设计内容:
用户在网上购书以后,系统根据购书人的不同类型计算出购书人的费用。
网上购书的一般过程:用户首先输入会员号,然后,选择想要买的书籍放到购书筐中,选择结束后,用户要求系统结帐,系统便计算出费用通知用户。
注:本例并不模拟网上购书的全部过程,所以把选择书的过程略去,假设用户已经选定了两本书。
课程设计要求:
(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()负责取出购书者的编号。由于对不同购书者的购书额的计算方法不同,所以不能在基类中确定计算方法;又由于各类购书者的数据内容不同,。
实验条件:
(1)主要设备: 586或更高机型,256MB或更高的内存,40G或更大的硬盘。
(2)主要软件:
①操作系统可为Windows9X、WinMe、Win2000或更高版本等;
②开发环境为VC++++。
(3)参考书目:
①《C++面向对象程序设计》第10章面向对象设计方法与实例陈维兴等编著中国铁道出版社 2004年6月第1版
②《C++面向对象程序设计》陈维兴等编著清华大学出版社 2004年6月第1版
实验方法与步骤:
实验总结:
附录:
#include<>
#include<>
class string
{
friend 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_data;//字符串开始地址
};
string::string()
{
m_length=1;
m_data=new char[m_length];
memcpy(m_data,"",m_length);
}
string::string(const string& str)
{
m_length=;
m_data=new char[m_length];
memcpy(m_data,,m_length);
}
string::string(char *p)
{
m_length=strlen(p)+1;
m_data=new char[m_length];
memcpy(m_dat
实验设计二(模拟网上购书的结账功能) 来自淘豆网www.taodocs.com转载请标明出处.