《c++程序设计》课程设计报告
设计题目:手机资费系统
班级: 15级信息一班 学号: 20153873
报告人姓名: 辛靓
指导教师: 费玉奎
实验地点: 山东农业大学南校区计算机实验室
完成起止日期: 2015.6.27—2016.7.1
一、设计思路:
一、数据类和操作类,系统功能规划:
一般设计一个系统都包含数据类和操作类,手机资费系统是面向用户手机资费添加和查询的系统,所以数据类中一定要包含一个用户基本信息类和一个套餐基本信息类,除此之外还添加了用户账号密码密码管理功能,所以又添加了一个账号、密码类;而相应的包含了两个操作类——用户操作类和管理员操作类。
对于手机资费的使用用户基本信息类所包含的数据成员有:
1、用户最基本信息:用户姓名、手机号;
2、套餐代码——进行套餐的添加、选择、查询、更改操作;
3、话费余额——进行话费余额查询、业务模拟操作;
4、剩余通话、剩余流量——进行业务查询、业务模拟操作。
对于套餐类数据成员有:
1、套餐最基本信息:套餐代码、套餐名称(本套餐主要根据移动和联通的相应业务添加内容);
2、月租、套餐内通话、套餐内流量——管理员添加套餐项目;
3、套餐外通话计费、套餐外流量计费——套餐外计费标准、进行业务模拟。
账号和密码主要用于用户模拟业务;
管理员操作类实现的主要功能分两大类:
1、用户信息操作:
A)添加用户;
B)修改用户信息;
C)删除用户信息;
D)查询用户基本信息;
··············
2、套餐信息操作:
A)添加套餐;
B)删除套餐;
C)修改套餐;
D)查询套餐;
···············
客户端操作类的主要功能:对套餐的增、删、查、改和业务模拟话费查询等····主要如下:
A)查看话费余额;
B) 业务办理、查询;
C)业务模拟;
D)使用情况;
二、设计问题解决:
在操作类内的构造和析构函数内编写文件的读取和储存。实现了程序一运行就将所有内容存入向量组中,在操作完之后再将全部内容重新导出,储存于文件。
二、具体实现:
class user
{
private:
string name;//姓名
string number;// 手机号码
int taocan_id;//套餐代码
double yue;//余额
int tonghua;//通话
double liuliang;//流量
public:
user(string na,string nu,int i,double y,int t,double l):name(na),number(nu),taocan_id(i),yue(y),tonghua(t),liuliang(l){}
user(){}
string getname(){return name;}
void setname(string na){name=na;}
string getnumber(){return number;}
void setnumber(string nu){number=nu;}
int gettaocan_id(){return taocan_id;}
void settaocan_id(int i){taocan_id=i;}
double getyue(){return yue;}
void setyue(double y){yue=y;}
int gettonghua(){return tonghua;}
void settonghua(int t){tonghua=t;}
double getliuliang(){return liuliang;}
void setliuliang(double l){liuliang =l;}
friend istream& operator>>(istream&is,user&c);
friend ostream& operator<<(ostream&os,const user&c);
};
istream& operator>>(istream&is,user&c)
{
is>>c.name>>c.number>>c.taocan_id>>c.yue>>c.tonghua>>c.liuliang;
return is;
}
ostream&operator<<(ostream&os,const user&c)
{
os<<"姓名:"<<c.name<<" ";
os<<"号码:"<<c.number<<":"<<endl;
os<<"套餐代码:"<<c.taocan_id<<" ";
os<<"余额:"<<c.yue<<" ";
os<<"已通话时间:"<<c.tonghua<<" ";
os<<"已使用流量:"<<c.liuliang<<endl;
return os;
}
class taocan
{
private:
int id;
string name;
double cost;//每月花费
int time;//套餐每月包含的通话时间
double liu;
double cost_time;
double cost_liu;
public:
taocan(){}
taocan(int i,string na,double c,int t,double l,double ct,double c