?? 7-1.cpp
字號:
/* 電話本
編寫C++程序完成以下功能:
(1) 實現(xiàn)簡單電話本功能,用姓名來搜索電話號碼;
(2) 用戶輸入姓名,程序查找并輸出結(jié)果;
(3) 用戶可以通過輸入,添加姓名和電話號碼;
(4) 用戶可以刪除姓名和電話號碼;
(5) 電話本可以保存在指定文件中;
(6) 電話可被從指定文件中讀入到內(nèi)存。
*/
#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.結(jié)束\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;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -