【电信计费系统客户帐单管理】电信账单
电信综合业务管理系统介绍

电信综合业务管理系统介绍电信综合业务管理系统是指一种集成了电信运营商日常经营管理所需的各种业务功能的信息系统。
该系统的主要目标是提高电信运营商的管理效率和服务质量,以应对日益激烈的市场竞争和日益增长的客户需求。
本文将对电信综合业务管理系统的功能、特点和应用进行详细介绍。
一、系统功能1. 客户管理功能:包括客户信息录入、客户账户管理、客户投诉处理等功能,以便电信运营商能够更好地了解客户需求和提供个性化的服务。
2. 计费管理功能:自动记录客户通信消费的信息,并生成相关账单。
同时,可以进行费用核对和费用清单导出等功能。
3. 业务管理功能:涵盖包括业务开通、维护、变更、关闭等全生命周期管理。
包括语音、数据、增值业务等各类业务管理。
4. 在线支付功能:提供在线支付的接口,使得客户可以方便地进行充值、账单支付等操作。
5. 网络监控功能:通过对网络设备的监控,实时掌握网络的运行状态,及时发现和解决网络故障,保证网络的稳定运行。
6. 服务质量管理功能:对网络中的各项服务进行实时监控和分析,以及对客户的服务质量进行评估和管理。
二、系统特点1. 高效性:电信综合业务管理系统采用先进的技术手段和优化的业务流程,能够高效地完成各项任务,提高管理效率。
2. 一体化:系统集成了客户管理、计费管理、业务管理等多个模块,能够满足运营商日常管理的各项需求,避免了多个系统之间的数据不一致性和冗余。
3. 可拓展性:系统具有良好的可拓展性,可以根据实际业务需求进行定制开发和功能扩展。
4. 可靠性:系统采用了多重备份和灾备技术,能够在系统出现故障时进行快速恢复,保证系统的稳定运行。
5. 安全性:系统采用了多重身份验证、数据加密等安全技术,确保客户信息的安全和隐私。
6. 数据分析功能:通过对客户数据、业务数据的整合与分析,系统能够提供详尽的数据报表和分析结果,为运营商提供决策支持。
三、系统应用电信综合业务管理系统广泛应用于电信运营商的各个层面,包括运营商总部、分公司、客户服务中心、网络运维中心等部门。
电信运营商话费账单管理工作总结

电信运营商话费账单管理工作总结
本文对近期电信运营商话费账单管理工作进行总结,主要包括以下几点:
一、问题概述
电信运营商话费账单管理涉及到账单生成、账单邮寄、账单查询等业务流程。
近期,我们接到了大量用户关于账单邮寄问题的投诉。
经调查,大量账单邮寄地址不正确,导致用户无法及时收到账单。
二、问题解决
为了解决上述问题,我们采取了以下措施:
1. 强化数据质量管理,对用户信息进行审核,确保邮寄地址的准确性;
2. 推广电子账单,鼓励用户使用电子账单,减少纸质账单邮寄数量;
3. 增加账单查询渠道,提高账单查询效率和便利性。
三、成效评估
上述措施的实施,取得了良好效果。
经过一段时间的努力,用户对账单邮寄问题的投诉数量减少了很多,同时用户对电子账单的使用率也有了明显提升。
四、后续工作
针对上述问题的解决,我们应该进一步加强用户信息管理,确保用户信息的真实性和准确性,并不断提高账单管理服务质量,为用户提供更好的服务。
以上为电信运营商话费账单管理工作总结。
谢谢!。
电信企业计费(BILLING)解决方案

