班级通讯录c语言程序设计,求C语言的程序设计,班级通讯录的设计与实现?

b50341d2a4ec1eb11e68fb822ad3955d.png

这个不用发信响了,能放下,

已经编译运行确认了:

#include

#include

#include

#include

#include

#include

#include

using namespace std;

class book

{

public:

book();//默认构造函数

char inter_face();//首页

void add_person();//添加联系人

void del_person();//删除联系人

void show_all();//显示所有联系人

void alter();//修改信息

void select();//查询联系人

void save_new();//保存新增加的联系人

private:

string name;//姓名

string address;//地址

string number;//电话号码

string post;//邮编

string qq;//QQ号

};

struct record

{

book object;//双向链表中的数据域是是一个记录类

record *prior;//指向前躯

record *next;//指向后继

};

book::book()

{

name = "\0";

address = "\0";

number = "\0";

post = "\0";

qq = "\0";

}

//首页

char book::inter_face()

{

system("cls");

cout <

cout<

<

<

<

<

<

<

<

<

<

<

<

char choose;

cin >>choose;

fflush(stdin);

return choose;

}

//添加联系人

void book::add_person()

{

cout <

<

cin >>name;

fflush(stdin);

cout <

cin >>number;

fflush(stdin);

cout <

cin >>qq;

fflush(stdin);

cout <

cin >>post;

fflush(stdin);

cout <

cin >>address;

fflush(stdin);

save_new();

cout <

system("pause");

}

//删除联系人

void book::del_person()

{

ofstream outData("temp.txt", ios::out);

ifstream inData("pbook.txt", ios::in);

if (!outData || !inData)

{

cout <

system("pause");

return;

}

string sign;

cout <

cin >>sign;

string str1;

bool flag = true;

string str;

while (inData >>name >>number)

{

getline(inData, str);

if ((sign==name) || (sign==number))

{

cout <

cout <

cout <

<

flag = false;

break;

}

outData <

<

}

if (flag)

{

cout <

}

else

{

while (getline(inData, str))

{

outData <

}

outData.close();

inData.close();

ofstream out("pbook.txt", ios::out);

ifstream in("temp.txt", ios::in);

if (!out || !in)

{

cout <

system("pause");

return;

}

while (getline(in, str))

{

out <

}

out.close();

in.close();

cout <

}

system("pause");

}

//显示所有联系人

void book::show_all()

{

ifstream inData("pbook.txt",ios::in);

if (!inData)

{

cout <

system("pause");

return;

}

bool flag = true;

string record;

while (getline(inData, record))

{

if (flag)

{

cout <

}

cout <

flag = false;

}

if (flag)

{

cout <

}

else

{

cout <

}

system("pause");

}

//修改信息

void book::alter()

{

ifstream inData("pbook.txt", ios::in);

if (!inData)

{

cout <

system("pause");

return;

}

string sign;

cout <

cin >>sign;

fflush(stdin);

string str1;

getline(inData, str1);

record *H = new record;

record *p = H;

record *q = H;

bool flag = true;

while (inData >>p->object.name >>p->object.number >>p->object.qq

>>p->object.post >>p->object.address)

{

p->next = new record;

p = p->next;

p->prior = q;

q->next = p;

q = p;

}

p->next = NULL;

inData.close();

p = H;

while (p)

{

if ((p->object.name==sign) || (p->object.number==sign))

{

if (flag)

{

cout <

cout <

cout <

<object.name <object.number

<object.qq

<object.post

<object.address <

flag = false;

}

cout <

cout <

cin >>p->object.name;

fflush(stdin);

cout <

cin >>p->object.number;

fflush(stdin);

cout <

cin >>p->object.qq;

fflush(stdin);

cout <

cin >>p->object.post;

fflush(stdin);

cout <

cin >>p->object.address;

fflush(stdin);

break;

}

p = p->next;

}

if (flag)

{

cout <

system("pause");

return;

}

else

{

ofstream out("pbook.txt",ios::out);

if (!out)

{

cout <

system("pause");

return;

}

out <

p = H->next;

while (p)

{

out <object.name

<object.number

<object.qq

<object.post

<object.address <

p = p->next;

}

out.close();

cout <

system("pause");

}

}

//查询联系人

void book::select()

{

ifstream inData("pbook.txt",ios::in);

if (!inData)

{

cout <

system("pause");

return;

}

string sign;

cout <

cin >>sign;

fflush(stdin);

string str1;

bool flag = true;

string str;

while (inData >>name >>number)

{

getline(inData, str);

if ((name==sign) || (number==sign))

{

cout <

cout <

cout <

<

flag = false;

break;

}

}

}

void book::save_new()

{

ofstream outData("pbook.txt", ios::app);

if (!outData)

{

cout <

system("pause");

return;

}

outData << setiosflags(ios::left) << setw(17) << name

<

<< setw(18) << qq <

<< setw(14) << post <

<< setw(20) << address <

outData.close();

}

enum power{ADD = '1', DEL = '2', SHOW = '3', Alter = '4', Select = '5', END = '6'};

int main()

{

char choose;

book abj;

while (choose = abj.inter_face())

{

switch (choose)

{

case ADD:

abj.add_person();添加联系人

break;

case DEL:

abj.del_person();删除联系人

break;

case SHOW:

abj.show_all();显示所有联系人

break;

case Alter:

abj.alter();修改信息

break;

case Select:

abj.select();查询联系人

break;

case END:

cout <

exit(0);

break;

default:

break;

}

}

return 0;

}

8

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值