【电信计费系统客户帐单管理】电信账单
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【电信计费系统客户帐单管理】电信账单程序设计报告
( xx / xx 学年第二学期)
题目:
专学生班级指导指导日
电信计费系统客户帐单管理业姓名学号教师单位计算机软件教学中心期 xx 年05月29日
电信计费系统客户帐单管理
一、课题内容和要求
客户帐单管理是电信计费系统必备的重要功能模块,主要负责对电信各类客户每月帐单的增加、修改、删除、查询、备份等管理工作。本课题以中国电信企业客户帐单管理模块原型参照,要求基于单链表结构对文件存储的客户帐单数据进行排序、查找、计算、显示等造作。通过此可以,熟练掌握单链表结构、文件读写、函数调用等知识,以及查找、排序典型算法的设计与应用。
二、需求分析
要能提供以下几个基本功能:
(1)用户文件与话单文件由程序设计人员预先从键盘上录入,用户资料文件中的数据记录不得少于30条,话单文件中的数据记录不得少于200条,且必须有跨月份、跨年份的通话记录话单。
(2)首先从硬盘读入用户资料和话单记录
(3)对话单进行计费处理,输出费用详单到指定的文件。格式如下:电话号码用户姓名月租费功能费市内电话费用长途电话费用合计 83470000 Zhang Qiang 25.00 6.00 xxxxx xxxxx xxx 83470001 。。。。。。。。。。。。
(4)异常话单提示。有的话单可能是错误的,找出这些话单,不参加计费,另存为一个文件。可能的出错话单有:
①一个号码的通话时长大于三天。
②一个号码在一个时间存在两条以上的记录。
功能框架图如图1所示
(1)提供可操作的主菜单:输出个菜单,用于显示以从文件中加载的总客户信息和若干个可选的功能选项。根据客户输入的选项来运行不同的功能,运行不同的函数。
(2)显示所有用户的功能:根据选项可将文本里的用户信息在屏幕上显示出来。(3)显示所有账单功能:可将文本里的通话账单在屏幕上显示出来。(4)添加用户功能:可在屏幕上进行直接操作,将用户信息添加到记录里。(5)添加账单功能:操作同上,可将新的通话记录添加到记录里。
(6)按用户民查找功能:输入记录里的用户民,可以查询与之相关的通话账单记录。
(7)按电话号码查找功能:输入记录里的已有电话号码,可以查找相应的通话账单记录。
(8)输出花费功能:在操控台和文本中,直接输出所有的花费详情。
三、概要设计
1、主要函数流程图如图2所示:
图2:主程序图
图3:操作菜单系统
图4:显示所有信息菜单
图5:插入数据菜单
图6:计算话费函数
图7::判断话费正误函数
1、顾客类(Customer ):
#include
#include
#include //控制输出格式 class Customer //定义一个顾客类 {
protected: char Name[20]; //用户名 char Number[15]; //用
户电话号码 char CID; //是否来电显示 public: Customer(char* =" ",char* =" " ,char cid=" "); //定义构造函数 ~Customer(); //
定义析构函数 Customer(const Customer & obj); //定义拷贝构造
函数 char* GetName(); //获得用户名字符型指针函数 char* GetNumber(); //获得用户号字符型指针函数 char GetCID(); //看
用户是否有来电显示 friend istream & operator >> (istream & in , Customer & cus);
//友元重载
输入
friend ostream & operator
};
Customer::Customer(char *na, char *num,char cid)
{ strcpy( Name , na ); strcpy( Number , num ); CID=cid; }
Customer::~Customer() { }
Customer::Customer( const Customer & obj ) //构造函数的定义 { strcpy( Name , ); strcpy( Number , obj.Number ); CID=obj.CID; }
char* Customer::GetName() { return Name; }
char* Customer::GetNumber() { return Number; }
char Customer::GetCID() { return CID; }
istream & operator >> (istream & in,Customer & cus)
{ in>>; //输入用户名 in>>cus.Number; //输入用户号码in>>cus.CID; //来电业务信息 return in; }
//友元重载
ostream & operator
2、话单类(Bill ):
#include #include #include #include class Bill {
protected: char Dialing[15]; char Dialed[15]; char StartTime[15]; char EndTime[15]; public: Bill(char *dialing=" ",char *dialed=" ",char *stime=" ",char *etime=" ");//定义构造函数
~Bill(); Bill( const Bill & obj); //帐单的拷贝构造函数char* GetDialing(); //获得主叫号码 char* GetDialed(); //获得被叫号码 char* GetStart(); //获得起始时间 char* GetEnd(); //获得结束时间 int GetDate(); //获得日期 int GetTime(); //获得通话时长 friend int mon_day(int year,int month); //记录不同月份的天数 friend istream & operator >> (istream & in ,Bill & bill); //友元重载输入 friend ostream & operator
Bill::Bill(char *dialing,char *dialed,char *stime,char
*etime) { strcpy( Dialing , dialing ); strcpy( Dialed , dialed );
strcpy( StartTime , stime );
strcpy( EndTime , etime );