永发信息网

设计一个程序完成通讯录的以下操作:1.添加记录2.显示3.修改4.按姓名查找 5.删除,代码如下:

答案:1  悬赏:30  手机版
解决时间 2021-03-18 10:35
  • 提问者网友:末路
  • 2021-03-18 02:51
#include
#include
#include
#include
#include
#include
using namespace std;
struct Info{
char name[21];
int age;
char address[21];
char phone[14];
char email[51];
};

//函数原型
void addFile(fstream &);//增加记录
void showFile(fstream &);//显示记录
void editFile(fstream &);//修改记录
void researchFile(fstream &);//查找记录
void deleteFile(fstream &);//删除记录
void main()
{
int choice;
fstream classmate("c:\\Info.dat",ios::out|ios::in|ios::binary);
if(classmate.fail())
{
cout<<"Error!";
exit(0);
}
while(true){
cout<<"\n\t1.增加记录 2.显示所有记录 3.修改记录 4.查找记录 5.删除记录 6.退出\n";
cin>>choice;
cin.ignore();
switch(choice){
case 1:
addFile(classmate);
break;
case 2:
showFile(classmate);
break;
case 3:
editFile(classmate);
break;
case 4:
researchFile(classmate);
break;
case 5:
deleteFile(classmate);
break;
case 6:
exit(0);
}
}
classmate.close();
}

//增加记录函数
void addFile(fstream &file)
{
Info person;
file.clear();
char again='Y';
do{
cout<<"请输入要增加的记录的内容:\n";
cout<<"姓名:";
cin.getline(person.name,21);
cout<<"年龄:";
cin>>person.age;
cin.ignore();//略过后面的换行符
while((person.age>200)|(person.age<0)){
cout<<"你输入的年龄不符合要求,请重新输入.";
cout<<"年龄:";
cin>>person.age;
cin.ignore();
};
cout<<"联系地址:";
cin.getline(person.address,51);
cout<<"联系电话:";
cin.getline(person.phone,14);
cout<<"E-mail:";
cin.getline(person.email,51);
file.seekp(0L,ios::end);
file.write((char *)&person,sizeof(person));
cout<<"你还想继续输入吗?(Y\\N)\n";
cin>>again;
cin.ignore();
}while(toupper(again)=='Y');
file.flush();
}

//显示所有记录
void showFile(fstream &file)
{
Info person;
int num=1;
file.clear();
file.seekg(0L,ios::beg);//调整读指针
file.read((char *)&person,sizeof(person));//读取并显示记录
while(!file.eof()){
cout<<"记录 "< cout<<"姓名:";
cout< cout< cout< cout< cout< cout< cout< cout< cout< file.read((char *)&person,sizeof(person));
num++;
}
}

这是前2个功能的代码,其中有一个问题,为什么会创建文件失败呢?如果先手动创建好文件,在运行程序就不会失败了。功能3和4我也会写,但是我不会实现删除,求高手指导下怎么写删除部分的代码,最好在我的代码基础上写。
最佳答案
  • 五星知识达人网友:你哪知我潦倒为你
  • 2021-03-18 03:52
通讯录管理 c语言的可以参考用给我邮箱
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