版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、局用程控交換機(jī)數(shù)據(jù)(shj)預(yù)處理系統(tǒng)C語(yǔ)言版本(bnbn)項(xiàng)目(xingm)描述:本項(xiàng)目主要完成對(duì)局用程控交換機(jī)的二進(jìn)制磁帶卸載數(shù)據(jù),按照一定的格式要求,轉(zhuǎn)化成標(biāo)準(zhǔn)ASCII碼格式并以文本形式輸出,然后再經(jīng)過(guò)內(nèi)存排序后,提供給后續(xù)計(jì)費(fèi)模塊進(jìn)行批價(jià)處理。局用程控交換機(jī)數(shù)據(jù)預(yù)處理系統(tǒng)用戶界面碼制轉(zhuǎn)換數(shù)據(jù)校驗(yàn)數(shù)據(jù)排序日志處理1. 碼制轉(zhuǎn)換局用程控交換機(jī)為了減少數(shù)據(jù)存儲(chǔ)量,通常數(shù)據(jù)以BCD碼的形式進(jìn)行存儲(chǔ)。BCD (Binary-Coded Decimal,二進(jìn)碼十進(jìn)數(shù),簡(jiǎn)稱BCD)用4位二進(jìn)制數(shù)來(lái)表示1位十進(jìn)制數(shù)中的0-9這10個(gè)數(shù)碼,簡(jiǎn)稱BCD碼。但為了方便后續(xù)工作的進(jìn)行,通常需要將其轉(zhuǎn)換成我們
2、常見(jiàn)的ASCII碼。我們所使用的BCD數(shù)據(jù)被存放在后綴名為bs1、bs2、bs3文件中,具體文件格式見(jiàn)附錄一。轉(zhuǎn)換后生成的文件請(qǐng)保存在同名ASC文件中。BCD文件在 DataRaw_Data 文件夾中轉(zhuǎn)換后的ASCII文件請(qǐng)放在 DataASC_Data 文件夾中2. 數(shù)據(jù)校驗(yàn)碼制轉(zhuǎn)換完成后,我們要對(duì)轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行校驗(yàn),其目的是為了檢查數(shù)據(jù)的合法性,刪除非法數(shù)據(jù)。如出現(xiàn)以下數(shù)據(jù),則應(yīng)該刪除:a. 主叫號(hào)碼少于7位b. 被叫號(hào)碼少于3位c. 結(jié)束時(shí)間小于開(kāi)始時(shí)間d. 文件結(jié)尾的殘缺數(shù)據(jù)3. 排序局用程控交換機(jī)中的數(shù)據(jù)是以時(shí)間為序存儲(chǔ)的,但是后續(xù)計(jì)費(fèi)模塊中的數(shù)據(jù)要求以主叫號(hào)碼為序才能進(jìn)行處理。因
3、此我們需要對(duì)轉(zhuǎn)換后的ASCII數(shù)據(jù)進(jìn)行排序,排序第一關(guān)鍵字為主叫號(hào)碼,第二關(guān)鍵字為日期,第三關(guān)鍵字為呼出時(shí)間。請(qǐng)將排序后的文件保存在同名STD文件中。排序后的文件請(qǐng)放在 DataSTD_Data 文件夾中4. 日志處理日志一般是指存儲(chǔ)軟件程序、服務(wù)或操作系統(tǒng)產(chǎn)生的消息記錄的文件。本功能主要對(duì)用戶進(jìn)行的所有操作進(jìn)行記錄并顯示。每條日志需要有操作類型、結(jié)果、開(kāi)始時(shí)間、結(jié)束時(shí)間等內(nèi)容。生成的日志文件請(qǐng)存放在 DataLOG 文件夾中5界面(jimin): 用戶界面應(yīng)完成多級(jí)菜單顯示及選擇,此外還應(yīng)加入對(duì)轉(zhuǎn)換后和排序后的文件的顯示功能。注意,由于(yuy)數(shù)據(jù)量較大,必須采取分頁(yè)顯示。主菜單(ci d
4、n)碼制轉(zhuǎn)換數(shù)據(jù)(shj)校驗(yàn)排序(pi x)日志(rzh)處理程序(chngx)源代碼:#include#include#include#include#include#include #include#define num 82char FILEPATH100; /* 存當(dāng)前c文件工作(gngzu)路徑,形式如 C:UsersAdministrator.PC-20110801RFTPDesktopc項(xiàng)目(xingm) */typedef struct data /01 2722841 01 0991114 16:06:37 16:06:40 1996/09/03 000003 0002 0
5、003 (數(shù)據(jù)的結(jié)構(gòu))char a3; /0-2 (無(wú)用)char OutC7; /3-9 (主叫)char b7; /10-16(無(wú)用)char Called17; /17-33(被叫)char StarT9; /34-42(開(kāi)始時(shí)間)char EndT9; /43-51(結(jié)束(jish)時(shí)間)char Date10; /52-61(日期(rq))char c20; /62-81(無(wú)用(w yn))DATA;void DailyLogo(int i,char *p);/日志處理 函數(shù)void LogShow();/日志顯示 函數(shù)void DDV(char *p);/數(shù)據(jù)校驗(yàn) 函數(shù)void C
6、ode_Switch();/碼制轉(zhuǎn)換 主函數(shù)void insert(char *des,char *src,int n);/碼制轉(zhuǎn)換 子函數(shù)void Change_name(char *p);/碼制轉(zhuǎn)換 子函數(shù)void HeapSort();/數(shù)據(jù)排序 主函數(shù)void creatheap(DATA * a,int root,int index);/數(shù)據(jù)排序 子函數(shù)void sort(DATA * a,int index);/數(shù)據(jù)排序 子函數(shù) time_t rawtime; /日志處理 時(shí)間用的變量struct tm * timeinfo; /日志處理 時(shí)間用的結(jié)構(gòu)體void DailyLogo
7、(int i,char *p) /日志處理 函數(shù)FILE *file;char filepath100;char filename30=DataLOG1.log;strcpy(filepath,FILEPATH);strcat(filepath,filename);time ( &rawtime ); timeinfo = localtime ( &rawtime );file=fopen(filepath,ab);fseek(file,0L,2);switch(i)case 0:fprintf(file,%-15st碼制轉(zhuǎn)換t已完成t%srn,p, asctime (timeinfo);br
8、eak;case 1:fprintf(file,%-15st數(shù)據(jù)排序t已完成t%srn,p, asctime (timeinfo);break;case 2:fprintf(file,%-15st數(shù)據(jù)校驗(yàn)t已完成t%srn,p, asctime (timeinfo);break;fclose(file);void LogShow() /日志顯示 函數(shù)FILE *fp;int m=0;int i,j;char ch,n;char FileName30;char FilePath100;strcpy(FilePath,FILEPATH);strcat(FilePath,DataLOG);while
9、(m!=1)system(cls.exe);fflush(stdin);printf(*日志(rzh)顯示*n); printf(* *n);printf(* 請(qǐng)選擇您所需要(xyo)的操作: *n);printf(* *n);printf(* 0:顯示(xinsh)可操作文件 *n);printf(* 1:返回上一級(jí)菜單 *n);printf(* 2:退出系統(tǒng) *n);printf(*n);fflush(stdin);scanf(%c,&n);while(n2)printf(輸入錯(cuò)誤!n請(qǐng)重新輸入:);fflush(stdin);scanf(%c,&n);switch(n-0)case 0:
10、system(cls.exe);chdir(FilePath);system(dir *.log);printf(nn請(qǐng)您輸入要操作的文件名:);fflush(stdin);gets(FileName);for(i=strlen(FilePath),j=0;j);fflush(stdin);getch();elsefseek(fp,0L,0);system(cls.exe);printf(%snn,FilePath);while(!feof(fp)ch=fgetc(fp);putchar(ch);fclose(fp);printf(nn按任意鍵繼續(xù)(jx);fflush(stdin);getc
11、h();for(i=strlen(FilePath),j=strlen(FileName); j=0 ; i-,j-)FilePathi=0;break;case 1: m=1;break;case 2: exit(0);void Code_Switch() /碼制轉(zhuǎn)換(zhunhun) 主函數(shù)char f_name20;char ch,temp1,temp2,n;int i,j,k,l=0,m=0;char f_location100;char f_destion100;FILE *fp1,*fp2;char buffer81=;strcpy(f_location,FILEPATH);str
12、cpy(f_destion,FILEPATH);strcat(f_location,DataRaw_Data);strcat(f_destion,DataASC_Data);while(m!=1)system(cls.exe);printf(*碼制轉(zhuǎn)換(zhunhun)*n);printf(* *n);printf(* 請(qǐng)選擇(xunz)您所需要的操作: *n);printf(* *n);printf(* 0:顯示可操作(cozu)文件 *n);printf(* 1:返回上一級(jí)菜單 *n);printf(* 2:退出系統(tǒng) *n);printf(*n);fflush(stdin);scanf(%
13、c,&n);while(n2)printf(輸入錯(cuò)誤!n請(qǐng)重新輸入:);fflush(stdin);scanf(%c,&n);switch(n-0)case 0:system(cls.exe);chdir(f_location);system(dir *.bs2);printf(請(qǐng)輸入要操作的文件:);fflush(stdin);scanf(%s,f_name);strcat(f_location,f_name);Change_name(f_name);strcat(f_destion,f_name);fp1=fopen(f_location,rb);if(fp1=NULL)printf(n打
14、開(kāi)文件(wnjin)失敗!nn按任意鍵繼續(xù));fflush(stdin);getch();elsefp2=fopen(f_destion,w);printf(n碼制轉(zhuǎn)換(zhunhun)中已完成(wn chng) 0%);for(i=0;i6;i+)fseek(fp1,4,1);for(j=0;j68;j+)l=0;for(m=0;m81;m+)bufferm=0;for(k=0;k4)&0 x0f)+0 x30;temp2=temp2+0 x30;if(temp1 = 0 & temp1 = 0 & temp2 );fflush(stdin);getch();for(i=strlen(f_l
15、ocation),j=strlen(f_name); j=0 ; i-,j-)f_locationi=0;f_destioni=0;break;case 1: m=1;break;case 2: exit(0);void insert(char *des,char *src,int n) /碼制轉(zhuǎn)換(zhunhun) 子函數(shù)int len1,len2,i;len1=strlen(des);len2=strlen(src);for(i=len1-1;in;i-)*(des+i+len2)=*(des+i);for(i=0;ilen2;i+)*(des+n+1+i)=*(src+i);void C
16、hange_name(char *p) /碼制轉(zhuǎn)換(zhunhun) 子函數(shù)int len;len=strlen(p);plen-1=c;plen-2=s;plen-3=a;void DDV(char *p) /數(shù)據(jù)(shj)校驗(yàn) 函數(shù)DATA str2000;char path100;int i,j,k,n,m,l,r,s,t,q,x,y,z,sum;FILE *fp,*fp1;strcpy(path,FILEPATH);strcat(path,DataASC_Data);strcat(path,p);n=strlen(p);pn-5=V;fp = fopen(path,rb);n=strl
17、en(path);pathn-5=V;fp1 = fopen(path,wb);fseek(fp,0,2);n = ftell(fp);rewind(fp);printf(n數(shù)據(jù)(shj)校驗(yàn)中已完成(wn chng) 0%);for(i=0;in/82;i+)fread(&stri,82,1,fp);for(j=0,m=0;stri.OutCj!= ;j+)m+;for(k=0,s=0;stri.Calledk!= ;k+)s+;t=strcmp(stri.StarT,stri.EndT);for(j=0,x=0;stri.aj!= ;j+)x+;for(j=5,y=0;stri.bj!=
18、;j+)y+;for(j=0,z=0;stri.StarTj!= ;j+)z+;for(j=0,r=0;stri.EndTj!= ;j+)r+;for(j=0,l=0;stri.Datej!= ;j+)l+;for(j=0,q=0;j=7&s=3&t=54)fwrite(&stri,82,1,fp1);printf(bbb%2d%,(int)(float)i/(n/82-1)*100) );fclose(fp);fclose(fp1);DailyLogo(2,p);void HeapSort() /數(shù)據(jù)排序(pi x) 主函數(shù)DATA * p;FILE *fp1,*fp2;int i,j,n,
19、m=0;char a;char f_name20;char f_location100;char f_destion100;strcpy(f_location,FILEPATH);strcpy(f_destion,FILEPATH);strcat(f_location,DataASC_Data);strcat(f_destion,DataStd_Data);while(m!=1)system(cls.exe);fflush(stdin);printf(*數(shù)據(jù)(shj)排序*n);printf(* *n);printf(* 請(qǐng)選擇(xunz)您所需要的操作: *n);printf(* *n);p
20、rintf(* 0:顯示可操作文件 *n);printf(* 1:返回上一級(jí)菜單 *n);printf(* 2:退出系統(tǒng) *n);printf(*n);fflush(stdin);scanf(%c,&a);while(a2)printf(輸入錯(cuò)誤!n請(qǐng)重新輸入:);fflush(stdin);scanf(%c,&a);switch(a-0)case 0:system(cls.exe);chdir(f_location);system(dir *.asc);printf(請(qǐng)輸入要操作(cozu)的文件:);fflush(stdin);scanf(%s,f_name);strcat(f_locat
21、ion,f_name);j=strlen(f_name);f_namej-1=d;f_namej-2=t;f_namej-3=s;strcat(f_destion,f_name);fp1=fopen(f_location,rb);if(fp1=NULL)printf(n打開(kāi)文件(wnjin)失敗!nn按任意鍵繼續(xù));fflush(stdin);getch();elsefp2=fopen(f_destion,w);fseek(fp1,0,2);n=ftell(fp1);p=(DATA * )malloc(n+num);/m=sizeof(DATA);rewind(fp1);for(i=1;i=n
22、/num;i+)fread(p+i,num,1,fp1);sort(p,n/num);for(i=1; i);fflush(stdin);getch();for(i=strlen(f_location),j=strlen(f_name); j=0 ; i-,j-)f_locationi=0;f_destioni=0;break;case 1: m=1;break;case 2: exit(0);void creatheap(DATA * a,int root,int index) int i=2*root,finish=0;DATA t=*(a+root);while(i=index & fi
23、nish =0)if(iOutC,(a+i+1)-OutC,7)OutC,(a+i+1)-OutC,7)=0 & strncmp(a+i)-Date,(a+i+1)-Date,10)OutC,(a+i+1)-OutC,7)=0 & strncmp(a+i)-Date,(a+i+1)-Date,10)=0 & strncmp(a+i)-StarT,(a+i+1)-StarT,9)OutC,7)0 )finish=1;else if(strncmp(t.OutC,(a+i)-OutC,7)=0 & strncmp(t.Date,(a+i)-Date,10)0 )finish=1; else if(
24、strncmp(t.OutC,(a+i)-OutC,7)=0 & strncmp(t.Date,(a+i)-Date,10)=0 & strncmp(t.StarT,(a+i)-StarT,9)0)finish=1;else strncpy(char *)(a+i/2),(char *)(a+i),num);i=2*i;strncpy(char *)(a+i/2),(char *)&t,num);void sort(DATA * a,int index) int i;DATA t;for(i=index/2;i=1;i-)creatheap(a,i,index);printf(n數(shù)據(jù)(shj)排序中已完成(wn chng) 0%);for(i=index;i=1;i-)strncpy(char *)&t,(char *)(a+i),num);strncpy(char *)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖南婁底低空經(jīng)濟(jì)發(fā)展公司招聘5人備考題庫(kù)完整答案詳解
- 2026湖南婁底低空經(jīng)濟(jì)發(fā)展公司招聘5人備考題庫(kù)及答案詳解1套
- 2026河南鄭州豫信電科-豫信精密科技招聘4人備考題庫(kù)及1套參考答案詳解
- 2026上海復(fù)旦大學(xué)計(jì)算與智能創(chuàng)新學(xué)院招聘專任助理研究員1名備考題庫(kù)含答案詳解(研優(yōu)卷)
- 2026湖南長(zhǎng)沙市北雅中學(xué)公開(kāi)教師招聘4人備考題庫(kù)及完整答案詳解
- 2026陜西安康市鎮(zhèn)坪縣招聘城鎮(zhèn)社區(qū)專職工作人員6人備考題庫(kù)附答案詳解
- 2026廣東肇慶市高要區(qū)事業(yè)單位招聘高層次人才4人備考題庫(kù)附答案詳解(黃金題型)
- 2026四川省引大濟(jì)岷水資源開(kāi)發(fā)有限公司第一批次招聘27人備考題庫(kù)及參考答案詳解(新)
- 2026廣東珠海高新區(qū)招聘區(qū)投資促進(jìn)中心事業(yè)編制人員1人備考題庫(kù)及答案詳解(考點(diǎn)梳理)
- 2026廣東深圳北理莫斯科大學(xué)學(xué)生工作部黨建組織員招聘?jìng)淇碱}庫(kù)附參考答案詳解(奪分金卷)
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)鮮雞肉行業(yè)市場(chǎng)深度研究及投資規(guī)劃建議報(bào)告
- 診所相關(guān)衛(wèi)生管理制度
- 2024-2025學(xué)年廣東深圳實(shí)驗(yàn)學(xué)校初中部八年級(jí)(上)期中英語(yǔ)試題及答案
- 牛津版八年級(jí)英語(yǔ)知識(shí)點(diǎn)總結(jié)
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)及完整答案詳解
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)含答案詳解
- 國(guó)際話語(yǔ)體系構(gòu)建與策略分析課題申報(bào)書(shū)
- 戶外領(lǐng)隊(duì)培訓(xùn)課件
- 中考字音字形練習(xí)題(含答案)-字音字形專項(xiàng)訓(xùn)練
- CTD申報(bào)資料撰寫模板:模塊三之3.2.S.4原料藥的質(zhì)量控制
- 2024屆新高考物理沖刺復(fù)習(xí):“正則動(dòng)量”解決帶電粒子在磁場(chǎng)中的運(yùn)動(dòng)問(wèn)題
評(píng)論
0/150
提交評(píng)論