谁能帮我把这个程序的设计方案跟设计分析写出来啊
程序代码:
#include <stdio.h> #include <string.h> #include <cstdlib> int chaxun(char *); int main() { FILE *fin,*fin2; char str[80],ch[60]; int h1,h2,m1,m2,s1,s2,a,i; long t_start,t_end,interval; int c,cee=0,cee1=0,cee2=0,cee3=0; double fee=0.0,fee1=0,fee2=0,fee3=0; fin=fopen("dial.txt","r"); if(!fin) return -1; while(!feof(fin)){ if(!fgets(str,80,fin))break; if(str[0]=='i'||str[0]=='n')continue; if(str[0]=='m'){fee2+=0.10;cee2+=1;continue;} h1=(str[2]-48)*10+str[3]-48; m1=(str[5]-48)*10+str[6]-48; s1=(str[8]-48)*10+str[9]-48; h2=(str[11]-48)*10+str[12]-48; m2=(str[14]-48)*10+str[15]-48; s2=(str[17]-48)*10+str[18]-48; t_start=h1*60*60+m1*60+s1; t_end=h2*60*60+m2*60+s2; if(t_end-t_start<0) interval=(24*60*60)-t_start+t_end; else interval=t_end-t_start; c=interval/60; if(interval%60) c++; for(i=0;i<4;i++) ch[i]=str[20+i]; ch[4]='\0'; if(strcmp(ch,"0555")==0) a=1; else {for(i=0;i<7;i++) ch[i]=str[20+i]; ch[7]='\0'; a=chaxun(ch);} if(a==1) {fee+=c*0.08;cee+=c;} else {fee1+=c*0.20;cee1+=c;} fee3=fee+fee1+fee2; } fclose(fin); printf("本月通话统计:\n"); printf("本地通话时间:%d分钟\t费用:%lf元\n",cee,fee); printf("长途通话时间:%d分钟\t费用:%lf元\n",cee1,fee1); printf("发出短信条数:%d条 \t费用:%lf元\n",cee2,fee2); printf("总计:本月应缴费用:%lf元\n",fee3); fin2=fopen("abc.txt","w"); fprintf(fin2,"本月通话统计:\n"); fprintf(fin2,"本地通话时间:%d分钟\t费用:%lf元\n",cee,fee); fprintf(fin2,"长途通话时间:%d分钟\t费用:%lf元\n",cee1,fee1); fprintf(fin2,"发出短信条数:%d条 \t费用:%lf元\n",cee2,fee2); fprintf(fin2,"总计:本月应缴费用:%lf元\n",fee3); fclose(fin2); system("pause"); return 0; } int chaxun(char *str1) {FILE *fin1; char str2[80]; fin1=fopen("hd.txt","r"); while(!feof(fin1)){ if(!fgets(str2,8,fin1))break; if(strcmp(str2,str1)==0){fclose(fin1); return 1;} }fclose(fin1);return 0;}