我的完全自己写的一个程序

大二上学期第十一周程序设计周,我写出了第一个完全属于自己的程序。

#include<string>

#include"windows.h"
#include"conio.h"
#include<stdio.h>
#include<iostream>
#include<fstream>
using namespace std;
int n=0,m=0,x=0,r=0;
char text[]={0}; //n通讯录里联系人个数,m为已拨个数,x为已接个数,r为未接个数


struct Adressinfor //通讯录信息结构体
{
string name;
string number;
char type;
string email;
};



struct Time //时间的结构体
{
int hour;
int minute;
int second;
};






struct Numberinfor //通话情况的号码的信息
{
string number;
string name;
Time  gotime;
Time  cometime;
int   time;
};





class Adresslist //通讯录类
{
public:
Adressinfor contacts[15];
void Find();
void Findone();
void Inputcontacts();
void  Delete();
void  Amend();
Adresslist();
};






class Recordscall:public Adresslist //通话情况类
{
public:
Numberinfor A[200]; //已拨
Numberinfor B[200]; //已接
Numberinfor C[200]; //未接
void FindAll();
void Callrecord();
void Receiverecord();
Recordscall();
};
Adresslist::Adresslist()
{
for(int i=0;i<15;i++)
{
contacts[i].email=text;
contacts[i].name=text;
contacts[i].number=text;
contacts[i].type=NULL;
}
}
Recordscall::Recordscall()
{
Adresslist();
for(int j=0;j<200;j++)
{
A[j].cometime.hour=0;
A[j].cometime.minute=0;
A[j].cometime.second=0;
A[j].gotime.hour=0;
A[j].gotime.minute=0;
A[j].gotime.second=0;
A[j].name=text;
A[j].number=text;
B[j].time=0;
B[j].cometime.hour=0;
B[j].cometime.minute=0;
B[j].cometime.second=0;
B[j].gotime.hour=0;
B[j].gotime.minute=0;
B[j].gotime.second=0;
B[j].name=text;
B[j].number=text;
B[j].time=0;
C[j].cometime.hour=0;
C[j].cometime.minute=0;
C[j].cometime.second=0;
C[j].gotime.hour=0;
C[j].gotime.minute=0;
C[j].gotime.second=0;
C[j].name=text;
C[j].number=text;
C[j].time=0;
}
}



