该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
using namespace std;
struct users
{
char name[20];
char number[20];
char c;
};//用户资料
struct records
{
char hostnum[20];
char clientnum[20];
int time;
};//话单记录
void outrecords()
{
records record1[10]={{"81330001","81340001",30},
{"81330001","81340001",306},
{"81330001","05118788455",143},
{"81330002","81340001",50},
{"81330002","81340007",534},
{"81330002","81340008",340},
{"81330002","05118788773",130},
{"81330003","81340001",30},
{"81330003","05118788676",30},
{"81330003","05118788454",135},
};
records *p1=record1;
ofstream outfile("f2.dat",ios::out);
if(outfile==0)
{
cerr<
exit(1);
}
for(int i=0;i<10;i++)
{
outfile<hostnum<clientnum<time<
}
outfile.close();
}//输入话单记录
records *inrecords()
{
records record[10];
records *p2=record;
ifstream infile("f2.dat",ios::in);
if(infile==0)
{
cerr<
exit(1);
}
for(int j=0;j<10;j++)
{
infile>>(p2+j)->hostnum>>(p2+j)->clientnum>>(p2+j)->time;
}
infile.close();
return p2;
}
void outusers()
{
users user1[3]={{"name1","81330001",'y'},{"name2","81330002",'y'},{"name3","81330003",'n'}};
users *p1=user1;
ofstream outfile("f1.dat",ios::out);
if(outfile==0)
{
cerr<
exit(1);
}
for(int i=0;i<3;i++)
{
outfile<name<number<c<
}
outfile.close();
}
users user2[3];
users *inusers()
{
users *p2=user2;
ifstream infile("f1.dat",ios::in);
if(infile==0)
{
cerr<
exit(1);
}
for(int j=0;j<3;j++)
{
infile>>(p2+j)->name>>(p2+j)->number>>(p2+j)->c;
}
infile.close();
return p2;
}
class COST
{
private:
users *pu;
float localcost;
float discost;
float basiccost;
float displaycost;
public:
COST(users *p1)
{
pu=p1;
localcost=0;
discost=0;
basiccost=25;
displaycost=0;
}
int t(int sec);
void displayc();
void callc();
void show();
};
int COST::t(int sec)
{
int min;
if(sec%60==0)
min=sec/60;
else
min=sec/60+1;
return min;
}
void COST::displayc()
{
if(pu->c=='y'||pu->c=='Y')
displaycost=6;
else
displaycost=0;
}
void COST::callc()
{
records *pr=inrecords();
for(int i=0;i<10;i++)
{
if(strcmp(pu->number,(pr+i)->hostnum)==0)
{
if(strlen((pr+i)->clientnum)<10)
localcost+=t((pr+i)->time)*0.1;
else
discost+=t((pr+i)->time)*0.7;
}
}
}
void COST::show()
{
cout<
"功能费"<
cout<number<name<
displaycost<
}
void f(COST &c)
{
c.displayc();
c.callc();
c.show();
}
users *g()
{
users *p=0;
users *p2=inusers();
int t=1;
char username[20];
cout<
cin>>username;
for(int i=0;i<3&&t==1;i++)
if(strcmp((p2+i)->name,username)==0)
{
p=p2;
t=0;
}
if(t==1)
{
cout<
}
return p;
}
int main()
{
outusers();
outrecords();
inusers();
users *p;
p=g();
if(p!=0)
{
COST c(p);
f©;
}
return 0;
}