求C++课程设计报告(简易通讯录)

2025-05-17 04:52:18
推荐回答(1个)
回答1:

下面是代码,设了两个属性:name和phone number【这个你可以根据情况自己改一下】;
关于其中的文件操作:读入文件为inf.txt,输出文件为record.txt

#include
#include
#include
using namespace std;
#define NUM 100
int num=0;
class BOOK
{
public:
string name,phone_number;
int d;
BOOK(){ d=0;}
void add_record(string n,string p);
void delete_record();
void display_record();
void modify_record(string n,string p);
}a[NUM];
void BOOK::add_record(string n,string p){
name=n;
phone_number=p;
d=1;
}
void BOOK::delete_record(){
d=0;
}
void BOOK::display_record(){
cout<<"\t\t"<}
void BOOK::modify_record(string n,string p){
name=n;
phone_number=p;
}

void ADD_RECORD(){ //1,添加记录
int k;
string nam,pho;
for(k=0;k if(a[k].d==0){
cout<<"NAME:\t";
cin>>nam;
cout<<"PHONE NUMBER:\t";
cin>>pho;
a[k].add_record(nam,pho);
break;
}
num++;
}
void DELETE_RECORD(){ //2,删除记录
int k;string names;
if(num==0){cout<<"ERROR!No Record!\n";return;}
cout<<"Who's record do you want to delete?\nNAME:";
cin>>names;
for (k=0;k {
if(a[k].name==names){a[k].delete_record();break;}
}
num--;
}
void DISPLAY_ALL(){ //3,显示所有记录
int k;
cout<<"\t\tNAME\t\tPHONE_NUMBER"< for (k=0;k {
if(a[k].d==0) num++;
else a[k].display_record();
}
}
void QUERY(){ //4,查询
string names;
int k,t=0;
cout<<"Who's record do you want to know?\nNAME:";
cin>>names;
for (k=0;k {
if(a[k].name==names){
cout<<"\t\tNAME\t\tPHONE_NUMBER"< a[k].display_record();
t=1;
}
}
if(t==0)cout<<"\t\tNO FIND!\n";
}
void MODIFY_RECORD(){ //5,修改记录
string names,nname,nphn;
int k,t=0;
cout<<"Who's record do you want to modify?\nNAME:";
cin>>names;
for (k=0;k {
if(a[k].name==names){
cout<<"NEW NAME:\t";
cin>>nname;
cout<<"NEW PHONE NUMBER:\t";
cin>>nphn;
a[k].modify_record(nname,nphn);
t=1;
break;
}
}
if(t==0)cout<<"\t\tNO FIND!\n";
}
void ADD_FROM_FILE(){ //6,从文本文件中添加
int k=0;
string str1,str2;
ifstream fin("inf.txt");
while(!fin.eof()){
if(a[k].d==0){
fin>>str1>>str2;
a[k].add_record(str1,str2);
}
k++;
}
if(num fin.close();
}
void WRITE_TO_FILE(){ //7,写入一个文本文件
ofstream fout("record.txt");
fout<<"\t\tNAME\t\tPHONE_NUMBER"< for (int k=0;k {
fout<<"\t\t"< }
fout.close();
}
main(){

int quit=1,c;
cout<<"What do you want ?\n\t1.add record\t\t\t2.delete record\n\t3.display all record\t\t4.query\n\t5.modify record\t\t\t6.add from a text file\n\t7.write to a text file\t\t\n\t8.quit\n";
while (quit)
{
cout<<"Input Your Options:";
cin>>c;
switch(c){
case 1:
ADD_RECORD();
break;
case 2:
DELETE_RECORD();
break;
case 3:
DISPLAY_ALL();
break;
case 4:
QUERY();
break;
case 5:
MODIFY_RECORD();
break;
case 6:
ADD_FROM_FILE();
break;
case 7:
WRITE_TO_FILE();
break;
default:
quit=0;
break;
}
}
}