- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
局用程控交换机数据预处理系统C语言版本
项目描述:本项目主要完成对局用程控交换机的二进制磁带卸载数据,按照一定的格式要求,转化成标准ASCII码格式并以文本形式输出,然后再经过内存排序后,提供给后续计费模块进行批价处理。
1. 码制转换
局用程控交换机为了减少数据存储量,通常数据以BCD码的形式进行存储。BCD (Binary-Coded Decimal,二进码十进数,简称BCD)用4位二进制数来表示1位十进制数中的0-9这10个数码,简称BCD码。但为了方便后续工作的进行,通常需要将其转换成我们常见的ASCII码。我们所使用的BCD数据被存放在后缀名为bs1、bs2、bs3文件中,具体文件格式见附录一。转换后生成的文件请保存在同名ASC文件中。
BCD文件在 Data\Raw_Data 文件夹中
转换后的ASCII文件请放在 Data\ASC_Data 文件夹中
2. 数据校验
码制转换完成后,我们要对转换后的数据进行校验,其目的是为了检查数据的合法性,删除非法数据。如出现以下数据,则应该删除:
a. 主叫号码少于7位
b. 被叫号码少于3位
c. 结束时间小于开始时间
d. 文件结尾的残缺数据
3. 排序
局用程控交换机中的数据是以时间为序存储的,但是后续计费模块中的数据要求以主叫号码为序才能进行处理。因此我们需要对转换后的ASCII数据进行排序,排序第一关键字为主叫号码,第二关键字为日期,第三关键字为呼出时间。请将排序后的文件保存在同名STD文件中。
排序后的文件请放在 Data\STD_Data 文件夹中
4. 日志处理
日志一般是指存储软件程序、服务或操作系统产生的消息记录的文件。本功能主要对用户进行的所有操作进行记录并显示。每条日志需要有操作类型、结果、开始时间、结束时间等内容。
生成的日志文件请存放在 Data\LOG 文件夹中
5.界面:
用户界面应完成多级菜单显示及选择,此外还应加入对转换后和排序后的文件的显示功能。注意,由于数据量较大,必须采取分页显示。
主菜单
码制转换
数据校验
排序
日志处理
程序源代码:
#includedirect.h
#includeconio.h
#includestdio.h
#includestring.h
#includestdlib.h
#includetime.h
#includewindows.h
#define num 82
char FILEPATH[100]; /* 存当前c文件工作路径,形式如—— C:\\Users\\Administrator.PCFTP\\Desktop\\c项目 */
typedef struct data
{ //01 2722841 01 0991114 16:06:37 16:06:40 1996/09/03 000003 0002 0003 (数据的结构)
char a[3]; //0-2 (无用)
char OutC[7]; //3-9 (主叫)
char b[7]; //10-16(无用)
char Called[17]; //17-33(被叫)
char StarT[9]; //34-42(开始时间)
char EndT[9]; //43-51(结束时间)
char Date[10]; //52-61(日期)
char c[20]; //62-81(无用)
}DATA;
void DailyLogo(int i,char *p);////////////////日志处理 函数
void LogShow();///////////////////////////////日志显示 函数
void DDV(char *p);////////////////////////////数据校验 函数
void Code_Switch();/////////////////////////码制转换 主函数
void insert(char *des,char *src,int n);/////码制转换 子函数
void Change_name(char *p);//////////////////码制转换 子函数
void HeapSort();////////////////////////////数据排序 主函数
void creatheap(DATA * a,int root,int index);//////////////数据排序 子函数
void sort(DATA * a,int inde
文档评论(0)