-
程序设计报告
( 2012 / 2013 学年 第 二 学期)
题 目: 电信计费模拟实现
专 业 通信工程
学 生 姓 名
班 级 学 号
指 导 教 师 郭 剑
指 导 单 位 计算机软件教学中心
日 期 2013年6月27日
电信计费模拟实现
课题内容和要求
电信计费系统主要负责对电信各类客户每月帐单统计、查询、备份等管理工作。本课题以该系统要求编写一个程序,实现对电信计费的模拟。通过此可以,熟练掌握文件读写、函数调用等知识,以及查找、典型算法的设计与应用。
需求分析
功能框架图:(见图1)
电信计费模拟系统
电信计费模拟系统
通话记录显示
备份通话记录
检测通话时长异常
保存话费
详细话费
统计
图1
提供可操作的主菜单:输出个菜单,用于显示以从文件中加载的总客户信息和若干个可选的功能选项。根据客户输入的选项来运行不同的功能,运行不同的函数。
进行文本信息的载入:从指定的文件中以链表形式加载所需的客户信息。这里的文件是在编译时就已经指定好的、存在的文本,需设计者预先自己建立好。
查找客户功能:以客户输入的电话号码进行查找对应的客户信息并将它们输出。
对现有信息的保存:保存内存中的最新的记录输出到磁盘文件中。这里默认的是保存到原读取文件中并覆盖原来的信息。
将信息备份到另外的一个文本中:通过文件格式读写函数,将源文件信息写到客户提供的目标文件中。
分类合计功能:客户话费小计、长话费小计、通话费合计、客户帐单数量。
三、概要设计
1 主要结构体:
struct consumer //用户信息定义
{
char name1[10]; //客户姓氏
char name2[10]; //客户名
char phone[9]; //电话号码
char YN[2]; //来电显示是否
}yhzl[100];
struct feelist //话单信息定义
{
char number1[9]; //主叫号码
char number2[13]; //被叫号码
char qishi[15]; //通话起始时间
char zhongzhi[15]; //通话终止时间
}hd[300];
struct huafei
{
char haoma[9]; //本人号码
char xingming1[10]; //姓
char xingming2[10]; //名
int y; //月租费
int g; //功能费
double shinei; //市内话费
double changtu; //长途话费
double zonghe; //总和
}hfd[100];
2 主要函数流程图:
(1)装载函数:用于实现用户与系统的交互,显示用户菜单、操作提示等,流程图如图2所示:
开始
开始
调用函数
打开文件成功
读入数据
是
号码比对
相同
输出数据
文件是否结束
是
不同
否
结束
开始
开始
读入号码
加载菜单
读入选项
选项符合条件
调用函数
是否继续
是
是
否
否
结束
图2 图3
(2)查找函数:利用用户输入的号码进行顺序查找并将找到的客户的所有通话记录并输出。见图3
(3)查看账单:利用计算函数和输入的用户号码,,进行顺序查找出用户的通话账单并显示在屏幕上。见图4
开始
开始
打开文件成功
读入数据
文件是否结束
计算时间
判断时间
输出话单
结束
是
是
开始
打开文件成功
读入数据
文件是否结束
号码是否相同
输出话费信息
结束
否
是
是
否
图4 图5
(4)检查错误话单:检查号码通话时长是否