日期
日期2013 年6月27日
程序设计报告
(2012
/
2013
学年第二学期)
专
题
目:
业
电信计费模拟实现
通信工程
学
生
姓
名
班
级
学
口号
郭佥
郭佥I」
指
导
教
师
指
导
单
位
计算机软件教学中心
电信计费模拟实现
、课题内容和要求
电信计费系统主要负责对电信各类客户每月帐单统计、查询、备份等管理工作。本课
题以该系统要求编写一个程序,实现对电信计费的模拟。通过此可以,熟练掌握文件读写、
函数调用等知识,以及查找、典型算法的设计与应用。
二、需求分析
功能框架图:(见图1)
功能框架图:(见图1)
图1
(1)提供可操作的主菜单:输出个菜单,用于显示以从文件中加载的总客户信息和若干 个可选的功能选项。根据客户输入的选项来运行不同的功能,运行不同的函数。
(1)
进行文本信息的载入:从指定的文件中以链表形式加载所需的客户信息。这里的文
件是在编译时就已经指定好的、存在的文本,需设计者预先自己建立好。
查找客户功能:以客户输入的电话号码进行查找对应的客户信息并将它们输出。
对现有信息的保存:保存内存中的最新的记录输出到磁盘文件中。这里默认的是保
存到原读取文件中并覆盖原来的信息。
5) 将信息备份到另外的一个文本中:通过文件格式读写函数,将源文件信息写到客户
提供的目标文件中。
6) 分类合计功能:客户话费小计、
长话费小计、通话费合计、客户帐单数量。
三、概要设计
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 g;
//
功能费
double shinei;
//
市内话费
double changtu;
//
长途话费
double zon ghe;
//
总和
}hfd[1OO];
2主要函数流程图:
装载函数:用于实现用户与系统的交互,显示用户菜单、操作提示等,流程图
如图2所示:
查找函数:利用用户输入的号码进行顺序查找并将找到的客户的所有通话记录并输
出。见图3
查看账单:利用计算函数和输入的用户号码,,进行顺序查找出用户的通话账单并 显示在屏幕上。见图4
检查错误话单:检查号码通话时长是否大于三天,并显示和保存异常话单,如图5
(5)保存文件函数:将用户所有通话记录保存到本文件中。
四、源程序代码
#include
#include
#include
struct consumer
{
char name1[10];
char name2[10];
char phone[9]; char YN[2];
//用户信息定义//
//用户信息定义
//姓
//名
//电话号码
//来电显示是否
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];
const int a=25, b=6;const double c=0.1,d=0.7; void jisuan();void menu();double shijian(char [],char []);
const int a=25, b=6;
const double c=0.1,d=0.7; void jisuan();
void menu();
double shijia