📄 7-1.cpp
字号:
/* 电话本
编写C++程序完成以下功能:
(1) 实现简单电话本功能,用姓名来搜索电话号码;
(2) 用户输入姓名,程序查找并输出结果;
(3) 用户可以通过输入,添加姓名和电话号码;
(4) 用户可以删除姓名和电话号码;
(5) 电话本可以保存在指定文件中;
(6) 电话可被从指定文件中读入到内存。
*/
#include<iostream>
#include<stdlib.h>
#include<fstream>
#include<string>
using namespace std;
const int MAX=100;
class Address//单条电话记录
{
private:
string name;
string phone;
bool status;//判断是否还存在记录
public:
Address(){status=false;}//初始化时无记录
string getname()
{
return name;
}
string getphone()
{
return phone;
}
bool getstatus(){return status;}
void Input(string n,string p)//输入姓名及电话
{
name=n;
phone=p;
}
void Set(){ status=true;}//记录存在
void Clear(){ status=false;}//记录不存在
};
class Addressbook//电话本
{
Address Item[MAX];//申请的电话本
int num;
public:
Addressbook(){num=0;}
string Search();//输入姓名,找电话号码
void Enter();//添加新的电话记录
void Delete ();//删除
void Save();//保存
void Read();//读入
};
string Addressbook::Search()
{
string n;
cout<<"请输入查找姓名:"<<endl;
cin>>n;
for(int i=0;i<MAX;i++){
if(n==Item[i].getname()&&Item[i].getstatus()==true)
return Item[i].getphone();
}
}
void Addressbook::Enter()
{
string n,p;
int pointer=0;
for(int i=0;i<num;i++){
if(Item[i].getstatus()==false){
pointer=i;
break;
}
}
if(pointer==num-1)
pointer=num;
cout<<"请输入姓名:"<<endl;
cin>>n;
cout<<"请输入电话号码:"<<endl;
cin>>p;
Item[pointer].Input(n,p);
Item[pointer].Set();
num++;
}
void Addressbook::Delete()
{
string n;
cout<<"请输入删除姓名:"<<endl;
cin>>n;
for(int i=0;i<MAX;i++){
if(n==Item[i].getname()){
Item[i].Clear();
num--;
}
}
}
void Addressbook::Save()
{
ofstream outfile("d:\\1.txt");
if(!outfile){
cout<<"无法打开"<<endl;
}
else{
for(int i=0;i<MAX;i++){
if(Item[i].getstatus()==true)
outfile<<Item[i].getname()<<Item[i].getphone()<<endl;
}
outfile.close();
}
}
void Addressbook::Read()
{
ifstream infile("d:\\1.txt");
if(!infile){
cout<<"无法打开"<<endl;
}
else{
for(int i=0;i<MAX;i++){
if(!infile.eof()){
infile.read((char *)(&Item[i]), sizeof(Item[i]));
if(Item[i].getstatus()==true)
num++;
}
}
}
infile.close();
}
int main()
{
Addressbook A;
string p;
int ch;
cout<<"0.结束\n1.用姓名来查找号码\n2.添加姓名和号码\n3.删除姓名和号码\n4.保存\n5.读取\n";
do {
cin>>ch;
switch (ch){
case 0:break;
case 1: {p=A.Search();
cout<<p<<endl;
break;
}
case 2: A.Enter();break;
case 3: A.Delete();break;
case 4: A.Save(); break;
case 5: A.Read();break;
default:cout<<"error";break;
}
}
while(ch!=0);
system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -