实验8 统计话费


实验时间

选做。

实验目的

综合运用所学知识,为实际问题设计高效算法。

问题描述

给定一份通话记录文件,包含约10万用户一天共计约100万条通话记录。文件是纯文本格式,每行为一条记录,格式如下:
手机号码(11位)、呼叫类型(2位,00表示主叫,01表示被叫)、通话时长(4位,以秒为单位)、呼叫发生小区(4位)、换行符(2位,即'\r\n')
例如,文件的第一行:13955191490010225JQHK
表示手机号码为13955191490的用户在JQHK小区被叫,时长为225秒。
计费规则如下:
1. 通话时长以分钟为单位计费,不足一分钟按一分钟计算。
2. 主叫每分钟0.40元(40分)、被叫每分钟0.20元(20分)。
请生成话费账单,输出一份文件,要求输出文件是纯文本格式,每行为一条记录,格式如下:
手机号码(11位)、总费用(8位,以分为单位)、换行符(2位,即'\r\n')
如输出文件的第一行:1395519149000001240
表示手机号码为13955191490的用户费用是12.40元。

实验内容

请设计计算复杂度尽可能低的算法。提交程序运行时间最短的5名同学可获得实验加分。
(注:提交的源代码将由助教编译运行,源代码必须能够正确编译链接,运行结果必须正确。运行时间将由助教在同一台计算机上多次运行程序取平均值得到。)
实验报告应详细说明所设计的算法是如何工作的,并附完整源代码。