电信企业计费(BILLING)解决方案电信企业计费(Billing)系统是电信支撑系统BSS/OSS 的核心。
随着电信业的不断发展,现有的计费系统越来越不能满足市场的需要。
如何能提出一套满足不断发展的业务需要、同时又能符合技术发展趋势的Billing 系统是电信企业目前面临的主要挑战。
Billing 主要是解决如何计费和如何对业务进行支撑的问题。
从就其功能来看,Billing系统主要包括采集、预处理、批价、计费、帐务、付款等功能。
通过提供世界上最大的计费解决方案组合,包括有线,无线,IP,综合通信提供商,HP在运营支持市场确立了行业领导地位。
电信企业计费解决方案能够使服务提供商为客户注册的多种服务提供统一的计费账单,这些服务包括:市话,长途电话,手机,IP。
该解决方案能够编辑、处理、汇总所有在统一的计费帐单上出现的元素。
它还能够运行其他有价值的服务,诸如,针对产品的税费计算,多种账单的汇总,合成折扣,并保证计费的质量。
许多服务提供商的计费操作依赖于HP的解决方案。
HP的电信企业计费解决方案是一系列经过实践验证的技术组合,硬件产品,软件、咨询服务以及资源,所有这些的目标在于使运营上获得较高的系统扩展性、可用性,灾难恢复以及简化的操作。
电信企业计费包括端到端的话单采集,费率和计费;解决方案还可根据客户的需求进行扩充。
图1. HP的企业级计费集成架构HP咨询及集成服务(HPS CI)提供了从规划、设计到集成实施的端到端的服务以满足电信客户的需求。
服务包括(如图2所示):图2. HP提供的计费服务包括:阶段一:当前BILLING现状诊断(As-Is Analysis):HP的现状诊断主要包括:∙业务能力诊断∙系统架构系统现状分析阶段二:BILLING架构设计(To-be Architecture Development): HP的BILLING架构设计主要包括:∙功能框架设计∙应用系统架构设计∙系统集成架构设计∙系统接口设计∙撰写技术规范阶段三:转型计划(Migration):HP的转型计划主要包括:∙系统实施路径分析∙系统相依性分析∙各阶段业务形态分析∙应急方案分析∙工程和项目管理方法阶段四:BILLING集成实施(Integration):HP的集成实施主要包括:∙项目管理∙总体技术架构设计∙关键业务模块设计∙关键业务模块开发∙集成测试归纳起来,成功地实施BILLING 系统可以给企业带来很多收益:∙提高企业竞争力-主要手段是通过多样的"优惠套餐"、"组合营销"来吸引客户,与对手竞争∙提高客户满意度-提高业务受理的效率和服务质量是挽留现有客户的重要因素∙ HP拥有世界范围内的BILLING专家∙在实施复杂企业级BILLING项目有良好的记录∙中国HP拥有30多位PMP,每年在中国实施数百个大中型项目,具有丰富的项目管理经验∙ HP连续获得由国际数据公司IDC 评为"世界顶级前十名系统集成商","世界顶级前十名信息技术咨询公司四川省电信省中心综合营帐项目综合营帐(BILLING)的实施包括:∙Billing套装软件(CSG)的实施∙客服系统的开发∙系统集成HP提供的服务包括:∙前期BILLING咨询规划∙BILLING项目管理∙BILLING总体技术架构设计∙关键业务模块设计(ODS/BPM)∙关键业务模块开发(ODS/BPM)一、Billing解决方案概述Billing 是电信支撑系统BSS/OSS 的核心。
电信账务

电子转账,重扣
操作路径:操作路径:计费前台——支付管理——业务受理——支付方式临时更改——输入设备号码——更改起始月份——请选择支付
方式更改类型(现金转电子转账或电子转账转现金))——提交申请
调整违约金
操作路径:⑴调账管理——调整录入——调整信息录入——输入号码、选择月份、点击违约金调整或上期违约金调整——确定——调整
补账单明细
操作路径:计费前台——支付管理——业务受理——补账单/收据请求——输入号码——点击“补账单明细”——设备号码前的小方
框打“√”——请求后台补单
补收据
操作路径:计费前台——支付管理——业务受理——补账单/收据请求——输入号码——点击“补收据受理”——查询——设备号码
前的小方框打“√”——请求后台补单
补账单
操作路径:计费前台——支付管理——业务受理——补账单/收据请求——输入号码——点击“补账单受理”——查询——设备号码
前的小方框打“√”——请求后台补单
补请单
操作路径:计费前台——支付管理——业务受理——补账单/收据请求——输入号码——点击“补清单受理”——查询——设备号码
前的小方框打“√”——选择清单类型——请求后台补单
入用户新地址——点击“保存”(用户要求更改的账单地址已存在则无需新建客户地址)
3.同一页面查找“账户资料(新)”——点击“查询”输入原账址“分账序号”——点——点击“确定”
5.点击“保存”——点击“重新发送账务系统”
违约金≥200 受理账务业务投诉单
更改邮政编码
操作路径:客户资产——输入设备号——执行——点击“客户名字”——客户地址“邮编”——栏直接修改——保存——点击“输入全部
电信计费系统客户帐单管理电信账单

