C++实验:电信模拟计费系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计报告

( 2012 / 2013 学年第一学期)题目:电信计费系统客户帐单管理

专业计算机科学与技术

学生姓名

班级学号

指导教师

指导单位计算机软件教学中心

日期 2012年9月28日

电信计费系统客户帐单管理

课题内容和要求

客户帐单管理是电信计费系统必备的重要功能模块,主要负责对电信各类客户每月帐单的增加、修改、删除、查询、备份等管理工作。本课题以中国电信企业客户帐单管理模块原型参照,要求基于单链表结构对文件存储的客户帐单数据进行排序、查找、计算、显示等造作。通过此可以,熟练掌握单链表结构、文件读写、函数调用等知识,以及查找、排序典型算法的设计与应用。

需求分析

要能提供以下几个基本功能:

(1)用户资料文件与话单文件由程序设计人员预先从键盘上录入,用户资料文件中的数据记录不得少于30条,话单文件中的数据记录不得少于200条,且必须有跨月份、跨年份的通话记录话单。

(2)首先从硬盘读入用户资料和话单记录

(3)对话单进行计费处理,输出费用详单到指定的文件。格式如下:

电话号码用户姓名月租费功能费市内电话费用长途电话费用合计

84370000 ChenChao 25 6 34.2 19.6 84.8 84370000 ChenChao 25 6 ………………

(4)异常话单提示。有的话单可能是错误的,找出这些话单,不参加计费,另存为一个文件。可能的出错话单有:一个号码的通话时长大于三天。

图1:功能图

(1)提供可操作的主菜单:输出个菜单,用于显示以从文件中加载的总客户信息和若干个可选的功能选项。根据客户输入的选项来运行不同的功能,运行不同的函数。

(2)显示所有用户功能:根据选项可将文本里的用户信息在屏幕上显示出来。

(3)显示所有帐单功能:可将文本里的通话帐单在屏幕上显示出来。

(4)添加用户功能:可在屏幕上进行直接操作,将新的用户信息添加到记录里。

(5)添加帐单功能:操作同上,可将新的通话记录添加到记录里。

(6)按用户名查找功能:输入记录里的用户名,可以查找与之相关的通话帐单信息。

(7)按电话号码查找功能:输入记录里已有的电话号码,可以查找相应的通话帐单记录。

(8)输出话费功能:在操控台和文本中,直接输出所有的话费详情。

概要设计

函数结构图

图2:主程序图

图3:操作菜单系统

图4:显示所有信息菜单

图5:插入数据菜单

图6:计算话费函数

1.顾客类(Customer.h)

#include

#include

#include

class Customer //顾客类

{

protected:

char name[20]; //顾客姓名

char phonenum[14]; //顾客电话号码

char laidian; //顾客是否订来电显示

public:

Customer(char *n="",char *ph="",char l=0); //构造函数

Customer(const Customer &cu); //拷贝构造函数

~Customer(); //析构函数

char* getname(); //提取姓名

char* getphone(); //提取电话号码

char getlaidian(); //提起是否订来电显示

friend ostream & operator << (ostream &,const Customer &); //友元函数重载输出运算符"<<"

friend istream & operator >> (istream &,Customer &); //友元函数重载输入运算符">>"

};

//Customer类的函数的实现

Customer::Customer(char *n,char *ph,char l)

{

strcpy(name,n);

strcpy(phonenum,ph);

laidian=l;

}

Customer::Customer(const Customer &cu)

{

strcpy(name,);

strcpy(phonenum,cu.phonenum );

laidian=idian;

}

Customer::~Customer()

{}

char* Customer::getname()

{

return name;

}

char* Customer::getphone()

{

return phonenum;

}

char Customer::getlaidian()

{

return laidian;

}

ostream & operator<<(ostream & out ,const Customer & cust) {

cout.setf(ios::left);

out<

out<

out<

return out;

}

istream & operator >> (istream & in ,Customer & cust)

{

in>>;

相关文档
最新文档