void Output(Time a)
{
cout<<a.hour<<":"<<a.minute<<":"<<a.second<<"  ";
}
void Adresslist::Find() //输入号码类输出姓名和号码
{
cout<<"Please input the type you need to find:"<<endl;
char c;
cin>>c;
if(c!='a'&&c!='b'&&c!='c')
{
cout<<"Input error!   Please input again!"<<endl;
cin>>c;
}
int j=0;
for(int i=0;i<15;i++)
{
if(contacts[i].type==c)
{ cout<<contacts[i].name<<" "<<contacts[i].number<<"      ";j++;}
}
if(j==0){cout<<"该类中无号码"<<endl;}
cout<<endl;
}
void Adresslist::Findone() //输入姓名输出姓名和号码类
{
cout<<"Please input the name you want to find:"<<endl;
string s;
cin>>s;
int t=0;
for(int i=0;i<15;i++)
{
  if(s==contacts[i].name)
{
cout<<contacts[i].name<<" "<<contacts[i].type<<"    ";
t++;
}
}
if(t==0)
{
cout<<"The name doesn't exist in the Adresslist!"<<endl;
}
cout<<endl;
}
void Recordscall::FindAll() //查看所有记录
{
int i,j;
cout<<"来电记录:"<<endl;
if(B[0].number==text)
{
cout<<"无来电记录"<<endl;
}
else
{
for( i=0;i<200&&B[i].number!=text;i++)
{
for( j=0;j<15;j++)
{
if(B[i].number==contacts[j].number)
break;
}
if(j==15)
{
cout<<"来电号码:"<<B[i].number<<" ";
}
else
{
cout<<"来电联系人:"<<contacts[j].name<<" ";
}
cout<<"来电时间: ";Output(B[i].cometime);cout<<"通话时间: "<<B[i].time<<"秒"<<endl;
}
}
cout<<"拨出记录:"<<endl;
if(A[0].number==text){cout<<"无拨出记录"<<endl;}
else{for( i=0;i<200&&A[i].number!=text;i++)
{
for( j=0;j<15;j++)
{
if(A[i].number==contacts[j].number)
break;
}
if(j==15)
{
cout<<"拨出号码: "<<A[i].number<<" ";
}
else
{
cout<<"拨出号码: "<<contacts[j].name<<" ";
}
cout<<"拨出时间: ";Output(A[i].gotime);
if(A[i].time!=0)
cout<<"通话时间"<<A[i].time<<"秒"<<endl;
else
cout<<"无人接听"<<endl;
}
}
cout<<"未接来电:"<<endl;
if(C[0].number==text){cout<<"无未接来电"<<endl;}
else{ for( i=0;i<200&&C[i].number!=text;i++)
{
for( j=0;j<15;j++)
{
if(C[i].number==contacts[j].number)
break;
}
if(j==15)
{
cout<<C[i].number<<" ";Output(C[i].cometime);cout<<endl;
}
else
{
cout<<contacts[j].name<<" ";Output(C[i].cometime);cout<<endl;
}
}
}
}
void Adresslist::Inputcontacts() //添加通讯录
{
Adressinfor p;
char c;
do
{
cout<<"请输入需要添加到通讯录的号码信息(姓名,号码,号码类型(a,b,c),电子邮箱):"<<endl;
string name;string email;string number;char type; //添加号码信息,没排序
cin>>name>>number>>type>>email;
contacts[n].name=name;
contacts[n].email=email;
contacts[n].number=number;
contacts[n].type=type;
for(int j=0;j<n;j++)
{
if(contacts[n].number==contacts[j].number) //检验该号码是否已储存
{
cout<<"该号码已存在"<<endl;
}
   break;
}
if(n==15) //存储上限15个
{
cout<<"不能继续存储"<<endl;

n++;
for(int i=0;i<(n-1);i++)
{
if(contacts[i].name.compare("contacts[n-1].name")>0)
{
p=contacts[i];
contacts[i]=contacts[n-1];   
contacts[n-1]=p;
}
}
cout<<"Do you want to continue to input?(Y/N)"<<endl;
cin>>c;
}while(c=='y'||c=='Y');
}


void Recordscall::Callrecord() //模拟拨号
{
string w;int s1,s2;
system("cls"); 
SYSTEMTIME t1,t2,t3;
cout<<"请输入要拨的号码:"<<endl;
cin>>w;
cout<<"请按下任意键开始拨号"<<endl;
getch();
GetLocalTime(&t1);
cout<<"拨号中......."<<endl<<"请按任意键接听"<<endl;
getch();
GetLocalTime(&t2);
s1=(t2.wMinute-t1.wMinute)*60+t2.wSecond-t2.wSecond;
if(s1>20)
{
cout<<"拨号时间过长无人接听"<<endl;
A[m].time=0;
}
else
{
cout<<"已接听"<<endl<<"请按任意键挂断"<<endl;
getch();
GetLocalTime(&t3);
s2=(t3.wMinute-t2.wMinute)*60+t3.wSecond-t2.wSecond;
A[m].time=s2;
}
for(int p=0;p<n;p++)
{
if(w.compare(contacts[p].number)==0)
A[m].name=contacts[p].name;
}
A[m].number=w;
A[m].gotime.hour=t1.wHour;
A[m].gotime.minute=t1.wMinute;
A[m].gotime.second=t1.wSecond;
m++;
}
void Recordscall::Receiverecord() //模拟接听
{
string w;int s1,s2;
system("cls"); 
SYSTEMTIME t1,t2,t3;
cout<<"请输入打进来的号码:"<<endl;
cin>>w;
cout<<"请按下任意键开始被拨号"<<endl;
getch();
GetLocalTime(&t1);
cout<<"拨号中......."<<endl<<"请按任意键接听"<<endl;
getch();
GetLocalTime(&t2);
s1=(t2.wMinute-t1.wMinute)*60+t2.wSecond-t2.wSecond;
if(s1>20)
{
cout<<"拨号时间过长无人接听"<<endl;
for(int p=0;p<n;p++)
{
if(w.compare(contacts[p].number)==0)
C[r].name=contacts[p].name;
}
C[r].number=w;
C[r].cometime.hour=t1.wHour;
C[r].cometime.minute=t1.wMinute;
C[r].cometime.second=t1.wSecond;
r++;
}
else
{
cout<<"已接听"<<endl<<"请按任意键挂断"<<endl;
getch();
GetLocalTime(&t3);
s2=(t3.wMinute-t2.wMinute)*60+t3.wSecond-t2.wSecond;
for(int p=0;p<n;p++)
{
if(w.compare(contacts[p].number)==0)
B[x].name=contacts[p].name;
}
B[x].number=w;
B[x].time=s2;
B[x].cometime.hour=t1.wHour;
B[x].cometime.minute=t1.wMinute;
B[x].cometime.second=t1.wSecond;
x++;
}


}




void Adresslist::Delete() //删除
{
char x;
do
{
string name;
int i,j=0;
cout<<"请输入你想删除的联系人的姓名:";
cin>>name; //输入想要删除的姓名
for(i=0;i<15;i++)
{
if(contacts[i].name.compare(name)==0){j++;}
}
if(j==0)
{
cout<<"通讯录没有此人!"<<endl; //通讯录中无此人,结束进程
}
else{
for(i=0;i<15;i++)
{
if(contacts[i].name.compare(name)==0)
j=i;
}
for(i=j;i<14;i++)
{
contacts[i]=contacts[i+1]; //删除的位置被后面成员替代
}

cout<<"删除成功"<<endl;
}
cout<<"是否继续删除?(Y/N)"<<endl;
cin>>x;
}while(x=='Y'||x=='y');
}
void Adresslist::Amend() //修改
{
char c;
do
{
string name;
int i;int j=0; int k;
cout<<"请输入你要修改的联系人的姓名:";
cin>>name;
for(i=0;i<15;i++)
{
if(contacts[i].name ==name)
{
j++;
k=i;
break;
}
}
if(j==0)
{
cout<<"通讯录中没有此人!"<<endl;
}
else
{
j=0;
cout<<"请输入新姓名:";
cin>>name;
for(i=0;i<15;i++)
{
if(contacts[i].name==name) j++;
}
if(j==0)
{
contacts[k].name=name;  //新姓名可以存放
}
else
{
cout<<"此姓名已存在,修改取消!"<<endl;
}
j=0;
cout<<"请输入新号码:";
string number;
cin>>number;
for(i=0;i<15;i++)
{
if(contacts[i].number==number)
{
j++;
}
}
if(j==0)
{
contacts[k].number=number;       //新号码可以存放
}
else
{
cout<<"该号码已存在,修改取消!"<<endl;
}
cout<<"请选择新存储类别:(a.办公类  b.个人类  c.商务类) "<<endl;
char x;
cin>>x;  //输入类别代号
  while(x!='a'&&x!='b'&&x!='c'&&x!='A'&&x!='B'&&x!='C')
{
cout<<"你的操作有误,请重新输入!";
cin>>x;     //返回修改初                        
}
contacts[k].type=x;
cout<<"请输入新邮箱:";
string email;
cin>>email;
contacts[k].email=email;
cout<<"-------------------------------\n";
cout<<endl<<"修改后通讯录内容为:"<<endl;
cout<<contacts[k].name<<"           "<<contacts[k].number<<"        "<<contacts[k].type<<"             "<<contacts[k].email<<endl;
}
cout<<endl<<"是否继续修改?(Y/N)";
cin>>c;
}while(c=='Y'||c=='y');
}
void menu()
{
cout<<"1.添加联系人"<<endl;
    cout<<"2.查看某类所有联系人"<<endl;
    cout<<"3.查看某人姓名及电话所在类"<<endl;
    cout<<"4.查看所有来电、去电、未接记录"<<endl;
    cout<<"5.修改联系人"<<endl;
    cout<<"6.删除联系人"<<endl;
cout<<"7.模拟拨号"<<endl;
cout<<"8.模拟接听"<<endl;
cout<<"0.退出"<<endl;
}


int main()
{
Adresslist a;
Recordscall b;
int choice;
do
{
menu();
cout<<"Please input your choice:"<<endl;
cin>>choice;
        switch(choice)
        {
         case 1:
a.Inputcontacts(); //添加联系人
break;
         case 2:
 a.Find(); //查看某类所有联系人 
break;
         case 3:
 a.Findone(); //查看某人姓名及电话所在类
break;
case 4:
 b.FindAll(); //查看所有来电、去电、未接记录
break;
case 5: 
a.Amend(); //修改联系人
break;
case 6:
 a.Delete(); //删除联系人
break;
case 7:
b.Callrecord(); //模拟拨号
break;
case 8:
   b.Receiverecord(); //模拟接听
break;
case 0:
break;
}
}while(choice!=0);


return 0;
}




























































#include<string>
#include"windows.h"
#include"conio.h"
#include<stdio.h>
#include<iostream>
#include<fstream>
using namespace std;
int n=0,m=0,x=0,r=0;
char text[]={0}; //n通讯录里联系人个数,m为已拨个数,x为已接个数,r为未接个数


struct Adressinfor //通讯录信息结构体
{
string name;
string number;
char type;
string email;
};



struct Time //时间的结构体
{
int hour;
int minute;
int second;
};






struct Numberinfor //通话情况的号码的信息
{
string number;
string name;
Time  gotime;
Time  cometime;
int   time;
};





class Adresslist //通讯录类
{
public:
Adressinfor contacts[15];
void Find();
void Findone();
void Inputcontacts();
void  Delete();
void  Amend();
Adresslist();
};






class Recordscall:public Adresslist //通话情况类
{
public:
Numberinfor A[200]; //已拨
Numberinfor B[200]; //已接
Numberinfor C[200]; //未接
void FindAll();
void Callrecord();
void Receiverecord();
Recordscall();
};
Adresslist::Adresslist()
{
for(int i=0;i<15;i++)
{
contacts[i].email=text;
contacts[i].name=text;
contacts[i].number=text;
contacts[i].type=NULL;
}
}
Recordscall::Recordscall()
{
Adresslist();
for(int j=0;j<200;j++)
{
A[j].cometime.hour=0;
A[j].cometime.minute=0;
A[j].cometime.second=0;
A[j].gotime.hour=0;
A[j].gotime.minute=0;
A[j].gotime.second=0;
A[j].name=text;
A[j].number=text;
B[j].time=0;
B[j].cometime.hour=0;
B[j].cometime.minute=0;
B[j].cometime.second=0;
B[j].gotime.hour=0;
B[j].gotime.minute=0;
B[j].gotime.second=0;
B[j].name=text;
B[j].number=text;
B[j].time=0;
C[j].cometime.hour=0;
C[j].cometime.minute=0;
C[j].cometime.second=0;
C[j].gotime.hour=0;
C[j].gotime.minute=0;
C[j].gotime.second=0;
C[j].name=text;
C[j].number=text;
C[j].time=0;
}
}



void Output(Time a)
{
cout<<a.hour<<":"<<a.minute<<":"<<a.second<<"  ";
}
void Adresslist::Find() //输入号码类输出姓名和号码
{
cout<<"Please input the type you need to find:"<<endl;
char c;
cin>>c;
if(c!='a'&&c!='b'&&c!='c')
{
cout<<"Input error!   Please input again!"<<endl;
cin>>c;
}
int j=0;
for(int i=0;i<15;i++)
{
if(contacts[i].type==c)
{ cout<<contacts[i].name<<" "<<contacts[i].number<<"      ";j++;}
}
if(j==0){cout<<"该类中无号码"<<endl;}
cout<<endl;
}
void Adresslist::Findone() //输入姓名输出姓名和号码类
{
cout<<"Please input the name you want to find:"<<endl;
string s;
cin>>s;
int t=0;
for(int i=0;i<15;i++)
{
  if(s==contacts[i].name)
{
cout<<contacts[i].name<<" "<<contacts[i].type<<"    ";
t++;
}
}
if(t==0)
{
cout<<"The name doesn't exist in the Adresslist!"<<endl;
}
cout<<endl;
}
void Recordscall::FindAll() //查看所有记录
{
int i,j;
cout<<"来电记录:"<<endl;
if(B[0].number==text)
{
cout<<"无来电记录"<<endl;
}
else
{
for( i=0;i<200&&B[i].number!=text;i++)
{
for( j=0;j<15;j++)
{
if(B[i].number==contacts[j].number)
break;
}
if(j==15)
{
cout<<"来电号码:"<<B[i].number<<" ";
}
else
{
cout<<"来电联系人:"<<contacts[j].name<<" ";
}
cout<<"来电时间: ";Output(B[i].cometime);cout<<"通话时间: "<<B[i].time<<"秒"<<endl;
}
}
cout<<"拨出记录:"<<endl;
if(A[0].number==text){cout<<"无拨出记录"<<endl;}
else{for( i=0;i<200&&A[i].number!=text;i++)
{
for( j=0;j<15;j++)
{
if(A[i].number==contacts[j].number)
break;
}
if(j==15)
{
cout<<"拨出号码: "<<A[i].number<<" ";
}
else
{
cout<<"拨出号码: "<<contacts[j].name<<" ";
}
cout<<"拨出时间: ";Output(A[i].gotime);
if(A[i].time!=0)
cout<<"通话时间"<<A[i].time<<"秒"<<endl;
else
cout<<"无人接听"<<endl;
}
}
cout<<"未接来电:"<<endl;
if(C[0].number==text){cout<<"无未接来电"<<endl;}
else{ for( i=0;i<200&&C[i].number!=text;i++)
{
for( j=0;j<15;j++)
{
if(C[i].number==contacts[j].number)
break;
}
if(j==15)
{
cout<<C[i].number<<" ";Output(C[i].cometime);cout<<endl;
}
else
{
cout<<contacts[j].name<<" ";Output(C[i].cometime);cout<<endl;
}
}
}
}
void Adresslist::Inputcontacts() //添加通讯录
{
Adressinfor p;
char c;
do
{
cout<<"请输入需要添加到通讯录的号码信息(姓名,号码,号码类型(a,b,c),电子邮箱):"<<endl;
string name;string email;string number;char type; //添加号码信息,没排序
cin>>name>>number>>type>>email;
contacts[n].name=name;
contacts[n].email=email;
contacts[n].number=number;
contacts[n].type=type;
for(int j=0;j<n;j++)
{
if(contacts[n].number==contacts[j].number) //检验该号码是否已储存
{
cout<<"该号码已存在"<<endl;
}
   break;
}
if(n==15) //存储上限15个
{
cout<<"不能继续存储"<<endl;

n++;
for(int i=0;i<(n-1);i++)
{
if(contacts[i].name.compare("contacts[n-1].name")>0)
{
p=contacts[i];
contacts[i]=contacts[n-1];   
contacts[n-1]=p;
}
}
cout<<"Do you want to continue to input?(Y/N)"<<endl;
cin>>c;
}while(c=='y'||c=='Y');
}


void Recordscall::Callrecord() //模拟拨号
{
string w;int s1,s2;
system("cls"); 
SYSTEMTIME t1,t2,t3;
cout<<"请输入要拨的号码:"<<endl;
cin>>w;
cout<<"请按下任意键开始拨号"<<endl;
getch();
GetLocalTime(&t1);
cout<<"拨号中......."<<endl<<"请按任意键接听"<<endl;
getch();
GetLocalTime(&t2);
s1=(t2.wMinute-t1.wMinute)*60+t2.wSecond-t2.wSecond;
if(s1>20)
{
cout<<"拨号时间过长无人接听"<<endl;
A[m].time=0;
}
else
{
cout<<"已接听"<<endl<<"请按任意键挂断"<<endl;
getch();
GetLocalTime(&t3);
s2=(t3.wMinute-t2.wMinute)*60+t3.wSecond-t2.wSecond;
A[m].time=s2;
}
for(int p=0;p<n;p++)
{
if(w.compare(contacts[p].number)==0)
A[m].name=contacts[p].name;
}
A[m].number=w;
A[m].gotime.hour=t1.wHour;
A[m].gotime.minute=t1.wMinute;
A[m].gotime.second=t1.wSecond;
m++;
}
void Recordscall::Receiverecord() //模拟接听
{
string w;int s1,s2;
system("cls"); 
SYSTEMTIME t1,t2,t3;
cout<<"请输入打进来的号码:"<<endl;
cin>>w;
cout<<"请按下任意键开始被拨号"<<endl;
getch();
GetLocalTime(&t1);
cout<<"拨号中......."<<endl<<"请按任意键接听"<<endl;
getch();
GetLocalTime(&t2);
s1=(t2.wMinute-t1.wMinute)*60+t2.wSecond-t2.wSecond;
if(s1>20)
{
cout<<"拨号时间过长无人接听"<<endl;
for(int p=0;p<n;p++)
{
if(w.compare(contacts[p].number)==0)
C[r].name=contacts[p].name;
}
C[r].number=w;
C[r].cometime.hour=t1.wHour;
C[r].cometime.minute=t1.wMinute;
C[r].cometime.second=t1.wSecond;
r++;
}
else
{
cout<<"已接听"<<endl<<"请按任意键挂断"<<endl;
getch();
GetLocalTime(&t3);
s2=(t3.wMinute-t2.wMinute)*60+t3.wSecond-t2.wSecond;
for(int p=0;p<n;p++)
{
if(w.compare(contacts[p].number)==0)
B[x].name=contacts[p].name;
}
B[x].number=w;
B[x].time=s2;
B[x].cometime.hour=t1.wHour;
B[x].cometime.minute=t1.wMinute;
B[x].cometime.second=t1.wSecond;
x++;
}


}




void Adresslist::Delete() //删除
{
char x;
do
{
string name;
int i,j=0;
cout<<"请输入你想删除的联系人的姓名:";
cin>>name; //输入想要删除的姓名
for(i=0;i<15;i++)
{
if(contacts[i].name.compare(name)==0){j++;}
}
if(j==0)
{
cout<<"通讯录没有此人!"<<endl; //通讯录中无此人,结束进程
}
else{
for(i=0;i<15;i++)
{
if(contacts[i].name.compare(name)==0)
j=i;
}
for(i=j;i<14;i++)
{
contacts[i]=contacts[i+1]; //删除的位置被后面成员替代
}

cout<<"删除成功"<<endl;
}
cout<<"是否继续删除?(Y/N)"<<endl;
cin>>x;
}while(x=='Y'||x=='y');
}
void Adresslist::Amend() //修改
{
char c;
do
{
string name;
int i;int j=0; int k;
cout<<"请输入你要修改的联系人的姓名:";
cin>>name;
for(i=0;i<15;i++)
{
if(contacts[i].name ==name)
{
j++;
k=i;
break;
}
}
if(j==0)
{
cout<<"通讯录中没有此人!"<<endl;
}
else
{
j=0;
cout<<"请输入新姓名:";
cin>>name;
for(i=0;i<15;i++)
{
if(contacts[i].name==name) j++;
}
if(j==0)
{
contacts[k].name=name;  //新姓名可以存放
}
else
{
cout<<"此姓名已存在,修改取消!"<<endl;
}
j=0;
cout<<"请输入新号码:";
string number;
cin>>number;
for(i=0;i<15;i++)
{
if(contacts[i].number==number)
{
j++;
}
}
if(j==0)
{
contacts[k].number=number;       //新号码可以存放
}
else
{
cout<<"该号码已存在,修改取消!"<<endl;
}
cout<<"请选择新存储类别:(a.办公类  b.个人类  c.商务类) "<<endl;
char x;
cin>>x;  //输入类别代号
  while(x!='a'&&x!='b'&&x!='c'&&x!='A'&&x!='B'&&x!='C')
{
cout<<"你的操作有误,请重新输入!";
cin>>x;     //返回修改初                        
}
contacts[k].type=x;
cout<<"请输入新邮箱:";
string email;
cin>>email;
contacts[k].email=email;
cout<<"-------------------------------\n";
cout<<endl<<"修改后通讯录内容为:"<<endl;
cout<<contacts[k].name<<"           "<<contacts[k].number<<"        "<<contacts[k].type<<"             "<<contacts[k].email<<endl;
}
cout<<endl<<"是否继续修改?(Y/N)";
cin>>c;
}while(c=='Y'||c=='y');
}
void ReadFile(Adresslist a,Recordscall b) //读文件 
{
ifstream inf("通讯录.txt");
if(!inf)
{
cout<<"Cannot open the file"<<endl;
return ;
}
else
{
cout<<"Have read the Adresslist file"<<endl;
}
for(int i=0;i<15;i++)
{
inf>>a.contacts[i].name>>a.contacts[i].number>>a.contacts[i].type>>a.contacts[i].email;
}
inf.close();
ifstream in("通话情况.txt");
if(!in)
{
cout<<"Cannot open the file"<<endl;
return ;
}
else
{
cout<<"Have read the Recordscall file"<<endl;
}
for( i=0;i<200;i++)
{
/* in.read((char *)&b.A[i],sizeof(Numberinfor));*/in>>b.A[i].name>>b.A[i].number>>b.A[i].cometime.hour>>b.A[i].cometime.minute>>b.A[i].cometime.second;
}
for( i=0;i<200;i++)
{
/* in.read((char *)&b.B[i],sizeof(Numberinfor));*/in>>b.B[i].name>>b.B[i].number>>b.B[i].cometime.hour>>b.B[i].cometime.minute>>b.B[i].cometime.second;
}
for( i=0;i<200;i++)
{
/* in.read((char *)&b.C[i],sizeof(Numberinfor));*/in>>b.C[i].name>>b.C[i].number>>b.C[i].cometime.hour>>b.C[i].cometime.minute>>b.C[i].cometime.second;
}
in.close();
}
void Save(Adresslist a,Recordscall b) //保存
{
ofstream outf("通讯录.txt");
if(!outf)
{
cout<<"Cannot open the file"<<endl;
return ;
}
else
{
cout<<"Have saved the Adresslist file"<<endl;
}
for(int i=0;i<15;i++)
{
/* outf.write((char *)&a.contacts[i],sizeof(Adressinfor));*/outf<<a.contacts[i].name<<" "<<a.contacts[i].number<<" "<<a.contacts[i].type<<" "<<a.contacts[i].email<<endl;
}
outf.close();
ofstream out("通话情况.txt");
if(!out)
{
cout<<"Cannot open the file"<<endl;
return ;
}
else
{
cout<<"Have saved the Recordscall file"<<endl;
}
for(i=0;i<200;i++)
{
/*out.write((char *)&b.A[i],sizeof(Numberinfor));*/out<<b.A[i].name<<" "<<b.A[i].number<<" "<<b.A[i].cometime.hour<<" "<<b.A[i].cometime.minute<<" "<<b.A[i].cometime.second<<" "<<b.A[i].gotime.hour<<" "<<b.A[i].gotime.minute<<" "<<b.A[i].gotime.second<<" "<<b.A[i].time<<endl;
}
for(i=0;i<200;i++)
{
/* out.write((char *)&b.B[i],sizeof(Numberinfor));*/out<<b.B[i].name<<" "<<b.B[i].number<<" "<<b.B[i].cometime.hour<<" "<<b.B[i].cometime.minute<<" "<<b.B[i].cometime.second<<" "<<b.B[i].gotime.hour<<" "<<b.B[i].gotime.minute<<" "<<b.B[i].gotime.second<<" "<<b.B[i].time<<endl;
}
for(i=0;i<200;i++)
{
/* out.write((char *)&b.C[i],sizeof(Numberinfor));*/out<<b.B[i].name<<" "<<b.B[i].number<<" "<<b.B[i].cometime.hour<<" "<<b.B[i].cometime.minute<<" "<<b.B[i].cometime.second<<" "<<b.B[i].gotime.hour<<" "<<b.B[i].gotime.minute<<" "<<b.B[i].gotime.second<<" "<<b.B[i].time<<endl;
}
out.close();
}








void menu()
{
cout<<"1.添加联系人"<<endl;
    cout<<"2.查看某类所有联系人"<<endl;
    cout<<"3.查看某人姓名及电话所在类"<<endl;
    cout<<"4.查看所有来电、去电、未接记录"<<endl;
    cout<<"5.修改联系人"<<endl;
    cout<<"6.删除联系人"<<endl;
cout<<"7.模拟拨号"<<endl;
cout<<"8.模拟接听"<<endl;
cout<<"0.退出"<<endl;
}


int main()
{
Adresslist a;
Recordscall b;
ReadFile(a,b);
int choice;
do
{
menu();
cout<<"Please input your choice:"<<endl;
cin>>choice;
while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=7&&choice!=8&&choice!=0)
{
cout<<"Input error! Please input again!"<<endl;
cin>>choice;
}
        switch(choice)
        {
         case 1:
a.Inputcontacts(); //添加联系人
break;
         case 2:
 a.Find(); //查看某类所有联系人 
break;
         case 3:
 a.Findone(); //查看某人姓名及电话所在类
break;
case 4:
 b.FindAll(); //查看所有来电、去电、未接记录
break;
case 5: 
a.Amend(); //修改联系人
break;
case 6:
 a.Delete(); //删除联系人
break;
case 7:
b.Callrecord(); //模拟拨号
break;
case 8:
   b.Receiverecord(); //模拟接听
break;
case 0:
break;
}
}while(choice!=0);
Save(a,b);
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值