电信计费系统客户帐单管理电信账单程序设计报告( 2021 / 2021 学年第二学期)题目:专学生班级指导指导日电信计费系统客户帐单管理业姓名学号教师单位计算机软件教学中心期2021 年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)添加账单功能:操作同上,可将新的通话记录添加到记录里。
电信公司的账务处理流程及费用

电信公司的账务处理流程及费用下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!一、账务处理流程1. 计费系统:电信公司使用计费系统来记录客户的通话、短信、数据使用等信息。
电信业务综合管理系统

易讯正通电信业务综合管理系统V2.0操作说明书1 电信综合业务管理平台1.1计费管理子平台主要功能1.基础数据管理平台用户管理平台角色管理角色权限管理角色成员管理2.明细话单管理查询明细话单处理明细话单话费趋势分析中继对比分析跳表话单管理网间话费结算3.资费政策费率管理资费政策策略4.用户管理用户信息管理用户档案管理电话资料卡片4.4 宽带资料卡片客户档案管理用户属性定义用户类型定义费用外部转移费用内部转移号码资源管理历史档案维护档案日志查询用户套餐管理黑名单管理红名单管理5.系统参数设置设置账务类型设置费用结构停复机策略6外部数据导入外部数据导入固话数据编辑7.查询统计分析用户档案查询统计费用明细查询统计调级用户管理8.统计发布话费汇总发布话费查询统计调整收费数据调整电话汇总数据表调整合同号汇总表数据9.票据统计票据统计功能描述1.1.1基础数据管理[功能]:对平台用户进行权限和角色管理。
1.1.1.2 平台用户管理[功能]:为当前子平台增加操作员,可以实现子平台用户管理。
1.1.1.2 平台角色管理[功能]:为当前子平台操作员进行分组,以组的权限进行管理用户。
1.1.1.3 角色权限管理[功能]:赋予角色组不同的使用权限。
可以通过手动拖拽平台菜单分配角色菜单下面的权限组。
1.1.1.4 角色成员管理[功能]:为角色组添加该组角色成员。
角色成员只允许在对应的子平台内登入。
1.1.2明细话单管理[功能]:对明细话单进行分析、统计、网间结算管理。
1.1.2.1 查询明细话单[功能]:根据基本条件、查询条件和用户组合条件输入,查询该月份任意时间段内,的话单。
可以输入主叫、被叫、合同号,入中继、出中继、选择中继网名、呼叫类型等详细条件。
点击查询,返回结果,可以导出和打印。
1.1.2.2 处理明细话单[功能]:查询超长话单、无档话单、非法话单、无计费字冠话单和重叠话单1.1.2.3 话费趋势分析[功能]:选择起止截止时间、组合条件、图形类型和分析对象,按小时、天、月来分析呼出话务量和费用情况,并且以图形方式反馈结果。
电信分公司客户欠费管理工作安排

电信分公司客户欠费管理工作安排一、引言随着电信业务的不断发展和普及,电信分公司面临着越来越多的客户欠费问题。
客户欠费不仅对电信分公司的经营带来不利影响,也损害了顾客间的信任关系。
因此,电信分公司需要建立一套完善的客户欠费管理工作安排,以提高欠费回收率和客户满意度。
二、目标与策略1. 目标:确保客户欠费的及时回收,提高欠费回收率和减少损失。
2. 策略:采取综合措施,包括合理费用设计、积极提醒和催缴措施、建立有效的回收机制等。
三、合理费用设计1. 根据客户需求和市场情况,合理制定电信服务费用的收费标准。
2. 避免过度收费或不合理附加费用的产生,减少客户因费用问题而产生欠费情况。
四、积极提醒和催缴措施1. 发送电子账单和短信提醒:定期向客户发送电子账单和短信提醒,提醒客户缴纳费用。
2. 定制化提醒服务:根据客户的实际情况,提供个性化的缴费提醒和服务,增加客户对缴费的注意力。
3. 定期电话催缴:对于欠费客户,设立专门的催缴电话团队,通过电话进行催缴工作。
4. 上门催缴:对于较大金额的欠费客户,派遣人员上门催缴,并提供现金支付的便利。
五、建立有效的回收机制1. 欠费管理系统:建立完善的欠费管理系统,记录客户的欠费情况,并及时更新。
2. 分析欠费原因:针对欠费客户,进行欠费原因的调查和分析,以便制定针对性的回收策略。
3. 欠费还款优惠方案:制定欠费客户还款优惠方案,提供适当的优惠政策,鼓励客户尽快还清欠费。
4. 欠费催缴流程:制定明确的欠费催缴流程,包括第一次催缴、二次催缴等环节,并设立催缴报告制度,确保催缴工作的有效进行。
六、建立完善的客户服务体系1. 客户服务热线:建立24小时客户服务热线,方便客户随时咨询和反馈问题。
2. 快速响应机制:对客户的咨询和投诉,提供快速响应和解决方案,增加客户的满意度。
3. 培训客户经理:加强客户经理的培训和技能提升,提高客户处理能力和应变能力。
七、加强宣传和教育1. 宣传欠费管理政策和措施:通过公司内部通讯和外部渠道宣传欠费管理政策和措施,使员工和客户充分了解并配合工作。
- 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 & operator2、话单类(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 & operatorBill::Bill(char *dialing,char *dialed,char *stime,char*etime) { strcpy( Dialing , dialing ); strcpy( Dialed , dialed );strcpy( StartTime , stime );strcpy( EndTime , etime );}Bill::Bill(const Bill & obj){strcpy( Dialing , obj.Dialing );strcpy( Dialed , obj.Dialed );strcpy( StartTime , obj.StartTime ); strcpy( EndTime , obj.EndTime );}Bill::~Bill(){}char* Bill::GetDialing() {return Dialing;}char* Bill::GetDialed() {return Dialed;}char* Bill::GetStart() {return StartTime;}char* Bill::GetEnd(){return EndTime;}istream & operator >> (istream & in,Bill & bill) {in>>bill.Dialing;in>>bill.Dialed;in>>bill.StartTime;in>>bill.EndTime;return in;}ostream & operator {outoutoutoutoutoutreturn out;}int Bill::GetDate(){int Dat[6];double date=0;for(int i=0;i{Dat[i]=StartTime[i]-48; //文本文件读入时只能以字符型的形式,计算是转化成整形date+=Dat[i]*pow(10,5-i);return (int)date;}int Bill::GetTime(){return Estimate(StartTime,EndTime);}int mon_day(int year,int month) //记录不同月份的天数 {int day[12]; //d数组12个成员为12个月份day[0]=31; //给成员一一赋值if( year%4==0 && year%100!=0 || year%400 == 0 ) //判断是否是闰年day[1]=29;elseday[1]=28;day[2]=31;day[3]=30;day[4]=31;day[5]=30;day[6]=31;day[7]=31;day[8]=30;day[9]=31;day[10]=30;day[11]=31;return day[month-1]; //返回y 年m 月有多少天}int Estimate(char *m,char *n) //判断时间正误函数 {int a[14],b[14]; //a记录开始时间,b 记录结束时间 for(int i=0;i{a[i]=m[i]-48;b[i]=n[i]-48;}int y1,mon1,d1,h1,min1,s1; //开始时间的年月日时分秒int y2,mon2,d2,h2,min2,s2; //结束时间的年月日时分秒int x,y; //开始、结束时间的日、时、分统一换算成分钟,对应着x 、yy1=a[0]*1000+a[1]*100+a[2]*10+a[3]; //开始时间的年份mon1=a[4]*10+a[5]; //开始时间的月份d1=a[6]*10+a[7]; //开始时间的日期h1=a[8]*10+a[9]; //开始时间的时min1=a[10]*10+a[11]; //开始时间的分s1=a[12]*10+a[13]; //开始时间的秒x=d1*24*60+h1*60+min1;y2=b[0]*1000+b[1]*100+b[2]*10+b[3]; //结束时间的年份 mon2=b[4]*10+b[5]; //结束时间的月份d2=b[6]*10+b[7]; //结束时间的日期h2=b[8]*10+b[9]; //结束时间的时min2=b[10]*10+b[11]; //结束时间的分s2=b[12]*10+b[13]; //结束时间的秒y=d2*24*60+h2*60+min2;if( mon1>12 ||mon112 ||mon2h1>23 ||h123 ||h159 ||min1||min2>59 ||min259 ||s159 ||s2mon_day(y1,mon1) ||d2>mon_day(y2,mon2)){return -1; //如果“月,日,时,分,秒”超出范围,则返回-1 }else{if(y1==y2) //判断同年{if(mon1==mon2) //判断月份{if( (y-x0) ) //判断通话在三天内{钟计算的,否则错误误时间大一月if(s1s1) //结束秒数大于开始秒数,就是正确 return 1; else { cout}else //不同年的情况{if(y2-y1==1&&mon1==12&&mon2==1) //不同年只能是去年的12 月,当年的1月结束{if(s1{return y-x+1+31*24*60;}else{return y-x+31*24*60;}}else{coutreturn -1;}}}}四、源程序代码.#include"Customer.h"#include"Bill.h"#include#includedouble PrepaidFee=25.0,Cid=6.0,Local=0.1,Toll=0.7;//定义全局变量:月租, 来电显示费用市内电话单价和长途电话单价const int Max=2000; //最大数组长度char ShowMainMeun(); //显示主菜单char ShowSonMenu(); //显示子菜单void ShowCustomer(); //显示所有客户信息void ShowBill(); //显示所有帐单信息void AddCusInfo(); //添加用户信息void AddBilInfo(); //添加帐单信息void SearchCusInfo(); //按照客户查找帐单信息void SearchNumInfo(); //按照号码查找帐单信息void Calculate(Customer *cus,Bill *bill ,int m,int n);// void ShowAll(); //输出所有帐单信息void ShowWrongMess(Bill *bill,int n);//输出错误帐单的信息bool Compare(int m,int *p,int n); //如果m 与数组p[n]的任何一个数都不相等,那么就返回falseint Judge(Bill *bill,int m,Bill bil,int n); //判断bil 帐单是否会发生冲突char ShowMainMeun(){coutcout=========================================================== ="coutcoutcoutcoutcoutcoutcoutcoutcoutcoutcout=========================================================== ="cout合计"coutchar choice;coutcin>>choice; //用户输入操作选项return choice; //返回操作选项}char ShowSonMenu(){cout=========================================================== ="coutcoutcoutcout|"cout|"cout=========================================================== ="char choice;coutcin>>choice; //用户输入操作选项 return choice; //返回操作选项}void ShowCustomer(){coutCustomer Cus[Max];Bill bill[Max];ifstream inf1("用户信息.txt"); int count1=0;while (!inf1.eof()){inf1>>Cus[count1];coutcount1++;}ifstream inf2("话单信息.txt"); int count2 =0;while (!inf2.eof()){inf2>>bill[count2];count2++;}inf1.close();inf2.close();char point;while((point=ShowSonMenu())!="0"){if(point=="1")Calculate(SaveCus,SaveBill,2,count2); else if(point=="2")ShowWrongMess(bill,count2);elsecout}}void ShowBill(){Customer Cus[Max];Bill bill[Max];ifstream inf1("用户信息.txt"); |int count1=0;while (!inf1.eof()){inf1>>Cus[count1];count1++;}ifstream inf2("话单信息.txt"); int count2 =0;while (!inf2.eof()){inf2>>bill[count2];coutcount2++;}inf1.close();inf2.close();char point;while((point=ShowSonMenu())!="0"){if(point=="1")Calculate(SaveCus,SaveBill,2,count2); else if(point=="2")ShowWrongMess(bill,count2);elsecout}}void ShowAll(){Customer Cus[Max];Bill bill[Max];ifstream inf1("用户信息.txt");int count1=0;while(!inf1.eof()) //录入顾客信息到Customer 类的数组cust 中 {inf1>>Cus[count1];count1++; //有m-1个顾客}int count2=0;ifstream inf2("话单信息.txt");while(!inf2.eof()) //录入账单记录到Bill 类的数组bill 中 {inf2>>bill[count2];count2++; //有n 个账单记录}inf1.close(); //关闭文件inf2.close(); //关闭文件Calculate(Cus,bill,count1,count2); }void AddCusInfo(){Customer Cus[Max];int num;coutcin>>num;coutfor( int n=0;ncin>>Cus[n]; //输入添加的用户名ofstream outf;outf.open("用户信息.txt",ios::app); //用app 方式打开文本,能直接在文本尾加入信息for(n=0;noutfcoutoutf.close();}void AddBilInfo(){Bill bill[Max];int num;coutcin>>num;coutcoutfor( int n=0;ncin>>bill[n];ofstream outf;outf.open("话单信息.txt",ios::app); //用app 方式打开文本,能直接在文本尾加入信息for(n=0;noutfcoutoutf.close();}void SearchCusInfo() {char Name[20];coutcin>>Name;Customer Cus[Max]; Bill bill[Max];ifstream inf1("用户信息.txt");int count1=0;while (!inf1.eof()) //录入顾客信息到Customer 类数组Cus 中 {inf1>>Cus[count1];count1++; //记录总共有(count1-1)个顾客 } ifstream inf2("话单信息.txt"); int count2 =0; while (!inf2.eof()){ inf2>>bill[count2]; count2++; //总共有count2条话单 }inf1.close(); inf2.close(); Customer SaveCus[1]; Bill SaveBill[Max]; //保存该用户的话单信息 int i=0,j=0,k=0; coutcout}}void SearchNumInfo(){Customer Cus[Max];ifstream inf1("用户信息.txt"); int count1=0;while (!inf1.eof()){inf1>>Cus[count1];count1++; //有count1-1个用户}Bill bill[Max];ifstream inf2("话单信息.txt");int count2 =0;while (!inf2.eof()){inf2>>bill[count2];count2++; //有count2条话单记录 }inf1.close();inf2.close();char Number[15];coutcin>>Number;Bill SaveBill[Max];int i=0,j=0,k=0;coutbool p=true;for(i=0;i{if(strcmp(bill[i].GetDialing(),Number)==0) {coutj=false;SaveBill[k]=bill[i];k++;}}if(j)coutCustomer SaveCus[1];for(i=0;i{if(strcmp(Cus[i].GetNumber(),Number)==0) {SaveCus[0]=Cus[i];}}char point;while((point=ShowSonMenu())!="0"){if(point=="1")Calculate(SaveCus,SaveBill,2,count2); else if(point=="2")ShowWrongMess(bill,count2);elsecout}}void Calculate (Customer *cus,Bill *bill,int m,int n) {cout"ofstream outa("所有信息.txt");ofstream outw("错误账单.txt");for(int i=0;i{int a[Max]={0}; //int数组,用于记录已计算过的月份if(cus[i].GetCID()=="Y") //判断用户是否有功能费Cid=6;elseCid=0;for(int j=0;j{if( strcmp( cus[i].GetNumber() , bill[j].GetDialing() ) == 0 ) //找出cust[i]客户的所有帐单{double local=0,toll=0,sum=0; //一个月的市话费、长途费及总电话费if(Compare(bill[j].GetDate(),a,n )) //判断在记录a[n]中是否存在 bill[j].getdate() 记录,若存在,则跳过这条账单信息continue;else{for(int k=j;k{if((bill[j].GetDate()==bill[k].GetDate())&&( strcmp(cus[i]. GetNumber(),bill[k].GetDialing()) == 0 ) ) //若bill[k]的月份与主叫电话号码都相同,则计算这个月的电话费{if(bill[k].GetTime()>=0&&Judge(bill,n,bill[k],k)==1){if( strlen( bill[k].GetDialed() )>8 ) // 按照市话来看,长度大于8的都算是长途电话 toll += bill[k].GetTime()*Toll;elselocal += bill[k].GetTime()*Local;a[j]=bill[j].GetDate();存到a[n]中}else{outw}}}sum=PrepaidFee+Cid+toll+local; //文本输出outa。